密码学与网络安全 第四讲密码学基础(三) 讨论议题 • 密钥分配 • 公钥密码算法 – 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个用户,K