密码学基础1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息安全理论与技术第四讲密码学基础(三)
⏹讨论议题
• 密钥分配
• 公钥密码算法
– Diffie-Hellman密钥交换算法
–背包算法
– RSA算法
– EIGamal算法
–椭圆曲线密码算法ECC
⏹密钥分配(Key Distribution)
建立密钥分本协议必须考虑两个因素:
1)传输量和存储量就尽可能的小;
2)每一对用户U和V都能独立计算一个秘密密钥。
对于通信方A和B来说密钥分配方式由以下几种方式:
1)A选择密钥并手工传递给B;
2)第三方C选择密钥分别手工传递给A,B;
3)用A、B原有共享密钥传送新密钥(采用旧密作用于+新密钥方式);
4)与A、B分别有共享密钥的第三方C的加密连接,C就可以用加密连接传送新密钥给A和/或B。
• N个用户集需要N(N-1)/2个共享密钥。
简单的密钥分配:
1)A产生公/私钥对{ PU a,PR a}并将PU a和其标识ID a的消息发送给B;
2)B产生秘密钥K S,并用A的公钥对K S,加密后发送给A;
3)A计算D(PU a E(PU a,K S)得出秘密钥K S。因为只有A能解密该消息,只有A和B知道K S;
4)A丢掉PU a,PR a,B丢掉PU a。
A和B 可以用传统的密码和会话密钥K S安全通信。
●Key Distribution Center密钥分发中心
●问题的提出
1)密钥管理量的困难
传统密钥管理:两两分别用一对密钥时,则n个用户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空间急剧增大。如:
n=100 时, C(100,2)=4,995
n=5000时, C(5000,2)=12,497,500
(2)数字签名的问题
传统加密算法无法实现抗抵赖的需求。
密钥分发
1)每个用户与KDC有共享主密钥(Master Key);
2)N个用户,KDC只需分发N个Master Key;
3)两个用户间通信用会话密钥(Session Key);
(会话密钥:端系统之间的通信使用一个临时的密钥进行加密,这个密钥叫会话密钥)
4)用户必须信任KDC;
5)KDC能解密用户间通信的内容
⏹公开密钥密码起源
1)公钥密码又称为双钥密码和非对称密码,是1976年由Diffie和Hellman在其“密码学新方向”一文中提出的,见划时代的文献:
W.Diffie and M.E.Hellman, New Directrions inCryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov
1976,PP.644-654;
2)RSA公钥算法是由Rivest,Shamir和Adleman在1978年提出来的, Communitions of the ACM. Vol.21.No.2.Feb. 1978, PP.120-126
⏹公开密钥密码的重要特性
1.加密与解密由不同的密钥完成;
加密:X→Y:Y = E KU(X);加密密钥是公开的;
解密:Y→X:X = D KR(Y) = D KR(E KU(X));解密密钥是保密的;
2.知道加密算法,从加密密钥得到解密密钥在计算上是不可行的;
3.两个密钥中任何一个都可以用作加密而另一个用作解密(不是必须的);X = D KR(E KU(X)) = E KU(D KR(X))
⏹基于公开密钥的加密过程
⏹基于公开密钥的鉴别过程
⏹用公钥密码实现保密
•用户拥有自己的密钥对(K U,K R);•公钥K U公开,私钥K R保密;
•A→B:Y=E KUb(X)
•B: D KRb(Y)= D KRb(E KUb(X))=X
⏹用公钥密码实现鉴别
•条件:两个密钥中任何一个都可以用作加密而另一个用作解密•鉴别:A→ALL: Y=E KRa(X)
ALL:D KUa(Y)=D KUa(E KRa(X))=X
⏹公钥密钥的应用范围
•加密/解密:发送方用接收方的公开密钥加密报文;
•数字签名(身份鉴别):发送用自己的私有密钥“签署”报文;•密钥交换:两方合作以便交换会话密钥。
⏹基本思想和要求:
•涉及到各方:发送方、接收方、攻击者;
• 涉及到数据:公钥、私钥、明文、密文;
• 公钥算法的条件:
1)产生一对密钥是计算可行的;
2)已知公钥和明文,产生密文是计算可行的;
3)接收方利用私钥来解密密文是计算可行的;
4)对于攻击者,利用公钥来推断私钥是计算不可行的;
5)已知公钥和密文,恢复明文是计算不可行的;
6)(可选)加密和解密的顺序可交换。
这些要求最终可以归结为一个叫陷门单向函数:
单向陷门函数是满足下列条件的函数f:
(1)给定x,计算y=f k(x)是容易的;
(2)给定y, 计算x使x=f k-1(y)是不可行的。
(3)存在k,已知k 时,对给定的任何y,若相应的x存在,则计算x使f k-1(x) 是容易的。
⏹公钥密码基于的数学难题
1)背包问题;
2)大整数分解问题(The Integer Factorization Problem,RSA体制);
3)有限域的乘法群上的离散对数问题(The Discrete Logarithm Problem,ElGamal体制);
4)椭圆曲线上的离散对数问题(The Elliptic Curve Discrete Logarithm Problem,类比的ElGamal体制)
⏹经典例子:
1)Diffie-Hellman密钥交换算法;
2)背包算法;
3)RSA算法;
4)EIGamal算法;
5)椭圆曲线密码算法ECC
一、Diffie-Hellman密钥交换
Diffie-Hellman密钥交换算法的有效性依赖于计算离散对数的难度。简言之,可以如下定义离散对数:首先定义一个素数p的原根,为其各次幂产