密码数学证明
文章平均质量分 86
国科大网安二班
中国科学院大学网安学院二班,会分享密码学、编程、数学相关知识和学习心得,欢迎大家一起讨论。想看什么帖子也可以给我留言。
展开
-
RSA解密正确性证明
RSA解密正确性证明先描述一下RSA密码体制:RSA密码体制:大素数p,qp,qp,q,模数n=pqn=pqn=pq,加密指数bbb,解密指数aaa,满足ab≡1(modϕ(n))ab\equiv1 \pmod{\phi(n)}ab≡1(modϕ(n))。加密:c=mb mod nc=m^{b}\bmod{n}c=mbmodn;解密:m=ca mod nm=c^{a}\bmod{n}m=camodn。本篇是证明RSA解密确实能够得到明文mmm。当m∈Zn∗m\in \mathbb{Z}_{原创 2021-03-12 16:41:18 · 1566 阅读 · 0 评论 -
关于欧几里得算法(Euclidean Algorithm)的迭代次数的证明
关于欧几里得算法(Euclidean Algorithm)的迭代次数的证明我们直到欧几里得算法是计算两个数的最大公因数(或者两个多项式的最大公因式),并且在其他算法中(例如因子分解算法)经常会用到欧几里得算法。本篇专门证明欧几里得算法的迭代次数和计算复杂度。欧几里得算法描述设我们研究的问题是利用欧几里得算法求gcd(a,b)gcd(a,b)gcd(a,b),求解算法流程如下:Euclidean Algorithm(a,b)r0=a,r1=b,m=1r_{0}=a,r_{1}=b,m=1r0=a原创 2021-03-06 12:06:41 · 1337 阅读 · 1 评论 -
流密码之m序列中的线性无关组
m序列中的线性无关组1、简介在流密码的基础学习中,最重要的是理解线性反馈移位寄存器和二元序列的相关性质。这类知识与代数基础联系紧密,通常需要花大的精力认真理解线性序列的各种定理推论。这里讨论m序列的一个问题:设a1,a2,⋯ ,ana_{1},a_{2},\cdots,a_{n}a1,a2,⋯,an是NNN级mmm序列的一个连续子列,则矩阵A=[a1a2⋯ana2a3⋯an+1⋮⋮⋮⋮anan+1⋯a2n−1]A=\begin{bmatrix}a_{1} & a_{2} &原创 2021-02-21 16:17:43 · 264 阅读 · 0 评论 -
Pohlig-Hellman算法求解离散对数问题
Pohig-Hellman算法求解离散对数问题离散对数(DLP)问题:ax≡b(modp)a^{x} \equiv b \pmod{p}ax≡b(modp)ppp是大素数。前面已经介绍了求解离散对数问题的小步大步算法(BSGS)(时间复杂度是O(p)O(\sqrt{p})O(p)),这里介绍另外一种求解光滑阶循环群上的离散对数的方法——Pohig-Hellman方法。事实上,Pohlig-Hellman算法的复杂度在一般情况下比BSGS算法高!但是在特殊情况下(循环群的阶是光滑数,即可以因子分原创 2021-02-12 10:14:06 · 5537 阅读 · 5 评论 -
小步大步算法(BSGS)求解离散对数问题
小步大步算法(BSGS)求解离散对数问题众所周知,离散对数问题(Discrete Logarithm Problem,DLP)一直被认为是困难问题。离散对数问题可以是基于循环群的,也可以是基于椭圆曲线的,本篇以循环群上的离散对数问题为例。主要描述的是这样一个问题:DLP问题求解同余方程Ax≡B(modP)A^{x}\equiv B \pmod{P}Ax≡B(modP)其中,PPP是大素数。如果是在整数上,求对数就可以解决。但是在循环群上,离散对数求解却是难之又难。问题分析和算法主要思想根原创 2021-02-05 12:26:06 · 2978 阅读 · 0 评论 -
蒙哥马利算法(Montgomery Algorithm)|蒙哥马利约简、模乘、模幂
Montgomery Algorithm(蒙哥马利算法)蒙哥马利算法分为3种,蒙哥马利模乘,蒙哥马利约简,蒙哥马利模幂1、从蒙哥马利模乘说起模乘是为了计算ab(modN)ab\pmod{N}ab(modN)。普通算法中,在计算模N时,利用的是带余除法,除法运算需要太多次乘法,计算复杂度较高,蒙哥马利算法的思想就是利用进制表示简化除法运算,转化成位运算。蒙哥马利形式:为了计算ab(modN)ab\pmod{N}ab(modN),找一个RRR,然后使得a′≡aR(modN),b′≡bR(modN)a'原创 2021-01-22 16:25:42 · 18662 阅读 · 29 评论 -
关于AES的列混合计算和解密流程问题
关于AES的列混合计算和解密流程问题我们知道AES的加解密过程都可以用有限域中的计算表示出来。关于AES的加解密过程,很多教材资料都有详细描述,这里我想强调①关于AES加密过程中的MixColumn阶段是如何计算的;②AES的解密流程问题。AES的列混合计算我们经常会看到参考资料说AES的列混合过程是对状态矩阵的每一列左乘一个确定的矩阵(如下图),一般表示为然后我们乘了之后会发现结果并不对。事实上,这里表示的并不是简单的矩阵乘法,而是GF(28)GF(2^{8})GF(28)上的多项式模乘。从A原创 2021-01-18 19:45:22 · 8245 阅读 · 8 评论 -
求n阶循环群上平方根的方法
求n阶循环群上平方根的方法前面讨论勒让德符号计算问题时,就说明了二次同余式是否有解的问题的重要性。今天来讨论,对于二次同余方程:x2≡a(modp)x^{2} \equiv a\pmod{p}x2≡a(modp)有解,即Legendre符号(ap)=1(\frac{a}{p})=1(pa)=1,那么如何求xxx的值呢?这就是今天讨论的nnn阶循环群的平方根求法(由于模p的乘法群的阶是p−1p-1p−1,所以这里的nnn就是$p-$1)。其实我本来也觉得这个证明过程和计算过程偏复杂,不想深入理解记住,但原创 2021-01-18 14:01:03 · 560 阅读 · 0 评论 -
Legendre符号可以在多项式内计算
Legendre符号可以在多项式内计算在密码学中,二次剩余是一个重要的问题。要知道二次同余式x2≡a(modm)x^{2}\equiv a \pmod{m}x2≡a(modm)是否有解,就要求Legendre符号(am)(\frac{a}{m})(ma)的值(雅可比符号是Legendre符号的推广)。本篇讨论Legendre符号计算复杂性问题。1、问题假设ppp是一个奇素数,对任意整数yyy,Legendre符号(yp)(\frac{y}{p})(py)定义如下:问:Legendre符号是否在原创 2021-01-10 21:55:34 · 688 阅读 · 5 评论 -
欧拉函数varphi(n)计算公式的证明
欧拉函数φ(n)\varphi(n)φ(n)计算公式的证明1、简介欧拉函数φ(n)\varphi(n)φ(n)指的是模nnn剩余类环中,与nnn互素的数的个数。我们知道若nnn的标准素数分解是n=∏i=1kpiein=\prod_{i=1}^{k}p_{i}^{e_{i}}n=∏i=1kpiei,则φ(n)=∏i=1k(piei−piei−1)=n∏i=1k(1−1pi)\varphi(n)=\prod_{i=1}^{k}(p_{i}^{e_{i}}-p_{i}^{e_{i}-1})=n\pr原创 2021-01-09 16:34:46 · 1797 阅读 · 0 评论