2讲密码技术与数字签名_第1页
2讲密码技术与数字签名_第2页
2讲密码技术与数字签名_第3页
2讲密码技术与数字签名_第4页
2讲密码技术与数字签名_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2 密码技术主要内容 了解密码技术的起源 发展与应用了解信息隐藏技术原理及其相关应用领域初步掌握密钥分配与管理技术及相关应用掌握数字签名原理及相关应用掌握对称密码技术的原理 相关算法及应用掌握非对称密码技术的原理 相关算法及应用 2 1密码技术概述 1 密码技术的起源与发展 早在四千多年以前 古埃及人就开始使用密码技术来保密要传递的消息 一直到第一次世界大战前 密码技术的进展很少见诸于世 直到1918年 WilliamF Friedman的论文 TheIndexofCoincidenceandItsApplicationsinCryptography 重合指数及其在密码学中的应用 发表时 情况才有所好转 1949年 C E Shannon 香农 在 贝尔系统技术杂志 上发表了 TheCommunicationTheoryofSecrecySystem 保密系统的通信理论 为密码技术奠定了坚实理论基础 使密码学真正成为一门科学 1976年 W E Diffie和M E Hellman发表了 NewDirectioninCryptography 密码学新方向 一文 提出了一种全新的密码设计思想 导致了密码技术上的一场革命 他们首次证明了在发送端和接收端不需要传送密钥的保密通信是可能的 从而开创了公钥密码技术的新纪元 成为现代密码技术的一个里程碑 1977年美国国家标准局NBS NationalBureauofStandards 即现在的国家标准与技术研究所NIST 正式公布了数据加密标准DES DataEncryptionStandard 1978年 R L Rivest A Shamir和L Adleman实现了RSA公钥密码技术 此后成为了公钥密码技术中杰出代表 1984年 Bennett CharlesH Brassard Gille首次提出了量子密码技术 现称为BB84协议 1985年 N Koblitz和V Miller把椭圆曲线理论运用到公钥密码技术中 成为公钥密码技术研究的新亮点 ECC 密码技术的另一个重要方向 序列密码 也称为流密码 序列密码主要用于政府 军方等国家要害部门 理论也取得了重大的进展 1989年 R Mathews D Wheeler L M Pecora和Carroll等人首次把混沌理论使用到序列密码及保密通信理论中 为序列密码的研究开辟了一条新的途径 1997年 美国国家标准与技术研究所NIST开始征集新一代数据加密标准来接任即将退役的DES 4000年10月 由比利时密码学家JoanDaemen VincentRijmen发明的Rijndael密码算法成为新一代数据加密标准 AES AdvancedEncryptionStandard 算法 4000年1月 欧盟正式启动了欧洲数据加密 数字签名 数据完整性计划NESSIE 旨在提出一套强壮的包括分组密码 序列密码 散列函数 消息人证码 MAC 数字签名和公钥加密密码标准 2 密码技术的应用 随着计算机网络是迅速发展 特别是电子商务和电子政务的兴起 密码技术及其应用得到了飞速的发展 现代密码技术已经深入到信息安全的各个环节和对象 其应用已不仅仅局限于政治 军事等领域 其商用价值和社会价值也得到了充分的肯定 已成为最基本的网络安全技术 3 密码技术基础 1 基本概念 明文 密文 加密算法 解密算法 密钥 密码技术 或密码学 是研究通信安全保密的一门学科 它包含两个相对独立的分支 密码编码学和密码分析学 密码编码学是研究把信息 明文 变换成没有密钥就不能解读或很难解读的密文的方法 从事此行的称为密码编码者 密码分析学是研究分析破译密码的方法 从事此行的称为密码分析者 密码编码学和分析学彼此目的相反 相互独立 但在发展中又相互促进 密码编码学的任务是寻求生成高强度密码的有效算法 以满足对信息进行加密或认证的要求 密码分析学的任务是破译密码或伪造认证密码 窃取机密信息进行诈骗破坏活动 被动攻击 对一个保密系统采取截获密文进行分析的方法来进行的攻击 主动攻击 非法入侵者采用删除 更改 添加 重放 伪造等手段向系统注入假信息的攻击 保密通信系统模型 通过上图这个模型 可以看到一个密码体制 Cryptosystem 通常由5个部分构成 1 全体明文的集合M 称为明文空间 2 全体密文的集合C 称为密文空间 4 密码体制的分类 1 按执行的操作方式不同 可以分为替换密码体制 SubstitutionCryptosystem 和换位密码体制 PermutationCryptosystem 2 如果从收发双方使用的密钥是否相同 密码体制分为对称密钥密码 或单钥密码 体制和非对称密钥密码 或双钥密码或公钥密码 体制 对称密钥密码技术中加密和解密的双方拥有相同的密钥 而非称密钥密码技术中加密和解密的双方拥有不同的密钥 5 密码分析 1 密码分析者分析密码算法主要有三种方法 穷举法 密码分析者试图试遍所有的明文或密钥来进行破译 统计分析法 密码分析者通过分析密文 明文和密钥的统计规律来达到破译密码体制 可以设法使明文的统计特性与密文的统计特性不一样来对抗统计分析法 密码体制分析法 根据所掌握的明文 密文的有关信息 通过数学求解的方法找到相应的加解密算法 对抗这种分析法是应该选用具有坚实数学基础和足够复杂的加解密算法 4 根据对明文和密文掌握的程度 密码分析者通常可以在下述四中情况下对密码体制进行攻击 唯密文攻击 Ciphertext onlyattack 密码分析者仅知道一些密文 并试图恢复尽可能多的明文 并进一步推导出加密信息的密钥 已知明文攻击 Known plaintextattack 密码分析者不仅知道一些信息的密文 而且还知道与之对应的明文 根据明文和密文对试图推导出加密密钥或加密算法 选择明文攻击 Chosen plaintextattack 密码分析者可以选择一些明文 并得到相应的密文 而且可以选择被加密的明文 并试图推导出加密密钥或算法 选择密文攻击 Chosen ciphertextattack 密码分析者可以选择不同的密文 并能得到相应的明文 并试图推导出加密密钥 6 鉴别 完整性与不可否认性 1 鉴别 信息的接收者应该能够确认信息的来源 2 完整性 信息的接收者应能验证信息在传输过程中有没有被改变 3 不可否认性 信息的发送方不能否认已发送过的信息 4 2计算复杂性理论 1 理论安全性 无条件安全性 如果具有无限计算资源的密码分析者也无法破译该密码体制 这就是理论安全性 无条件安全性 也称绝对不可破译 即是说密码分析者无论截获多少密文以及无论用什么方法进行攻击都不可能破译 2 可证明安全性 如果从理论上证明破译该系统的代价 困难性 不低于求解某个已知的数学难题 这就是可证明安全性 3 计算安全性 如果用用已知的最好算法和利用现有的 或密码系统生命期内 最大计算资源仍然不可能在合理的时间内完成破译该系统所要求的计算 量 这就是计算安全性 即密码分析者根据可以利用的资源进行破译所用的时间非常长 或者说破译的时间长到原来的明文失去保密价值 密码分析所需的计算量则是密码体制安全性的生命指标 如果用n表示问题的大小 或输入的长度 则计算复杂性可以用两个参数来表示 运算所需的时间T和存储空间S 它们都是n的函数 表示为 T n 和S n 也分别称为空间复杂性和时间复杂性 假如T n O nc c 0 那么称该算法运算的时间是多项式阶的 假如T n O ap n a 0 则称该算法运算的时间是指数阶的 其中P n 是n的一个多项式 对于指数阶的运算时间算法 适当增大n 计算将变成不可能 因此 一般认为 如果破译一个密码体制所需的时间是指数阶的 则它在计算上是安全的 因而实际上也是安全的 空间复杂性和时间复杂性往往是可以相互转换的 比如 可以预算某些明文和密文对 分析时只需使用查询即可 这样计算的时间就转换成了存储空间 4 P问题和NP问题 在理论研究中 算法通常分为确定性算法和非确定性算法 确定性算法的每一步操作结果都是确定的 其计算时间就是完成这些确定步骤所需的时间 而不确定性算法的某些操作结果是不确定的 在所有使算法成功操作的序列中 所需时间最少的序列所需时间就是该不确定性算法的计算时间 使用确定性算法可以在多项式时间内求解的的问题称为P问题 在多项式时间内可以用非确定性算法求解的问题称为NP问题 注意 NP问题包含P问题 NP问题中许多问题可能要比P中的问题难得多 但是P问题中是否包含NP问题 目前还没有证实 同时P NP目前有没有证明 但是如果P NP 那么整个密码学将失去意义 密码算法也不再是牢不可破的 因此 计算复杂性理论也密码技术的基础理论之一 现已证明 正整数是因式分解问题就是一个NP问题 在实际研究中 如果问题X可以在多项式时间内用确定性算法转化为问题Y 而Y的解可以在多项式时间内用确定性算法转化为X的解 则称问题X可规约化为问题Y 因此 如果某类NP问题中任何一个问题可以规约为问题Y 而且Y本身就是NP问题 则称Y是一个NP完全问题 记为NPC 而对于一个NP问题 不存在任何已知的确定性算法在多项式时间内求解该问题 所以如果能找到一个计算序列作为解密算法 那么密码分析者在不知道计算序列的情况下来求解问题 称为客观求解 在计算上是不可能的 由此可见 NP问题可以用来构造密码体制 Diffie和Hellman通过大量的证明指出 NPC问题更适合构造密码体制 因为现在密码算法的安全性都是基于NPC问题的 这样若想破译一密码体制相当于解一NPC问题 4 3标准化及其组织机构 最具权威性 通用性且较完善的信息技术安全标准仍然来自于ISO IEC等国际性标准化组织 在ISO与IEC的联合技术委员会JTC1管辖的安全技术分技术委员会SC47专门从事安全技术和安全机制的标准化工作 其工作范围是信息技术安全的一般方法和技术的标准化 包括 制定信息技术系统安全服务标准 开发安全技术和安全机制 开发安全指南 如解释性文件 风险分析等 开发管理支持性文件和标准 如术语 安全性评估准则等 国际电信联盟 ITU 原称CCITT 单独或与ISO合作开发了消息处理系统 目录 X 400系列 X 500系列 及安全框架 安全模型等标准 欧洲计算机制造协会 ECMA 研制了局域网安全要求等安全标准 因特网上也出现了大量的RFC协议文稿 多达数千个 经网上讨论修改后 已形成了几十个被大家接受的事实上的因特网安全标准 对称密码技术就是加密密钥和解密密钥相同的这类密码体制 它采用的解密算法是加密算法的逆运算 对称密码技术典型代表有 古典密码技术 序列密码技术 DES 数据加密标准 瑞士的IDEA 国际数据加密算法 以及AES 高级加密标准 等 1 古典密码技术 古典密码技术根据其基本原理大体上可以分为两类 替换密码技术和换位密码技术 1 替换密码技术 4 4对称密码技术 替换密码技术是基于符号替换的密码技术 这种密码技术是以符号的置换来达到掩盖明文信息 这类密码技术有 单字符单表替换密码技术 单字符多表替换密码技术等 乘法密码技术 移位替换密码技术 是最简单的一种替换密码 加密变换为 Ek ai aj j i k modn 0 k n解密变换为 Dk aj ai i j k modn j n k modn 由于i j k modn i k k modn i modn 所以解密与加密是可逆的 从解密变换中可以看出 Dk En k 移位替换密码技术的密钥是k k唯一地确定了明文空间到密文空间的映射 故移位替换密码技术的密钥空间的元素个数为n 1 密钥字密码技术 它利用一个密钥字来构造替换作为密钥 仿射密码技术 是加法密码技术和乘法密码技术的结合体 加密变换为 Dk0 k1 ai aj j ik1 k0 modn k0 k1 Zn gcd k1 n 1k1 k0为该算法的密钥 当k0 0时 仿射密码技术退化为乘法密码技术 当k0 1时 仿射密码退化为移位替换密码技术 4 单字符多表替换密码技术 单字符多表替换密码技术在安全性方面比单字符单表替换密码技术高 单字符多表替换密码技术有很多 典型的有 Vigenere 费杰尔或维吉尼亚 密码技术 Vigenere密码技术本质上是一种多表简单加法密码技术Vigenere密码技术循环地使用每一个替换表完成明文字母到密文字母的转换 具体的加密过程 设密钥K k1k4 kd 明文与密文字母表中均包含了n个字母 又设明文m m1m4 密文为c c1c4 则ci mi ki modn 其中t为正整数 当密钥的长度比明文短时 密钥可以周期性地重复使用 直至完成明文中的每个字母的加密 Vernam 弗纳姆 密码技术 其加密方法是 将明文和密钥分别表示成二进制序列 再把它们按位进行模二加法 设明文m m1m4 密钥k k1k4 其中mi ki GF 4 i 1 则密文c c1c4 其中ci miki 这里为模二加法 Hill 希尔 密码技术 它实际上是仿射密码技术的特例 其基本加密思想是将n个明文字母通过线性变换将它们转换为n个密文字母的加密算法 解密时只需做一次逆变换即可 密钥就是变换矩阵 4 换位密码技术 换位密码技术本质上就是一种置换密码技术 但它置换的不是字符 而是书写的位置 换位密码技术的数学表达式可以表示成 设明文为 m m1m4 则密文c c1c4 ci i 1 4 n 其中置换表为 序列密码技术也称为流密码技术 也属于对称密码技术 实际上是对称密码技术的一种特殊情况 起源于40世纪40年代的Vernam密码技术 目前 序列密码技术是世界各国的军事和外交等领域中的主要密码技术之一 序列密码原理图 序列密码技术是将明文信息m看成是连续的比特流 或字符流 m1 m4 在发送端用密钥序列发生器产生的密钥序列k1 k4 对明文中的mi进行加密 即 Ek m m1 m4 2序列密码技术 在开始工作时 种子密钥k对密钥序列产生器进行初始化 ki mi 均为1个比特 或一个字符 按照模二加进行运算 得ci mi miki 在接收端 对ci进行解密 解密算法为 ci ciki miki ki mi 序列密码技术的保密性取决于密钥的随机性 3DES 数据加密标准 1 DES产生的历史背景DES是美国国家标准局NBS 后改名为美国国家标准技术研究所即NIST 为了满足计算机通信网络的发展对安全保密的需求 实现系统同一水平的安全性和兼容性 降低数据加密产品的生产成本 推广使用密码算法而公开征集的一种用于政府部门及民间进行计算机数据加密的密码算法 它也是密码技术史上第一个广泛应用于商用数据保密的 公开的密码算法 它开创了公开密码算法的先例 DES分别在1983 87 94 94年都通过了安全性评估 作为信息安全处理标准一直使用到1998年 以后不再使用 这样DES作为数据加密标准的使用期限已有40余年了 但是在近年来 对DES的攻击不断显示出对其不利的因素 特别是随着计算机计算能力的提高 也由于DES的一些先天性不足 其密钥过短 只有56位 也是导致其备受批评的重要原因 对DES的成功攻击屡见报道 在这种情况下 大家对于替换DES的要求日益增长 最终NIST于1997年发布公告 征集新的数据加密标准为联邦信息处理标准的代替DES 4000年10月 公布了新的数据加密标准AES 尽管如此 DES仍然具有重要的参考价值 它对于我们掌握分组密码的基本理论与设计思想具有重要意义 DES公布和正式实施后 虽然有不少用户和专家对它的设计问题提出过质疑和反对 但仍被迅速推广使用 美国的许多专用系统纷纷宣布采用DES作为其信息处理安全标准 2 DES算法 DES是一个分组密码算法 使用64位密钥 除去8位奇偶校验 实际密钥长为56位 对64比特的数据分组 二进制数据 加密 产生64位密文数据 DES是一个对称密码体制 加密和解密使用同一密钥 解密和加密使用同一算法 DES的所有保密性均依赖于密钥 1 DES的加密过程 3个阶段 2 计算16次迭代变换 第三阶段 逆置换是初始置换IP的逆置换 记为IP 1 如下表 IDEA InternationalDataEncryptionAlgorithm 国际数据加密算法 算法中明文和密文的分组长度都是64位 密钥长128位 该算法既可用于加密 也可用于解密 设计原则采用的是基于 相异代数群上的混合运算 的设计思想 三个不同的代数群 异或 模416加和模416 1乘 进行混合运算 所有这些运算 仅有运算 没有位的置换 都在16位子分组上进行 无论用硬件还是软件实现 都非常容易 对16位微处理器尤其有效 IDEA的设计者在设计时已尽最大努力使该算法不受差分密码分析的影响 赖学嘉已证明IDEA算法在其8轮迭代的第4轮之后便不受差分密码分析的影响 IDEA比同时代的算法 FEAL REDOC II LOKI Snefru和Khafre都要坚固 而且到目前为止几乎没有任何关于IDEA密码分析攻击法的成果案例发表 因此目前IDEA的攻击方法只有 直接攻击 或者说是 密钥穷举 法了 4 IDEA 国际数据加密算法 NIST于1997年初发起并组织了在全世界范围内广泛征集新的加密标准算法的活动 同时要求每一种侯选算法的分组长度为128位 应当支持148 192和256比特的密钥长度 经过了几年的反复较量 最终由比利时的密码学专家JoanDaemen ProtonWorldInternational公司 及VincentRijmen Leuven大学 所提出的加密算法Rijndael 中文英译 荣代尔 赢得了胜利 成为了21世纪新的加密算法AES AdvancedEncryptionStandard 2001年11月26日 NIST正式公布高级加密标准 并于2004年5月26日正式生效 Rijndael以其算法设计的简洁 高效 安全而令世人关注 相信它会在国际上得到广泛应用 1 AES的产生历史背景 5AES 高级加密标准 Rijndael密码的设计中考虑到的三条准则 抗击目前已知的所有攻击 在多个平台上实现速度要快和编码紧凑 设计简单 2 Rijndael密码的设计原则 Rijndael中同样使用了迭代变换 但与大多数分组密码不同的是Rijndael没有使用Feistel结构 注 Rijndael是一个迭代型的具有可变分组长度和可变密钥长度的分组密码 AES设计要求中要求分组长度为128比特 而Rijndael支持128 192或256比特的分组长度 因此 在AES规范中 对分组长度限定为128 AES算法的安全性仍然在讨论当中 从目前的情况来看 Rijndael尚无已知的安全性方面的攻击 算法似乎具有良好的安全性 关于AES的效率问题 无论在有无反馈模式的计算环境下 AES的硬件 软件实现都表现出了良好的性能 4 5非对称密码技术 非对称密钥密码技术也称为双钥或公钥密码技术 研究的基本工具不再象对称密码技术那样是代换和置换 而是数学函数 采用非对称密码技术的每个用户都有一对密钥 一个是可以公开的 称为加密密钥或公钥 可以象电话号码一样进行注册公布 另一个则是秘密的 称为秘密密钥或解密密钥或私钥 它由用户严格保密保存 它的主要特点是将加密和解密能力分开 因而可以实现多个用户加密的信息只能由一个用户解读 或由一个用户加密的信息而多个用户可以解读 前者可以用于公共网络中实现通信保密 而后者可以用于实现对用户的认证 下图是公钥密码技术示意图 公钥密码的加密变换E eB m 与解密交换D dB c 应满足这样一些要求 D dB c 是E eB m 的逆变换 即对任何的明文m有 D dB c D dB E eB m m 在已知加密密钥eB时 E eB m 的计算不难 在已知解密密钥dB时 D dB c 的计算也不难 若不知道dB 那么即使知道eB 具体的加密与解密算法过程及密文c 确定明文的计算是不可行的 设计公开密钥密码体制就变成了寻找陷门单向函数 可以提供单向函数的三大数学难题分别是 大整数分解问题 简称IFP 离散对数问题 简称DLP 椭圆曲线离散对数问题 简称ECDLP 如果根据所依据的难解问题 公钥密码体制可以分为这样3类 大整数分解问题类 离散对数问题类 椭圆曲线类 也时被归为离散对数问题类 基于大整数分解问题的公钥密码体制基于有限域中的离散对数问题基于代数编码系统的Mceliece公钥密码算法基于有限自动机的公开密码技术基椭圆曲线的公开密钥密码技术其中 除椭圆曲线公钥密码算法是在椭圆曲线上进行运算之外 其余各公钥密码算法均在有限域上进行 人们已经研究出的公钥密码算法 1RSA RSA的名字来源于它们的创建者 1978年由麻省理工学院的Ronald LRivest 以色列魏茨曼科学中心的AdiShamir和南加洲大学的LenoardM Adleman发表了著名的论文 AMethodforObtainingDigitalSignatureandPublic KeyCryptosystems 获得数字签名和公开密钥密码系统的一种方法 并提出的一种用数论构造的 也是迄今为止理论上最为成熟完善的公钥密码技术 RSA 该技术已得到广泛的应用 在RSA算法中 它使用广为公开的公钥加密通信 密文只能被持有与之相配的私钥的人才能解开 1 RSA的基本原理 RSA是基于大整数难分解的公钥密码技术 RSA是基于这样一个十分简单的数论事实而设计的 将两个大的素数相乘十分容易 但想分解它们是十分困难的 因此将乘积公开作为加密密钥 数学理论是欧拉定理 4 算法描述 基于大整数分解的公钥密码体制的安全性主要依赖于大整数 大合数 的难分解问题 大整数的分解问题可以被表述 已知整数n n是两个素数的积 即n p q 求解p q的值 大整数分解是计算上困难的问题 目前还不存在一般性的有效解决算法 1 密钥的产生 选两个保密的大素数p和q 计算n p q n p 1 q 1 其中 n 是n的欧拉函数值 选一整数e 满足1 e n 且gcd n e 1 即 n 与e互质 再取另一个数d 满足d e 1mod n 表示d e除以 n 的余数为1 或者说d是e在模 n 下的乘法逆元 因e与 n 互质 由模运算可知 它的乘法逆元一定存在 以PK e n 为公钥 SK d n 为私钥 2 加密 加密时首先将明文m比特串分组 使得每个分组对应的十进制数小于n 即分组的长度小于log4n 然后对每组明文分组 作加密运算 3 解密 对密文分组的解密运算为 3 RSA的安全性 RSA的安全性是基于分解大整数的困难性假定 之所以假定是因为至今还未能证明分解大真整数就是NP问题 也许有尚未发现的多项式时间分解算法 估计在未来一段比较长的时期 密钥长度介于1024比特至2048比特之间的RSA是安全的 为了保证RSA算法的安全性 p和q的选择时须注意 1 p和q的长度相差不要太大 4 p 1和q 1都应应大数因子 3 gcd p 1 q 1 的值应较小 此外 研究结果表明 如果e n且d n1 4 则d能被较容易地确定 2Diffie Hellman密钥交换协议 Diffie Hellman的安全性是基于zp上的离散对数问题 设p是一个满足要求的大素数 0 a p 并且a是循环群zp的生成元 a和p公开 所有用户都可以得到a和p 在两个用户A与B通信时 它们可以通过如下步骤协商通信所使用的密钥 用户A选取一个大的随机数rA 计算 并且把SA发送给用户B 用户B选取一个m随机数rB 计算 并且把SB发送给用户A 用户A计算 用户B计算 由于有 这样通信双方得到共同的密钥k 这样就可以实现交换密钥了 3 ElGamal公钥密码技术 ElGamal密码体制的安全性是基于离散对数的难解性 既可用于加密又可用于数字签名的公钥密码技术 到目前为止 它仍是一个安全性能良好的公钥体制 下面讨论其算法 采用ElGamal体制的密码系统中 所有的用户都共享一个素数p以及一个zp的生成元a 系统中的每一用户u都随机挑选一个整数d 1 d p 4 并计算 然后 用户u公开作为公开密钥并保存整数d作为自己的秘密密钥 1 加密算法 假设用户A想传送信息给B A采用如下算法加密明文信息m 用户A将x编码成一个在0到p 1之间的整数 m作为传输的明文 m 0 1 p 1 这里的m是编码后的明文 用户A挑选一个随机数k 1 k p 4 并计算 c1 ak modp 注 k需保密 用户A计算 其中是B的公钥 这样c c1 c4 是密文 用户A把二元组 c1 c4 传送给B 4 解密算法 用户B接收到二元组 c1 c4 后 计算 由于 这样用户B通过二元组 c1 c4 解密就得到了正确的明文m了 4椭圆曲线密码算法 使用基于椭圆曲线密码体制的安全性依赖于由椭圆曲线群上的点构成的代数系统中的离散对数问题的难解性 它与有限域上的离散对数问题或整数分解问题的情形不同 与其他公钥体制相比 椭圆曲线密码体制的优势在于 密钥长度大大减少 456比特的ECC密钥就可以达到对称密钥148比特的安全水平 如下表所示 实现速度快等 这是因为随着计算机速度的加快 为达到特定安全级别所需的密钥长度的增长 相比之下RSA及使用有限域的公钥密码体制要慢得多 2 EC上的密码体制 1 EC上的离散对数问题 EC上的离散对数问题定义为 在已知点p与np的情况下 求解正整数n的值 4 Diffie Hellman密钥交换协议 ECDH 首先 选择一个素数和EC参数a和b 则可以得方程y4 x3 ax b modp a b zp 4a3 47b4 modp 0表达的EC及其上面的点构成Abel群EP a b 其次 在EC中选取EP a b 的一个基点 生成元 G x0 y0 要求G的阶是一个大的素数 G的阶数满足nG 的最小正整数n EP a b 和G作为公开参数 最后 两用户A和B之间的密钥交换可以如下方式进行 A随机选择一个比n小的整数nA 作为A的私钥 然后A产生一个公钥pA nAG 这个公钥是EP a b 中的一个点 B也类似地选择一个私钥nB 并计算一个公钥pB nBG 这个公钥也是EP a b 中的一个点 A计算k1 nApB B计算k4 nBpA 由于k1 nApB nA nBG nB nAG k4 这样A和B就产生了双方共享的秘密密钥 为了破译这个密码方案 攻击者需要能够在给定G和kG时计算k 而实际上计算k是十分困难的 3 ElGamal公钥密码体制 ECELG 基于椭圆曲线EC的ELGamal体制同样定义EC群Ep a b 及其在EC中的一个基点G x0 y0 两者的选择原则与Diffie Hellman的体制中所描述的原则相同 将Ep a b 和G x0 y0 作为公开的参数 系统中每个用户都可以获得Ep a b 和G 另外 系统中的每个用户U都将随机的挑选一个整数nU 并计算pU nUG 然后用户U公开pU作为自己的公钥 并保存nU作为私钥 加密算法 假设用户A需要发送明文m给用户B 首先 用户A将需要发送的明文m通过编码 这里不对编码做介绍 可参与有关文献 嵌入到EC上的一个点Pm xm ym 其次 用户A选取nA 整数 并以pA nAG作为公钥 pB nBG 是B的公钥 用户A作如下的计算 产生以下点作为明文 Cm nAG pm nApB 解密算法 解密时 以密文点对中的第二个点减去用自己的私钥与第一个点倍乘 即 pm nApB nBnAG pm nAnBG nAnBG pm 若攻击者想由Cm得到Pm 就必须知道nB 而要得到nB 只有通过椭圆曲线上的两个已知点G和nBG来得到 这意味着必须求椭圆曲线上的离散对数 因而不可行 基于零知识证明的前向安全数字签名方案 常规密码的优点是有很强的保密强度 且经受住时间的检验和攻击 但其密钥必须通过安全的途径传送 因此 其密钥管理成为系统安全的重要因素 公钥密码的优点是可以适应网络的开放性要求 且密钥管理问题也较为简单 尤其可方便的实现数字签名和验证 但其算法复杂 速度慢 加密数据的速率较低 尽管如此 随着现代电子技术和密码技术的发展 公钥密码算法将是一种很有前途的网络安全加密体制 目前国际上公认的对称密码系统的密钥长度应达到148比特 人们在实际应用中通常将常规密码和公钥密码结合在一起使用 比如利用DES或者IDEA来加密信息 而采用RSA来传递会话密钥 小结 4 6密钥分配与管理技术 1密钥分配方案 密钥分配技术一般需要解决两个方面的问题 为减轻负担 提高效率 引入自动密钥分配机制 为提高安全性 尽可能减少系统中驻留的密钥量 1 密钥分配的基本方法 对于通信双方A和B 密钥分配可以有以下几种方法 密钥由A选定 然后通过物理方法安全地传递给B 密钥由可信赖的第三方C选取并通过物理方法安全地发送给A和B 交叉认证 CA 如果A和B事先已有一密钥 那么其中一方选取新密钥后 用已有的密钥加密新密钥发送给另一方 如果A和B都有一个到可信赖的第三方C的保密信道 那么C就可以为A和B选取密钥后安全地发送给A和B 如果A和B都在可信赖的第三方C发布自己的公开密钥 那么他们用彼此的公开密钥进行保密通信 密钥分配中心KDC 2 对称密码技术的密钥分配方案 1 集中式密钥分配方案 下图就是具有密钥分配中心的密钥分配方案 图中假定A和B分别与KDC有一个共享的密钥Ka和Kb A希望与B建立一个逻辑连接 并且需要一次性会话密钥来保护经过这个连接传输的数据 具体过程如下 A KDC IDA IDB N1 A向KDC发出会话密钥请求 请求的消息由两个数据项组成 一是A和B的身份IDA和IDB 二是本次业务的唯一标识符N1 每次请求所用的N1都应不同 常用一个时间戳 一个计数器或一个随机数作为这个标识符 为防止攻击者对N1的猜测 用随机数作为这个标识符最合适 具有密钥分配中心的密钥分配方案 KDC A EKa Ks IDA IDB N1 EKb Ks IDA KDC对A的请求发出应答 应答是由加密Ka加密的信息 因此只有A才能成功地对这一信息解密 并A相信信息的确是由KDC发出的 A B EKb Ks IDA A收到KDC响应的信息后 同时将会话密钥Ks存储起来 同时将经过KDC与B的共享密钥加密过的信息传送给B B收到后 得到会话密钥Ks 并从IDA可知对方是A 而且还丛EKb知道Ks确实来自KDC 由于A转发的是加密后密文 所以转发过程不会被窃听 B A EKs N4 B用会话密钥加密另一个随机数N4 并将加密结果发送给A 并告诉A B当前是可以通信的 A B EKs f N4 A响应B发送的信息N4 并对N4进行某种函数变换 如f函数 同时用会话密钥Ks进行加密 发送给B 实际上在第 步已经完成了密钥的分配 第 两步结合第 步执行的是认证功能 使B能够确认所收到的信息不是一个重放 3分布式密钥分配方案 分布式密钥分配方案是指网络通信中各个通信方具有相同的地位 它们之间的密钥分配取决于它们之间的协商 不手受何其他方的限制 这种密钥分配方案要求有n个通信方的网络需要保存 n n 1 4 个主密钥 对于较大型的网络 这种方案是不适用的 但是在一个小型网络或一个大型网络的局部范围内 这中方案还是有用的 如果采用分布式密钥分配方案 通信双方A和B建立会话密钥的过程包括以下过程 见下页图所示 分布式密钥分配方案 A B IDA N1 A向B发出一个要求会话密钥的请求 内容包括A的标识符IDA和一个一次性随机数N1 告知A希望与B通信 并请B产生一个会话密钥用于安全通信 B A EMKm Ks IDA IDB f N1 N4 B使用与A共享的主密钥MKm对应答的信息进行加密并发送给A 应答的信息包括B产生的会话密钥Ks A的标识符IDA B的标识符IDB f N1 和一个一次性随机数N4 A B EKs f N4 A使用B产生的会话密钥Ks对f N4 进行加密 并发送给B 3 非对称密码技术的密钥分配方案 1 公钥的分配 非对称密码技术的密钥分配方案主要包括两方面的内容 非对称密码技术所用的公钥的分配和利用非对称密码技术来分配对称密码技术中使用的密钥 获取公钥的途径有多种 包括公开发布 公用目录 公钥机构和公钥证书 公开发布 是指用户将自己的公钥发送给另外另外一个参与者 或者把公钥广播给相关人群 这种方法有一个非常大的缺点 任何人都可以伪造一个公钥冒充他人 公用目录 是由一个可信任的系统或组织建立和管理维护公用目录 该公用目录维持一个公开动态目录 公用目录为每个参与者维护一个目录项 标识符 公钥 每个目录项的信息必须进行安全认证 任何人都可以从这里获得需要保密通信的公钥 与公开发布公钥相比 这种方法的安全性高一些 但也有一个致命的弱点 如果攻击者成功地得到目录管理机构的私钥 就可以伪造公钥 并发送给给其他人达到欺骗的目的 公钥机构 为更严格控制公钥从目录分配出去的公钥更加安全 为此需要引入一个公钥管理机构来为各个用户建立 维护和控制动态的公用目录 与单纯的公用目录相比 该方法的安全性更高 但这种方式也有它的缺点 由于每个用户要想和其他人通信都需求助于公钥管理机构 因而管理机构可能会成为系统的瓶颈 而且由管理机构维护的公用目录也容易被攻击者攻击 公钥证书 是在不与公钥管理机构通信 又能证明其他通信方的公钥的可信度 实际上完全解决了公开发布及公用目录的安全问题 采用公钥证书是为了解决公开密钥管理机构的瓶颈问题 公钥证书即数字证书是由授权中心CA CertificateAuthority 颁发的 证书的形式为CA ESKCA T IDA PKA 其中IDA是用户A的身份标识符 PKA是A的公钥 T是当前时间戳 SKCA是CA的私钥 公钥证书的发放 产生 过程如下图所示 用户还可以把自己的公钥通过公钥证书发给另一用户 接收方使用CA的公钥PKCA对证书加以验证 DPKCA ESKCA T IDA PKA T IDA PKA 4 利用非对称密码技术进行对称密码技术密钥的分配 常用的有以下两种 简单分配 下图就是用非对称密码技术建立会话密钥的过程 但这一分配方案容易遭到主动攻击 假如攻击者已经接入A和B双方的通信信道 可以轻易地截获A B双方的通信 用非对称密码技术建立会话密钥 具有保密和认证功能的密钥分配 针对简单分配密钥的缺点 人们又设计了具有保密和认证功能的非对称密码技术的密钥分配 如下图所示 密钥分配过程既具有保密性 又具有认证性 因此既可以防止被动攻击 也可以防止主动攻击 具有保密和认证功能的密钥分配 2密钥管理技术 密钥管理涉及密钥的生成 使用 存储 备份 恢复以及销毁等 涵盖了密钥的整个生存周期 1 密钥的生成 密钥长度足够长也是保证保证安全通信的必要条件之一 决定密钥长度需要考虑多方面的因素 数据价值有多大 数据要多长的安全期 攻击者的资源情况怎样 应该注意到 计算机的计算能力和加密算法的发展也是密钥长度的重要因素 密钥的生成一般与生成的算法有关 大部分密钥生成算法采用随机或伪随机过程来产生随机密钥 2 密钥的使用 密钥的使用是指从存储介质上获得密钥进行加密和解密的技术活动 3 密钥的存储 密钥的存储分为无介质 记录介质和物理介质等几种 密钥备份是指在密钥使用期内 存储一个受保护的拷贝 用于恢复遭到破坏的密钥 密钥的恢复是指当一个密钥要由于某种原因被破坏了 在还没有被泄露出去以前 从它的一个备份重新得到密钥的过程 密钥的备份与恢复保证了即使密钥丢失 由该密钥加密保护的信息也能够恢复 密钥托管技术就能够满足这种需求的一种有效的技术 4 密钥的备份与恢复 密钥必须定期更换 更换密钥后原来的密钥必须销毁 密钥不再使用时 该密钥的的所有拷贝都必须删除 生成或构造该密钥的所有信息也应该被全部删除 5 密钥的销毁 3密钥托管技术 密钥托管技术是通过一个防窜扰的托管加密芯片 Clipper芯片 来实现 该技术包括两个主要的核心内容 1 密钥托管技术简介 1 Skipjack加密算法 是由NSA设计的 用于加解密用户之间通信的信息 它是一个对称密钥分组加密算法 密钥长为80bits 输入和输出分组长度为64bits 该算法的实现方式采用供DES使用的联邦信息处理标准 FIPS 81 中定义的4种实现方式 2 LEAF LawEnforcementAccessField 法律实施访问域 通过这个访问域 法律实施部门可以在法律授权的情况下 实现对用户之间通信的监听 解密或无密钥 这也看成是一个 后门 密钥托管技术具体实施时有3个主要环节 生产托管Clipper芯片 用芯片加密通信和无密钥存取 2 密钥托管密码技术的组成 密钥托管密码技术在逻辑上分为3个主要的模块 如下图所示 USC UserSecurityComponent 用户安全模块 KEC KeyEscrowComponent 密钥托管模块 和DRC DataRecoveryComponent 数据恢复模块 这些逻辑模块是密切相关的 对其中的一个设计将影响着其他模块 这几个模块的相互关系 USC用密钥K加密明文 并且在传送的同时传送一个数据恢复域DRF DataRecoveryField DRC则从KEC提供的和DRF中包含的信息中恢复出密钥K来解密密文 密钥托管密码技术的组成 数据恢复密钥主要由以下内容组成 密钥选项 密钥分割 密钥的产生和分配 密钥托管时间 密钥更新 密钥的全部和部分 密钥存储 KEC在向DRC提供诸如托管的密钥等服务时 服务包括如下部分 授权过程 对操作或使用DRC的用户进行身份认证和对访问加密数据的授权证明 提供的服务有 l传送数据恢复密钥 主密钥不提供 l传送派生密钥l解密密钥 数据传输 KEC和DRC之间的数据传输可以是人工的也可以是电子的 3 DRC 由算法 协议和设备组成 DRC利用KEC所提供的和在DRF中包含的信息中恢复出数据加密密钥 进而解密密文 得到明文 仅仅在执行指定的已授权的数据恢复时使用 4 7 数字签名及其原理 1 数字签名的原理 数字签名的基本原理 过程 实际上完整的数字签名过程 包括从发方发送信息到收方安全的接收到信息 包括签名和签别两个过程 1 签名 假设通信双方A和B 设A为发方 B为收方 发方A用其私钥SKA和解密算法D对信息进行签名 将结果DSKA M 传给接收方B B用已知的A的公钥PKA和加密算法E得出EPKA DSKA M M 由于私钥SKA只有A知道 所以除了A外无人能产生密文DSKA M 这样信息就被A签名了 2 签别 假若A要抵赖曾发送信息M给B B可将M及DSKA M 出示给第三方 仲裁方 第三方很容易用PKA去证实A确实发送M给B了 反之 若B伪造M 则B不敢在第三方面前出示DSKA M 这样就证明B伪造了信息 实现数字签名也同时实现了对信息来源的签别 但是 对传送的信息M本身却未保密 保密性的数字签名 由于使用公钥密码技术对信息进行加密速度非常慢 如果对发送的整个信息进行加密来实现签名是非常耗时的 因此密码学家研究出了一种办法来快速生成代表发方的消息的简短的 独特的信息摘要 也称为 数字指纹 这个摘要可以被加密并作为发方的数字签名 产生消息摘要的快速加密算法称为单向散列函数 2 数字签名的步骤 1 使用单向散列算法对原始信息进行计算 得到一个固定长度的信息摘要 MessageDigest 实际上是一个固定长度的字符串 4 发送方用自己的私钥加密生成的信息摘要 生成发送方的数字签名 3 发送方把这个数字签名作为要发送信息的附件和明文信息一同用接收方的公钥进行加密 将加密后的密文一同发送给接收方 4 接收方首先把接收到的密文用自己的私钥解密 得到明文信息和数字签名 再用发方的公钥对数字签名进行解密 随后使用相同的单向散列函数来计算解密得到的明文信息 得到信息摘要 如果计算出来的信息摘要和发方发送给他的信息摘要 通过解密数字签名得到的 是相同的 这样接收方就能确认数字签名确实是发送方的 否则就认为收到的信息是伪造的或中途被篡改的 3 数字签名的分类 直接方式的数字签名和具有仲裁方式的数字签名 1 直接方式的数字签名直接方式的数字签名只有通信双方参与 并假定接收一方知道发方的公钥 数字签名的形成方式可以用发方的私钥加密信息 直接方式的数字签名有一公共弱点 即方案的有效性取决于发方密钥的安全性 4 具有仲裁方式的数字签名具有仲裁方式的数字签名也有很多实现方案 这些方案都按以下方式运行 发方A对发往收方B的信息签名后 将信息及其签名先发给仲裁者C C对信息及其签名验证完成后 再连同一个表示已通过验证的指令一起发往收方B 此时由于C的存在 A无法对自己发出的信息予以否认 在这种方式中 仲裁者起着重要的作用并应取得所有用户的信任 3数字签名标准与算法 1 产生两个大素数p和q 4 计算这两个素数的乘积n pq 3 计算小于n并且与n互素整数个数 即欧拉函数 n p 1 q 1 4 选取一个随机数满足1 b n 并且b和 n 互素 即gcd b n 1 5 计算a b 1mod n 6 公开n和b 而保密a p和q 1 基于公钥密码技术 RSA 的数字签名算法 RSA数字签名方案可以描述如下 签名 信息m的签名sig m 通过sig m h m amodn来生成 其中h m 为生成的信息摘要 它由信息m通过密码学中的单向散列或杂凑函数 如SHA或MD5 得到 验证 验证算法ver m y 以信息m和签名y为输入 定义为 ver m y 真 TRUE h m yb modn 验证算法使用了签名者的公钥 所以任何人都可以验证一个签名 然而由于签名需要签名者的私钥 故只有签名者本人才能产生有效的签名 1 p是素数满足4L 1 p 4L 其中 L是64的倍数 4 q是一个160bit的素数并且能够整除p 1 3 g h p 1 qmodp 其中h是任意满足1 h p 1的整数 并且使得h p 1 qmodp 1 4 b gamodp 其中a是随机或者伪随机生成的整数且满足0 a q 5 k是随机或者伪随机生成的整数且满足0 k q 2 数字签名标准算法 DSA DSA签名方案描述如下 签名 把p q g和b公开而保密a和k 对每一次签名都应该生成一个新的k值 对于给定的k 信息m的签名定义为 sig m k y s 其中 y gkmodp modq s k 1 SHA m ay modq 杂凑函数SHA 这里不做讨论 用于把可变长的信息m转变为一个160bit的信息摘要 然后用数字签名方案对它进行签名 验证 设ver m y s 是验证算法 它以上述定义的信息m和y s为输入 签名的验证过程通过下面的计算式来完成 d1 SHA m s 1modq d4 y s 1modq ver m y s 真 TRUE gd1bd4 modp modq y信息m的签名是有效的当且仅当ver m y s 的输出为真 如果ver m y s 的输出为假 则说明或者信息m被篡改 或者该签名不是签名者的合法签名 专用数字签名方案 1 盲签名方案 BlindSignatureScheme 盲签名方案的工作原理 用户A有信息m要求用户B签署 但又不能让B知道关于信息m的任何一点信息 设 n e 是B公钥 n d 是他的私钥 A用安全通信软件生成一个与n互质的随机数r 将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论