导航:首页 > 源码编译 > 密码学的平方乘算法

密码学的平方乘算法

发布时间:2023-02-21 02:12:43

⑴ 平方乘算法的正确性

底数不变,指数相乘。
平方乘算法是快速幂的其中一种,幂的乘方,底数不变,指数相乘。
平方是一种运算,比如a的平方表示a×a简写成a2。

⑵ 平方怎么计算

平方的计算方法如下:

1、如果是个位的数字,计算时直接将个位的数字本身相乘即可。

2、如果是两位数(大于两位数方法相同),可以将这个数拆分成两个个位数,然后将两个个位数各自相乘后,再将其相乘即可得出结果。例如12的平方:12*12=3*4*3*4=3*3*4*4=9*16=144。

3、如果数字为十的倍数,即可拆分成十乘以后的数字,然后将这个数字本身相乘,再乘以一百即可得出数据,例如:20的平方,可拆分为20*20=2*2*100=400。

(2)密码学的平方乘算法扩展阅读:

a的平方表示a×a,简写成a,也可写成a×a(a的一次方乘a的一次方等于a的2次方),例如4×4=16,8×8=64,平方符号为2。

边长的平方(即边长×边长)=正方形的面积。平方又叫二次方,平方的逆运算就是开平方,也叫做求平方根,平方根写作:±√。

一个数的平方具有非负性。即a²≥0.应用:若a²+b²=0,则有a=0且b=0。

⑶ RSA算法中11^7mod(15)怎么算

平方-乘算法,计算形如x^c(mod n)
c的二进制表示为c=c0*2^0+c1*2^1+..+ci*2^i+..+cL*2^L
其中c的二进制表示位数为L+1,
平方-乘算法 square-multiple(x,c,n)
z <- 1
for i <- L downto 0
do
z <- z^2 mod n
if ci = 1
then z <- (z*x)mod n
return (z)
平方-乘算法可以把计算x^c mod n 所需模乘次数降低为最多2L次。
计算11^7mod(15)
7 = 1*2^0 + 1*2^1 + 1*2^2

i bi z
2 1 1^2 * 11 mod 15 =11
1 1 11^2 * 11 mod 15 = 11
0 1 ... = 11
其中bi为c的二进制表示的的各二进制位上的值

⑷ 密码学里的加密算法:e=13,x=5,n=77.请问:c=x^e mod n=26mod77, 得

5的13次方(13个5相乘) 等于1220703125,1220703125 mod 77 相当于 1220703125除77 所得的余数就为26,所以c=26

⑸ 密码学基础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 得到的余数 ,即为符合要求的最小正整数,实际上, 都符合要求。

物不知数问题解法本质

求解通项公式

中国剩余定理相当于给出了以下的一元线性同余方程组的有解的判定条件,并用构造法给出了解的具体形式。

模数 两两互质 ,则对任意的整数: ,方程组 有解,且解可以由如下构造方法得到:

并设 是除 以外的其他 个模数的乘积。



中国剩余定理通项公式证明

⑹ 如何进行幂模运算

模幂乘运算采用平方乘算法,将模幂乘运算转化为模乘和模平方运算实现.
平方-乘算法:一般地,求S=ABmodN,其中A<N,B<N;将指数B表示为二进制,即
观察算法,由于指数B化为二进制后的长度不确定,多数情况下高位会存在很多个0.如果完全按照该算法实现,指数B从最高位起开始运算,在第一个1出现以前,虽进行了多次运算,但D的值一直为1;当B出现第一个1后才进入有效的模乘运算.在具体实现时,设计专门的电路从高到低扫描指数B的每一位,当在找到第一个1之前,不做任何运算,找到第一个1时,使D=A,以后根据每次扫描的6[i]值,调用模乘实现运算.
经过对多种公钥加解密算法的分析——如RSA算法,通常公钥的有效位较短,而私钥有效位较长.加密中的模幂乘运算,指数有效位很少,所以上面的改进可大大减少模乘次数,加快加密过程.以目前常用的私钥和模数1 024 bit,公钥128bit情况为例,采用上述改进可减少896次不必要的模乘.解密过程使用中国余数定理(CRT),可有效降低解密指数的长度,整个算法的执行效率得到进一步提高.
2.2 模乘及模加的实现方法
模乘采用改进的Blakley加法型算法,原理与平方-乘算法类似,核心是将模乘转化为模加实现.如通常S=(A×B)modN,A<N,B<N可以按如下方式考虑.
将B表示成二进制:
由上式可知,可以像平方一乘算法一样,将模乘转化为模加实现.
一般模加运算表示为S=(A+B)modN,观察以上模乘及模幂乘算法原理描述,可知在其调用的模加运算中,因为A<N且B<N,则(A+B)<2N,所以,
因此考虑在运算中同时计算(A+B)和(A+B-N)两个结果,运算完成后通过判断加法器与减法器的进位输出(CO)与借位输出(BO).决定哪个为本次模加的正确结果.同上,A,B,N均为l位的二进制数,若CO=1,则说明(A+B)为l+1位二进制数,必大于l位的N;若CO=0,则(A+B)和N同为l位,当BO=1时(A+B)<N,当BO=0时N≤(A+B).
从而可以在一次运算中完成加法和求模过程,使模加的运算速度提高1倍.

