对称加密(Symmetric Cryptography)
基本概念
又叫做共享密钥加密、私钥加密(由于密钥有公钥私钥之分,避免混淆,我们一般叫对称加密,而不叫私钥加密)
对称加密算法在加密和解密时使用相同的密钥
Alice和Bob之间要通信, Alice和Bob之间要共享一个私钥(只有Alice和Bob拥有)
具体过程
假设他们之间共享的私钥(private key)为K,明文为M,密文为C
Enc()为加密算法,Dec()为解密算法,Dec()为Enc()的逆运算
Alice给Bob发信息,使用K加密明文M
C=Enc(M,K)
C
=
E
n
c
(
M
,
K
)
Bob收到Alice发来的密文C,使用相同的K解密
M=Dec(C,K)
M
=
D
e
c
(
C
,
K
)
算法
常见的对称加密算法由RC4(流密码),DEC,AEC(块密码)
RC4的实现http://blog.csdn.net/h0_0p/article/details/78308507
非对称加密(Asymmetric Encryption)
基本概念
又叫做公开密钥加密,公钥加密
非对称加密算法加密和解密时使用不同的密钥。加密密钥公开,称为公钥。解密密钥保密,称为私钥。
具体过程
假设Alice和Bob通信
Alice使用KenGen() 产生一对密钥,公钥为pubKey,私钥为priKey,Alice将公钥公开,私钥保密。
当Bob想要发消息给Alice时,使用公钥加密
C=Enc(M,pubKey)
C
=
E
n
c
(
M
,
p
u
b
K
e
y
)
Bob收到密文,使用私钥解密
M=Dec(C,priKey)
M
=
D
e
c
(
C
,
p
r
i
K
e
y
)
算法
用的比较多的是RSA
具体java实现http://blog.csdn.net/h0_0p/article/details/78439832