跳至主要內容
MT19937分析

MT19937分析

前言

  • 本内容是2022发在cryptography-wiki上的文章了,现在转回到blog上

正文

  • MT19937即梅森旋转算法(Mersenne twister)由松本眞(日语:松本真)和西村拓士在1997年开发,基于二进制有限域F2\mathbb{F}_2上的矩阵线性递归,可以快速产生高质量的伪随机数。

    该算法的周期为21993712^{19937}-1,故名为MT19937。该算法具有以下优点

    1. 周期非常长,为21993712^{19937}-1
    2. 1k6231\le k \le 623都满足kk-分布
    3. 能比硬件实现的方法更快产生随机数
  • kk-分布:一个周期为PPww位整数的伪随机数序列xix_i,如果下列成立则称其vv-比特精度的kk-分布成立。

    truncv(x)\mathrm{trunc_v(x)}表示由xx的前vv位形成的数,并考虑PPkkvv位向量。

    (truncv(xi),truncv(xi+1),,truncv(xi+k1)) (0i<P) (\mathrm{trunc_v(x_i)},\mathrm{trunc_v(x_{i+1})},\dots,\mathrm{trunc_v(x_{i+k-1})})\ (0\le i< P)

    然后,2kv2^{kv}个组合中每一个都在一个周期内出现次数相同(全0组合出现次数较少除外)。


Xenny原创大约 14 分钟密码学PRNGMT19937
再探格密码

再探格密码

关于格密码的学习从很久以前已经开始,本篇博文主要是从头梳理再做一次系统的记录。

前言

什么是格

我们可以这样定义格,它是一组向量在nn维空间中有着周期性的点集,或者说对于nn个线性无关的向量v1,v2,,vnRnv_1,v_2,\dots,v_n \in \mathbb{R}^n,这些向量的整系数组合构成的点集即为一个格,即


Xenny原创大约 32 分钟密码学Lattice
密码学

密码学

一些学习笔记,以下是目录


Xenny小于 1 分钟密码学