第四讲序列密码体制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
确 保 数 据 流 随 机 性 的 最 广 为 人 知 的 测 试 套 件 就 是 George Marsaglia 的 DIEHARD 软件包(请参阅http://www.stat.fsu.edu/ pub/diehard/)。另一个适合此类测试的合理软件包是 pLab(请参 阅http://random.mat.sbg.ac.at/tests/)。
2020/1/22
3
4.1.2 伪随机数产生器
何谓伪随机数生成器(PRNG)?假定需要生成介于1和 10 之 间的随机数,每一个数出现的几率都是一样的。理想情况下,应生 成0到1之间的一个值,不考虑以前值,这个范围中的每一个值出现 的几率都是一样的,然后再将该值乘以 10。
由任何伪随机数生成器返回的数目会受到 0 到 N 之间整数数目的 限制。因为常见情况下,伪随机数生成器生成 0 到 N 之间的一个 整数,返回的整数再除以 N。可以得出的数字总是处于 0 和 1 之 间。对生成器随后的调用采用第一次运行产生的整数,并将它传给 一个函数,以生成 0 到 N 之间的一个新整数,然后再将新整数除 以 N 返回。
2020/1/22
5
4.1.3 基于密码算法的随机数产生器
1.使用软件方法的随机数产生器
一个常用的随机数产生器是属于线形拟合生成器一类的。这 类生成器相当普遍,它们采用很具体的数学公式:
Xn+1 = (aXn + b) mod c 即第 n+1 个数等于第 n 个数乘以某个常数 a,再加上常数 b。 如果结果大于或等于某个常数 c,那么通过除以 c,并取它的余数 来将这个值限制在一定范围内。注意:a、b 和 c 通常是质数。
2020/1/22
8
1949年Shannon证明了只有一次一密的密码体制是绝对安全 的,这给序列密码技术的研究以强大的支持,序列密码方 案的发展是模仿一次一密系统的尝试,或者说“一次一密 ”的密码方案是序列密码的雏形。如果序列密码所使用的 是真正随机方式的、与消息流长度相同的密钥流,则此时 的序列密码就是一次一密的密码体制。若能以一种方式产 生一随机序列(密钥流),这一序列由密钥所确定,则利 用这样的序列就可以进行加密,即将密钥、明文表示成连 续的符号或二进制,对应地进行加密,加解密时一次处理明 文中的一个或几个比特。
2.使用硬件方法的随机数产生器
目前生成随机数的几种硬件设备都是用于商业用途。得到广泛使
用的设备是 ComScire QNG,它是使用并行端口连接到 PC 的外部设备,
它可以在每秒钟生成 20,000 位,这对于大多数注重安全性的应用程序来
说已经足够了。
另外Intel 公司宣布他们将开始在其芯片组中添加基于热能的硬件
随机数发生器,而且基本上不会增加客户的成本。迄今为止,已经交付
了一2些02带0/1有/22硬件 PRNG 的 CPU。
6
4.1.4 伪随机数的评价标准
(1)看起来是随机的,表明它可以通过所有随机性统计检验。 现在的许多统计测试。它们采用了各种形式,但共同思路是它们
全都以统计方式检查来自发生器的数据流,尝试发现数据是否是随 机的。
4.1.1 随机数的使用
序列密码的保密性完全取决于密钥的随机性。如果密钥是真正 的随机数,则这种体制在理论上就是不可破译的。但这种方式所需 的密钥量大得惊人,在实际中是不可行的。
目前一般采用伪随机序列来代替随机序列作为密钥序列,也就 是序列存在着一定的循环周期。这样序列周期的长短就成为保密性 的关键。如果周期足够长,就会有比较好的保密性。现在周期小于 1010的序列很少被采用,周期长达1050的序列也并不少见。
伪随机数生成器是一个生成完全可预料的数列(称为流)的确定 性程序。一个编写得很好的的PRNG可以创建一个序列,而这个序列 的属性与许多真正随机数的序列的属性是一样的。
例如:(1)PRNG可以以相同几率在一个范围内生成任何数字; (2)PRNG 可以生成带任何统计分布的流;(3)由PRNG生成的数 字流不具备可辨别的模。
2020/1/22
4
目前,常见随机数发生器中N 是232–1 (大约等于 40 亿),对 于 32 位数字来说,这是最大的值。但在密码学领域, 40 亿个数根 本不算大!
伪随机数生成器将作为“种子”的数当作初始整数传给函数。由 伪随机数生成器返回的每一个值完全由它返回的前一个值所决定。 因此,最初的种子决定了这个随机数序列。如果知道用于计算任何 一个值的那个整数,那么就可以算出从这个生成器返回的下一个值。
10
序列密码与分组密码的对比
序列密码是一个随时间变化的加密变换,具有转换速度快 、低错误传播的优点,硬件实现电路更简单;其缺点是: 低扩散(意味着混乱不够)、插入及修改的不敏感性。 序列密码涉及到大量的理论知识,提出了众多的设计原理, 也得到了广泛的分析,但许多研究成果并没有完全公开, 这也许是因为序列密码目前主要应用于军事和外交等机密 部门的缘故。目前,公开的序列密码算法主要有RC4、 SEAL等。
(2)它是不可预测的。即使给出产生序列的算法或硬件和所有以 前产生的比特流的全部知识,也不可能通过计算来预测下一个随机 比特应是什么。
(3)它不能可靠地重复产生。如果用完全同样的输入对序列产生 器操作两次将得到两个不相关的随机序列。
2020/1/22
7
4.2 序列密码的概念
序列密码也称为流密码(Stream Cipher),它是对称密码 算法的一种。序列密码具有实现简单、便于硬件实施、加 解密处理速度快、没有或只有有限的错误传播等特点,因 此在实际应用中,特别是专用或机密机构中保持着优势, 典型的应用领域包括无线通信、外交通信。
2020/1/22
9
序列密码与分组密码的对比
分组密码以一定大小作为每次处理的基本单元,而序列密 码则是以一个元素(一个字母或一个比特)作为基本的处 理单元 。 分组密码使用的是一个不随时间变化的固定变换,具有扩散 性好、插入敏感等优点;其缺点是:加解密处理速度慢、 存在错误传播。
2020/1/22
第四讲 序列密码
2020/1/22
Biblioteka Baidu
1
知识点:
◇ 密码学中的随机数 ◇ 序列密码的概念 ◇ 线性反馈移位寄存器 ◇ 非线性序列简介 ◇ 常用序列密码 ◇ 序列密码的应用
2020/1/22
2
4.1 密码学中的随机数
在密码学都要涉及到随机数?因为许多密码系统的安全性都依 赖于随机数的生成,例如DES加密算法中的密钥,RSA加密和数字 签名中的素数。
2020/1/22
3
4.1.2 伪随机数产生器
何谓伪随机数生成器(PRNG)?假定需要生成介于1和 10 之 间的随机数,每一个数出现的几率都是一样的。理想情况下,应生 成0到1之间的一个值,不考虑以前值,这个范围中的每一个值出现 的几率都是一样的,然后再将该值乘以 10。
由任何伪随机数生成器返回的数目会受到 0 到 N 之间整数数目的 限制。因为常见情况下,伪随机数生成器生成 0 到 N 之间的一个 整数,返回的整数再除以 N。可以得出的数字总是处于 0 和 1 之 间。对生成器随后的调用采用第一次运行产生的整数,并将它传给 一个函数,以生成 0 到 N 之间的一个新整数,然后再将新整数除 以 N 返回。
2020/1/22
5
4.1.3 基于密码算法的随机数产生器
1.使用软件方法的随机数产生器
一个常用的随机数产生器是属于线形拟合生成器一类的。这 类生成器相当普遍,它们采用很具体的数学公式:
Xn+1 = (aXn + b) mod c 即第 n+1 个数等于第 n 个数乘以某个常数 a,再加上常数 b。 如果结果大于或等于某个常数 c,那么通过除以 c,并取它的余数 来将这个值限制在一定范围内。注意:a、b 和 c 通常是质数。
2020/1/22
8
1949年Shannon证明了只有一次一密的密码体制是绝对安全 的,这给序列密码技术的研究以强大的支持,序列密码方 案的发展是模仿一次一密系统的尝试,或者说“一次一密 ”的密码方案是序列密码的雏形。如果序列密码所使用的 是真正随机方式的、与消息流长度相同的密钥流,则此时 的序列密码就是一次一密的密码体制。若能以一种方式产 生一随机序列(密钥流),这一序列由密钥所确定,则利 用这样的序列就可以进行加密,即将密钥、明文表示成连 续的符号或二进制,对应地进行加密,加解密时一次处理明 文中的一个或几个比特。
2.使用硬件方法的随机数产生器
目前生成随机数的几种硬件设备都是用于商业用途。得到广泛使
用的设备是 ComScire QNG,它是使用并行端口连接到 PC 的外部设备,
它可以在每秒钟生成 20,000 位,这对于大多数注重安全性的应用程序来
说已经足够了。
另外Intel 公司宣布他们将开始在其芯片组中添加基于热能的硬件
随机数发生器,而且基本上不会增加客户的成本。迄今为止,已经交付
了一2些02带0/1有/22硬件 PRNG 的 CPU。
6
4.1.4 伪随机数的评价标准
(1)看起来是随机的,表明它可以通过所有随机性统计检验。 现在的许多统计测试。它们采用了各种形式,但共同思路是它们
全都以统计方式检查来自发生器的数据流,尝试发现数据是否是随 机的。
4.1.1 随机数的使用
序列密码的保密性完全取决于密钥的随机性。如果密钥是真正 的随机数,则这种体制在理论上就是不可破译的。但这种方式所需 的密钥量大得惊人,在实际中是不可行的。
目前一般采用伪随机序列来代替随机序列作为密钥序列,也就 是序列存在着一定的循环周期。这样序列周期的长短就成为保密性 的关键。如果周期足够长,就会有比较好的保密性。现在周期小于 1010的序列很少被采用,周期长达1050的序列也并不少见。
伪随机数生成器是一个生成完全可预料的数列(称为流)的确定 性程序。一个编写得很好的的PRNG可以创建一个序列,而这个序列 的属性与许多真正随机数的序列的属性是一样的。
例如:(1)PRNG可以以相同几率在一个范围内生成任何数字; (2)PRNG 可以生成带任何统计分布的流;(3)由PRNG生成的数 字流不具备可辨别的模。
2020/1/22
4
目前,常见随机数发生器中N 是232–1 (大约等于 40 亿),对 于 32 位数字来说,这是最大的值。但在密码学领域, 40 亿个数根 本不算大!
伪随机数生成器将作为“种子”的数当作初始整数传给函数。由 伪随机数生成器返回的每一个值完全由它返回的前一个值所决定。 因此,最初的种子决定了这个随机数序列。如果知道用于计算任何 一个值的那个整数,那么就可以算出从这个生成器返回的下一个值。
10
序列密码与分组密码的对比
序列密码是一个随时间变化的加密变换,具有转换速度快 、低错误传播的优点,硬件实现电路更简单;其缺点是: 低扩散(意味着混乱不够)、插入及修改的不敏感性。 序列密码涉及到大量的理论知识,提出了众多的设计原理, 也得到了广泛的分析,但许多研究成果并没有完全公开, 这也许是因为序列密码目前主要应用于军事和外交等机密 部门的缘故。目前,公开的序列密码算法主要有RC4、 SEAL等。
(2)它是不可预测的。即使给出产生序列的算法或硬件和所有以 前产生的比特流的全部知识,也不可能通过计算来预测下一个随机 比特应是什么。
(3)它不能可靠地重复产生。如果用完全同样的输入对序列产生 器操作两次将得到两个不相关的随机序列。
2020/1/22
7
4.2 序列密码的概念
序列密码也称为流密码(Stream Cipher),它是对称密码 算法的一种。序列密码具有实现简单、便于硬件实施、加 解密处理速度快、没有或只有有限的错误传播等特点,因 此在实际应用中,特别是专用或机密机构中保持着优势, 典型的应用领域包括无线通信、外交通信。
2020/1/22
9
序列密码与分组密码的对比
分组密码以一定大小作为每次处理的基本单元,而序列密 码则是以一个元素(一个字母或一个比特)作为基本的处 理单元 。 分组密码使用的是一个不随时间变化的固定变换,具有扩散 性好、插入敏感等优点;其缺点是:加解密处理速度慢、 存在错误传播。
2020/1/22
第四讲 序列密码
2020/1/22
Biblioteka Baidu
1
知识点:
◇ 密码学中的随机数 ◇ 序列密码的概念 ◇ 线性反馈移位寄存器 ◇ 非线性序列简介 ◇ 常用序列密码 ◇ 序列密码的应用
2020/1/22
2
4.1 密码学中的随机数
在密码学都要涉及到随机数?因为许多密码系统的安全性都依 赖于随机数的生成,例如DES加密算法中的密钥,RSA加密和数字 签名中的素数。