加密算法在固态硬盘中的应用
或许还有很多人不知道,存储在固态硬盘闪存内的数据都是经过加密的。包括东芝TR200在内的众多固态硬盘都具备AES加密引擎。密码学这种高大上的知识和固态硬盘都有哪些交集呢?
AES全盘加密:
支持AES加密的SATA固态硬盘可以通过设置ATA密码,来开启全盘加密功能。
加密后的固态硬盘在开机时需要输入正确的ATA密码才能完成解锁,并正常访问其中存储的数据。在开机后的使用过程中,写入和读取的数据都会经过固态硬盘主控实时加密和解密,并且这一过程由硬件完成加速,不会影响硬盘效率。
SE安全擦除:
很多人都没有使用过ATA加密自己的硬盘,但此时硬盘内依然有一套默认密钥在起作用。在执行Security Erase操作时,会自动生成并替换新的密钥。由于密钥的改变,原有存储在硬盘内的数据就无法再被正确读取出来,起到了安全抹除的作用。下图是东芝SSD Utility工具箱软件中的安全抹除功能界面。
Advanced Secure Erase还会同时抹除所有闪存单元,使得数据没有被恢复出来的可能。
通过加密实现数据随机化:
众多固态硬盘纷纷支持AES加密还有另外一层原因:闪存在写入时需要尽可能地避免连续的重复数据。重复的0或1会增大闪存单元之间的干扰,不利于固态硬盘的稳定工作。
而加密就是一个非常简单的数据随机化方式,完全相同的一串字符在加密之后也会变得面目全非,成为非连续重复的内容:
更深入的了解加密算法:
前边我们多次提到了AES加密,AES是一种对称加密算法,在加密和解密过程中使用同一个密钥。
根据密钥长度的不同,AES加密包括AES128和AES256等。
对称加密算法只要知道密钥,就能解密数据,对于本地加密解密来说是够用了,但对于需要对外传输的数据来说,密钥的安全传递就成了难题。所以就有了非对称加密技术的出现。
非对称加密算法在加密和解密过程中使用了两个密钥。公钥只用作加密,而加密后的内容需要用私钥才能解开。
很多电子银行动态密码器就使用了非对称密钥的算法,如RSA算法。我们可以把密码器的序列号看成是可以对外公开的公钥,而私钥则是银行系统内保密的。使用公钥对当前日期/时间进行加密,生成数字形式的动态口令。银行使用私钥解密用户输入的动态口令,如果与当前时间吻合,说明动态口令正确有效。
固态硬盘当中可以使用非对称加密来进行固件升级阶段的校验,确保只有正确的固件能够被刷入到固态硬盘当中。这样就能避免被篡改有恶意代码的固件通过升级进入到固态硬盘当中,进而威胁计算机信息安全。下图是使用东芝SSD Utility工具箱为TR200固态硬盘升级固件。
除了对称与非对称加密算法之外,还有一类摘要算法,典型的代表如大家熟悉的MD5。固态硬盘可利用该算法校验固件的完整性、存储在NAND闪存种的FTL等元数据完整性。
以上就是对固态硬盘与加密算法的介绍,希望能够对大家理解固态硬盘工作原理提供一些有益的帮助。