自己写动手写非对称加密算法

第一部分:

1:7 除以 3 = 2 余 1,

2:令a=7,p=3,mod为取余符号,显然 a mod p = 1,

3:设a为任意整数,则a mod p 可能取到的值 为1,2,3,4...p-1.

4:如果整数b和p互质,任意取a1,a2为[1,p-1]中2个不同的数,

那么(a1*b)mod p -(a2*b)mod p = (a1-a2)* b mod p

因为a1-a2

所以a*b mod p 可能取到的值也为1,2,3,4...p-1,且任意不同a属于[1,p-1]乘以b

mod p的值必不同。

5.这样我们可以用a*b mod p 做一次加密,a为明文,b为加密密钥,mod p为加解密的算法。

第二部分:

1.因为a小于p,所以a = a mod p = a mod p + 0 = (a + n*a*p) mod p = a(1 + n*p) mod p

2.令 k = 1 + n*p = b * d,那么a = a*(b*d)mod p = ((a*b)mod p * d) mod p,显然

b为加密密钥,d就解密密钥。

第三部分:

1.对1234按位加密,算法为mod 5,加密密钥为2,解密密钥为3 ( 2*3 = 5+1)。

2.加密:1*2mod5=2,2*2mod5=4,3*2mod5=1,4*2mod5=3,加密密文为2413.

3.解密:2*3mod5=1,4*3mod5=2,1*3mod5=3,3*3mod5=4,解密明文为1234.

 

 

 

2.设a mod p = a * (?) mod p,

 

 

 

 

 

 

3

你可能感兴趣的:(设计和思想)