话本小说网 > 轻小说 > 密码课堂
本书标签: 轻小说  密码 

无题

密码课堂

四方密码

四方密码用4个5×5的矩阵来加密。每个矩阵都有25个字母(通常会取消Q或将I,J视作同一样,或改进为6×6的矩阵,加入10个数字)。

首先选择两个英文字作密匙,例如example和keyword。对于每一个密匙,将重复出现的字母去除,即example要转成exampl,然后将每个字母顺序放入矩阵,再将余下的字母顺序放入矩阵,便得出加密矩阵。

将这两个加密矩阵放在右上角和左下角,余下的两个角放a到z顺序的矩阵:

a b c d e E X A M P

f g h i j L B C D F

k l m n o G H I J K

p r s t u N O R S T

v w x y z U V W Y Z

K E Y WO a b c d e

R D A BC f g h i j

F G H I J k l m n o

L M N P S p r s t u

T U V X Z v w x y z

加密的步骤:

两个字母一组地分开讯息:(例如hello world变成he ll ow or ld)

找出第一个字母在左上角矩阵的位置

a b c d e E X A M P

f g h i j L B C D F

k l m n o G H I J K

p r s t u N O R S T

v w x y z U V W Y Z

K E Y W O a b c d e

R D A B C f g h i j

F G H I J k l m n o

L M N P S p r s t u

T U V X Z v w x y z

同样道理,找第二个字母在右下角矩阵的位置:

a b c d e E X A M P

f g h i j L B C D F

k l m n o G H I J K

p r s t u N O R S T

v w x y z U V W Y Z

K E Y W O a b c d e

R D A B C f g h i j

F G H I J k l m n o

L M N P S p r s t u

T U V X Z v w x y z

找右上角矩阵中,和第一个字母同行,第二个字母同列的字母:

a b c d e E X A M P

f g h i j L

二方密码

二方密码(en:Two-square_cipher)比四方密码用更少的矩阵。

得出加密矩阵的方法和四方密码一样。

例如用「example」和「keyword」作密匙,加密lp。首先找出第一个字母(L)在上方矩阵的位置,再找出第二个字母(P)在下方矩阵的位置:

E X A M P

L B C D F

G H I J K

N O R S T

U V W Y Z

K E Y W O

R D A B C

F G H I J

L M N P S

T U V X Z

在上方矩阵找第一个字母同行,第二个字母同列的字母;在下方矩阵找第一个字母同列,第二个字母同行的字母,那两个字母就是加密的结果:

E X A M P

L B C D F

G H I J K

N O R S T

U V W Y Z

K E Y W O

R D A B C

F G H I J

L M N P S

T U V X Z

help me的加密结果:

he lp me

HE DL XW

这种加密法的弱点是若两个字同列,便采用原来的字母,例如he便加密作HE。约有二成的内容都因此而暴露。

公开密钥算法总是要基于一个数学上的难题。比如RSA 依据的是:给定两个素数p和q 很容易相乘得到n,而对n进行因式分解却相对困难。那椭圆曲线上有什么难题呢?

考虑如下等式 :

K=kG [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数]

不难发现,给定k和G,根据乘法法则,计算K很容易;但给定K和G,求k就相对困难了。

这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),k(k<n,n为基点G的阶)称为私有密钥(privte key),K称为公开密钥(public key)。

例如我们描述一个利用椭圆曲线进行加密通信的过程:

1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。

2、用户A选择一个私有密钥k,并生成公开密钥K=kG。

3、用户A将Ep(a,b)和点K,G传给用户B。

4、用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M(编码方法很多,这里不作讨论),并产生一个随机整数r(r<n)。

5、用户B计算点C1=M+rK,C2=rG。

6、用户B将C1,C2传给用户A。

7、用户A接到信息后,计算C1-kC2,结果就是点M。因为

C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M

再对点M进行解码就可以得到明文。

ECC的功能比RSA强。而令人感兴趣的是点和点的过程,这也是其功能之来源

ECC加密法

ECC算法也是一个能同时用于加密和数字签名的算法,也易于理解和操作。同RSA算法是一样是非对称密码算法使用其中一个加密,用另一个才能解密。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。

RSA的算法涉及三个参数:n,e1,e2。

其中,n是两个大质数p和q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。

e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质(互质:两个正整数只有公约数1时,他们的关系叫互质);再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。

(n,e1),(n,e2)就是密钥对。

RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n

e1和e2可以互换使用,即:A=B^e2 mod n;B=A^e1 mod n

多码加密法:一种加密法,其替换形式是:可以用多个字母来替换明文中的一个字母。

回转轮加密法:一种多码加密法,它是用多个回转轮,每个回转轮实现单码加密。这些回转轮可以组合在一起,在每个字母加密后产生一种新的替换模式。

换位加密法:重新排列明文中的字母位置的加密法。

替换加密法:用一个字符替换另一个字符的加密方法。

上一章 无题 密码课堂最新章节