今天在查找资料的时候,发现有个帖子是将密钥体系的,挺基础易懂的。把他摘抄下来。怎么说以前也是高加密机的。忘了不少了啦啊。
先是对称和非对称加密算法的概念。
1对称加密算法
在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。最初的原理包括字母的换位、替换。
2不对称加密算法
不对称加密算法有RSA算法和美国国家标准局提出的DSA。
然后是公钥和私钥的密钥体系
公开密钥密码体制的基本思想:
加密和解密密钥不同。在算法公开的情况下,在计算上不可能由加密密钥求解出解密密钥,因此加密密钥可以公开,解密密钥由接收方私有保存。即使是加密的一方,也不可能解密。
公开密钥密码体制的简单使用流程:
A、B两人通信,A欲发消息给B,则利用B的公开密钥加密数据,B获得加密数据后用自己的私有密钥解密,反之类似。
防止否认的作法是:A、B两人通信,A欲发消息给B,则利用B的公开密钥加密数据,同时,在数据中附带信息,该信息用A自己的私有密钥加密,B获得后用A的公开密钥解密(只能用A的公开密钥才能解)出正确的附带信息,则证明消息来自A。这即“电子签名”的简单原理,当然,实际要比这复杂得多。
RSA的简单示例:
RSA算法的数学基础是大整数分解的困难性。用到数论中的欧拉函数和欧拉定理。
最后是密钥的过程
一、密钥生成
随机选取两个大素数(例如200为十进制数)p和q;
令n=pq,则φ(n)=(p-1)(q-1)
选择一个与φ(n)互素的数e,即gcd{φ(n),e}=1
由e求出d,满足de º 1modφ(n)
e和n作为加密密钥(公开密钥) public key
d和n作为解密密钥(私有密钥) private key
二、对消息M进行分组
将明文M按bit串分组,分组长度L要保证 2L<=n,即L<=log2n。若用m表示分组后的消息的十进制表示,则0≤m<n 。将明文分组为m1 m2 … mr
三、加密
执行运算ci=E(mi)=miemod n (i是下标,e是指数)
四、解密
执行运算mi=D(ci)=cidmod n (i是下标,d是指数),合并分组
公开密钥密码体制的优点:
1、密钥分发简单。避免加密密钥的保密问题。
2、秘密保存的密钥量减少。网络中的通信方只要保存好自己的私有密钥