密码学基础1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的原根,为其各次幂产

相关文档
最新文档