在rsa算法中
① 在rsa算法中,以知p=11,q=17,e=13,试计算d是多少
N=(q-1)(p-1)=16 * 10=160
d * e=1 mod N 就是d*e的值对N取模余1
e的值是7 所以7d=1 mod 160
7*23=161而161 mod 160=1
所以d=23
② 在RSA算法中取密钥e=3 D=7,则明文4的密文是多少
你好,根据e和d,我们可以推算出L为20,所以p和q为3和11。n=p*q=33。加密是明文^emod(n),所以是
4^3mod33=31
所以密文是31。
解密是密文^dmod(n),所以是31^7mod33=4
③ RSA密码算法
题目很简单,出现这种问题证明你要好好看下数论了。特别是欧拉定理。根据数论,若x与y互为素数,则x^-1 mod y存在唯一整数解。由此,告诉你一种简洁的求d的方法,该法是根据模的逆运算的原始定义求解,即:ed=k(p-1)(q-1)+1 式中d和k都是整数。因为e与(p-1)(q-1)互为素数,所以存在唯一整数解。这样可以通过搜索法找到d。
由上题:e=5, (p-1)(q-1)=96
带入公式试值得:5d=96*k+1 k=4,d=77 (k与d同时为整数)
c的求法:
由15^5mod119=(((15^2mod119)^2mod119)*15)mod119=36
以上全是手算,当然还可以用计算器,有mod功能的,太简单了。
希望我的回答对你有帮助。
别这么说,什么菜不菜的,大家一起讨论。
mod就是求余,比如:7mod2=1,就是7/2余1
公式:余数=|被除数-商*除数|
④ 密码学基础1:RSA算法原理全面解析
本节内容中可能用到的符号说明如下:
质数和合数: 质数是指除了平凡约数1和自身之外,没有其他约数的大于1的正整数。大于1的正整数中不是素数的则为合数。如 7、11 是质数,而 4、9 是合数。在 RSA 算法中主要用到了质数相关性质,质数可能是上帝留给人类的一把钥匙,许多数学定理和猜想都跟质数有关。
[定理1] 除法定理: 对任意整数 a 和 任意正整数 n,存在唯一的整数 q 和 r,满足 。其中, 称为除法的商,而 称为除法的余数。
整除: 在除法定理中,当余数 时,表示 a 能被 n 整除,或者说 a 是 n 的倍数,用符号 表示。
约数和倍数 : 对于整数 d 和 a,如果 ,且 ,则我们说 d 是 a 的约数,a 是 d 的倍数。
公约数: 对于整数 d,a,b,如果 d 是 a 的约数且 d 也是 b 的约数,则 d 是 a 和 b 的公约数。如 30 的约数有 1,2,3,5,6,10,15,30,而 24 的约数有 1,2,3,4,6,8,12,24,则 30 和 24 的公约数有 1,2,3,6。其中 1 是任意两个整数的公约数。
公约数的性质:
最大公约数: 两个整数最大的公约数称为最大公约数,用 来表示,如 30 和 24 的最大公约数是 6。 有一些显而易见的性质:
[定理2] 最大公约数定理: 如果 a 和 b 是不为0的整数,则 是 a 和 b 的线性组合集合 中的最小正元素。
由定理2可以得到一个推论:
[推论1] 对任意整数 a 和 b,如果 且 ,则 。
互质数: 如果两个整数 a 和 b 只有公因数 1,即 ,则我们就称这两个数是互质数(coprime)。比如 4 和 9 是互质数,但是 15 和 25 不是互质数。
互质数的性质:
欧几里得算法分为朴素欧几里得算法和扩展欧几里得算法,朴素法用于求两个数的最大公约数,而扩展的欧几里得算法则有更多广泛应用,如后面要提到的求一个数对特定模数的模逆元素等。
求两个非负整数的最大公约数最有名的是 辗转相除法,最早出现在伟大的数学家欧几里得在他的经典巨作《几何原本》中。辗转相除法算法求两个非负整数的最大公约数描述如下:
例如, ,在求解过程中,较大的数缩小,持续进行同样的计算可以不断缩小这两个数直至其中一个变成零。
欧几里得算法的python实现如下:
扩展欧几里得算法在 RSA 算法中求模反元素有很重要的应用,定义如下:
定义: 对于不全为 0 的非负整数 ,则必然存在整数对 ,使得
例如,a 为 3,b 为 8,则 。那么,必然存在整数对 ,满足 。简单计算可以得到 满足要求。
扩展欧几里得算法的python实现如下:
同余: 对于正整数 n 和 整数 a,b,如果满足 ,即 a-b 是 n 的倍数,则我们称 a 和 b 对模 n 同余,记号如下: 例如,因为 ,于是有 。
对于正整数 n,整数 ,如果 则我们可以得到如下性质:
譬如,因为 ,则可以推出 。
另外,若 p 和 q 互质,且 ,则可推出:
此外,模的四则运算还有如下一些性质,证明也比较简单,略去。
模逆元素: 对整数 a 和正整数 n,a 对模数 n 的模逆元素是指满足以下条件的整数 b。 a 对 模数 n 的 模逆元素不一定存在,a 对 模数 n 的模逆元素存在的充分必要条件是 a 和 n 互质,这个在后面我们会有证明。若模逆元素存在,也不是唯一的。例如 a=3,n=4,则 a 对模数 n 的模逆元素为 7 + 4k,即 7,11,15,...都是整数 3 对模数 4 的模逆元素。如果 a 和 n 不互质,如 a = 2,n = 4,则不存在模逆元素。
[推论2] 模逆元素存在的充分必要条件是整数 a 和 模数 n 互质。
[定理3] 唯一质数分解定理: 任何一个大于1的正整数 n 都可以 唯一分解 为一组质数的乘积,其中 都是自然数(包括0)。比如 6000 可以唯一分解为 。
由质数唯一分解定理可以得到一个推论: 质数有无穷多个 。
[定理4] 中国剩余定理(Chinese remainder theorem,CRT) ,最早见于《孙子算经》(中国南北朝数学着作,公元420-589年),叫物不知数问题,也叫韩信点兵问题。
翻译过来就是已知一个一元线性同余方程组求 x 的解:
宋朝着名数学家秦九韶在他的着作中给出了物不知数问题的解法,明朝的数学家程大位甚至编了一个《孙子歌诀》:
意思就是:将除以 3 的余数 2 乘以 70,将除以 5 的余数 3 乘以 21,将除以 7 的余数 2 乘以 15,最终将这三个数相加得到 。再将 233 除以 3,5,7 的最小公倍数 105 得到的余数 ,即为符合要求的最小正整数,实际上, 都符合要求。
物不知数问题解法本质
求解通项公式
中国剩余定理相当于给出了以下的一元线性同余方程组的有解的判定条件,并用构造法给出了解的具体形式。
模数 两两互质 ,则对任意的整数: ,方程组 有解,且解可以由如下构造方法得到:
并设 是除 以外的其他 个模数的乘积。
中国剩余定理通项公式证明
⑤ rsa加密算法
rsa加密算法如下:
算法原理:
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥
⑥ RSA算法加密
RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。
它的原理较为简单,假设有消息发送方A和消息接收方B,通过下面的几个步骤,就可以完成消息的加密传递:
消息发送方A在本地构建密钥对,公钥和私钥;
消息发送方A将产生的公钥发送给消息接收方B;
B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;
反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。
由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。
如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。
当然,这种方式可能存在数据传递被模拟的隐患,但可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。
⑦ 已知RSA算法中,素数p=5,q=7,模数n=35,公开密钥e=5,密文c=10,求明文
密钥d=5
明文m=c的d次方mod n
m=100000mod35
=5
或
解密密钥:{d,n}={d,35},
密文:C=10,
选择两个素数:p=5,q=7,则n=35=5*7。
计算φ(p-1)(q-1)=(5-)(7-1)=24,在[0,23]中选择一个和24互素的数,本题选e=5,得5*d=l mod 24,解出d。不难得出,d=5,因为e×d = 5×5 = 25 = 1*24+1=1 mod 24。
因为:m=Cd(mod n)
所以,m=Cd(mod n)=5。
(7)在rsa算法中扩展阅读:
当公钥e取较小的值,虽然会使加密变得易于实现,速度有所提高,但这样做也是不安全的。最简单的办法就是e和d都取较大的值。
因为密钥的产生受素数产生技术的限制,所以也有它的局限性。
(1)密钥的产生受素数产生技术的限制,因而难以做到一次一密。
(2)分组长度太大,为保证安全性,n至少也要600比特以上,使运算代价很高,尤其是速度较慢,比对称密码算法慢几个数量级;随着大整数素因数分解算法的改进和计算机计算能力的提高,对n的长度在不断增加,不利于实现数据格式的标准化。