RSA算法与维吉尼亚密码

RSA算法与维吉尼亚密码,第1张

RSA算法 RSA算法描述

第1步:用两个很大的互异的质数p和q(p和q必须保密),计算它们的乘积n=pq;n是模数。
第2步:选择一个比n小的数e,它与(p-1)(q-1)互为质数,即除了1以外,e和(p-1)(q-1)没有其他的公子。
第3步:找到另一个数d,使(ed-1)能被(p-1)(q-1)整除。即ed=1 mod (p-1)(q-1)
第4步:取公开密钥为(e,n)这一对数;私有密钥为(d,n)这一对数。
第5步:加密过程为c=m^e(mod n)(m为明文,c为密文)

第6步:解密过程为m=c^d(mod n)

RSA算法实例

例:采用RSA算法,其中e=7,p=11,q=13,求出公钥和私钥,并求出明文85进行加密后的密文。

解:第一步:首先求出模数n=p*q=11*13=143
第二步:求出(p-1)*(q-1)=(11-1)*(13-1)120,e已知为7,就不用求了
第三步:找出d满足e*d=1 mod (p-1)*(q-1),既7d=1mod120(等同于7d-1=120k(k=1,2,3……))

这里求得d=103
第四步:取公钥:(e,n)即(7,143)

              私钥(d,n)即(103,143)

第五步:计算出密文c=m^e mod n=85^7mod143=123

(85^7mod143是85^7除143求余数)

例:采用RSA算法,其中p=5,q=7,d=29。求公开密钥和私有密钥

解:第一步:首先求出模数n=p*q=5*7=35
第二步:求出(p-1)*(q-1)=(5-1)(7-1)=24
第三步:求e,由e*d=1 mod (p-1)*(q-1),得29d=1mod24,(29e-1=24K(k为正整数))

这里求得e=5
第四步:取公钥:(e,n)即(5,35)

              私钥(d,n)即(29,35)

维吉尼亚密码 算法描述

维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行及26列的字母表。维吉尼亚密码加密方法示例如下:对密钥字符,规定密钥子母a、 b、c、 d..... .y、z对应的数字n为0、1、2、3......24、25。
每个明文字符首先找到对应的密钥字符,然后根据英文字母表按照密钥字符对应的数字n向后顺序推后n个字母即可得到明文字符对应的密文字符。

字符abcdefghijklmnopqrstuvwxyz
n012345678910111213141516171818202122232425

例:使用维吉尼亚密码进行加密,明文为welcomeeverybody,给出密钥字为bestwish,推算出该明文对应的密文。

组数12345678910111213141516
明文welcomeeverybody
密钥bestwishbestwish
密文xidvkuwlwijrxwvf
对明文中第一个字母w,对应的密钥字符为b,b的对应需要向后推1个字母,所以是w->x;-因此其对应的密文字符为x,接下来的字符都用这种方式计算即得要求的密文
 

对于这个还有一种傻瓜办法,就是分别把明文和密钥对应的密钥字符列出来相加,再找到对应的字符就为要求的密文就拿上面的例子来说

明文welcomeevery……
对应数字2241121412442141724……
密钥bestwishbest……
对应数字141819228187141819……
相加2382921362022112283543……
对应字符xidvkuwlwijr……

最后求得的对应字符即要求的密文

注意:当两数相加大于25时用相加数字减去26后再找对应

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/926594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存