发明名称 |
数据处理设备及用于执行混淆程序的方法 |
摘要 |
通过对程序的指令重排序来混淆该程序。利用逻辑上连续指令的地址之间的位置相关地址步长,以不规则的方式将原始指令地址映射到目标地址。优选地,使用伪随机地址步长,例如,以相同频率利用彼此符号相反的地址步长。数据处理设备具有指令流控制单元,该指令流控制单元根据位置相关地址步长来更新指令地址。指令流控制单元可以包括包含秘密信息的电路,不能正常地从外部访问该信息来控制更新。例如,查找表可以与地址步长、连续地址或映射的地址值一同使用。在实施例中,可以通过沿着n维阵列中的点的路径(36)来可视化原始指令地址到目标地址的映射,其中n大于1。将连续原始指令地址映射到路径中的连续位置,并且将沿着阵列的相应行的位置映射到相应的彼此不相交的范围(33a-d)。由于使用n维路径,保持了提供高速缓存效率的局部性,而路径的多维特性使得能够将这种局部性与伪随机步长相组合。 |
申请公布号 |
CN101939724B |
申请公布日期 |
2013.11.27 |
申请号 |
CN200980104146.8 |
申请日期 |
2009.02.02 |
申请人 |
NXP股份有限公司 |
发明人 |
梅尔·沃克莱尔;彼得·J·汉森斯 |
分类号 |
G06F9/32(2006.01)I;G06F21/14(2013.01)I |
主分类号 |
G06F9/32(2006.01)I |
代理机构 |
中科专利商标代理有限责任公司 11021 |
代理人 |
王波波 |
主权项 |
一种数据处理设备,包括:功能单元(14),用于执行来自于存储器(10)的指令;地址输出,用于向存储器(10)提供指令的目标地址;程序流控制单元(16),被配置为确定用于提供给地址输出的目标地址,程序流控制单元(16)被配置为在程序中逻辑上连续位置处的指令的目标地址之间引入地址步长,所述地址步长的大小和/或方向依赖于所述程序内的位置,所述地址步长的至少一部分与指令大小不相对应,其中,连续原始指令的序列(32)被分配给相应目标地址集合,且地址步长在连续原始指令被映射到的目标地址之间,所述集合中的目标地址处于多个非交叠地址范围(33a‑d)之中,每个范围(33a‑d)的至少一半填充有指令,地址步长包括:位于第一范围(33a‑d)中的目标地址之间的第一地址步长;以及所述第一地址步长之间的位于第二范围(33a‑d)中的目标地址之间的第二地址步长。 |
地址 |
荷兰艾恩德霍芬 |