密码学与网络安全 第四讲密码学基础(三) 讨论议题 • 密钥分配 • 公钥密码算法 – 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产生公/私钥对{ PUa ,PRa}并将PUa和其标识IDa的消息发送给B; 2)B产生秘密钥KS,并用A的公钥对KS,加密后发送给A; 3)A计算D(PUa E(PUa,KS)得出秘密钥KS。因为只有A能解密该消息,只有A和B知道KS; 4)A丢掉PUa ,PRa,B丢掉PUa 。 A和B 可以用传统的密码和会话密钥KS安全通信。 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 公开密钥密码的...