本申请涉及保护内存中的敏感数据。
背景技术:
1、对敏感数据(例如密码、私钥等)进行操作的计算过程通常以加密形式从内存中获取敏感数据。为了使敏感数据可用,计算过程解密数据并将解密过程的结果存储在内存中的缓冲区中。当敏感数据以明文形式存储在内存缓冲区中时,潜在的攻击者只需执行一次内存转储即可检索整个解密的敏感数据。然后,攻击者只需找到敏感数据在内存中的开始位置,即可从内存缓冲区中逐字节读取。
技术实现思路
1、本发明的实施例提出了一种方法,包括:确定由第一内存缓冲区消耗的第一内存空间量,所述第一内存缓冲区包括要被解密以供计算过程使用的加密数据;在第二内存缓冲区中分配第二内存空间量,所述第二内存空间量大于由所述第一内存缓冲区消耗的第一内存空间量;用随机数据填充所述第二内存空间量;设置指向所述第二内存缓冲区的固定内存位置的指针;解密驻留在所述第一内存缓冲区中的数据元素;并且调用硬件元件来实现迭代过程,以:至少部分基于迭代值输入生成唯一化身值;并且将解密的数据元素写入所述第二内存缓冲区中对应于固定内存地址加上所述唯一化身值的地址。
2、还提出了相应的装置。
1.一种方法,包括:
2.根据权利要求1所述的方法,其中所述第二内存空间量是所述第一内存空间量的倍数。
3.根据权利要求1所述的方法,其中所述第二内存缓冲区的固定内存位置对应于所述第二内存缓冲区的开始位置。
4.根据权利要求1所述的方法,其中所述唯一化身值基于包括以下内容的输入:
5.根据权利要求1所述的方法,其中重复所述迭代过程,直到所述第一内存缓冲区中的加密数据已经被解密并写入所述第二内存缓冲区。
6.根据权利要求1所述的方法,其中所述迭代过程在硬件元件中实现。
7.根据权利要求1所述的方法,还包括:
8.一种装置,包括:
9.根据权利要求8所述的装置,其中所述第二内存空间量是所述第一内存空间量的倍数。
10.根据权利要求8所述的装置,其中所述第二内存缓冲区的固定内存位置对应于所述第二内存缓冲区的开始位置。
11.根据权利要求8所述的装置,其中所述唯一化身值基于包括以下内容的输入:
12.根据权利要求8所述的装置,其中重复所述迭代过程,直到所述第一内存缓冲区中的加密数据已经被解密并写入所述第二内存缓冲区。
13.根据权利要求11所述的装置,其中所述迭代过程在硬件元件中实现。
14.根据权利要求13所述的装置,所述处理电路系统用于: