高级表白密码(希尔密码解密例题)

2023-03-16 12:47:47 密语知识 思思

表白也是考智商的活啊!下面这些高级表白密码赶紧学起来,要不真的都看不懂暗恋你的人到底是不是对你表白了。

一、高级表白密码

1.字母表白数字密码:9121522521

表白解密:从1开始到26,分别表示从A到Z,即:A(1)B(2) C(3) D(4) E(5) F(6) G(7) H(8) I(9) J(10) K(11) L(12) M(13) N(14) O(15) P(16) Q(17) R(18) S(19) T(20) U(21) V(22) W(23) X(24) Y(25) Z(26)。

9=I

12=L

15=O

22=V

5=E

21=U

结果是 I LOVE U。所以,当你发送这样一串数字给你喜欢的人的时候,跟他(她)说这是一串特别特别有意义的数字,让他(她)解开。如果他(她)能解开,一定会感受到你的心意。解不开,也会增加他(她)对你的神秘感。挑起他(她)对你的兴趣。

2.大小写变化:ilOvEU

表白解密:这个很简单,换成我们常见的大小写即可。

3.空格重组:il ov eu

表白解密:这个表白密码也容易识别,两个空格移位即可。

4.单词倒序:i evol u

5.整句倒序:u evol i

6.凯撒移位:j mpwf v

7.反字母表(埃特巴什码/Atbash):r olev f

表白解密:把26个字母对折(词穷,暂且这样描述。)就会得到:

A B C D E F G H I J K L M

Z Y X W V U T S R Q P O N所以,R对应的就是I,E对应的就是L,O对应的就是L,L对应的就是O,E对应的就是V,V对应的就是E,F对应的就是U

答案:I LOVE U 。或者我们可以用这个:R OLEV BLF,对应的也就是I LOVE YOU 了。

8.栅栏密码:ioelvu

表白解密:所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一.两句话),我们的ioelvu 就是把love拆开,然后先逆向排列两个,再逆向插空排列。

9.维吉尼亚密码(密钥i love u):q wcqi o

10.维吉尼亚密码(密钥12345…):j nrzj a

11.仿射密码(Affine *3+5):d mvqr n

12.希尔密码(Hill 密钥矩阵{3,2;5,7}):ungjae

13.纳粹Enigma(密钥ABC):YAPOJ R

14.摩斯电码:··   ·—·· ——— ···— ·   ··—

15.棋盘密码(波利比奥斯密码/Polybius):gd   ag df ff xf   gg

16.棋盘密码(数字):14   14 23 33 53   44

17.ADFGX密码(密钥love):gfg gdx dff afg

18.键盘密码1:71   31 43 91 92   81

19.键盘密码2:*1   (2 (1 $3 #1   1

20.键盘移位:o ;pbr i

21.数字表白解密

1314——?一生一世740——气死你596——我走了456——是我啦7998——去走走吧53770——我想亲亲你53719——我深情依旧25184——爱我一辈子520——我爱你

0594184——你我几是一辈子220225——爱爱你爱爱我584520——我发誓我爱你246437——爱是如此神奇1314925——?一生一世就爱我594230——我就是爱想你360——想念你2010000——爱你一万年1372——?一厢情愿259695——爱我就了解我078——你去吧74839——其实不想走20999——爱你久久久5871——我不介意82475——被爱就是幸福

775885——亲亲我抱抱我08376——你别生气了3307778——想和你去吹吹风095——你找我8006——不理你了25873——爱我到今生20863——爱你到来生3399——长长久久1573——?一往情深234——爱相随20863——爱你到来生3456——相思无用

二、暗恋又不敢表白的句子

1.每天都会上QQ, 只是想看看你的灰色头像, 是否会闪动, 看你的资料是否有更新

2.你只是路过我的世界,从未参与过我的生活。

3.一直默默的在你身后守侯着你,只为看见你幸福的笑脸。

4.你有没有一个喜欢却永远都不会去追的人

5.观看伱旳幸福,听俄旳心在流血耶。

6.你心里一直会有他,我心里却一直痛。

7.带着温暖的疏离感,当仁不让的做着路人或过路人。

8.时光不停的流逝,我明明知道我们不能在一起,我还在那个角落里傻傻的等着你。

9.站在世界的极端,卑微的望着被幸福围绕的你。

10.每次发说说,都带有某种心情想要传达给某个人,可惜某个人不懂。

11. 落花已作风前舞,流水依旧只东去。无情不似多情苦,一寸还成千万缕。天涯海角有穷时,只有相思无尽处。

12. 我本将心向明月,奈何明月照沟渠,漠漠轻寒上小楼,晓音无赖似穷愁.淡烟流水画屏幽. 自在飞花皆似梦,无边私语细如愁.宝帘闲挂小银钩.

13. 我喜欢你,你却不知道,也许不是不知道,而是在回避什么,我会等待,等待你能彻底把她忘掉,等待你能接收我,若此期间你爱上了别人,我也会默默祝福你,因为至少我释怀了,阐明你走出来了,我会笑着祝福你,而后把对你的爱永远埋在心底最深处,虽然也许我再也不会爱上别人了,但我还是会认为幸福的,因为你幸福了。

14.爱上你,是莪情不自禁。

15.每次你看我的时候我都假装在看别处,而每次你在看别处的时候,我都在看着你。

16.最温柔的月光,也敌不过,你转瞬的回眸。

17. 不求你懂得,我万水千山的心情。

18. 看见了,世界美好,霞光万丈;看不见,地暗天昏,人生失迷。

19. 缺憾是情感最有余味的一种终局。

20. 只有从没产生过的,才干在我领有修正权的记忆里,演化成无穷完善的版本。本来,我始终是一个如此自私的人。

三、暗恋的句子

1.感叹知己难寻,感叹知音难觅,感叹不可遏止的孤独与苦闷,彷徨与失意;直到遇到了你,感叹变成了感谢!感谢命运的关照,感谢上帝的垂怜,感谢你的出现。

2.付出你的真诚,不需要你的允诺;付出你的真情,不需要你的许诺;实心实意来爱我,山盟海誓算什么,只需行动不需要你说,爱我你就嫁给我,嫁我吧。

3.好笑吗?身边没你,好怪,陪我一生一世好吗?

4.我每时每刻都在思恋的“苦刑”下熬煎,不知你何日方能赐恩,减轻我的这种苦刑!

5.不知为什么,只要有你在我身边,我的心便不再惶惶不安。

6. 这么多年来,我一直在寻找理想的爱情,但没有一个人能像你那样在最初的时刻打动了我,而且越来越深沉的打动。

7. 我终于发现,这世界上有丰厚的爱,我不能辜负。于是我想对你说,我爱你,请你倾听……

8. 我深深地恳求你;不要把我逐出你的爱门之外,我一分一秒也不能缺少你的爱。只有赢得你的爱,我的生命才有光彩。

9.你不曾给我一次回眸,我却始终在对你微笑。

10.痴情的一方注定伤的最深,自古痴情终成空。

11.我终生的等候,换不来你刹那的凝眸。

12.我的选择是爱你或更爱你,你的选择是爱我或不爱我。

13.宁愿笑着流泪 也不哭着说后悔。

14.我的翅膀 被一滴泪烫伤 飞不到天堂。

15. 总有一天,你会看到我的心里,那里 全是你给的悲伤。

16.有一种喜欢叫沉默,而这种沉默叫暗恋,我选择沉默,是不想面对你的谎言,可以假装无所谓,才看不到心被拧碎。

17.你是我的定格,我是你的过客。

18.天天想你,痛了自己,时时盼你,骗了自己。

19.我想你不会笨到不知道我想对你说的是这句话的前三个字吧。

20.就算全世界与我为敌,我也会继续爱你。

希尔密码原理

希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26。

随着科技的日新月异和人们对信用卡、计算机的依赖性的加强,密码学显得愈来愈重要。密码学是一门关于加密和解密、密文和明文的学科。若将原本的符号代换成另一种符号,即可称之为广义的密码。狭义的密码主要是为了保密,是一种防止窃文者得知内容而设的另一种符号文字,也是一般人所熟知的密码。

使用信用卡、网络账号及密码、电子信箱、电子签名等都需要密码。为了方便记忆,许多人用生日、电话号码、门牌号码记做密码,但是这样安全性较差。

为了使密码更加复杂,更难解密,产生了许多不同形式的密码。密码的函数特性是明文对密码为一对一或一对多的关系,即明文是密码的函数。传统密码中有一种叫移位法,移位法基本型态是加法加密系统C=P+s(mod m)。一般来说,我们以1表示A,2表示B,……,25表示Y,26表示Z,以此类推。由于s=0时相当于未加密,而0≤s≤m-1(s≥m都可用0≤s≤m-1取代),因此,整个系统只有m-1种变化。换言之,只要试过m-1次,机密的信息就会泄漏出去。

由此看来,日常生活中的密码和传统的密码的可靠性较差,我们有必要寻求一种容易将字母的自然频度隐蔽或均匀化,从而有利于统计分析的安全可靠的加密方法。希尔密码能基本满足这一要求。

不难看出,希尔密码算法中有两个非常重要的条件。第一个条件是字符(信息)与数字对应表,当加密矩阵的阶数n(本文实例中的加密矩阵的阶数n=3)越大,破译的难度就会增大,此时计算量也大,我们可以借助有关数学软件如Mathematica提高运算效率。第二个条件是加密矩阵,如何定义、求解这个矩阵对于密码的加密和破译至关重要。

从破译密码的角度来看,传统的密码有一个致命弱点,就是破译者可从统计出来的字符频率中找到规律,进而找出破译的突破口,尤其是在计算机技术高度发达的今天,破译的速度更快。希尔密码算法则完全克服了这一缺陷,它通过采用线性代数中的矩阵乘法运算和逆运算,能够较好地抵抗频率分析,很难被攻破。

希尔密码体系为破译者至少设置了三道关口,加大了破译难度。破译希尔密码的关键是猜测文字被转换成几维向量(列矩阵的行数)、所对应的字母表是怎样排列的,更为重要的是要设法获取加密矩阵A。要破解密码,向量的维数、字母的排列表和加密矩阵三者缺一不可。古今中外的谍报战中,敌对双方总是千方百计地获取破解对方密码的钥匙,但要想获取希尔密码的三把钥匙谈何容易。

世界上没有攻不破的密码,希尔密码也不例外。希尔密码算法的缺点在于线性变换的安全性很脆弱,易被攻击击破,黑客正是利用各种密码的弱点来向用户频频发起攻击的。尽管如此,希尔密码仍不失为一种简便高效的密码。

密码学的做2个题目!

问题2的答案

CAESAR体制;双字的Playfair体制;维吉尼亚体制;Hill体制

具体:

1、CAESAR体制 CAESAR 体制是一种单表加性密码体制,其明文字母表、密文字母表和密钥字母表相同,比如英文字母表。加密步可由如下简单的式子表示:y=x+k,其中x∈X, y∈Y,k∈K。最简单的一种就是第一个明文字母由其右边的第三个字母代替,由D代替,B由E代替,…,Y,由B代替,Z由C代替。广义的CAESAR体制引入两个密钥参数,加密步变为y=k1x+k2,其中x∈X,y∈Y,k1,k2∈K。

2、双字的Playfair体制 1854 年,查尔斯.惠斯通(Charles Wheatstone)发明了一种特殊的双叶双码代替密码,他的朋友莱昂.普莱弗尔(Lyon Playfair)将其推荐给政府和军界的高层人士。这种体制的首次使用是在克里米亚战争期间,正式报道的使用是在Boer战争中,其名称也就以 Playfair命名。军队很看重它的一点就是此方法既不需要表也不需要器械,易作为战地密码。英国军队差不多用了一个世纪,而且保证它一直是保密的。然而在一次世界大战中的1915年,德国人将其破译了。

PLAYFAIR加密步按如下方式进行:由一个口令字开始,将一个Z25上的置换表(省去了Z26中的Z)排成5×5方阵。

P A L M E

R S T O N

B C D F G

H I K Q U

V W X Y Z

T O M R S

D F G B C

K Q U H I

X Y Z V W

L M E P A

加密步没有定义双字母是同一字母的情况,还有最后一个字母不成对的情况。上述两个例子的结果是相同的。如果一个双字母的两个字母在同一行(或一列),则它们就用其右边(相应地,底下)的字母所代替,比如:am→LE ,dl→KT。

另一种情况是,两个字母不在同一行或同一列,则第一个字母由同一行中且在第二个字母的那一列的字母代替;第二个字母则由同一行中,且是第一个字母所在那一列的字母所代替,比如:ag→EC ,ho→QR。

3、维吉尼亚体制

维吉尼亚体制是最古老而且最著名的多表密码体制之一,它以法国密码学家Blaise de Vigenere(1523--1596)命名。与CAESAR密码体制相似,其密钥是逐步变化的。一般是用维吉尼亚方阵来进行加密和解密的。每列都可以看成是一个CAESAR体制,其中密钥是0、1、2...25。加密时,将在方阵中查找明文字母所在的行及CAESAR体制密钥所在的列,来确定密文字符。通常CAESAR体制的密钥用密钥字来表示。比如,用KEYSTREAM来加密TWOPERSONS,首先在方阵中查找第T行第K列的字母,则得到T 对应的密文字母D,以此类推。解密时,则查找D在K列的行位置。通常密钥字要重复使用,特别是对较长的明文。

加密方阵作为多表体制的基础,它具有多样性,即可选择其它容易记忆的方阵。这里值得一提的就是Beaufort方阵,它的行是维吉尼亚方阵行的逆序。

4、Hill体制 在Hill 密码体制中,明文空间和密文空间是相同的,比如英文字母集。首先对字母集中的字母进行编号,比如A为0号,B为1号,Z为25号,后面所有的运算都要模 26。然后选择一个可逆的d维方阵M,其元素是介于0和25之间的整数。加密过程为MP=C,当然这里的P和C都是d维列向量。更确切地说,每个d元明文字符定义了列向量P,分量是d元明文字符的编号。计算得到的列向量C再被译为d元密文字符。

尽管希尔密码体制看起来几乎没有实用价值,但它对密码学的发展却产生了深刻的影响。希尔发明的重要性在于它无可辩驳地表明:数学方法在密码学中的地位是不容置疑的。随后在30年代,大批数学家投身于密码学研究。

尽管古典密码体制受到当时历史条件的限制,没有涉及到非常高深或者复杂的理论,但在其慢长的发展演化过程中,已经充分表现出了现代密码学的两大基本思想-代替和换位,而且还将数学的方法引入到密码分析和研究中。这为后来密码学成为系统的学科以及相关学科的发展奠定了坚实的基础,如计算机科学、复杂性理论等等。

推理类的解密方法

是密码吧

。RSA算法。四方密码。替换加密法。换位加密法。回转轮加密法。换位加密法。多码加密法。夹带法 。Kasiski法。三分密码。仿射密码。波雷费密码 。RC5

。维热纳尔方阵。希尔密码 等等一大堆.

反正不少 去下面的参考资料连接看看

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

公钥密码又称为双钥密码和非对称密码,是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,1gp,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,1e (n)),计算d,使d=e-1(mod  (n))),公钥Pk={e,n};私钥Sk={d,p,q}。

注意,当0Mn时,M (n) =1(mod n)自然有:

MK (n)+1M(mod n), 而ed  1 (mod  (n)),易见(Me)d  M(mod n)

B.加密 (用e,n)明文:Mn 密文:C=Me(mod n).

C.解密 (用d,p,q)

密文:C 明文:M=Cd(mod n)

注:1*, 加密和解密时一对逆运算。

2*, 对于0Mn时,若(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(0e  (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)不容易忠实地“copy”!!!

定义: (数字签名方案)一个签名方案是有签署算法与验

证算法两部分构成。可由五元关系组(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方面的内容,请访问网址: