加解密算法分为对称算法加密和非对称算法加密。
对称算法:加解密密钥相同要求发送方和接收方在安全通信之前,商定一个密钥。所以密钥的保密性对通信的安全性至关重要。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称算法安全性高、加密速度远低于对称算法。
对称算法和非对称算法,各有各的优点,也各有缺点。随着计算机系统能力的不断发展,单独的使用某一种算法或某一类算法已不能满足实际的使用需求。所以混合加密这种方式已成为当前主流加密方案之一。取对称密码之长补公钥密码之不足,取公钥密码之长补对称密码之不足。下面简单介绍下混合加密的应用。
加密流程如下:
使用随机数生成器产生临时会话密钥tmpkey。
用临时会话密钥,将消息转换为密文C1。
使用非对称密钥的公钥加密tmpkey得到密文C2。
C1 || C2组合得到最终的密文C3。
解密流程如下:
分离出C1和C2。
使用非对称密钥的私钥解密C2得到临时会话密钥tmpkey。
用临时会话密钥tmpkey对密文C1解密得到明文消息。
混合加密中,要求会话密钥有较好的随机性;对称算法有足够的密钥长度;非对称算法也要有足够的密钥长度,满足以上条件才能使加密系统更加安全。LKT加密芯片具有真随机数发生器,可以产生随机性很高的会话密钥,还可以支持硬件非对称算法,例如RSA、SM2,对私钥和tmpkey的存储和运算过程起到良好保护作用。
对Linux的安全开发有借鉴意义
引用: 旋转木偶 发表于 2021-2-27 20:47 混合加密算法是如何实现的?
接收方生成RSA密钥对,将其中的RSA公钥传递给发送方(接收方与发送方建立连接是需要认证的,SSL/TLS协议可以确保RSA公钥的安全完整),然后用RSA公钥对AES密钥进行加密,加密后的结果传递给接收方,接收方用RSA私钥解密后,得到AES密钥,最后使用AES密钥解密,从而达到安全互通数据的目的。
引用: 陌小凯 发表于 2021-3-1 09:29 混合算法要求的对称算法密钥长度是什么补齐方式啊
可以使用通用补齐方式pkcs5,pkcs7等,也可以0填充,看你想用什么方式