一种数字签名系统的设计与实现.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种数字签名系统的设计与实现

2007 年 4 月湖南学院学报Apr. ,2007第 28 卷第 2 期Journal ofXiangnan UniversityVol. 28 No. 2一种数字签名系统的设计与实现郑光明 , 韩青敏(湖南理工学院 计算机系 , 湖南 岳阳 414006)摘 要 : 研究并实现了一种数字签名系统 ,它将需传送的文件利用 MD5 算法来抽取摘要信息 ,利用 RSA 公开密钥算法在摘要信息上实施签名 ,并将该数字签名连同原电子文件传送给接收方 , 接收方在收到已经实施签名的文件后 , 可用 公钥来验证该信息确实是由发送方传送. 该系统可以满足一般数字签名要求.关键词 : 数字签名 ; 文件安全 ; MD5 ; RSA中图分类号 : TP391文献标识码 : A文章编号 :1672 - 8173 (2007) 02 - 0077 - 051引言1. 1数字签名随着计算机与网络应用的日益普及 , 解决计算机文件的安全问题也随之日趋紧迫. 对文件进行加密只解 决了传送信息的必威体育官网网址问题 , 而防止他人对传输的文件进行破坏 , 以及如何确定发信人的身份还需要采取其它 的手段 , 这一手段就是数字签名 ( Digital Signatures) [1~5 ] . 数字签名技术是保证信息传输的必威体育官网网址性 、数据交换的 完整性 、发送信息的不可否认性 、交易者身份的确定性的一种有效的解决方案 , 是电子商务安全性的重要部 分.1. 2数字签名的实施实现数字签名有很多方法 , 但大体的工作流程是一样的. 用户首先可以下载或者购买数字签名软件 , 然后 安装在个人电脑上. 在产生密钥对后 , 软件自动向外界传送公开密钥. 由于公开密钥的存储需要 , 所以需要建 立一个认证中心来完成个人信息及其密钥的鉴定工作. 认证中心可以是一个政府参与管理的第三方成员 , 以 便保证信息的安全和集中管理. 用户在获取公开密钥时 , 首先要向认证中心请求数字认证 , 认证中心确认用户 身份后 , 发出数字认证 , 同时认证中心向数据库发送确认信息. 然后用户使用私有密钥对所传信息签名 , 保证 信息的完整性 、真实性 , 也使发送方无法否认信息的发送 , 之后发向接收方 ; 接收方接收到信息后 , 使用公开密 钥确认数字签名 , 进入数据库检查用户确认信息的状况和可信度 ; 最后数据库向接收方返回用户确认状态信 息.2相关算法2. 1MD5 算法MD5 是 Ron Rivest 设计的单向散列函数[6 ] , MD 表示消息摘要 ( Message Digest) , 对输入消息 , 算法产生 128位散列值 , MD5 是 MD4 的改进版 , 它比 MD4 更复杂 , 但设计思想相似.MD5 算法以 512 位分组来处理输入文本 , 每一分组又划分为 16 个 32 位子分组. 算法的输出由 4 个 32 位分 组组成 , 将它们级联形成一个 128 位散列值[7~9 ] .首先填充消息使其长度恰好为一个比 512 的倍数仅小 64 位的数. 填充方法是附一个 1 在消息后面 , 后面接所要求的 1 个或多个 0 , 然后在其后付上 64 位的消息长度. 这两步的作用是使消息长度恰好是 512 位的整数倍收稿日期 :2007 - 01 - 14作者简介 :郑光明 (1973 - ) ,男 ,湖南岳阳人 ,湖南理工学院计算机系讲师 ,硕士 ,研究方向 :数据库系统与信息安全.(算法的其余部分要求如此) , 同时确保不同的消息在填充后不同.四个 32 位变量初始化为 : A = 0 B = 0 x89 abcdef C = 0 xfedcba98 D = 0 它们称为链接 变量. 接着进行算法的主循环. 循环的次数是消息中 512 位消息分组的数目. 将上面四个变量复制到另外的变 量中 : A 到 a , B 到 b , C 到 c , D 到 d. 主循环有四轮[12~15 ] , 每轮很相似. 每一轮进行 16 次操作. 每次操作对 a , b , c 和 d 中的其中三个作一次非线性函数运算 , 然后将所得结果加上第四个变量 , 文本的一个子分组和一个 常数. 再将所得结果向右循环移一个不定的数 , 并加上 a , b , c 或 d 中之一. 最后用该结果取代 a , b , c 或 d 中 之一. 以下是每次操作中用到的四个非线性函数 (每轮一个) .F( X , Y , Z)=( X ∧ Y) ( ( -X)∨ Z)G( X , Y , Z) = ( X ∧ Z) ∨ ( Y ∧ ( - Z) ) H( X , Y , Z)= X ? Y ? ZI

您可能关注的文档

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档