密码技术-实现数字信封和数字签名

转载自: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

[转]密码技术-实现数字信封和数字签名相关推荐

  1. 数字签名 那些密码技术_密码学中的数字签名

    数字签名 那些密码技术 A signature is usually used to bind signatory to the message. The digital signature is t ...

  2. PKI基础知识(数字信封与数字签名过程,对称密钥与非对称密钥)

    1.数字信封 关于对称密码术和非对称密码:前者具有加密速度快.运行时占用资源少等特点,后者可以用于密钥交换.一般来说,并不直接使用非对称加密算法加密明文,而仅用它保护实际加密明文的对称密钥,来减少运算 ...

  3. 数字指纹,数字信封,数字签名,数字证书详解

    思维导图 ·前言 ·对称机密 ·非对称加密 ·数字指纹 ·数字信封 ·数字签名 ·数字证书及PKI体系 前言 为保证数据在通信过程中可以被安全的传输,通常采取一系列加密的措施来对数据进行保护.常见的加 ...

  4. 签名证书、数字签名和数字信封

    签名证书 作为文件形式存在的证书一般有这几种格式:   1.带有私钥的证书    由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥 ...

  5. 数字信封的介绍2.0:定义,优点,原理

    1.什么是数字信封? 数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法. PKCS#7中数字信封包含被加密的内容和被加密的用于加密该内容的密钥. 通常使用接收方的公钥 ...

  6. vc++网络安全编程范例(19)实现数字信封打包与拆解

    数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法. PKCS#7中将数字信封作为术语进行定义,而在正文中对进行了如下解释:数字信封包含被加密的内容和被加密的用于加密该 ...

  7. 数字签名和数字信封之间的介绍

    介绍 公钥密码体制在实际应用中包含数字签名和数字信封两种方式 数字签名 指用户用自己的[私钥]对原始数据的哈希摘要进行加密所得的数据.数字签名定义两种互补的运算:一个用于签名,另一个用于验证.&quo ...

  8. 数字签名,数字信封的基本原理

    数字签名,就是通过在数据单元上附加数据,或对数据单元进行秘密变换,从而使接收者可以确认数据来源和完整性.简单说来,数字签名是防止他人对传输的文件进行破坏,以及确定发信人的身份的手段.         ...

  9. 摘要算法与数字签名和数字信封

    1.摘要算法:摘要不可逆,hash算法(散列算法),映射结果唯一,结果定长. a) 不同内容的文件生成的散列值一定不同:相同内容的文件生成的散列值一定相同.由于这个特性,摘要算法又被形象地称为文件的& ...

最新文章

  1. 私钥分割 — Shamir Secret Sharing
  2. 【Django】创建项目及框架介绍,学习笔记(一)
  3. Kernel Method的理解
  4. 超图桌面版下载、安装、使用入门
  5. mysql使用字符函数length,获取参数值的字节个数
  6. vue获取当前月最后一天_10月的最后一天,有哪些不想谈恋爱适合发朋友圈的文案?...
  7. Android程序中读取使用已有的SQLite数据库
  8. 批量查看域用户登录计算机信息
  9. xelatex编译时提示缺少字体
  10. 关于DynamipsGUI
  11. 恒生电子java招聘_【恒生电子工资】java开发工程师待遇-看准网
  12. Ubuntu20.04 linux Erlang编程----毕达哥拉斯定理
  13. 项目是如何死掉的?太过真实!哈哈哈~嗝~~
  14. 机器学习项目实战——10决策树算法之动物分类
  15. ASPICE SWE3之——C代码生成软件详细设计1 Doxygen配置
  16. 08.音频系统:第003课_Linux音频驱动程序:第001节_alsa音频驱动框架
  17. mybatis批量入库(springboot mybatis 批量入库)
  18. 图像拼接(十一):双摄像头实时拼接+stitching_detailed
  19. quartz与数据库相连的更新操作
  20. Windows统计分析进程流量工具AppNetworkCounter

热门文章

  1. 关于 STM32 的硬件I2C
  2. 关于继承方式和访问权限
  3. [转]SQL Server 索引基础知识(2)----聚集索引,非聚集索引
  4. [导入]C++ GUi 选择
  5. 菜鸟学C语言(五)之求定积分
  6. 编译QT出错 Basic XLib functionality test failed!
  7. LAMP介绍,Apache安装细节过程
  8. php pdo 封装类,php pdo封装类代码(支持事务)
  9. 优酷复制的html代码怎么用,关于网页上增加视频功能的代码
  10. 函数计算镜像加速:从分钟到秒的跨越