## 椭圆曲线密码学:摘要 传统的公钥密码学依赖于诸如分解大数(RSA)之类的数学难题来保障通信安全,但这些方法需要不断增加密钥长度才能提高安全性。椭圆曲线密码学(ECC)提供了一种更高效的替代方案,可以用显著更小的密钥实现相同的安全级别。 ECC 利用椭圆曲线的独特属性——定义特定形状的方程——来创建“陷门”函数。在曲线上添加点很容易,但反向操作(根据结果找到原始点)在计算上是不可行的。这使得安全的密钥交换(ECDH)和数字签名(ECDSA)成为可能。 该过程涉及各方生成一个私钥和一个对应的公钥(曲线上的一个点)。共享公钥允许他们建立一个共享密钥,用于加密通信。签名使用私钥创建,并使用公钥进行验证,从而确保真实性和完整性。 ECC 的优势在于其较小的密钥尺寸。例如,256 位 ECC 密钥提供与 3,072 位 RSA 密钥相当的安全性,使其非常适合资源受限的设备和更快的计算。虽然目前是安全的,但 ECC 容易受到未来量子计算机的攻击,从而推动了对后量子密码替代方案的研究。ECC 如今广泛应用于 TLS 1.3、Signal 和比特币等协议中,为现代安全需求提供了一种强大而高效的解决方案。
## 模拟286处理器:深入虚拟现实
受“什么是真实?”的哲学问题启发,本项目通过尝试模拟1980年代的286计算机处理器来探索现实的边界。目标是使处理器启动并运行简单的汇编代码,并质疑如果建立在模拟信号之上,*它*的现实是否更不真实。
该项目的核心是将物理80C286处理器与树莓派Pico连接。由于处理器的57个引脚超过了Pi的能力,使用了MCP23S17 I/O扩展器来管理通信。这需要仔细的接线、引脚映射以及使用MicroPython进行软件开发,以控制扩展器并模拟必要的信号——时钟、复位、地址和数据。
在克服了扩展器内部硬件寻址的挑战后,系统成功执行了一个加载到模拟内存中的简单加法程序。该过程涉及仔细发送指令和数据、处理字节顺序(小端序)以及解释处理器标志。
最终,该项目表明处理器无论其电信号的来源如何都能正常工作,模糊了物理现实和虚拟现实之间的界限。虽然这只是一个小小的步骤,但它为探索外围设备实现和进一步深化模拟打开了可能性。
## VMPrint:现代网络的确定性排版
VMPrint是一个纯JavaScript、零依赖的排版引擎,旨在生成像素级精确的PDF,为无头浏览器或复杂的PDF库提供稳定且高性能的替代方案。它通过使用版本化的JSON指令流来构建文档,解决了现有方案的权衡——繁重的依赖、不可预测的布局和内存问题。
该引擎运行在两个阶段:**布局**(确定字形位置、分页和格式化)和**渲染**(将布局转换为PDF或其他格式)。这种分离允许实现可重现的布局、通过JSON快照轻松调试,以及未来扩展到SVG或Canvas等格式。
VMPrint具有体积小(约2MiB)、渲染速度快,并支持多语言文本(拉丁文、CJK、从右向左),具有准确的文本塑形和断字功能。它设计可在任何地方运行——从Cloudflare Workers到浏览器——在不同环境中提供相同的输出。
VMPrint的构建重点是恢复TeX和PostScript等传统排版系统的精度,旨在为开发者提供可靠的工具,以生成出版质量的PDF。目前处于预发布阶段(v0.1.0),并积极寻求贡献。