一些关于加密相关的术语,记录之。

未分类术语

1
2
3
4
5
6
7
8
Base64 -- 一种基于64个可打印字符来表示二进制数据的方法。3个字节可由4个可打印字符来表示。
在Base64中的可打印字符包括:字母A-Z、a-z、数字0-9,共62个;另外两个可打印符号在不同的系统中而不同。

OID -- Object Identifier,对象标识符;通俗地讲,OID就是网络通信中对象的身份证。由ISO/IEC、ITU共同提出的标识机制,
OID标识方案为分层、树状结构,不同层次之间用“.”分隔,层数无限制。用于对任何类型的对象进行全球无歧义、唯一命名。


MAC -- Message Authentication Code,消息鉴别码

OID:

image-20220409171230039

OID查询网址:http://oid-info.com/basic-search.htm

分组加密工作模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
EBC -- Electronic Code Book, 电码本模式;最简单的加密模式。
需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。
本方法的缺点在于同样的明文块会被加密成相同的密文块;因此,它不能很好的隐藏数据模式。

CBC -- Cipher Block Chaining, 密码分组链式模式;最常用的加密模式。
每个明文块先与前一个密文块进行异或后,再进行加密。
每个密文块都依赖于它前面的所有明文块,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。
主要缺点在于加密过程是串行的,无法被并行化,而且消息必须被填充到块大小的整数倍。

CFB -- Ciphertext Feedback, 密文反馈模式;
类似于CBC,可以将块密码变为自同步的流密码;工作过程亦非常相似,CFB的解密过程几乎就是颠倒的CBC的加密过程。
CFB拥有一些CBC所不具备的特性,这些特性与OFB和CTR的流模式相似:只需要使用块密码进行加密操作,且消息无需进行填充。

OFB -- Output Feedback, 输出反馈模式;
产生密钥流的块,然后将其与明文块进行异或,得到密文。由于XOR操作的对称性,加密和解密操作是完全相同的。

ECB:

image-20220409161634482

CBC:

image-20220409161721485

CFB:

image-20220409161817867

OFB:

image-20220409162119700

REF: https://zh.wikipedia.org/wiki/%E5%88%86%E7%BB%84%E5%AF%86%E7%A0%81%E5%B7%A5%E4%BD%9C%E6%A8%A1%E5%BC%8F

证书编码格式

1
2
3
4
5
6
7
DER -- Distinguished Encoding Rules,一种二进制格式的编码,用于X.509证书;
DER文件常用的后缀:.der .cer

PEM -- Privacy Enhanced Mail,是存储、传输密码学的密钥、公开密钥证书和其他数据的文件格式的业界标准,
最常用的X.509证书格式。PEM文件通常使用的后缀有: .crt .pem .cer .key。
PEM格式是以-----BEGIN CERTIFICATE-----开始,以-----END CERTIFICATE-----结束,中间内容Base64编码。

REF: https://www.ssl.com/guide/pem-der-crt-and-cer-x-509-encodings-and-conversions/

协议接口

1
2
3
4
5
6
7
8
9
10
11
12
13
CSP -- Cryptographic Server Provider, 微软的加密应用接口,专为WIN32应用程序设计。
CryptoAPI本身不实现密码运算相关操作,而是操作系统通过调用CryptoAPI函数接口,相应的加密服务提供者函数(CSP)来实现。
CSP是通过容器来组织密钥。一个容器可以存放两个RSA密钥对,一个用于签名验证,一个用于加解密。
此外每个用户在加密对话期间还会随机产生许多会话密钥,CSP比较简单,只有23个函数。

PKCS -- Public Key Cryptography Standards,PKCS公钥密码标准,RSA实验室开发的,有跨平台的特性;
例如,PKCS11为其中的密码设备标准接口,又叫P11接口。
P11的主要概念是:令牌、会话、槽和对象。
P11没有容器概念,它对密钥数据的保存和组织主要通过对象,P11定义了三种对象类型:数据对象,证书对象和密钥对象。

SKF -- 国密标准中智能密码钥匙的C语言应用开发接口标准。
开发者可以通过统一的SKF接口开发密码应用,访问来自不同设备供应商的USB-Key、TF卡、智能卡等不同形态的密码设备,
而无需和某一个设备供应商的专属设备或专属接口绑定

PKCS接口标准:

image-20220409163347872

REF:

PKCS# 11和CSP概念技术对比

CSP、SKF、PKCS#11接口简介

公钥密码学标准

证书验证模式

1
2
3
4
5
6
7
8
9
10
11
CRL -- Certificate Revocation List,证书撤销名单。
不同的证书颁发机构会不同周期发布(小时/天/周)都有可能。这种机制就带来的问题是:
1)更新不及时,会有小时/天/周级别的延迟。
2)CRL列表包含了证书颁发机构的吊销列表,这个列表体积可能会很大,就必然会导致下载的延迟

OCSP -- Online Certificate Status Protocol,在线证书状态协议。
OCSP简单来说就是客户端访问一个OCSP的服务器地址,请求证书的撤销状态,OCSP发出相应。
这种办法可以避免CRL发布延迟和下载大的问题,但是有如下问题:
1)连接OCSP服务器可能会出问题(例如访问速度慢,或者访问失败),导致拖慢访问速度。
2)客户端向OCSP发出请求,暴露了自己访问的地址,有隐私问题。

REF:

CRL/OCSP and Lets Encrypt in China