密钥加密技术和数字签名
一.密钥加密技术
密钥加密技术是为了保证在开放式环境中网络传输的安全而提供的加密服务。通常大量使用的两种密钥加密技术是:私用密钥(对称加密)和公共密钥(非对称加密)。
a.对称加密
对称加密:简单来说(也叫私钥加密)指加密和解密使用相同密钥的加密算法。
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:
(1).交易双方都使用同样钥匙,安全性得不到保证。
(2).此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。而与公开密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。
具体算法:主要有DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。基于“对称密钥”的加密算法主要有DES、TripleDES(3DES)、RC2、RC4、RC5和Blowfish等。
b.非对称加密
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
(1).实现机密信息交换基本过程:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。
(2).非对称加密(公钥加密):指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。
假设A用B的公钥加密消息,用A的私钥签名,B接到消息后,首先用A的公钥验证签名,确认后用自己的私钥解密消息。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得 十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以通过数字签名确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。最重要的是可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。
具体算法:主要有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。
二.数字签名
1.数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
2.原理:数字签名的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不可否认性)。
简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。数字签名标准 DSS 中使用的签名算法 DSA 是基于 ElGamal 和 Schnorr 两个方案而设计的 。
3.主要功能:网络的安全,主要是网络信息安全,需要取相应的安全技术措施,提供适合的安全服务。数字签名机制作为保障网络信息安全的手段之一,可以解决伪造、抵赖、冒充和篡改问题。数字签名的目的之一就是在网络环境中代替传统的手工签字与印章,有着重要作用:
(1)防冒充(伪造)。私有密钥只有签名者自己知道,所以其他人不可能构造出正确的。
(2)可鉴别身份。由于传统的手工签名一般是双方直接见面的,身份自可一清二楚。在网络环境中,接收方必须能够鉴别发送方所宣称的身份。
(3)防篡改(防破坏信息的完整性)。对于传统的手工签字,假如要签署一份200页的合同,是仅仅在合同末尾签名呢?还是对每一页都签名?如果仅在合同末尾签名,对方会不偷换其中的几页? 而对于数字签名,签名与原有文件已经形成了一个混合的整体数据,不可能被篡改,从而保证了数据的完整性。
(4)防重放。如在日常生活中,A向B借了钱,同时写了一张借条给B,当A还钱的候,肯定要向B索回他写的借条撕毁,不然,恐怕他会再次用借条要求A还钱。在数字名中,如果采用了对签名报文添加流水号、时间戳等技术,可以防止重放攻击。
(5)防抵赖。如前所述,数字签名可以鉴别身份,不可能冒充伪造,那么,只要保好签名的报文,就好似保存好了手工签署的合同文本,也就是保留了证据,签名者就无法抵赖。那如果接收者确已收到对方的签名报文,却抵赖没有收到呢? 要预防接收者的抵赖。在数字签名体制中,要求接收者返回一个自己签名的表示收到的报文,给对方或者第三方或者引入第三方机制。如此操作,双方均不可抵赖。
(6)机密性(保密性)。有了机密性保证,截收攻击也就失效了。手工签字的文件(如同文本)是不具备保密性的,文件一旦丢失,其中的信息就极可能泄露。数字签名可以加密要签名的消息,当然,如果签名的报名不要求机密性,也可以不用加密。
保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者用自己的公钥解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
数字签名是个加密的过程,数字签名验证是个解密的过程。
数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、接收者的公钥、接收者的私钥。
在我国大陆,数字签名是具法律效力的,正在被普遍使用。2000年,中华人民共和国的新《合同法》首次确认了电子合同、电子签名的法律效力。2005年4月1日起,中华人民共和国首部《电子签名法》正式实施。
我所见过的数字签名:
部分内容参考百度百科
密钥加密技术和数字签名相关推荐
- http --- 密码、密钥、对称(公开)密钥加密系统、数字签名、数字证书的一些概念
密码(cipher) // 密码是一套编码方案和使用相应解码方式的结合体 // *明文:使用密码加密之前的称为明文 // *密文:使用密码进行加密的称为密文 最初的密码是相当简单的,很容易就可以破解, ...
- 网络安全技术——加密技术、数字签名技术
点击上方"蓝字"关注我们吧 很早之前总结过一篇<密码学基础简介 举个栗子 假如有用户A与用户B想进行数据交换,A要通过网络发送一段文字给B,那我们如何保证数据在传输的过程中是 ...
- RSA加密解密及数字签名Java实现--转
RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院 ...
- Microsoft CryptoAPI加密技术(一)
http://www.vckbase.com/index.php/wv/716.html 在这个信息爆炸的时代,我们不得不对信息的安全提高警惕.加密作为保障数据信息安全的一种方式,越来越受到人们的关注 ...
- Microsoft CryptoAPI加密技术(二)
原文:http://www.vckbase.com/index.php/wv/717.html 上次我们讲了Microsoft CryptoAPI的构成以及会话密钥的使用.接下来我们将看一下公私密钥对 ...
- 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别
目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...
- Microsoft CryptoAPI加密技术
Microsoft CryptoAPI加密技术 在这个信息爆炸的时代,我们不得不对信息的安全提高警惕.加密作为保障数据信息安全的一种方式,越来越受到人们的关注. 下面,我将把自己对Microsoft ...
- 面向医疗应用场景的区块链与可搜索加密技术
原文来自:Chen et al. - 2019 - Blockchain based searchable encryption for electronic health record sharin ...
- [转]加密技术在企业数据安全中的应用
在园子外看到一篇好文章,收藏. 随着大型企业管理软件的发展,其应用越来越广泛,企业数据平台涉及局域网.广域网.Internet等,在各类系统中保存的企业关键数据量也越来越大,许多数据需要保存数十年以上 ...
最新文章
- MIT学神、「太极」作者胡渊鸣送你一门计算机图形学课程
- Mat对象与它各种用法
- python:数组/列表(remove()函数、append()函数、sort()函数、reverse()函数)
- 三菱触摸屏通讯错误_三菱触摸屏常见问题及故障汇总
- 编写函数实现员工信息录入和输出_编写我的第一个Linux 内核模块“hello_module”...
- SpringAMQP--WorkQueue模型
- 伺服电机停的时候会冲一下_造成伺服电机抖动的原因竟然是它!内附解决方法...
- excel支持python吗_没有 Python,微软宣布 Excel 新增 JavaScript 支持
- docker 安装 mysql 并映射数据库存放路径及配置文件
- json字符串,JSON对象,JSON数组的区别与相互转换
- “章子欣父亲”账号发文造假实锤 百度新闻负责人:是我的锅
- python uwsgi_uwsgi的多站点配置
- jquery常用遍历循环处理
- 银河麒麟arm64位操作系统卸载jdk及安装jdk
- css设置html背景颜色代码,CSS背景颜色
- wamp中mysql 5.7.28无法在win10中开启的处理。
- 白平衡一直标定不准的原因是什么?
- 视频是新时代的文本,微信也不得不认了!
- 42个自我提升的实用技巧
- 网络指标含义解释( 吞吐量 反应时间 延时 抖动 丢包)