第八章密钥分配与密钥管理:8.1随机数的产生 813伪随机数产生器 ●对线性同余算法有以下一些常用变形 (1)幂形式 ●幂形式的选代公式为Xn+1=( Xnmod m,n=1,2, 其中d,m是参数,X0(0≤X0<m)是种子 根据参数的取法,幂形式又分为以下两种: ①RSA产生器 此时参数取为RSA算法的参数,即m是两个大素数乘积,d是 RSA秘密钥,满足gcd(d,p(m)=1 ②平方产生器 取d=2,m=p,而,q模4余3的大素数 ●(2)离散指数形式 离散指数形式的迭代公式为X+1= gXn mod m,n=1,2,…, 其中g,m是参数,X0(0≤X<m)是种子 历忠毛孑技*字 12/
8.1.3 伪随机数产生器 对线性同余算法有以下一些常用变形 (1)幂形式 ⚫ 幂形式的迭代公式为Xn+1=(Xn ) d mod m,n=1,2,… ⚫ 其中d, m是参数,X0 (0X0<m)是种子 ⚫ 根据参数的取法,幂形式又分为以下两种: ⚫ ①RSA产生器 ⚫ 此时参数取为RSA算法的参数,即m是两个大素数乘积,d是 RSA秘密钥,满足gcd(d, (m))=1 ⚫ ②平方产生器 ⚫ 取d=2,m=pq,而p,q模4余3的大素数 (2)离散指数形式 ⚫ 离散指数形式的迭代公式为Xn+1=g Xn mod m,n=1,2,… ⚫ 其中g, m是参数,X0 (0X0<m)是种子 12/ 第八章 密钥分配与密钥管理:8.1 随机数的产生
第八章密钥分配与密钥管理:8.1随机数的产生 814基于密码算法的随机数产生器 ●为了产生密码中可用的随机数,可使用加密算法 ●1.循环加密类似于CTR模式 ●通过循环加密由主密钥产生会话密钥的示意图 例如要想产生56比特的DES密钥,可使用周 周期为N的计数器 期为25的计数器,每产生一个密钥后,计数 C 器加1 因此本方案产生的伪随机数以整周期循环, 输出数列X,X1,…,x1中的每个值都是由主密钥Km,加 计数器中的不同值得到,因此XX1…手X1 又因为主密钥是受到保护的,所以知道前面 Xi=EKm[C+1 的密钥值想得到后面的密钥在计算上是不可循环加密产生伪随机数 行的 ●为进一步增加算法的强度,可用整周期的伪随机 数产生器代替计数器作为方案中加密算法的输入 历忠毛孑技*字
8.1.4 基于密码算法的随机数产生器 为了产生密码中可用的随机数,可使用加密算法 1. 循环加密 类似于CTR模式 通过循环加密由主密钥产生会话密钥的示意图 ⚫ 例如要想产生56比特的DES密钥,可使用周 期为2 56的计数器,每产生一个密钥后,计数 器加1 ⚫ 因此本方案产生的伪随机数以整周期循环, 输出数列X0,X1,…,XN-1中的每个值都是由 计数器中的不同值得到,因此X0≠X1≠…≠XN-1 ⚫ 又因为主密钥是受到保护的,所以知道前面 的密钥值想得到后面的密钥在计算上是不可 行的 为进一步增加算法的强度,可用整周期的伪随机 数产生器代替计数器作为方案中加密算法的输入 13/ 第八章 密钥分配与密钥管理:8.1 随机数的产生 C C+1 周期为N的计数器 加密算法 主密钥Km Xi=EKm[C+1] 循环加密产生伪随机数
第八章密钥分配与密钥管理:8.1随机数的产生 814基于密码算法的随机数产生器 2DES的输出反馈OFB模式 DES的OFB模式能用来产生密钥并能用于流加密 ●加密算法的每一步输出都为64比特,其中最左边的 个比恃被反馈回加密算法 因此加密算法的一个个64比特输出就构成了一个具有 很好统计特性的伪随机数序列 同样,如此产生的会话密钥可通过对主密钥的保护而 得以保护 历忠毛孑技*字 14/
8.1.4 基于密码算法的随机数产生器 2. DES的输出反馈(OFB)模式 ⚫ DES的OFB模式能用来产生密钥并能用于流加密 ⚫ 加密算法的每一步输出都为64比特,其中最左边的j 个比特被反馈回加密算法 ⚫ 因此加密算法的一个个64比特输出就构成了一个具有 很好统计特性的伪随机数序列 ⚫ 同样,如此产生的会话密钥可通过对主密钥的保护而 得以保护 14/ 第八章 密钥分配与密钥管理:8.1 随机数的产生
第八章密钥分配与密钥管理:8.1随机数的产生 814基于密码算法的随机数产生器 ●3ANSX917的伪随机数产生器 它是密码强度最高的伪随机数产生器之一,已在包括PGP等许 多应用过程中被采纳,产生器有3个组成部分 ①输入输入为两个64比特的伪随机数,其中DT表示当前的 日期和时间,每产生一个数R后,DT都更新次;V是产生第 个随机数时的种子,其初值可任意设定,以后每次自动更新。 ②密钥3次3DES(EDE)加密使用 K1,K2 相同的两个56比特的密钥K1和K2 DT EDE ③输出为一个64比特的伪随机数 CEDE R和一个64比特的新种子V计+1V FEDE R= EDEKLKIVeEDEKLKIDTil e Vi+1=EDEKLK2IR EDEKL.K2DTill R 团毛孑技ANS|917伪随机数产生器15f
8.1.4 基于密码算法的随机数产生器 3.ANSI X9.17的伪随机数产生器 ⚫ 它是密码强度最高的伪随机数产生器之一,已在包括PGP等许 多应用过程中被采纳, 产生器有3个组成部分 ⚫ ① 输入 输入为两个64比特的伪随机数,其中DTi表示当前的 日期和时间,每产生一个数Ri后,DTi都更新一次;Vi是产生第 i个随机数时的种子,其初值可任意设定,以后每次自动更新。 ⚫ ②密钥 3次3DES(EDE)加密使用 相同的两个56比特的密钥K1和K2 ⚫ ③输出 为一个64比特的伪随机数 Ri和一个64比特的新种子Vi+1 ⚫ Ri=EDEK1,K2 [ViEDEK1,K2 [DTi ]] ⚫ Vi+1=EDEK1,K2 [RiEDEK1,K2 [DTi ]] 15/ 第八章 密钥分配与密钥管理:8.1 随机数的产生 EDE EDE + EDE + K1,K2 DTi Vi Ri Vi+1 ANSI X9.17伪随机数产生器
第八章密钥分配与密钥管理:8.1随机数的产生 814基于密码算法的随机数产生器 本方案具有非常高的密码强度, 这是因为采用了112比特长的密钥和9个DES加密 同时还由于算法由两个伪随机数输入驱动, 个是当前的日期和时间 另一个是算法上次产生的新种子 ●前向保密和后向保密性 ●即使某次产生的随机数R泄漏了,但由于R又经一次 EDE加密才产生新种子v1,所以别人即使得到R也 得不到+1,从而得不到新随机数R+1 历忠毛孑技*字 16/
8.1.4 基于密码算法的随机数产生器 本方案具有非常高的密码强度, ⚫ 这是因为采用了112比特长的密钥和9个DES加密 ⚫ 同时还由于算法由两个伪随机数输入驱动, ⚫ 一个是当前的日期和时间 ⚫ 另一个是算法上次产生的新种子 前向保密和后向保密性 ⚫ 即使某次产生的随机数Ri泄漏了,但由于Ri又经一次 EDE加密才产生新种子Vi+1,所以别人即使得到Ri也 得不到Vi+1,从而得不到新随机数Ri+1 16/ 第八章 密钥分配与密钥管理:8.1 随机数的产生