随机数在加密技术中的应用分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关键词
ANALYSIS AND APPLICATION OF RANDOM NUMBER IN ENCRYPTION
Zhang Fang
( School of Management , Chongging Uniuersity of Posts and Telecommunications , Chongging 400065 )
Abstract
Encrytion is the most important method of information system security. this paper introduces the conception and important impact and
application of the random number in encryption. Keywords Random number Encryption PGP EFS 可以产生具有较好统计特性的随机数, 且周期很长。但是因为
ຫໍສະໝຸດ Baidu
1 随机数
1.1 随机数概念
随机数一般分为伪随机数和真随机数。利用数学算法产生 的随机数属于伪随机数。利用物理方法选取自然随机性产生的 随机数可以看作真随机数。随机数通常要求满足三种特性: 随 机性; 独立性; 不可预测性。 通常对已经产生出来的随机数序列是否随机的检验方法 有: l)频数检验 2)跟随性检验 致相同。 测试比特串中 0 或 l 的个数是否大致相同。 测试比特串中 00, 0l, l0, ll 的概率是否大
第 2l 卷第 l2 期 2004 年 l2 月
计算机应用与软件 Computer Applications and Software
Vol.2l, No.l2 Dec.2004
随机数在加密技术中的应用分析
张 仿
(重庆邮电学院管理学院 重庆 400065)


加密技术是一种重要的信息系统安全技术, 本文介绍了随机数的概念以及其在加密技术中的重要作用和主要应用。 随机数 加密技术 PGP EFS
! 随机数在加密技术中的应用
!"! 密钥分配 !"# 密钥的产生
2.l.l 序列密码的产生 序列加密算法是加密技术中的一种常见技术, 在序列加密 算法中, 利用欲加密明文的位序列 Pl, …, P2, Pi 与密钥发生器 输出的一组随机位序列 Kl, …, K2, Ki 经过异或运算得到密文 Ci 解密时利用密文序列与该随机位序列进行异或运算 = Pi! Ki, 得到明文 Pi = Ci! Ki。由于 Kl, …, 所以相 K2, Ki 是随机序列, 同的明文位序列可以有不同的密文, 该方法不存在数据扩展和 错误传播, 实时性好, 加密解密容易实现。 该加密算法的安全性很大程度取 决于随机数序列是否够乱, 周期是否够 长 (最好是能够产生一系列无尽的随机
收稿日期: 助教, 主研领域: 电子商务技术。 2003 - 07 - 23。张仿,
2)Kolmogorov - Smirnow 测试 测试输出序列的概率分布在 区域上与给定的概率分布函数的接近程度。 3)线性复杂度 序列能够用最小移位寄存器的 LFSR 产 生, 越高则安全性越好。 4)抵抗已知明文攻击的能力。
图l 反馈移位寄
形成新的最左端位, 产生的伪随机数 序列和线性同余发生器有相似特点,
存器示意图
长度为 2 3)游程检验 测试是否长度为 l 的游程约为 l / 2, 的游程约为 l / 4 等。 通常对各种随机数发生器的安全性评估方法有: l)Chi - Sguare 测试 给定的概率分布函数。 测试输出序列的概率分布是否接近
如果已知 X0 , 所以该发生器产生的 a, b, m 则随机数列可得出, 随机数不具有较好的不可预测性。 2)反馈移位寄存器 反馈移位寄存器包括两部分: 移位寄存器和反馈函数, 移位 寄存器是一个位序列, 每需要一位, 移位寄存器所有位就右移一 位。新的最左端位根据寄存器中其他位和反馈函数计算得出, 移位寄存器的输出位是最低有效位。 线性反馈移位寄存器 ( LFSR) 是 一种最简单的反馈移位寄存器, 只是 将寄存器的某些位进行简单的异或
都具有较好的统计特性。 为了构造更复杂的序列, 增加其周期、 线性复杂度和不可预 测性, 通常利用多个不同的 LFSR 来构造随机序列。如交错停走 式发生器, 利用了三个不同长度的 LFSR, 当 LFSRl 的输出为 l 时, 当 LFSRl 的输出为 0 时, LFSR2 被时钟驱动, LFSR3 被时钟驱 动, 它具 LFSR2 和 LFSR3 的输出的异或结果为发生器最后输出, 有很长的周期和大的线性复杂度。 3)ANSI X9.l7 伪随机数发生器 该发生器采用三重 DES 算法产生伪随机数, 有三个输入: 64 位的当前时间和日期 Dti, 一对 56 位的用于 64 位的种子值 Vi, 对三重 DES 进行加密的密钥 Kl, K2。有两个输出: 64 位的伪随 机数 Ri, 64 位的种子值 Vi + l 。在内部通过对输入信息进行三重 用 E( 表示对 x 进行三重 DES DES 加密和异或运算产生输出, k x) 加密, 则输出可以表示为 Ri = E( , Vi + l = E( " Vi) k E( k Dti ) k Ek (Dti) ) 。该发生器能产生较好随机性的伪随机数, 取决于 Ri "
图2
ANSI X9.l7 伪随机数发生器示意图
l.2.2 真随机数的产生 l)真随机数源 伪随机数是由某种数学算法得出的, 有时不能满足加密技 术的要求。真随机数源存在于自然界的物理随机性, 可以通过 以下途径获得: (l) 选取随机噪音, 如采用物理噪声源: 基于力学 的噪声源, 效率低随机性差。基于电子学的噪声源, 利用电子方 法对噪声进行放大整形处理; (2) 使用计算机时钟: 当前系统时 间到秒一级或微秒级可以认为是随机的; ( 3) 测试键盘反应时 间: 利用人击键时间差的随机性来产生随机数; (4) 提取随机性: 从一些随机的事件中提取随机性, 如: 基于光学系统的随机性, 速率潜力大, 稳定性易于控制, 简单易于产品化。被囚禁的单离 子产生的共振荧光辐射其光子间隙时间随机分布, 单个光子通 过透射率和反射率各为 50% 的光分束器, 随机的选择有两条路 径; 鼠标的点击; 磁盘操作的延迟; 鼠标位置; 网络数据包到达次 数; 麦克风的输入等。 (5) 基于混沌理论, 产生的噪声随机性好, 效率高。 2)真随机数产生方法 利用物理热噪声作为随机数源的真随机数发生器: 对噪声 发生器电路中产生的热噪声进行放大, 系统每次采样得到一个 随机位, 并与一标准电压进行比较即可转换为 l 或 0, 在采样时 钟节拍控制下将得到的单随机位逐位移位形成要求长度的随机 数, 再进行异或运算对随机位的概率偏差加以修正, 然后再送移 位寄存器移位就形成一个要求长度的二进制随机数。 对于很多安全目 Linux 系统内核包括了一个随机数发生器, 的是足够的。该随机数发生器收集来自设备驱动程序和其它来 源的环境噪音放入一个熵池。被访问时, 返回熵池中预计的噪 音比特数之内的随机字节 (如果熵池为空, 则调用被阻塞, 直到 收集了附加的环境噪音或即使熵池为空也返回所要求的那么多 字节) 。
数序列) 。在序列密码的产生中, 通常 利用 LFSR 或线性同余发生器、 非线性
器内部原理图
第 12 期
张仿: 随机数在加密技术中的应用分析
107
一伪随机数串作为每次交换的密钥, 就能够达到保证算法安全 性的要求, 有效的防止对密钥进行的穷举式攻击和降低根据密 文推测是否同发送同一明文的可能性。 2.2.2 签名和鉴别 在网络环境上实现数字通信可以通过在传送信息上加上发 送方自己的数字签名来防止可能存在的相互欺骗或抵赖。美国 国家标准技术研究所 (NIST) 公布的一种数字签名算法 ( DSA) 思 想为: 某个发送用户 A 选择一私密的 X, 并利用某算法和 X 产生 出一个公密 Y, 根据公开密钥分量 ( p, , 报文 m 的散列码 g, g) X, (m) 和一额外整数 K, 利用签名算法求出签名信息 r 和 s, 将其 H 与报文一起发送给接收方, 对方根据 Y, ( m) 计算出一量 g, g, H 将其与 r 进行比较, 如果相符则表示签名有效, 肯定是 A 所发 v, 送, 具有不可抵赖性。 该算法中 r 值不依赖于报文 m, 接收者根据收到的报文、 签 名、 公开密钥、 公开密钥分量就能恢复出 r, 必然能实现有效的数 字签名。该算法的安全性取决于计算离散对数的难度和 X 取 值的随机性。为了加强安全性, 给每一个报文一个唯一的密数 利用伪随机数发生器产生 X 和 K 即可满足安全性的需要。 K,
l06
三重 DES 算法和密钥的安全性。
计算机应用与软件
2004 年
随机数发生器来产生序列密码。由于序列加密算法的原理要求 随机数序列还必须是确定的, 因为只有这样解密时才容易使得 密钥重现, 所以密码序列 Ki 还有一个密钥 K。密钥序列发生器 包括内部状态、 下一状态函数、 输出函数三部分。密钥序列发生 器内部原理为: 输出函数处理内部状态、 下一状态函数、 输出函 数三部分。密钥序列发生器内部原理为: 输出函数处理内部状 态产生出密钥序列 Ki, 下一状态函数处理内部状态产生新的内 部状态。密钥序列发生器的输出是该密钥的函数, 如果具有相 同的序列密码密钥 K 和内部状态则会产生出相同的密码序列。 2.l.2 主机密码系统中密钥的产生 主机密码系统中通常采用主密钥、 二级密钥和初级密钥三 种不同等级密钥。 主密钥是一个加密系统中的最高级别的密钥, 用于对主机 系统中的二级密钥和初级密钥提供保护, 因此对主密钥产生的 要求非常高, 要求具有很高的随机性, 独立性, 不可预测性; 一般 的伪随机数发生器产生的随机数已不能满足它的需要, 我们通 常利用真随机数发生器 (如利用物理热噪声或提取事件过程随 机性) 来产生主密钥, 更能够符合理论上的随机性, 更能满足系 统对主密钥的要求。 二级密钥用于加密保护初级密钥, 生存周期一般较长, 要接 受主密钥的保护。由于主密钥已经具有很高的安全性, 所以二 级密钥的产生常借助于已有的主密钥和一个强的密码算法。通 常利用真随机数发生器产生主密钥 RNl, 再由主机产生随 RN2, 利用 RNl, 机数 RN3, RN2, RN3 和某强的加密算法 E 对序数 i 进 行多层加密产生出二级密钥 KNi, (RN3, (RNl, (RN2, KNi = E E E E (RNl, ) ) ) , 因为 RNl, i) RN2, RN3 是主密钥均有很高的随机性, 并且有对序数进行了四次强的算法加密, 所以要想利用 i 推出 KNi 非常困难。 初级密钥是用于加解密具体数据的密钥, 生存周期一般较 短, 初级通信密钥和会话密钥通常采用一次一密的方式。必须 接受更高级别的密钥保护。通常直接把随机数看作经过高级密 钥加密的初级密钥。如: 利用主密钥 KM0 的某一分量 (如对 l) 其某些位取反) 加密 64 位计数器的计数值, 结果为 RN, 则 RN 可 利用两个以上随机时钟 看作利用 KM0 加密过的初级密钥。2) 值组合产生一个初始量 Z ( i) , …, 再随机产生初始量 U I = l, 2, n, (0) 。利用主机密码变换操作 RTMK 产生出初级密钥 RNi。 { ( i - l) , ( i) } ( i) } RTMK: U Z - >{ U { ( i) , ( i) } RTMK: U U - >{ RNi}
图3 密钥序列发生
(PKDS) 2.2.l 公开密钥分配系统 在网络环境中, 为了对信息保密, 需要某些密码对数据加 密, 通常这种密码由可信任的第三方来分配, 但是第三方并不绝 对可信, 所以在传输一些高密级的数据时接收双方需要在没有 第三方的协助下进行加密传输, 可以通过公开密钥分配算法来 实现。如果 I 欲与 J 通信, 选取一个具有交换性单向函数 F, 属 于 F 值域的元素 g 被双方接受。 I 任选一秘密的 Xi, 利用单向函 数 F 求出 FXi ( g) , 将其送给 J, 利用 F 求出 Fxj J 选取一秘密的 Xj, ( g) 送给 I。这样双方就能够获得一组共同的密钥或秘密, 并且 在使用中双方都无法对其共享密钥事先进行控制, 这样就能达 到很好的保密传输效果。 该算法中为了达到不被第三者破解, 取决于单向函数 F 的 单向性和 X 是否随机, 通常会选取一些经过证明具有很好的单 向性的函数, 对于双方在选定 X 时, 利用伪随机数发生器产生
1.2 随机数的产生方法
l.2.l 伪随机数的产生 l)线性同余发生器 该随机数发生器利用形式 Xn = ( a! Xn - l + b) mod m 来产生 随机数, Xn 表示第 n 个随机数, Xn - l 表示第 n - l 个随机数, a, b, m 为常数, X0 为种子, mod 为求模运算。通过选取适当的 a, b, m
相关文档
最新文档