数据加密与数字签名
一、数据加密
1.对称加密
- 采用单密钥的加密算法,我们称为**
对称加密
**。 - 整个系统由如下几部分构成:需要加密的明文、加密算法、密钥。
- 在加密和解密中,使用的密钥只有一个。
- 常见的单密钥加密算法有**
DES
、AES
、RC4
**等。
2.非对称加密
- 采用双密钥的加密算法,我们称为**
非对称加密
**。 - 整个系统由如下几个部分构成:需要加密的明文、加密算法、私钥和公钥。
- 在该系统中,私钥和公钥都可以被用作加密或者解密,但是用私钥加密的明文,必须要用对应的公钥解密,用公钥加密的明文,必须用对应的私钥解密。
- 常见的双密钥加密算法有**
RSA
**等。
3.区别与联系
- 在**
对称加密
**中,密钥不能暴露,否则在算法公开的情况下,数据等同于明文, - 而在**
非对称加密
**中,公钥是公开的,私钥是保密的。这样任何人都可以把自己的信息通过公钥和算法加密,然后发送给公钥的发布方,只有公钥发布方才能解开密文。
我们看到,在对称加密和非对称加密中,它们有一个共同的特点,即数据可以加密,也可以解密。实际上,我们还有一种加密需求,只需要加密,形成一个密文,而不需要解密,甚至极端地说,要求不可解密。这时候,可以使用**哈希算法
**等。
4.哈希算法
哈希算法是一种从任意数据中创建固定长度摘要信息的办法。一般我们要求,对于不同的数据,要求产生的摘要信息也是唯一的。
- 常见的哈希算法包括**
MD5
、SHA-1
**等。
二、数字签名
数字签名
是指用于标记数字文件拥有者、创造者、分发者身份的字符串。
数字签名拥有标记文件身份、分发的不可抵赖性等作用。
目前,常用的数字签名采用了非对称加密。例如,A 公司发布了一个可执行文件,称为Hello.exe
,A 在Hello.exe
中加入了 A 公司的数字签名。A 公司的数字签名是用 A 公司的私钥加密了Hello.exe
文件的哈希值,我们得到打过数字签名的Hello.exe
后,可以查看数字签名。
这个过程实际上是用 A 公司的公钥解密了文件哈希值,从而可以验证两个问题:Hello.exe
是否由 A 公司发布,Hello.exe
是否被篡改。
三、数字证书
假设,我们登录某银行的网站,这时候网站会提示我们下载数字证书,否则将无法正常使用网银等功能。
在我们首次使用 U 盾的时候,初始化过程即是向 U 盾中下载数字证书。那么,数字证书中包含什么呢?
数字证书中包含了银行的公钥,有了公钥之后,网银就可以用公钥加密我们提供给银行的信息,这样只有银行才能用对应的私钥得到我们的信息,确保安全。
PKI
体系
四、PKI
(Public Key Infrastructure),全称公钥基础设施,是使用_非对称加密理论,提供数字签名、加密、数字证书等服务的体系_,
一般包括权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等。
围绕PKI
体系,建立了一些权威的、公益的机构。它们提供数字证书库、密钥备份及恢复系统、证书作废系统、应用接口等具体的服务。比如,企业的数字证书,需要向认证机构申请,以确保数字证书的安全。
五、国密算法
1.密码分类
密码学中应用最为广泛的的三类算法:
对称算法
【分组密码算法】 代表分组密码算法(DES
和SM4
);非对称算法
【公钥密码算法】 代表公钥密码算法(RSA
和SM2
);杂凑算法
【摘要算法】 代表摘要算法(HAS-256系列
和SM3
);
2.国密算法
- 国密算法是由国家密码局发布,是现今最通用的商用算法
- 包含 **
SM1
、SM2
、SM3
、SM4
、SSF33
**算法。 算法区别与比较 详见参考链接!
p1 和 p7 签名的区别
P1签名
: 即裸签名,签名值中只有签名信息.p7签名
: 即签名中可以带有其他的附加信息,例如签名证书信息,签名原文信息,时间戳信息等.
参考地址
国密文档
文档下载方式:
- 国密地址: 国家标准全文公开系统
- 标准标号查询: 工标网
eg:《SM2 密码算法加密签名消息语法规范》
在全文公开系统查询到是:

在工标网上查到是:
