【网络技术】(5)身份认证技术与访问控制------数字签名技术

概念及功能

	数字签名是指用户用私钥对原始数据进行加密得到的特殊字符串,用于保证数据来源的真实性、数据传输的完整性和防抵赖性。

法律上签名的两个功能:
1)标识签名人
2)表示签名人对文件内容的任可

我国普遍使用的电子签名技术是基于PKI的数字签名技术
数字签名算法组成:签名算法和验证算法

数字签名的过程: 甲首先使用他的密钥对消息进行签名得到加密的文件,然后将文件发给乙,最后乙用甲的公钥验证甲的签名的合法性。
数字签名的功能:

	 1.签名是可信的。文件的接收者相信签名者是慎重的在文件上签名的。
	 2.签名不可抵赖。 发送者事后不能抵赖对报文的签名。签名不可伪造
	 3.签名不可伪造。签名可以证明是签名者而不是其他人在文件上签字。
	 4.签名不可重用。签名是文件的一部分,不可以将签名移到其他文件上。
	 5. 签名不可变更。签名和文件不能改变,签名和文件也不可分离。
	 6. 数字签名有一定的处理速度,能够满足所有的应用需求。

数字签名的种类

  • 手写签名或图章的识别

  • 生物识别技术

     生物识别系统对生物特征进行取样,提取其唯一的特征进行
     数字化处理,转换为数字代码,并进一步将这些代码组成特
     征模板存于数据库中。
    
  • 密码、密码代号或个人识别码

  • 基于量子力学的计算机

  • 基于PKI的电子签名
    - PKI提供多种网上安全服务,如:
    - 认证、数据保密性、数据完整性和不可否认性

数字签名的过程及实现

技术实现过程包括:

		 网上身份认证、进行签名和对签名的认证。

身份认证的实现:单向认证和双向认证
数字签名过程:

 - 签名过程:
 -发送方首先生成被签名的电子文件,然后对电
 子文件用哈希算法做数字摘要,再对数字摘要用
 签名私钥进行加密得到数字签名,然后将签名和数字
 摘要以及签名证书的公钥一起封装发送给接收方。

验证过程:
- 接收方收到的结果包括:数字签名、电子原文和发送方公钥,接收方首先用发送发公钥解密数字签名,得到数字摘要,并对电子文件原文用同样哈希算法得到一个新的数字摘要,将两个摘要的哈希值进行比较,结果相同签名得到验证,否则签名无效。
如果接收方对签名验证成功,可以说明三个问题:

1.该电子文件确实由签名者的发送方所发出的。
2.被签名的电子文件确实是经发送方签名后发送的。
3.接收方收到的电子文件在传输中没有被修改,保持了数据的完整性。

原文保密的数字签名的实现方法:

	对原文进行加密的数字签名方法的实现涉及
	“数字信封”的问题。对原文进行哈希运算得
	到数字摘要,发送方用自己的私钥对摘要进
	行加密,得到数字签名。发送方用对称密钥
	对电子原文、数字签名及自己的公钥加密
	,得到加密信息E,发送方用接收方的公钥
	对对称密钥进行加密,形成数字信封,发送方将加密信息和数字信封一起发送给接收方。

	接收方先用自己的私钥解密数字信封得到对称密钥,然后用对称密钥解密得到原文,数字签名和发送方的公钥,然后用公钥解密得到数字签名,用同样的哈希算法对原文哈希,得到一个新的摘要,对两个摘要进行对比。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字签名标准(DSS)的研究与实现 1. 引言 5 2.数论基础 6 2.1 基本定义 6 2.2 散对数问题 7 3.数字签名标准DSS 9 3.1 DSA算法描述 9 3.1.1 DSA算法参数 9 3.1.2 DSA签名过程 9 3.1.3 DSA签名验证 10 3.2 DSA算法证明 10 3.3 DSA算法变形 11 3.3.1 Yen和Laih的改进方法1 12 3.3.2 Yen和Laih的改进方法2 12 3.3.3 Naccache的改进方法 12 4. DSS参数产生 13 4.1 DSA素数产生 13 4.1.1 Miller-Rabin概率素性检验算法 13 4.1.2 DSA素数产生算法 14 4.1.3 任意长度素数生成算法 16 4.2 DSA的随机数产生算法 16 4.2.1 产生m个DSA私钥的算法 16 4.2.2 产生m个DSA每消息密钥数的算法 17 4.2.3 SHA-1构造函数G(t,c) 17 4.2.4 利用SHA-1构造任意长度随机数 18 4.3 DSA其他参数的产生 18 4.3.1 产生DSA的g算法 18 4.3.2 计算 的算法 19 4.3.3 SHA-1算法 19 5. 数字签名标准DSS的Java实现 24 5.1 DSA素数产生的Java实现 27 5.1.1 Miller-Rabin概率素性检验算法的Java实现 27 5.1.2 DSA素数产生算法的Java实现 28 5.1.3 任意长度素数生成算法 30 5.2 DSA随机数产生算法的Java实现 31 5.2.1 产生m个DSA私钥的算法的Java实现 31 5.2.2 产生m个DSA每消息秘密数的算法的Java实现 32 5.2.3 利用SHA-1构造单向函数G(t,c)算法的Java实现 33 5.2.4 利用SHA-1构造任意长度随机数的Java实现 34 5.3 DSA其他参数产生算法的Java实现 35 5.3.1 生成DSA的g算法的Java实现 35 5.3.2 计算 算法的Java实现 36 5.3.3 生成DSA公钥的Java实现 36 5.3.4 求模幂 的Java实现 37 5.3.5 SHA-1的Java实现 38 5.4 本文Java实现的数字签名标准(DSS)测试 38 5.4.1 本文Java实现的DSS签名测试 38 5.4.2本文Java实现的SHA-1测试 39 5.4.3本文Java实现的其他参数测试 40 6. DSS数字签名应用 41 结束语 42 致谢 43 参考文献 44

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值