(一)数字签名基础知识

一、数字加密技术

1)         单钥密码体制/对称密码体制

指加密密钥和解密密钥为同一密钥的密码体制,因此通信双方必须共同持有该密钥。

DES、AES是一种对称密码体制

2)         双钥密码体制/非对称密码体制/公开密钥密码体制

指加密密钥和解密密钥为两个不同密钥的密码体制;这两个密钥之间存在着互相依存关系,即其中任一个密钥加密的信息只能用另一个密钥进行解密。

RSA、DSA是一种公钥密码体制。

3)         总结:

对称密码和公钥密码都需要保证密钥的安全,不同之处在于密钥的管理和分发上面。在对称密码中,必须要有一种可靠的手段将加密密钥(同时也是解密密钥)告诉给解密方;而在公钥密码体制中,这是不需要的。解密方只需要保证自己的私钥的保密性即可,对于公钥,无论是对加密方而言还是对密码分析者而言都是公开的,故无需考虑采用可靠的通道进行密码分发。这使得密钥管理和密钥分发的难度大大降低了。

4)         分清概念:加密和认证

加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容。其重点在于数据的安全性。

身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。

两者的侧重点是不同的。

5)         摘要算法

摘要算法,又叫作Hash算法或散列算法,是一种将任意长度的输入浓缩成固定长度的字符串的算法(不同算法散列值长度不一样),注意是“浓缩”而不是“压缩”,因为这个过程是不可逆的。它的特点是:

a)         不同内容的文件生成的散列值一定不同;相同内容的文件生成的散列值一定相同。由于这个特性,摘要算法又被形象地称为文件的“数字指纹”。

b)         不管文件多小(例如只有一个字节)或多大(例如几百GB),生成的散列值的长度都相同。

二、数字签名与数字信封

公钥密码体制在实际应用中包含数字签名和数字信封两种方式

1)         数字签名

指用户用自己的【私钥】对原始数据的哈希摘要进行加密所得的数据。数字签名定义两种互补的运算:一个用于签名,另一个用于验证。"私钥签名,公钥验证"

签名:发送方用特殊的hash算法,由明文中产生固定长度的【摘要】,然后利用自己的私钥对形成的摘要进行加密。

验证:接受方利用发送方的公钥解密被加密的摘要得到结果A,然后对明文也进行hash操作产生摘要B.最后,把A和B作比较。此方式既可以保证发送方的身份正确性,又可以保证数据在传输过程中不会被篡改。

数字签名(Digital Signature)技术是不对称加密算法的典型应用。保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

2)         数字信封

数字信封的功能类似于普通信封。普通信封在法律的约束下保证只有收信人才能阅读信的内容;数字信封则采用密码技术保证了只有规定的接收人才能阅读信息的内容。

数字信封中采用了单钥加密体制和公钥密码体制。信息发送者首先利用随机产生的【对称密码】加密信息(因为非对称加密技术的速度比较慢),再利用接收方的【公钥】加密对称密码,被公钥加密后的对称密钥被称之为数字信封。在传递信息时,信息接收方要解密信息时,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。

数字信封既发挥了对称加密算法速度快、安全性好的优点,又发挥了非对称加密算法密钥管理方便的优点。

三、应用示例

  1. 为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名。其传送过程如下:

发送者A:

1)         A准备要传送的数字信息(明文)

2)         A对数字信息(明文)进行哈希(hash)运算,得到一信息摘要。

3)         A用自己的【私钥(SK)】对信息摘要进行加密得到A的数字签名,并将其附在数字信息上。(数字签名)

4)         A随机产生一个加密钥(DES密钥),并用此密钥对要发送的信息(明文)进行加密,形成密文。(对称加密)

5)         A用B的【公钥(PK)】对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给B。(数字信封)

接收者B:

1)         B收到A传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。

2)         B然后用DES密钥对受到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。

3)         B用A的公钥(PK)对A的数字签名进行解密,得到信息摘要。

4)         B用相同的has算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。

