概述
此處參考NIST的加密標準和準則(CSRC)文件,當中的加密需求最佳指南。
參考資料
-libsodium-(Github)
-OpenSSL-(Github)
建議使用帶有Curve25519的橢圓曲線密碼演算法(ECC/ECDH)(用於簽名和密鑰交換)
建議
-
TLS密碼組件
建議密碼組件均應與 >= TLS 1.2版本
不建議使用SSL 3.0或以下版本
TLS密碼套件:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CCM
- TLS_ECDHE_ECDSA_WITH_AES_256_CCM
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_CCM_SHA256
-
雜湊演算法
- 常見雜湊演算法
- .Net雜湊演算法
- 符合FIPS要求
- SHA512Cng
- SHA384Cng
- SHA256Cng
- SHA512CryptoServiceProvider
- SHA256CryptoServiceProvider
- SHA384CryptoServiceProvider
- 不符合FIPS要求
- SHA512Managed
- SHA384Managed
- SHA256Managed
-
隨機數生成器(RNG)
- CNG:BCryptGenRandom:
BCRYPT_USE_SYSTEM_PREFERRED_RNG
- CAPI:
cryptGenRandom
- Win32/64:RtlGenRandom:
BCryptGenRandom、CryptGenRandom)
SystemPrng(.Net Core)
- .NET:
RNGCryptoServiceProvider
RNGCng
- Windows:
Windows.Security.Cryptography.CryptographicBuffer.GenerateRandom、GenerateRandomNumber
- OS X:
int SecRandomCopyBytes(SecRandomRef random, size_t count, int8_t bytes)
- Java:
java.security.SecureRandom。
-
參考資料