Skip to content

Commit

Permalink
1
Browse files Browse the repository at this point in the history
  • Loading branch information
YiRanCN committed Apr 18, 2024
1 parent 871cf75 commit ba6fe7d
Show file tree
Hide file tree
Showing 7 changed files with 299 additions and 225 deletions.
13 changes: 13 additions & 0 deletions docs/study/encryption/ASN.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# ASN.1

抽象语法标记、

包含编码规则,如下

ASN.1 取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER) -X.209 、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和 XML编码规则(XER)。这些编码规则描述了如何对 ASN.1 中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。ASN.1 的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输 — 在无线宽带中,这是一种优势。1984年,ASN.1 就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。

简洁的二进制编码规则(BER、CER、DER、PER,但不包括 XER)可当作更现代 XML 的替代。然而,ASN.1 支持对数据的语义进行描述,所以它是比 XML 更为高级的语言。

### 参考

- [百度百科](https://baike.baidu.com/item/ASN.1/498523?fr=ge_ala)
79 changes: 40 additions & 39 deletions docs/study/encryption/index.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,40 @@
# 加解密

### 加密和解密

加密是以某种特定的算法,改变原有的数据信息,使得未授权的用户即使获得了加密后的数据,但因不知解密的方法(确切的说是不知道密钥),仍然无法了解其信息内容。而解密则是加密的逆过程。

### 明文和密文

我们称尚未加密的数据为明文,通过固定算法加密后的数据为密文。

### 加密的密钥

密钥是一种参数,它是在明文转换为密文或密文转换为明文时算法的输入参数。可以理解成密码的钥匙。

### 对称与非对称

#### 对称加密

对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。

它的最大优势是加/解密速度快,适用于大数据量进行加密,缺点是密钥管理困难,最典型的问题就是如何同步这个密钥,同步过程如果在公网上,不进行加密是可以抓包拿到的,那么这里就遇到了要对密钥加密的问题。

常见的对称加密算法有 AES、DES、Blowfish 等等。

对称加密的核心是只有一把密钥。

#### 非对称加密

非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。

非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。

最有名的非对称加密算法当属 RSA 了,本文将对 RSA 算法的加/解密过程进行详细剖析。

非对称加密拥有两把密钥。

### 参考

- [WIKI-彩虹表](https://zh.wikipedia.org/wiki/%E5%BD%A9%E8%99%B9%E8%A1%A8)
# 加解密

### 加密和解密

加密是以某种特定的算法,改变原有的数据信息,使得未授权的用户即使获得了加密后的数据,但因不知解密的方法(确切的说是不知道密钥),仍然无法了解其信息内容。而解密则是加密的逆过程。

### 明文和密文

我们称尚未加密的数据为明文,通过固定算法加密后的数据为密文。

### 加密的密钥

密钥是一种参数,它是在明文转换为密文或密文转换为明文时算法的输入参数。可以理解成密码的钥匙。

### 对称与非对称

#### 对称加密

对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。

它的最大优势是加/解密速度快,适用于大数据量进行加密,缺点是密钥管理困难,最典型的问题就是如何同步这个密钥,同步过程如果在公网上,不进行加密是可以抓包拿到的,那么这里就遇到了要对密钥加密的问题。

常见的对称加密算法有 AES、DES、Blowfish 等等。

对称加密的核心是只有一把密钥。

#### 非对称加密

非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。

非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。

最有名的非对称加密算法当属 RSA 了,本文将对 RSA 算法的加/解密过程进行详细剖析。

非对称加密拥有两把密钥。

### 参考

- [WIKI-彩虹表](https://zh.wikipedia.org/wiki/%E5%BD%A9%E8%99%B9%E8%A1%A8)
- [http://gmssl.org/](http://gmssl.org/)
117 changes: 59 additions & 58 deletions docs/study/encryption/中国商用密码算法.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,59 @@
### 简介

商用密码技术,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。

商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。比如:商用密码可用于企业内部的各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容;也可用于各种安全认证、网上银行、数字签名等。

对称密码又可分为分组密码和序列(流)密码

SM4 算法是 SM 系列算法中使用最为广泛的密码算法。

### SM1 商密 1 号

- 对称加密,分组加密
- 亦称 SCB2 算法
- **_不公开_**,仅以 IP 核的形式存在于芯片中
- 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
- 替换 AES,分组长度和密钥长度都为 128 比特

### SM2

- 公钥加密,基于椭圆曲线
- 替换 RSA
- **_公开_** [国家密码管理局-该算法文档](https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002386.shtml)
- 目前支持 SM2 算法的产品已达 1000 余款,广泛应用于电子政务、移动办公、电子商务、移动支付、电子证书等基础设施、云服务等领域。

### SM3

- 哈希算法
- **_公开_**[国家密码管理局-该算法文档](https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml)
- 该算法已成为我国电子签名类密码系统、计算机安全登录系统、计算机安全通信系统、数字证书、 网络安全基础设施、安全云计算平台与大数据等领域信息安全的基础技术。

### SMS4

- 对称加密
- **_公开_** [国家密码管理局-该算法文档](http://www.sca.gov.cn/sca/c100061/201611/1002423/files/330480f731f64e1ea75138211ea0dc27.pdf)

SMS4 算法,是一个分组算法,分组长度和密钥长度均为 128 比特,加密算法与密钥扩展算法都采用 32 轮非线性迭代结构,最初作为无线局域网专用密码算法发布,后成为分组密码算法行业标准。目前支持 SMS4 算法的产品已达 700 余款,覆盖了各种有对称加密需求的应用。由于 SMS4 算法最初用于无线局域网芯片 WAPI 协议中,支持 SMS4 算法的 WAPI 无线局域网芯片已超过 350 多个型号,全球累计出 货量超过 70 亿颗。在金融领域,仅统计支持 SMS4 算法的智能密码钥匙出货量已超过 1.5 亿支。此外,SMS4 算法已被纳人可信计算组织(TCG)发布的可信平台模块库规范(TPIM2.0)中。

### SM7

- 对称加密
- **_不公开_**

SM7 适用于非接触式 IC 卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。

### SM9

- 标识密码算法
- **_公开_**
- SM9 是一种基于身份标识的公钥密码算法,也被称为标识密码,采用 256 比特的椭圆曲线。

SM9 算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保密保障,如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。

### 祖冲&ZUC 算法

- 流密码
- 主要用于通信领域
- 该算法速度快,常用于移动通信 4G 网络。
### 简介

商用密码技术,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。

商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。比如:商用密码可用于企业内部的各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容;也可用于各种安全认证、网上银行、数字签名等。

对称密码又可分为分组密码和序列(流)密码

SM4 算法是 SM 系列算法中使用最为广泛的密码算法。

### SM1 商密 1 号

- 对称加密,分组加密
- 亦称 SCB2 算法
- **_不公开_**,仅以 IP 核的形式存在于芯片中
- 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
- 替换 AES,分组长度和密钥长度都为 128 比特

### SM2

- 公钥加密,基于椭圆曲线
- 替换 RSA
- **_公开_** [国家密码管理局-该算法文档](https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002386.shtml)
- 目前支持 SM2 算法的产品已达 1000 余款,广泛应用于电子政务、移动办公、电子商务、移动支付、电子证书等基础设施、云服务等领域。
- SM2默认曲线算法 sm2p256v1

### SM3

- 哈希算法
- **_公开_**[国家密码管理局-该算法文档](https://sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml)
- 该算法已成为我国电子签名类密码系统、计算机安全登录系统、计算机安全通信系统、数字证书、 网络安全基础设施、安全云计算平台与大数据等领域信息安全的基础技术。

### SMS4

- 对称加密
- **_公开_** [国家密码管理局-该算法文档](http://www.sca.gov.cn/sca/c100061/201611/1002423/files/330480f731f64e1ea75138211ea0dc27.pdf)

SMS4 算法,是一个分组算法,分组长度和密钥长度均为 128 比特,加密算法与密钥扩展算法都采用 32 轮非线性迭代结构,最初作为无线局域网专用密码算法发布,后成为分组密码算法行业标准。目前支持 SMS4 算法的产品已达 700 余款,覆盖了各种有对称加密需求的应用。由于 SMS4 算法最初用于无线局域网芯片 WAPI 协议中,支持 SMS4 算法的 WAPI 无线局域网芯片已超过 350 多个型号,全球累计出 货量超过 70 亿颗。在金融领域,仅统计支持 SMS4 算法的智能密码钥匙出货量已超过 1.5 亿支。此外,SMS4 算法已被纳人可信计算组织(TCG)发布的可信平台模块库规范(TPIM2.0)中。

### SM7

- 对称加密
- **_不公开_**

SM7 适用于非接触式 IC 卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。

### SM9

- 标识密码算法
- **_公开_**
- SM9 是一种基于身份标识的公钥密码算法,也被称为标识密码,采用 256 比特的椭圆曲线。

SM9 算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保密保障,如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。

### 祖冲&ZUC 算法

- 流密码
- 主要用于通信领域
- 该算法速度快,常用于移动通信 4G 网络。
20 changes: 20 additions & 0 deletions docs/study/encryption/数字证书.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。



### pfx证书转pem和key

要将PFX格式的证书转换为PEM格式,并且提取出私钥,可以使用OpenSSL工具。

```shell
# 执行以下命令将PFX证书转换为PEM格式:
openssl pkcs12 -in your_certificate.pfx -nodes -out certificate.pem
# 执行以下命令从PEM文件中提取私钥:
openssl rsa -in certificate.pem -out private_key.key
```


### 参考

- [博客园-常见数字证书类型](https://www.cnblogs.com/xq1314/p/7987216.html)
- [博客园-openssl实现公私钥证书生成及转换](https://www.cnblogs.com/xq1314/p/8080598.html)
8 changes: 8 additions & 0 deletions docs/study/other/标准名称缩写.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### 国内标准


- GB/T:中国的国家的推荐标准,国标
- GM/T:中国密码行业的推荐标准,国密
- GA/T:中国公共安全行业的推荐标准,国安

[中华人民共和国密码行业标准(GM/T)文本](https://github.com/guanzhi/GM-Standards)
Loading

0 comments on commit ba6fe7d

Please sign in to comment.