数据加密技术是对数据的一种保护,加密技术可以让不知道密钥的非法用户无法获得数据的实际内容。
数据加密手段主要分为两大类,即对称加密和非对称加密。两者在安全性、性能、适用场景上都有一些差异。
越难破解的加密算法就需要越大的计算量,这是一对无法调和的矛盾体。对称加密使用相同的密钥进行加密和解密,加密计算过程主要使用位运算进行加密处理,所以是一种高速的加解密算法。非对称加密使用一对公钥和私钥进行加密和解密,公钥负责加密、私钥负责解密。所以密钥通常由数据接收方创建,然后把公钥分发个数据发送方。非对称加密需要使用到大数乘法和大数取模等运算,所以计算较慢。
加密的性能也依赖于硬件支持,高级加密标准指令集(AES-IN)是Intel在2008年3月提出的x86指令集的扩展,可以用于Intel和AMD微处理器。开启硬件支持后,加解密处理速度是未开启硬件支持的3-4倍。可以使用下面的方法进行测试:
CPU是否包含AES指令集:
grep -m1 -o aes /proc/cpuinfo
使用AES指令集进行加密性能测试的结果:
openssl speed -elapsed -evp aes-256-cbc
OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-256-cbc
保险柜再安全,如果钥匙和密码丢了也会被非法者轻易破解保险柜的保护。所以密钥对于加密数据至关重要,如何保管密钥也成了一个关键问题。由于非对称密钥的特性,可以先分发公钥给对方,再由对方使用公钥加密数据。所以数据传输过程中,通常使用非对称加密的方式传递对称加密的密钥,密钥安全数据才能安全。保障密钥安全后,再对传输的数据采用对称加密。小数据量的密钥采用更安全的方式,大数据量的内容数据采用“更快速”的加密方式,这样可以在性能和安全性上找到平衡点。
加密是我们保护信息的手段,应选择已经证明安全可靠的算法并严格遵守加密流程。如果随意创造加密算法或者对数据进行多次加密处理都可能起到适得其反的效果。