5)         B将收到的信息摘要和新生成的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。

作者:滴答的雨 
出处:http://www.cnblogs.com/heyuquan/

时间: 2024-10-13 22:31:45

(一)数字签名基础知识的相关文章

软考信息安全工程师基础知识考试大纲

1.信息安全基本知识 1.1信息安全概念 1.2信息安全法律法规 1.3信息安全管理基础 1.4信息安全标准化知识 1.5信息安全专业英语 2.计算机网络基础知识 2.1训算机刚络的体系结构 2.2 Internet协议 3.密码学 3.1 密码学的基本概念 3.2 分组密码 3.3序列密码 3.4 Hash函数 3.5 公钥密码体制 3.6  数字签名 3.7 认证 3.8密钥管理 4. 网络安全 4.1 网络安全的基本概念 4.2网络安全威胁 4.3 网络安全防御 4.4 无线网络安全 5.

考试备战系列--软考--02基础知识复习

这部分主要是计算机基础知识的概念介绍,相关系列文章如下所示. 考试备战系列--软考--01基础架构概念 考试备战系列--软考--02基础知识复习 考试备战系列--软考--03综合知识复习 考试备战系列--软考--04考题收集 考试备战系列--软考--05案例收集 考试备战系列--软考--06论文准备 操作系统时计算机系统的核心系统软件,其他软件均建立在其上,其分类包括:单用户操作系统和批处理操作系统.分时操作系统和实时操作系统.网络操作系统和分布式操作系统.嵌入式操作系统.其4大特征为并发性.共

SSL证书必知必会:数字证书及CA基础知识

SSL证书必知必会:数字证书及CA基础知识 数字证书 数字证书是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字***,而是身份认证机构盖在数字***上的一个章或印(或者说加在数字***上的一个签名).它是由权威机构--CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份.最简单的证书包含一个公开密钥.名称以及证书授权中心的数字签名.数字证书的一个重要的特征就是只在特

HTTP基础知识(七)

HTTP基础知识(七) 七.确保Web安全的HTTPS 1.HTTP的缺点 (1)通信使用明文(不加密),内容可能会被窃听 因为按TCP/IP协议族的工作机制,通信内容在所有的通信线路上都有可能遭受到窥视.即使已经过加密处理的通信,也会被窥视到通信内容,这点和未加密的通信时相同的.(使用抓包工具就可以获取HTTP协议的请求和响应的内容,并对其进行解析) 加密的方式: 1)通信的加密 HTTP协议可通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport La

JavaSe基础知识总结

Java基础知识总结 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. -------------------------------------------------------------------------

密码学基础知识整理

最近在研究密码学加密,签名方面的东西.经过几天的学习对一些基础知识进行一下整理 PKI:PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施,在X509标准中PKI为支持共有密钥管理并且支持认证.加密.完整性.可追究性服务的基础设施. CA:CA是 Certificate Authority首字母的缩写,翻译过来的意思是:证书认证授权机构,其主要作用是负责发放管理数字证书的具有权威性的第三方机构.CA通过证书证实他人的公钥信息,证书上有CA的签名.用户

毕向东—Java基础知识总结(超级经典)

Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. ------------------------------------------------------ 一:java概述: 19

Java基础知识总结(超级经典)

Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. —————————————————————————————————————————————————————— 一:java概述: 19

黑客术语基础知识快速了解

1.肉鸡:所谓“肉鸡”是一种很形象的比方,比方那些能够随意被我们操控的电脑,对方可所以WINDOWS体系,也可所以UNIX/LINUX体系,可所以一般的个人电脑,也可所以大型的服务器,我们能够象操作自己的电脑那样来操作它们,而不被对方所发觉. 2.木马:就是那些表面上伪装成了正常的程序,可是当这些被程序运转时,就会获取体系的整个操控权限.有很多黑客就是 热中与运用木马程序来操控别人的电脑,比方灰鸽子,黑洞,PcShare等等. 3.网页木马:表面上伪装成一般的网页文件或是将罢了的代码直接插入到正