我们需要执行一些加密操作,我想知道哪些密码库可以满足我的需求。
以下是上下文:
给定一个事实:
- 存储在 HSM 的EC私钥
- EC公钥(公共点)
- 加密AES密钥
- 用EC公共密钥ECDH计算的Mac
我们需要执行以下操作:
- 使用EC Private和EC公共键的ECKA-DH算法计算 a 共享点(k〜x〜,k〜y〜)。(请参阅BSI TR 03111)
- derive k〜enc〜和k〜mac〜使用kdf2(x,l)与SHA-256。k〜enc〜是第一个8字节输出。k〜mac〜是输出的最后8个字节。(请参阅ISO/IEC 18033-2)
- 通过对Mac ==> Mac = AES-CMAC 进行加密的AES密钥验证Mac(加密AES键|| valueA || valueA || valueb,k〜mac〜)。
- 解密加密的AES KEY ==> AES KEY = AES-CBC (加密AES键,k〜enc〜)。
哪些密码图库将有助于计算出共享点。 私钥存储在HSM中的事实?
可以与IAIK PKCS#11包装器共同使用弹性城堡?
iaik-jce iaik的商业产品可以帮助吗?
谢谢您的帮助。
最好的问候。
由于您使用的是HSM(椭圆曲线私有是在HSM上存储的),因此您可以使用HSM供应商的API执行您的加密操作。对于例如:在Safenet HSM的情况下,Gemalto在Java中提供JSP和JCPROV API等CRYSCOKI库来执行您所说的所有操作。