哈希游戏- 哈希游戏平台- 哈希游戏官方网站
德 州 学 院 学 报 Journal of Dezhou University 第 23 卷第 4 期 2007 年 8 月 Vol . 23 , No. 4 A ug . ,2007 Ha sh 函数在数字签名中的应用 潘东静 ,武 兵 (德州学院计算机系 , 山东德州 253023) 摘 要 : 介绍了将单向散列函数同公开密钥相结合实现数字签名的技术 ,并给出了计算 Ha sh 函数的一种算 法 ,以及选取 Ha sh 函数重点要注意的问题 . 关键词 : Ha sh 函数 ; 数字签名 ; 公开密钥 ; 碰撞 中图分类号 : T P3091 7 文章编号 : 100429444 (2007) 0420057203 文献标识码 : A 在网络得到快速发展和应用的现代社会 ,人们 越来越重视网络上信息的安全问题 ,必须采取十分 可靠的安全技术来保证信息的机密性 、完整性 、身份 鉴别和不可伪造性. 在进行数据通信时 ,一方面需要 保密 ,接收方 B 需要对发送方 A 的身份和接收到的 信息 C 进行鉴别 ,以确认 C 确实是 A 发送且在传输 过程中是完整的 ;另一方面又要允许授权的第三方 可以获得通信双方的秘密信息 . 为了满足这种要求 , 产生了数字签名和信息认证技术 . 如下 1 (1) 秘密地选取两个大素数 p 和 q1 (2) 计算 n = p 3 q ,φ( n) = (p - 1) ( q - 1) ,其中 φ( n) 是 n 的欧拉函数值 1 (3) 选择整数 e ,满足 1 e φ( n) ,且 e 与φ( n) 互质 1 (4) 解方程 d 3 e = 1 mo d φ( n) ,计算 d1 这样 ,得到公开密钥 { e , n } , 私 有密 钥 { d , n} , e 为加密密钥 ,d 为解密密钥 . (5) 对每个明文分组 m , m 小于 n ,加解密过程 为 加密 :c = me mo d n 解密 : m = cd mo d n R SA 的安全性是基于对大整数分解的困难性 这一假设 ,这一假设在数学上至今未找到有效的解 决方法 ,从而有加密密钥推不出解密密钥 ,一般选取 的素数 p 和 q 的位数达 200 以上 ,攻击者在有限的 时间内很难破译密文 ,因此 , R SA 在计算上是安全 的 . 1 公开密钥加密体制 公开密钥加密体制通过使用一对密钥 ( 公钥和 私钥) ,再采用一些数学上的加解密算法 ,可以为网 络上的数据提供良好的安全保证 ,它的主要特点是 将加密和解密能力分开 ,每个用户保存着一对密钥 , 这两个密钥紧密相关 ,用其中的一个密钥加密的信 息 ,只能用另一个密钥解密 ,并且从其中的一个很难 推断出另一个 . 例如 , Alice 要发给 Bo b 一条信息 , 只需要用 Bo b 的公开密钥对信息进行加密 ,传递给 Bo b ,Bo b 收到 Alice 发送的加密信息后 , 用自己的 私有密钥进行解密 ,即可看到 Alice 发送的信息 ,即 使加密后的信息被人窃取 ,都没办法解密 ,只有拥有 正确的私钥的人才能解密. 公开密钥的最大优点是便于密钥管理 ,但其加 密算法复杂 ,目前最常用的是 RSA 算法 . R SA 算法 是建立在素数理论的欧拉定理基础之上. 算法描述 2 单向散列函数 ( Ha s h 函数) 散列函数 ( Ha sh) 是一种将任意长度的消息压 缩到某一固定长度的消息摘要的函数 ,当输入任意 长度的消息或文件 x 时 ,使用相应的散列函数 ,可以 很容易地输出一个固定长度的消息摘要 H ( x) ( 至 少应为 128 比特长) . 单向 Ha sh 函数的安全性是它 收稿日期 : 2007203210 作者简介 : 潘东静 (19702) ,女 ,山东齐河人 ,副教授 ,硕士 ,主要从事操作系统 、管理信息系统和数据库方面的研究 . 三个步骤即可 1 (1) A 用其私钥 S KA 加密文件 ,这便 程 1 (2) A 将加密的文件送到 B1 的单向性 . 对单向 Ha sh 函数的要求是 (1) 已知 Ha sh 函数的输出 ,求它的输入是困难 的 ,即已知 c = Ha sh ( m) ,求 m 是困难的 ,这表现了 函数的单向性. (2) 已知 m ,计算 Ha sh ( m) 是容易的 ,这表现了 函数的快速性. (3) 已知 Ha sh ( m1 ) = c1 ,构造 m2 使 Ha sh ( m2 ) = c1 是困难的. 这是函数的抗碰撞性 . (4) c = Ha sh ( m) ,c 的每一比特都与 m 的每一 比特有关 ,并有高度敏感性 . 即每改变 m 的一比特 , 都将对 c 产生明显影响 ,这是函数的雪崩性 . 有统计计 算 结 果 表 明 , 如 Ha sh ( m) 的 长 度 为 128 位 ( bit ) 时 ,则任意两个分别为 M1 、M2 的输入报 文具有完全相同的 Ha sh ( m) 的概率为 10 - 24 ,接近 于零的重复概率. 当取 Ha sh ( m) 为 384 ( bit ) 乃至 1 024 ( bit ) 时 ,则更不大可能重复 . (3) B 用 A 的公钥 P KA 解开 A 送来的 由于 S KA 只有发送方拥有 ,因此发送 认自己的签名 , P KA 是公开的 , 不能实现 保密 ,因此可以用发送方的私钥签名后 ,再 的公钥加密 . 为了实现信息的完整性 ,验证信息是 过 ,就可以采用单向散列函数和公开密钥 数字签名方法 . 过程如图 1 所示 . (1) 发送方 A 用 Ha sh 函数对发送信 次变换 ,生成一个消息摘要 . (2) 用 A 的私钥对这个消息摘要进行 成 A 的数字签名 . (3) 将信息和加密后消息摘要一起发 方 B . (4) 接收方 B 用 A 的公钥对数字签名 消息摘要 . 3 数字签名技术 利用数字签名 ,通信双方可以彼此之间进行身 份认证 ,并在通信过程中保证信息的完整性和不可 否认性. 数字签名可以用公开密钥实现 ,一个基本的 数字签名过程如下 1 假设 A 要发送一个电子文件给 B , A 具有自己 的公钥 P KA 和私钥 S KA , A 、B 双方只需经过下面 (5) 对收到的信息进行同样的 Ha sh 函 得到一个消息摘要. (6) 比较两个消息摘要 ,如果相同 ,则 在传输过程中未加修改 ,签名有效. 图 1 具有 Ha sh 函数的消息签名 单 向 Ha sh 函 数的 概 念是 公开 密 钥 密 码 的 核 心 . 单向函数的概念是计算起来相对容易 ,但求逆却 非常困难 . 也就是说 ,已知 x ,很容易计算 f ( x) . 但已 知 f ( x) ,却难于计算出 x . 打碎盘子就是一个很好的 盘子 ,却是非常困难的事情 . 但如果严格地 义 ,不能证明单向函数的存在性 ,即使这样 很多函数看起来和感觉像单向函数 : 能够 算它们 ,且至今还不知道有什么办法能容 第 4 期 潘东静 ,等 : Ha sh 函数在数字签名中的应用 59 设明文信息 M = M1 M2 M3 M K ,秘密地选取 到人们的重视 ,未来的加密 、生成和验证数字签名的 工具需要进一步完善 ,支持数字签名是 We b 发展的 目标 ,本文探讨了将单向 Ha sh 函数同公开密钥结 合实现数字签名来确保数据的保密性 、完整性和不 可否认性 . 未来数字签名有关的复杂认证能力就像 现在操作 、应用环境中的口令保护一样直接做进操 作系统环境及一些远程访问产品 、信息传递系统中 , 随着 Int er net 的 快速 发 展 及 算 法 的 不 断 改 进 和 完 善 ,数字签名的前景会越来越广阔. 素数 p 和 q ,按 R SA 算法选取至少 512 比特的整数 n = p 3 q ,然后任选 64 比特的整数 h0 ,计算 Ha sh 函 数如下 1 Be gi n h = h0 ; fo r i = 1 to i = k do h = ( h + Mi ) 2 mo dn ;/ 的二进制加法运算 3 / Ha sh ( M) = h ; End. Ha sh 签名不属 于强 计 算密 集型 算 法 , 应 用 较 广泛. 很多少量现金付款系统 ,如 D EC 的 Millice nt 和 Cybe r Ca sh 的 Cyber Coi n 等都使用 Ha sh 签名 . 使用较快的算法 ,可以降低服务器资源的消耗 ,减轻 中央服务器的负荷. 如果两个输入串的 Ha sh 函数的值一样 , 则称 这两个串是一个碰撞 ( Colli sio n) . 因为是把任意长 度的字符串变成固定长度的字符串 ,所以 ,碰撞是必 然存在的 . 攻击 Ha sh 函数的方法就是设法在有限 的时间内找到碰撞 ,目前一些单向 Ha sh 函数有面 临破解的危险 ,因此寻找更安全的 Ha sh 函数算法 是至关重要的. 3 这里的 + 表示不进位 参考文献 : [ 1 ] 苏德富 ,钟诚 . 计算机算法设计 与分析 [ M ] . 北京 :电 子 工业出版社 ,2001 . [ 2 ] Willia m Stallings. 密码 编码 学 与 网 络 安 全 原 理 与 实 践 (第 2 版) [ M ] . 北京 :电子工业出版社 ,2001 . [ 3 ] 汤子瀛 ,哲凤屏 ,汤小丹 . 计算机操作系统 [ M ] . 西安 :西 安电子科技大学出版社 ,2005 . [ 4 ] 张峻 . 基于数字签名技术的财务管理系统 [ J ] . 微型电脑 应用 ,2006 ,22 (8) . [ 5 ] 何希平 ,朱庆生 . 基于混沌映射 的 Ha sh 函数及其在身 份认证中的应用 [J ] . 计算机应用 ,2006 ,26 (5) . 4 结束语 数字签名作为电子商务的应用技术 ,越来越受 Appl icat ion of Ha sh Funct ion in Digital Signature PA N Do ng - ji ng , WU Bi ng (Dep a rt me nt of Co mp ut er , Dezho u U nive r sit y , Dezho u Sha ndo ng 253023 , Chi na) Abstract :