[转]密码技术-实现数字信封和数字签名
密码技术-实现数字信封和数字签名
转载自:http://hi.baidu.com/king0332/item/ea9b19da597aec17e1f46f5b
数字信封是公钥密码体制在实际中的一个应用,是用加密技术来保证只有规定的特定收信人才能阅读通信的内容。 在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。这种技术的安全性相当高。数字信封主要包括数字信封打包和数字信封拆解,数字信封打包是使用对方的公钥将加密密钥进行加密的过程,只有对方的私钥才能将加密后的数据(通信密钥)还原;数字信封拆解是使用私钥将加密过的数据解密的过程。
对称加密和非对称加密各有千秋。对称加密实现简单,加解密速度快,非对称加密算法牢固,容易实现数字签名,但是加解密速度稍慢,所以一般情况下,将对称加密和非对称加密结合起来应用,就可以达到良好的加密效果。典型的应用之一就是电子信封。
1、我们先引入几个符号和一个概念
M 明文信息 C 密文信息 E 加密算法 D 解密算法 Ke 公钥 Kd 私钥
H 散列串 SIGN 签名
然后再介绍一个叫做MD(message digest)消息摘要的东西
消息摘要就是通过单向散列函数(Hash函数)将信息运算为一个固定长度的散列串,不管你的文件长度是多少,经过hash函数的运算生成的散列串的长度一定是固定的大小,比如著名的md5,生成的就是128位的串。
消息摘要有什么用呢,它可以实现对文件的签名,由于不同的文件hash后得到的散列串是不一样的,所以可以用来判断文件是否被改动,比如病毒修改了某个文件,这个文件的大小虽然没有变,但是hash函数计算出来的散列串肯定是不一样的。
2、对数据进行加密,然后发送
第一步,先用设备生成一个对称密钥,然后将这个密钥用B的公钥Ke进行加密,生成密钥包Ek。
第二步,对文件用hash函数计算出H=hash(M).然后再加上时间戳t,使用B的公钥ke进行加密,生成签名SIGN。这里加上时间戳的目的是为了防止重放攻击,就是如果窃听方对窃听到的信息进行了重放,但是时间不对,我们就可以觉察到信息传送是否出现了问题。
第三步、将数字签名SIGN和文件用对称密钥进行加密,生成密文数据C。
最后,将第一步产生的密钥包Ek和密文C发送给B。
3、解密的过程
第一步,B用自己的私钥Kd解密收到的密钥包Ek,得到A使用的对称加密密钥。
第二步,用对称密钥对收到的密文C进行解密。
第三步,用hash函数计算文件的散列串,得到H1。
第四步,用私钥解密签名SIGN,得到H和时间戳。
最后,用H和H1对比,如果两者相等,则说明文件在传递的过程中没有被更改,如果时间戳标记的也正确的话,那么此次信息安全传递完成。
五、实现不可抵赖的数字签名
1、A用它自己的私钥加密信息M得到C1,然后用B的公钥加密信息C2,发送给B。
2、B收到信息后,用它的私钥解密,得到C1这样实现了第一个功能,就是确保信息只能被B正确解读,因为别人没有B的私钥,所以只有B能解密该信息。
3、得到C1后,再用A的公钥解密,得到明文信息M。这里实现了数字签名的第二个功能,因为只有使用A的公钥才能解密这个信息(C1是使用A的私钥加密 的),这样就保证了A的不可抵赖,就是说,这个信息一定是A发出的。因为用A的公钥对信息成功的进行了解密。
所以,使用非对称算法,可以成功的实现数字签名。对成算法和非对称算法结合起来应用,就可以实现文件的安全传递。
数字信封是公钥密码体制在实际中的一个应用,是用加密技术来保证只有规定的特定收信人才能阅读通信的内容。 在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。这种技术的安全性相当高。数字信封主要包括数字信封打包和数字信封拆解,数字信封打包是使用对方的公钥将加密密钥进行加密的过程,只有对方的私钥才能将加密后的数据(通信密钥)还原;数字信封拆解是使用私钥将加密过的数据解密的过程。
转载于:https://www.cnblogs.com/Crysaty/p/5844774.html
[转]密码技术-实现数字信封和数字签名相关推荐
- 数字签名 那些密码技术_密码学中的数字签名
数字签名 那些密码技术 A signature is usually used to bind signatory to the message. The digital signature is t ...
- PKI基础知识(数字信封与数字签名过程,对称密钥与非对称密钥)
1.数字信封 关于对称密码术和非对称密码:前者具有加密速度快.运行时占用资源少等特点,后者可以用于密钥交换.一般来说,并不直接使用非对称加密算法加密明文,而仅用它保护实际加密明文的对称密钥,来减少运算 ...
- 数字指纹,数字信封,数字签名,数字证书详解
思维导图 ·前言 ·对称机密 ·非对称加密 ·数字指纹 ·数字信封 ·数字签名 ·数字证书及PKI体系 前言 为保证数据在通信过程中可以被安全的传输,通常采取一系列加密的措施来对数据进行保护.常见的加 ...
- 签名证书、数字签名和数字信封
签名证书 作为文件形式存在的证书一般有这几种格式: 1.带有私钥的证书 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥 ...
- 数字信封的介绍2.0:定义,优点,原理
1.什么是数字信封? 数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法. PKCS#7中数字信封包含被加密的内容和被加密的用于加密该内容的密钥. 通常使用接收方的公钥 ...
- vc++网络安全编程范例(19)实现数字信封打包与拆解
数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法. PKCS#7中将数字信封作为术语进行定义,而在正文中对进行了如下解释:数字信封包含被加密的内容和被加密的用于加密该 ...
- 数字签名和数字信封之间的介绍
介绍 公钥密码体制在实际应用中包含数字签名和数字信封两种方式 数字签名 指用户用自己的[私钥]对原始数据的哈希摘要进行加密所得的数据.数字签名定义两种互补的运算:一个用于签名,另一个用于验证.&quo ...
- 数字签名,数字信封的基本原理
数字签名,就是通过在数据单元上附加数据,或对数据单元进行秘密变换,从而使接收者可以确认数据来源和完整性.简单说来,数字签名是防止他人对传输的文件进行破坏,以及确定发信人的身份的手段. ...
- 摘要算法与数字签名和数字信封
1.摘要算法:摘要不可逆,hash算法(散列算法),映射结果唯一,结果定长. a) 不同内容的文件生成的散列值一定不同:相同内容的文件生成的散列值一定相同.由于这个特性,摘要算法又被形象地称为文件的& ...
最新文章
- 私钥分割 — Shamir Secret Sharing
- 【Django】创建项目及框架介绍,学习笔记(一)
- Kernel Method的理解
- 超图桌面版下载、安装、使用入门
- mysql使用字符函数length,获取参数值的字节个数
- vue获取当前月最后一天_10月的最后一天,有哪些不想谈恋爱适合发朋友圈的文案?...
- Android程序中读取使用已有的SQLite数据库
- 批量查看域用户登录计算机信息
- xelatex编译时提示缺少字体
- 关于DynamipsGUI
- 恒生电子java招聘_【恒生电子工资】java开发工程师待遇-看准网
- Ubuntu20.04 linux Erlang编程----毕达哥拉斯定理
- 项目是如何死掉的?太过真实!哈哈哈~嗝~~
- 机器学习项目实战——10决策树算法之动物分类
- ASPICE SWE3之——C代码生成软件详细设计1 Doxygen配置
- 08.音频系统:第003课_Linux音频驱动程序:第001节_alsa音频驱动框架
- mybatis批量入库(springboot mybatis 批量入库)
- 图像拼接(十一):双摄像头实时拼接+stitching_detailed
- quartz与数据库相连的更新操作
- Windows统计分析进程流量工具AppNetworkCounter
热门文章
- 关于 STM32 的硬件I2C
- 关于继承方式和访问权限
- [转]SQL Server 索引基础知识(2)----聚集索引,非聚集索引
- [导入]C++ GUi 选择
- 菜鸟学C语言(五)之求定积分
- 编译QT出错 Basic XLib functionality test failed!
- LAMP介绍,Apache安装细节过程
- php pdo 封装类,php pdo封装类代码(支持事务)
- 优酷复制的html代码怎么用,关于网页上增加视频功能的代码
- 函数计算镜像加速:从分钟到秒的跨越