中文 英语
18lickc新利
的意见

保护使用中的数据的内存加密方法

可用于保护存储在存储器中并从存储器中访问的数据的密码算法和模式。

受欢迎程度

在我的博客里内存加密对于保护使用中的数据的重要性,“我讨论了越来越多的行业共识,即在计算架构中整合内存加密的必要性。在本系列的第2部分中,我将探讨可用于保护存储在内存中和从内存中访问的数据的密码算法和模式,换句话说,用于保护正在使用的数据。

内存加密技术必须保证数据的保密性。如果使用“轻量级”算法,不能保证数据不会受到数学密码分析人员的保护,因为内存加密中使用的数据量通常是巨大的。众所周知,经过验证的算法是NIST批准的AES或OSCAA批准的SM4算法。

推荐的密钥长度也是定义安全强度的一个重要方面。AES提供128位、192位或256位安全性,SM4提供128位安全性。高级内存加密技术还涉及针对高端用例的完整性和协议级防重放技术。经过验证的哈希算法,如SHA-2, SHA-3, SM3或(AES-)GHASH可用于完整性保护目的。

一旦选择了一种或多种密码算法,就必须选择安全的操作模式。块密码算法需要在某些特定模式下使用,以加密大于单个128位块的批量数据。

XTS模式,代表“XEX (Xor-Encrypt-Xor) with tweak和CTS (Cipher Text Stealing)”模式(是的,它是首字母缩写的缩写)已被广泛用于磁盘加密。CTS是一种聪明的技术,它可以确保加密有效负载中的字节数与明文有效负载中的字节数相同。这在存储中特别重要,以确保加密的有效载荷可以与未加密的有效载荷放在相同的位置。

微软Windows的BitBlocker、Android的FBE(基于文件的加密)或苹果的FileVault等技术使用AES-XTS来保护数据不泄漏,即使设备从其所有者那里被物理窃取。XTS模式已被证明能够在存储介质(静态数据)中保护大型随机可寻址和频繁更新的内存。

除了磁盘加密之外,XTS还提供了一种非常好的加密系统内存的方法。它已被用于英特尔TME/MKTME(总内存加密/多密钥TME)技术,它也兼容Arm CCA内存加密标准要求。

在现代cpu中,大多数读/写操作都是从/到LLC(最后一级缓存)。存取DRAM以32字节或64字节块处理。因此,在大多数情况下,填充和CTS模式(对于不是块密码块大小的精确倍数的数据,最常见的是128位)是不需要的,这意味着XEX模式在大多数情况下可以处理内存加密。

XTS/XEX模式使用多个密钥(例如Key1和Key2)。内存系统将有不同的数据块一起处理,很像磁盘存储系统。内存通常使用“分页系统”。页面中的内存位置将具有相同的访问权限,可能还具有相同的加密密钥。

为了确保页面中的每个扇区以不同的方式处理,XTS模式使用两个密钥,一个密钥用于块加密,另一个密钥用于处理“调整”。这一调整确保每个内存块都以不同的方式加密。明文中的任何改变都会导致密文的完全改变。通过这种实现,攻击者无法获得关于明文的任何信息。“已知明文攻击”或翻转位攻击不能应用于采用XEX/XTS模式保护的系统。

作为安全IP的领先提供商,Rambus是帮助SoC和FPGA制造商在其产品中部署内存加密技术的专家。在本系列的最后一篇博客中,我将介绍处理器和加速器芯片中内存加密实例化的设计和实现挑战。

额外的资源:



留下回复


(注:此名称将公开显示)

Baidu