博文
密码学基础(1)-前言
密码学基础(2)-基础知识介绍
密码学基础(3)-数字摘要hash的介绍
密码学基础(4)-aes和分组密码的介绍
密码学基础(5)-RSA的介绍
密码学基础(6)-混合密码系统
密码学基础(7)-国产密码算法(国密算法sm2/sm3/sm4)介绍
…
公钥密码学标准(Public Key Cryptography Standards, PKCS)
X.509证书的介绍
CA证书概念介绍
…
可信平台模块(TPM)概念介绍
…
为社么要写这一系列博文?
本渣原来是做驱动的,一个偶然的机会进入到了Trustzone/TEE行业,也就是所谓着终端安全行业。在安全行业有太多的知识要学习,很多知识、原理、技术也都串在了一起,如果不了解底层的基础原理,业务层的框架和设计理解起来就非常的痛苦。在做安全的这几年,“加密、解密、算法、签名、验签…”着一些列的词汇一直伴随着左右,但每次都懵懵懂懂,然后就下定决心补一补基本课。然后就真的以为自己会了吗? 那么为啥再精读一些密码学算法书籍时还会有收获呢?
所以从今天开始,就想再一次的打一打基础,当然是以为总结性为主,以做为一名嵌入式软件工程师的视角来总结(科班出身的请绕道哈)…
例如如下,都是工作中可能遇到的算法,所以需要尽可能的掌握吧
Hashes
- MD5
- SHA-1,
- SHA-224, SHA-256, SHA-384, SHA-512
- SHA3-224, SHA3-256, SHA3-384, SHA3-512
- SHAKE128, SHAKE256
- SM3
Symmetric ciphers- AES - ECB, CBC, CTR, XTS, CCM, GCM
- DES - ECB, CBC
- SM4
Asymmetric Signatures- RSASSA - MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512
- DSA - SHA-1, SHA-224, SHA-256
- ECDSA – P-192, P-224, P-256, P-384, P-521
- ECDSA – BSI-P160, BSI-P192, BSI-P224, BSI-P256, BSI-P384, BSI-P512
- ECDSA – Ed25519ph, Ed25519ctx, Ed25519, Ed448, Ed448ph
- SM2
MACs- HMAC - MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512 —基于密钥的消息认证码 Hash-based message authentication code
- AES – CBC, CMAC –基于对称秘钥分组加密算法的消息认证码
Cipher Block Chaining-Message Authentication Code
- DES – CBC, CMAC
Secret Agreement (derive)- DH
- ECDH P-192, ECDH P-224, ECDH P-256, ECDH P-384, ECDH P-512
- ECDH BSI-P160r1, ECDH BSI-P192r1, ECDH BSI-P224r1, ECDH BSI-P256r1, ECDH BSI-P384r1, ECDH BSI-P512r1
- ECDH BSI-P160t1, ECDH BSI-P192t1, ECDH BSI-P224t1, ECDH BSI-P256t1, ECDH BSI-P384t1, ECDH BSI-P512t1
- X25519, X448, HKDF
Asymmetric Ciphers- RSA
- RSAES PKCS1
- RSAES OAEP SHA-1, RSAES OAEP SHA-224, RSAES OAEP SHA-256, RSAES OAEP SHA-384, RSAES OAEP SHA-512
- Secret Agreement (derive)
DRBG- HASH DRBG SHA-256
我要总结什么?
- 了解最基本的基础知识或背景知识,如什么是openssl、mbedtls
- 常用的密码学算法,如aes,hash,rsa,ECC,国密,证书…
- 了解Optee中支持的算法,如何实现的
- 了解Keymaster中提供的算法
- pkcs#11等标准
- Linux Kernel Crypto API
- Crypto Engine的实现
- ARM Cryptography Extension
- 实战:基于密码学的一些业务的设计
- 工具的使用、工具的制作
…