⑺ 现在密码学采用的算法主要有什么

现代密码学将算法分为具有不同功能的几种
常用的主要有三种:
1.对称密码算法
DES算法——二十世纪七十年代提出,曾经称霸对称加密领域30年
AES算法——二十一世纪初提出用以取代DES算法
IDEA算法——二十世纪九十年代初提出,也是一种流行算法
RC4算法——经典的流密码算法
2.公钥密码算法
D-H算法——用于密钥协商,是第一种使用的公钥算法,基于离散对数难解问题
RSA算法——最常用的公钥算法,功能强大
3.哈希函数(杂凑函数)
MD5——常用算法,用于产生80比特的输出
SHA-1——也是常用算法,用于产生128比特输出
---
这是最经典的若干种算法
说的不对之处请指正

------
个人意见 仅供参考

⑻ 平方乘算法是怎样的

m^2 * n^2 = (m*n)^2;

比如:
3^2 * 4^2
=(3*4)^2
=12^2

⑼ 想听大家对于一道密码设计的数学建模题

公钥密码又称为双钥密码和非对称密码,是1976年由Daffy和Hellman在其“密码学新方向”一文中提出的,见划时代的文献:
W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976, PP.644-654
单向陷门函数是满足下列条件的函数f:
(1)给定x,计算y=f(x)是容易的;
(2)给定y, 计算x使y=f(x)是困难的。
(所谓计算x=f-1(Y)困难是指计算上相当复杂,已无实际意义。)
(3)存在δ,已知δ 时,对给定的任何y,若相应的x存在,则计算x使y=f(x)是容易的。
注:1*. 仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门性,δ 称为陷门信息。
2*. 当用陷门函数f作为加密函数时,可将f公开,这相当于公开加密密钥。此时加密密钥便称为公开钥,记为Pk。 f函数的设计者将δ 保密,用作解密密钥,此时δ 称为秘密钥匙,记为Sk。由于加密函数时公开的,任何人都可以将信息x加密成y=f(x),然后送给函数的设计者(当然可以通过不安全信道传送);由于设计者拥有Sk,他自然可以解出x=f-1(y)。
3*.单向陷门函数的第(2)条性质表明窃听者由截获的密文y=f(x)推测x是不可行的。
Diffie和Hellman在其里程碑意义的文章中,虽然给出了密码的思想,但是没有给出真正意义上的公钥密码实例,也既没能找出一个真正带陷门的单向函数。然而,他们给出单向函数的实例,并且基于此提出Diffie-Hellman密钥交换算法。这个算法是基于有限域中计算离散对数的困难性问题之上的:设F为有限域,g∈ F是F的乘法群F*=F\{0}=<g>。并且对任意正整数x,计算gx是容易的;但是已知g和y求x使y= gx,是计算上几乎不可能的。这已问题称为有限域F上的离散对数问题。公钥密码学种使用最广泛的有限域为素域FP.
对Diffie-Hellman密钥交换协议描述:Alice和Bob协商好一个大素数p,和大的整数g,1<g<p,g最好是FP中的本原元,即FP*=<g>。p和g无须保密,可为网络上的所有用户共享。
当Alice和Bob要进行保密通信时,他们可以按如下步骤来做:
(1)Alice送取大的随机数x,并计算
X=gx(mod P)
(2)Bob选取大的随机数x,并计算X  = gx (mod P)
(3)Alice将X传送给Bob;Bob将X 传送给Alice。
(4)Alice计算K=(X )X(mod P);Bob计算K  =(X) X (mod P),易见,K=K  =g xx (mod P)。
由(4)知,Alice和Bob已获得了相同的秘密值K。双方以K作为加解密钥以传统对称密钥算法进行保密通信。
注:Diffie-Hellman密钥交换算法拥有美国和加拿大的专利。
3 RSA公钥算法
RSA公钥算法是由Rivest,Shamir和Adleman在1978年提出来的(见Communitions of the ACM. Vol.21.No.2. Feb. 1978, PP.120-126)该算法的数学基础是初等数论中的Euler(欧拉)定理,并建立在大整数因子的困难性之上。
将Z/(n)表示为 Zn,其中n=pq; p,q为素数且相异。若
Z*n{g∈ Zn|(g,n)=1},易见Z*n为  (n)阶的乘法群,且有 g  (n)1(mod n),而  (n)=(p-1)(q-1).
RSA密码体制描述如下:
首先,明文空间P=密文空间C=Zn.(见P175).
A.密钥的生成
选择p,q,p,q为互异素数,计算n=p*q,  (n)=(p-1)(q-1), 选择整数e使( (n),e)=1,1<e< (n)),计算d,使d=e-1(mod  (n))),公钥Pk={e,n};私钥Sk={d,p,q}。
注意,当0<M<n时,M (n) =1(mod n)自然有:
MK (n)+1M(mod n), 而ed  1 (mod  (n)),易见(Me)d  M(mod n)
B.加密 (用e,n) 明文:M<n 密文:C=Me(mod n).
C.解密 (用d,p,q)
密文:C 明文:M=Cd(mod n)
注:1*, 加密和解密时一对逆运算。
2*, 对于0<M<n时,若(M,n) ≠ 1,则M为p或q的整数倍,假设M=cp,由(cp,q)=1 有 M (q)  1(mod q) M  (q)  (p)  1(mod q)
有M (q) = 1+kq 对其两边同乘M=cp有
有M (q)+1=M+kcpq=M+kcn于是
有M (q)+1  M(mod n)
例子:若Bob选择了p=101和q=113,那么,n=11413,  (n)=100×112=11200;然而11200=26×52×7,一个正整数e能用作加密指数,当且仅当e不能被2,5,7所整除(事实上,Bob不会分解φ(n),而且用辗转相除法(欧式算法)来求得e,使(e, φ(n)=1)。假设Bob选择了e=3533,那么用辗转相除法将求得:
d=e -1  6597(mod 11200), 于是Bob的解密密钥d=6597.
Bob在一个目录中公开n=11413和e=3533, 现假设Alice想发送明文9726给Bob,她计算:
97263533(mod 11413)=5761
且在一个信道上发送密文5761。当Bob接收到密文5761时,他用他的秘密解密指数(私钥)d=6597进行解密:57616597(mod 11413)=9726
注:RSA的安全性是基于加密函数ek(x)=xe(mod n)是一个单向函数,所以对的人来说求逆计算不可行。而Bob能解密的陷门是分解n=pq,知 (n)=(p-1)(q-1)。从而用欧氏算法解出解密私钥d.
4 RSA密码体制的实现
实现的步骤如下:Bob为实现者
(1)Bob寻找出两个大素数p和q
(2)Bob计算出n=pq和 (n)=(p-1)(q-1).
(3)Bob选择一个随机数e(0<e<  (n)),满足(e,  (n))=1
(4)Bob使用辗转相除法计算d=e-1(mod  (n))
(5)Bob在目录中公开n和e作为她的公开钥。
密码分析者攻击RSA体制的关键点在于如何分解n。若分
解成功使n=pq,则可以算出φ(n)=(p-1)(q-1),然后由公
开的e,解出秘密的d。(猜想:攻破RSA与分解n是多项式
等价的。然而,这个猜想至今没有给出可信的证明!!!)
于是要求:若使RSA安全,p与q必为足够大的素数,使
分析者没有办法在多项式时间内将n分解出来。建议选择
p和q大约是100位的十进制素数。 模n的长度要求至少是
512比特。EDI攻击标准使用的RSA算法中规定n的长度为
512至1024比特位之间,但必须是128的倍数。国际数字
签名标准ISO/IEC 9796中规定n的长度位512比特位。
为了抵抗现有的整数分解算法,对RSA模n的素因子
p和q还有如下要求:
(1)|p-q|很大,通常 p和q的长度相同;
(2)p-1 和q-1分别含有大素因子p1和q1
(3)P1-1和q1-1分别含有大素因子p2和q2
(4)p+1和q+1分别含有大素因子p3和q3

为了提高加密速度,通常取e为特定的小整数,如EDI国际标准中规定 e=216+1,ISO/IEC9796中甚至允许取e=3。这时加密速度一般比解密速度快10倍以上。 下面研究加解密算术运算,这个运算主要是模n的求幂运算。着名的“平方-和-乘法”方法将计算xc(mod n)的模乘法的数目缩小到至多为2l,这里的l是指数c的二进制表示比特数。若设n以二进制形式表示有k比特,即k=[log2n]+1。 由l≤ k,这样xc(mod n)能在o(k3)时间内完成。(注意,不难看到,乘法能在o(k2)时间内完成。)

平方-和-乘法算法:
指数c以二进制形式表示为:

c=
Xc=xc0×(x2)c1×…×(x2t-1)ct-1
预计算: x2=xx
x4=x22=x2x2
.
.
.
x2t-1 =x2t-2*x2t-2
Xc计算:把那些ci=1对应的x2i全部乘在一起,便得xc。至
多用了t-1次乘法。请参考书上的177页,给出计算
xc(mod n)算法程序:
A=xc c=c0+c12+..+ct-12t-1= [ct-1,....,c1,c0]2
5 RSA签名方案

签名的基本概念
传统签名(手写签名)的特征:
(1)一个签名是被签文件的物理部分;
(2)验证物理部分进行比较而达到确认的目的。(易伪造)
(3)不容易忠实地“”!!!
定义: (数字签名方案)一个签名方案是有签署算法与验
证算法两部分构成。可由五元关系组(P,A,K,S,V)来刻化:
(1)P是由一切可能消息(messages)所构成的有限集合;
(2)A是一切可能的签名的有限集合;
(3)k为有限密钥空间,是一些可能密钥的有限集合;
(4)任意k ∈K,有签署算法Sigk ∈ S且有对应的验证算法Verk∈V,对每一个
Sigk:p A 和Verk:P×A {真,假} 满足条件:任意x∈ P,y∈ A.有签名方案的一个签名:Ver(x,y)= {
注:1*.任意k∈K, 函数Sigk和Verk都为多项式时间函数。
2*.Verk为公开的函数,而Sigk为秘密函数。
3*.如果坏人(如Oscar)要伪造Bob的对X的签名,在计算上是不可能的。也即,给定x,仅有Bob能计算出签名y使得Verk(x,y)=真。
4*.一个签名方案不能是无条件安全的,有足够的时间,Oscar总能伪造Bob的签名。
RSA签名:n=pq,P=A=Zn,定义密钥集合K={(n,e,p,q,d)}|n=pq,d*e1(mod (n))}
注意:n和e为公钥;p,q,d为保密的(私钥)。对x∈P, Bob要对x签名,取k∈K。Sigk(x) xd(mod n)y(mod n)
于是
Verk(x,y)=真 xye(mod n)
(注意:e,n公开;可公开验证签名(x,y)对错!!也即是否为Bob的签署)
注:1*.任何一个人都可对某一个签署y计算x=ek(y),来伪造Bob对随机消息x的签名。
2*.签名消息的加密传递问题:假设Alice想把签了名的消息加密送给Bob,她按下述方式进行:对明文x,Alice计算对x的签名,y=SigAlice(x),然后用Bob的公开加密函数eBob,算出
Z=eBob(x,y) ,Alice 将Z传给Bob,Bob收到Z后,第一步解密,
dBob(Z)=dBobeBob(x,y)=(x,y)
然后检验
VerAlice(x,y)= 真
问题:若Alice首先对消息x进行加密,然后再签名,结果
如何呢?Y=SigAlice(eBob(x))
Alice 将(z,y)传给Bob,Bob先将z解密,获取x;然后用
VerAlice检验关于x的加密签名y。这个方法的一个潜在问
题是,如果Oscar获得了这对(z,y),他能用自己的签名来
替代Alice的签名
y=SigOscar(eBob(x))
(注意:Oscar能签名密文eBob(x),甚至他不知明文x也能做。Oscar传送(z,y )给Bob,Bob可能推断明文x来自Oscar。所以,至今人么还是推荐先签名后加密。)
6.EIGamal方案

EIGamal公钥密码体制是基于离散对数问题的。设P
至少是150位的十进制素数,p-1有大素因子。Zp为有限域,
若α为Zp中的本原元,有Zp* =<α>。若取β∈Zp*=Zp\{0},
如何算得一个唯一得整数a,(要求,0≤a≤ p-2),满足
αa=β(mod p)
将a记为a=logαβ
一般来说,求解a在计算上是难处理的。
Zp*中的Egamal公钥体制的描述:设明文空间为P=Zp*,密文空
间为C=Zp*×Zp*,定义密钥空间K={(p, α,a, β )|β=αa(mod p)}
公开钥为:p, α ,β
秘密钥(私钥):a
Alice 取一个秘密随机数k∈ Zp-1,对明文x加密
ek(x,k)=(y1,y2)
其中, y1=αk(mod p),y2=xβk(mod p)
Bob解密,
dk(y1,y2)=y2(y1α)-1(mod p)
注:1*.容易验证y2(y1α)-1=x(αa)k(αka)-1=x !!
2*.利用EIGamal加密算法可给出基于此的签名方案:
Alice 要对明文x进行签名,她首先取一个秘密随机数k作
为签名
Sigk(x,k)=( ,  )
其中 =αk(mod p), =(x-a )k-1(mod p-1)
对x, ∈Zp*和 ∈ Zp-1,定义Verk(x, ,)=真等价于
βα=αx(mod p)
要说明的是,如果正确地构造了这个签名,那么验证将
是成功的,因为
βα= αa αk (mod p)= αa+k (mod p)
由上面知道, =(x- a)k-1(mod p-1)可以推出
k=x- a(mod p-1)有a+kx(mod p)
所以 β  = αx (mod p)
该签名方案已经被美国NIST(国家标准技术研究所)确定为签名标准(1985)。

有关RSA方面的内容,请访问网址:
www.RSAsecurity.com

⑽ 密码学 RSA算法

明文,密文,密钥

明文,密文,公钥,私钥

(n,e1)(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。

1、找到两个质数p,q
2、n=p q 欧拉函数:φ(N) =(p-1) (q-1)
3、选择一个小于φ(N)随机整数数e :1<e<φ(N)的整数 e和φ(N)互质
4、计算出e与φ(N)的模反元素d:
所谓"模反元素"就是指有一个整数d,可以使得ed被φ(n)除的余数为1。
ed ≡ 1 (mod φ(n))
这个式子等价于
ed - 1 = kφ(n)
于是,找到模反元素d,实质上就是对下面这个二元一次方程求解。
ex + φ(n)y = 1
这个方程可以用 "扩展欧几里得算法" 求解,
5、将n和e封装成公钥,n和d封装成私钥。
私钥d:e*d/F(n)余数为1
6、加密: 加密要用公钥 (n,e) me ≡ c (mod n) 即m^e/n余数为c
7、解密:解密要用私钥(n,d) cd ≡ m (mod n) 即 c^d/n的余数为m

1、取p=103,q=349
2、计算n=p q=103 349=35947
3、计算欧拉函数φ(N) =(p-1) (q-1)=35496
4、取随机整数 e小于φ(N)且互质e=773
5、 e 关于 r的模反元素 e d(mod φ(n))=1 d=45
6、公钥就是 (35496 ,773),私钥就是(35496 , 45)

传播:n,e,c
解密:n,d,c
那么,有无可能在已知n和e的情况下,推导出d?
(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。
(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。
(3)n=pq。只有将n因数分解,才能算出p和q。
结论:如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。
可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。

阅读全文

与密码学的平方乘算法相关的资料

热点内容
阿里云服务器没有实例 浏览:601
绵阳有没有什么app 浏览:844
怎么用游侠映射服务器 浏览:917
为什么无意下载的app无法删除 浏览:304
word2007打开pdf 浏览:117
php正则class 浏览:736
怎么在文件夹查找一堆文件 浏览:543
核酸报告用什么app 浏览:791
u8怎么ping通服务器地址 浏览:994
安卓什么手机支持背部轻敲调出健康码 浏览:870
程序员抽奖排行 浏览:744
扭蛋人生安卓如何下载 浏览:724
什么app文档资源多好 浏览:924
黑马程序员APP 浏览:148
掌阅小说是哪个app 浏览:47
如何把u盘的软件安装到安卓机 浏览:1000
php跑在什么服务器 浏览:126
编译器怎么跳转到下一行 浏览:454
嵌入式py编译器 浏览:328
rplayer下载安卓哪个文件夹 浏览:302