Linux上LaTeX开发环境的安装(及Docker)

老系统烂掉了,现在又需要用$\LaTeX$写东西,Overleaf访问有时又不稳定,于是为了在本地开心愉快的编辑$\LaTeX$决定使用Docker容器的方法在本地安装一个Overleaf。 Docker安装 简单起见,我们使用Docker官网上提供的脚本方法来安装: 简单来说,我们只需要先通过 wget https://get.docker.com -O get-docker.sh 再通过 sudo sh get-docker.sh 即可安装Docker。在执行完以上命令后,运行apt list | grep docker命令(笔者使用的是Debian系统,因此默认的高级包管理器是apt,如果使用非Debian系系统需要使用其他命令),可以看到 Docker社区版本的软件包docker-ce以及其他附带软件已经在系统里安装。同时在/etc/apt/sources.list.d/目录内,观察到已经有docker.list文件,说明已经可以用apt包管理器来管理docker的更新。 Docker镜像 由于众所周知的原因,在国内如果直接访问Docker Hub来安装容器容易遇到速度慢、网络不稳等问题,因此需要添加国内镜像以加速: 供应商 网址 Docker Proxy https://dockerproxy.

READ MORE

Linux系统目录备忘录

Linux的系统目录构成与作为计算机启蒙所熟知的Windows系统有很大不同,以下面的系统: Linux version 6.1.0-11-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4 (2023-08-08) 为例,针对其中的各个目录的功能制作一个备忘录方便查询。 boot是存放引导文件的目录,如开机时选择系统所使用的grub等,同时核心映像也存放于此,如上图的系统核心vmlinuz,以及引导程序initrd。 dev顾名思义即device,众所周知外部设备以文件的形式存在在Linux系统中,该目录下的文件提供了可以直接操控外部设备的接口。从本质上来说,dev目录被udev所管理,借由sysfs虚拟文件系统实现老版本中devfs的功能,提供用户空间控制设备的途径。

READ MORE

Montgomery模乘

由于模运算非常慢,因此在实现RSA等算法时,引入了Montgomery模乘将模运算简化成了减法运算来进行,加快了模运算进行的速度。 问题的提出 加速 $xy \ mod \ N$ ,使得运算中不产生模 $N$ 运算。 $x, y$ 保证 $x, y < N$。 Montgomery约减 定义Montgomery约减 $REDC(T) = TR^{-1} \ mod \ N$ 。其中 $R > N$ 且 $gcd(N, R) = 1$ , $R^-1$ 为 $R$ 在模 $N$ 意义下的逆元,即 $RR^{-1} \equiv 1 (mod \ N)$ 。取 $N’$ 使得 $RR^{-1} - NN’ = 1$ ,由模运算的定义这样的 $N’$ 显然存在。算法的输入 $T$ 保证 $T < NR$。

READ MORE

RSA算法及其实现

RSA Generation 取两个大质数 $p$ 和 $q$ ,为了安全性 $p$ 和 $q$ 长度应 大于 $2048$ 位; 设 $n = pq$; 设 $m = \phi(n) = (p-1)(q-1)$; 取 $e$,使得 $2 < e < m$且 $gcd(e, m) = 1$; 取 $d$,使得 $d \times e \equiv 1 \ (mod\ m)$; 此时,公钥为 $(n, e)$,私钥为 $(n, d)$。 Encryption 约定 $x$ 为 plaintext, $y$ 为 cyphertext。

READ MORE