CS Abbreviations

Python

Language Features

  • UCD: Unicode Character Database
  • FFI: Foreign Function Interface

Cryptography Toolkit

  • KDF: Key Derivation Function(密钥导出函数)。KDF是一种将输入(通常是密码或密钥)转换为固定长度的密钥的算法。KDF通常用于生成加密密钥、初始化向量或其他密码学材料。通过使用KDF,可以确保从简单的输入(如用户密码)生成足够强度和随机性的密钥。
  • PKCS: Public Key Cryptography Standards(公钥密码学标准)。PKCS是由RSA数据安全公司(现为RSA安全)开发的一系列密码学标准,用于定义公钥密码学中使用的各种算法、格式和协议。PKCS标准为公钥基础设施(PKI)和安全通信提供了一套实践指南。PKCS的主要背景和目的是促进公钥密码学的广泛应用,通过提供一组实践指南来确保不同系统之间的互操作性和安全性。以下是PKCS系列中的一些主要标准:
    • PKCS #1:RSA加密标准。该标准定义了RSA公钥加密算法的实现细节,包括加密、解密、签名和验证等操作。
    • PKCS #3:Diffie-Hellman密钥交换协议。该标准描述了用于安全密钥交换的Diffie-Hellman算法的实现。
    • PKCS #5:密码基准(Password-Based Cryptography Specification Version 2.0)。该标准描述了基于密码的加密和密钥导出算法。PKCS#5为密码加密和密钥导出提供了一套明确的规范和建议。该标准定义了如何使用密码生成密钥,如何使用盐和迭代次数来提高安全性。PKCS#5包括两种基于密码的密钥导出函数:PBKDF1和PBKDF2。这些函数被用于将密码转换为固定长度的密钥,以便用于加密或其他密码学应用。它还定义了基于密码的加密方案,如使用PBKDF2生成的密钥与加密算法(如DES、3DES或AES)的组合。这些方案规定了如何使用密码和其他参数(如盐和初始化向量)对数据进行加密和解密。
    • PKCS #7:加密消息语法(Cryptographic Message Syntax)。这是一种用于加密和签名消息的通用格式,可以在多种场景中使用,如电子邮件、文档等。
    • PKCS #8:私钥信息语法标准。这个标准定义了私钥的结构和编码格式,以便在不同系统和应用程序之间交换私钥。
    • PKCS #10:证书请求语法。该标准描述了证书请求的格式,用户可以使用此格式向证书颁发机构(CA)申请数字证书。
    • PKCS #11:密码设备接口(Cryptographic Token Interface)。这是一种用于访问硬件安全模块(HSM)和智能卡的通用API,它允许不同应用程序与这些设备进行安全交互。
    • PKCS #12:个人信息交换语法。这个标准定义了一种用于存储和传输个人证书、私钥和相关信息的安全容器格式。
  • PBKDF1: Password-Based Key Derivation Function 1(基于密码的密钥导出函数1)。PBKDF1是一种基于密码的KDF,用于将密码转换为固定长度的密钥。PBKDF1通过对密码、盐和迭代次数执行单向哈希函数(如MD2、MD5或SHA-1),生成最终密钥。然而,PBKDF1存在一些限制,如输出密钥长度的限制,因此在现代应用中已经很少使用。
  • PBKDF2: Password-Based Key Derivation Function 2(基于密码的密钥导出函数2)。PBKDF2是PBKDF1的改进版本,用于将密码转换为固定长度的密钥。PBKDF2通过对密码、盐和迭代次数执行伪随机函数(PRF),生成最终密钥。与PBKDF1相比,PBKDF2提供了更好的安全性和灵活性。它被广泛应用于各种密码学应用,如加密和哈希密码存储。
  • HKDF: HMAC-based Key Derivation Function(基于HMAC的密钥导出函数)。HKDF是一种KDF,利用了HMAC(Hash-based Message Authentication Code)作为伪随机函数。HKDF分为两个阶段:Extract阶段和Expand阶段。在Extract阶段,HKDF从输入密钥材料(IKM)中提取一个固定长度的密钥。在Expand阶段,HKDF使用HMAC对提取的密钥、上下文信息和指定长度进行多轮运算,生成所需长度的密钥。HKDF在一些安全协议和应用中被用作密钥生成和密钥协商的工具。
  • AEAD: Authenticated Encryption with Associated Data, 是一种提供关联数据认证加密的密码模式。它的主要功能是在加密和解密数据的同时,对关联数据进行完整性验证和认证。这样,在传输过程中,接收方可以确保密文既没有被篡改,也没有被窃听。AEAD模式的一个典型应用场景是在保护网络协议(如TLS)中的数据传输。
  • AES: Advanced Encryption Standard, 是一种对称加密算法,用于加密和解密数据。AES本身不包括身份验证和完整性检查。
    • 可以将AESAEAD模式结合使用,如AES-GCM(AES加密使用Galois/Counter Mode)或者AES-CCM(AES加密使用Counter with CBC-MAC),这样可以同时提供加密和数据认证。

附录

相关链接