CN117521061B - 一种基于二进制转换器的定时旁路攻击安全防护方法 - Google Patents

一种基于二进制转换器的定时旁路攻击安全防护方法 Download PDF

Info

Publication number
CN117521061B
CN117521061B CN202410016019.9A CN202410016019A CN117521061B CN 117521061 B CN117521061 B CN 117521061B CN 202410016019 A CN202410016019 A CN 202410016019A CN 117521061 B CN117521061 B CN 117521061B
Authority
CN
China
Prior art keywords
selector
secret
code
conditional
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410016019.9A
Other languages
English (en)
Other versions
CN117521061A (zh
Inventor
杨炳煜
刘思君
张晏斌
邓峰
朱辰泽
徐志杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Nanzi Huadun Digital Technology Co ltd
Original Assignee
Nanjing Nanzi Huadun Digital Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Nanzi Huadun Digital Technology Co ltd filed Critical Nanjing Nanzi Huadun Digital Technology Co ltd
Priority to CN202410016019.9A priority Critical patent/CN117521061B/zh
Publication of CN117521061A publication Critical patent/CN117521061A/zh
Application granted granted Critical
Publication of CN117521061B publication Critical patent/CN117521061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于二进制转换器的定时旁路攻击安全防护方法,首先将源平台的二进制客体代码转换为翻译器中间代码;然后在进行其他任何优化或生成目标代码之前,插入一个分支选择步骤,遍中间代码,找到中间代码中每个基于秘密数值的条件分支,将其转换为基于条件的数据选择结构,得到新的中间代码,并应用位运算进行条件选择;最后,插入条件选择结果到原来的中间代码,继续生成中间代码的剩余部分,将优化后的中间代码转换为目标平台的二进制代码。在本发明方法中,因为所有可能的分支都会被执行,从而不会泄露关于秘密数值的时序信息,减少了旁道攻击的可能性,用于在跨平台二进制翻译过程中,抵御二进制翻译器受到的旁道攻击。

Description

一种基于二进制转换器的定时旁路攻击安全防护方法
技术领域
本发明涉及工业系统控制安全领域,尤其涉及一种基于二进制转换器的定时旁路攻击安全防护方法。
背景技术
二进制翻译是一种将二进制代码从一种ISA(指令集架构)翻译成另一种 ISA 的技术。这在虚拟化、模拟器和跨平台代码兼容性方面非常重要。
旁道攻击是一种常见的安全威胁,通过分析硬件层面的信息,例如处理器的缓存访问模式或执行时间,来推断程序的内部状态。
在进行跨平台的二进制翻译的过程中,由于两种架构的指令集和执行方式的不同,编译器需要进行一定程度的模拟来保持代码的功能一致性,而这种模拟不可避免的会导致执行时间差异。在这种情况下,如果编译器在转换过程中引入了时序侧通道,攻击者可能会利用代码执行时间的差异来获取关于敏感信息的一些线索,包括秘密数据、密码算法参数、加密密钥、访存模式以及程序流程等。如,在基于 QEMU 等工具进行二进制翻译的过程中,分支结构可能基于秘密数值,容易导致时序泄露,从而使系统易受旁道攻击。
发明内容
本发明所要解决的问题是:提供一种基于二进制转换器的定时旁路攻击安全防护方法,用户解决跨平台二进制翻译过程中,二进制翻译器因旁路攻击导致的关键信息泄露的问题。
本发明采用如下技术方案,一种基于二进制转换器的定时旁路攻击安全防护方法,包括如下步骤:
步骤1、生成中间代码:将源平台的二进制客体代码转换为翻译器中间代码;
步骤2、遍历生成的翻译器中间代码,找到中间代码中每个基于秘密数值的条件分支;
步骤3、将秘密数值的条件分支转换为基于条件的数据选择结构,根据选择器和每个条件分支的数据选择结构,计算得到新的中间代码;
步骤4、对新的中间代码应用位运算进行条件选择;
步骤5、插入步骤4条件选择的结果到原来的中间代码;
步骤6、继续生成中间代码的剩余部分,具体为:处理机器码中的条件分支指令、函数调用和返回、处理多线程、锁定和其他并发控制结构;
步骤7、目标代码生成:将优化后的中间代码转换为目标平台的二进制代码。
进一步地,步骤1中,使用QEMU的动态代码生成器TCG,将客体代码转换为 TCG 的中间代码,在生成中间代码的过程中,包括识别基于秘密数值的条件分支。
进一步地,步骤3中,所述数据选择结构,包括:简单的条件选择和复杂的条件选择,
在简单的条件选择中,中间代码中包含两个条件分支,分别执行两个条件分支的结构转换操作,并保存结果为dummy1 和 dummy2;
在复杂的条件选择中,中间代码中包含两个以上的条件分支,执行所有条件分支的结构转换操作,并将结果保存在数组dummy[N]中,N表示条件分支的个数;
其中,选择器为一种控制结构,基于给定的条件或表达式的结果选择执行哪个代码分支,决定程序执行的路径。
进一步地,步骤4中,对于简单的条件选择,包括如下子步骤:
步骤4.1.1、初始化参数:selector表示选择器选择出的执行结果,secret_value表示秘密数值,值为 0 或 1;
selector=-secret_value
其中,secret_value为0时,selector是0;secret_value为1时,selector是-1,在二进制表示中,-1 的所有位都是1;
步骤4.1.2、使用位运算组合dummy1和dummy2,公式如下:
result = (dummy1&~selector) | (dummy2&selector);
其中,&是按位与操作,| 是按位或操作,~ 是按位取反操作;
当selector为0时,~selector是-1,dummy1&~selector是dummy1,而dummy2&selector 是0,条件选择结果result是 dummy1|0,即dummy1;
当selector为-1时,~selector是0,dummy1&~selector是0,而dummy2&selector是dummy2,条件选择结果result是 0|dummy2,即dummy2。
进一步地,步骤4中,对于复杂的条件选择,使用循环和位运算来计算最终结果,包括如下子步骤:
步骤4.2.1、参数初始化:初始化参数secret_value为介于0到 N的整数,初始化条件选择结果result为0;
步骤4.2.2、对于每一个i,i=1,2...N,计算selector,i等于secret_value时,selector是-1,否则selector是0;
步骤4.2.3、使用selector将dummy[i]的所有位与selector相与,若selector是-1,结果为dummy[i];若selector 是0,结果为0;
步骤4. 2.4、将步骤4.3的结果与result相或,对于每个可能的i,计算相应的selector,将dummy[i]&selector与result相或,dummy[i]&selector为dummy[i]或0,取决于i是否等于secret_value;
步骤4.2.5、循环结束时,只有dummy[secret_value]不是0,条件选择结果result为 dummy[secret_value]。
执行所有可能的条件分支,根据 secret_value 的值,选择正确的结果。
进一步地,步骤5中,插入条件选择结果到原来的中间代码,方法为:将步骤4中得到的新的中间代码直接插入到步骤2中原来的中间代码中,替换原来的条件分支,在进行后续的优化和目标代码生成时,不会生成依赖于秘密值的分支,避免被时序攻击。
进一步地,步骤6中,继续生成中间代码的剩余部分,包括:插入操作、条件分支处理、代码块处理;
所述插入操作,具体为:算术和逻辑操作,包括基本算术运算和逻辑运算,以及位运算;控制结构操作,包括跳转、循环控制结构和条件分支;函数调用操作,处理函数或过程调用,包括参数传递、堆栈帧的处理;
所述条件分支处理,具体为:处理机器码中的其他条件分支指令;
所述代码块处理,包括:函数调用和返回,处理函数的调用机制,包括参数传递、栈帧处理、返回值处理;并发和同步机制,处理多线程、锁定和其他并发控制结构。
本发明技术方案还提供了: 一种电子设备,包括:一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一基于二进制转换器的定时旁路攻击安全防护方法。
本发明技术方案还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现上述任一基于二进制转换器的定时旁路攻击安全防护方法中的步骤。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明提出了一种预防动态二进制翻译器遭受旁路攻击的防护方法,将基于秘密数值的分支结构转换为数据选择结构的方法,用于减少旁道攻击的可能性,解决跨平台二进制翻译过程中,二进制翻译器因旁路攻击导致的关键信息泄露。
附图说明
图1为本发明基于二进制转换器的定时旁路攻击安全防护方法流程图;
图2为本发明实施例提供的基于二进制转换器的二进制翻译流程结构图;
图3为本发明实施例提供的基于二进制转换器的二进制翻译流程图;
图4为本发明实施例提供的基于二进制转换器的应用位运算进行条件选择流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对申请的技术方案做进一步地详尽阐述,所描述的实施例,也只是本发明所涉及实施例的一部分。本领域其他研究人员在该实施例上的所有非创新型实施例,都属于本发明的保护范围。
如图1所示,本发明基于二进制转换器的定时旁路攻击安全防护方法,包括如下步骤:
步骤1、生成中间代码, 将客体代码转换为翻译器中间代码;
步骤2、遍历生成的 TCG IR,找到每个基于关键数值的条件分支;
步骤3、将该分支转换为基于条件选择的结构;
步骤4、应用位运算进行条件选择;
步骤5、插入选择结果到中间代码IR;
步骤6、继续生成中间代码的剩余部分,这可能包括插入更多的操作,处理其他分支,或者处理其他的代码块;
步骤7、目标代码生成,将优化后的中间代码转换为目标代码。
在本发明的一个实施例中,将上述基于二进制转换器的定时旁路攻击安全防护方法,用于预防动态二进制翻译器遭受旁路攻击的防护,将基于秘密数值的分支结构转换为数据选择结构的方法,用于减少旁道攻击的可能性。
具体的,如图2所示,将源平台的二进制代码,经过中间代码和选择器,生成目标平台的二进制代码,方法如下:
步骤1、生成 IR (中间表示)代码,使用QEMU 的 TCG (Tiny Code Generator) 将客体代码转换为 TCG 的IR代码。
在生成基本IR的步骤中,可能会生成类似下表的IR代码:
在识别秘密值分支的步骤中,可以识别出%1 = icmpeq i32 % secret_value, 0是一个基于秘密值的条件分支。
步骤2、遍历生成的 TCG IR,找到每个基于关键数值的条件分支。
步骤3、将该条件分支转换为基于条件选择的结构,包括如下两种条件选择:
如图3所示,在二进制翻译时遇到条件选择结构时,将翻译后的中间码IR输入选择器通过贪婪计算的方式,执行每一条分支,并得到条件选择的结果。
(1)简单的条件选择(如二选一),如下表:
执行两个分支的操作并存储结果:
a.执行分支 do_something() 并将结果存储在 dummy1 中。
b.执行分支 do_something_else() 并将结果存储在 dummy2 中。
(2)复杂的选择条件(多选一)
执行所有可能的分支操作,并将结果保存在一个数组中,如下表:
将条件分支转换为数据选择结构,从而得到新的IR代码,如下表:
本实施例中,%selector = sub i32 0, %secret_value计算选择器,%result =select i32 %selector, %2, %3,根据选择器和每个分支的结果计算最终结果。
步骤4、应用位运算进行条件选择。
如图4所示,基于每个秘密数值的条件分支,执行位运算,将位运算的执行结果与selector相与,然后与秘密数值相或,得到每个每个秘密数值的条件分支的结果。
(1)简单的选择问题:
a.初始化参数:int selector = -secret_value;
本实施例中,假设secret_value是0或1,如果secret_value是0,selector是 0;如果 secret_value 是 1,selector 将是 -1(在二进制表示中,-1 的所有位都是 1)。
b.使用位运算来组合 dummy1 和 dummy2:
int result = (dummy1&~selector) | (dummy2&selector);
这里,&是按位与操作,| 是按位或操作,~ 是按位取反操作。
①当 selector 是 0 时,~selector 是 -1(所有位都是 1),所以 dummy1&~selector 将是 dummy1,而dummy2&selector 将是 0。因此,result 将是 dummy1 | 0,即dummy1。
②当 selector 是 -1 时,~selector 是 0,所以 dummy1&~selector 将是 0,而dummy2&selector 将是 dummy2。因此,result 将是 0 |dummy2,即 dummy2。
(2)复杂的选择问题:
本实施例中, secret_value 是 0 到 3 的整数,使用循环和位运算来计算最终结果,具体如下表:
对于每一个可能的i,计算一个selector,它将是 -1(所有位都是 1)如果 i 等于secret_value,否则它将是 0。
本实施例中,i取从 0 到3。
然后,用 selector 来将 dummy[i]的所有位与 selector 相与。如果 selector是 -1,那么结果将是dummy[i];如果 selector 是 0,那么结果将是 0。
最后,将这个结果与 result 相或,因为result 被初始化为0,然后对于每个可能的 i(从0到3),计算相应的 selector,然后将 dummy[i]&selector 与 result 相或。因为selector 只会是-1(所有位都是1)或0,所以 dummy[i]&selector 将会是 dummy[i]或0,取决于 i 是否等于 secret_value。
因此,当循环结束时,只有 dummy[secret_value] 将不是0,所以result将是dummy[secret_value]。
本实施例中,selector计算方式如下:
在复杂的分支结构中,要为每一个可能的i(从0到3)计算一个selector,其值要么是-1(所有位都是1),要么是0。这个selector的值取决于i是否等于secret_value。
int selector = (i == secret_value) - 1;
selector = ~selector + 1;
本实施例中,如果i == secret_value,则selector初始值为0,否则为-1。接下来,使用位非(~)操作符,这会将所有的0位变为1,所有的1位变为0。最后,通过加1将-1转换为0或将0转换为-1,达到目标。
通过上述方法计算出的selector可以用于之后的数据选择操作,以决定最终结果应当是哪一个分支的输出。
步骤5、新的IR代码可以直接插入到原来的IR代码中,替换掉原来的条件分支。这样,在进行后续的优化和目标代码生成时,就不会生成依赖于秘密值的分支,从而避免时序攻击的可能性。
步骤6、继续生成中间代码的剩余部分。这可能包括插入更多的操作,处理其他分支,或者处理其他的代码块。
步骤7、目标代码生成,将优化后的中间代码转换为目标代码。
经过上述方法从源平台的二进制代码,生成了目标平台的二进制代码,实现了抵御翻译过程中遭受旁路攻击导致的秘密数值泄露的风险,保障了二进制翻译过程中的安全性。
具体的,从ARM到x86架构进行二进制翻译的过程中,使用QEMU二进制翻译器时,遭受旁道攻击。
攻击者可以基于二进制翻译器在处理不同的指令或数据时耗时不同,攻击者通过测量操作的时间来推断正在处理的数据或代码的性质;在某些情况下,不同的指令和操作可能会导致计算设备的功耗模式有所不同。通过分析这些模式,攻击者可能能够推断出正在执行的操作,甚至提取出加密密钥等敏感信息,造成秘密数值的泄露。
通过本实施例方法,因为所有可能的分支都会被执行,从而不会泄露关于秘密数值的时序信息,减少了旁道攻击的可能性,用于在跨平台二进制翻译过程中,抵御二进制翻译器受到的旁道攻击。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种基于二进制转换器的定时旁路攻击安全防护方法,其特征在于,包括如下步骤:
步骤1、生成中间代码:将源平台的二进制客体代码转换为翻译器中间代码;
步骤2、遍历生成的翻译器中间代码,找到中间代码中每个基于秘密数值的条件分支;
步骤3、将秘密数值的条件分支转换为基于条件的数据选择结构,根据选择器和每个条件分支的数据选择结构,计算得到新的中间代码;
所述数据选择结构,包括:简单的条件选择和复杂的条件选择,
在简单的条件选择中,中间代码中包含两个条件分支,分别执行两个条件分支的结构转换操作,并保存结果为dummy1 和 dummy2,包括如下子步骤:
步骤4.1.1、初始化参数:selector表示选择器选择出的执行结果,secret_value表示秘密数值,值为 0 或 1;
selector=-secret_value
其中,secret_value为0时,selector是0;secret_value为1时,selector是-1,在二进制表示中,-1 的所有位都是1;
步骤4.1.2、使用位运算组合dummy1和dummy2,公式如下:
result = (dummy1 & ~selector) | (dummy2 & selector);
其中,& 是按位与操作,| 是按位或操作,~ 是按位取反操作;
当selector为0时,~selector是-1,dummy1 & ~selector是dummy1,而dummy2 &selector 是0,条件选择结果result是 dummy1|0,即dummy1;
当selector为-1时,~selector是0,dummy1 & ~selector是0,而dummy2 & selector是dummy2,条件选择结果result是 0|dummy2,即dummy2;
在复杂的条件选择中,中间代码中包含两个以上的条件分支,执行所有条件分支的结构转换操作,并将结果保存在数组dummy[N]中,N表示条件分支的个数;
对于复杂的条件选择,使用循环和位运算来计算最终结果,包括如下子步骤:
步骤4.2.1、参数初始化:初始化参数secret_value为介于0到 N的整数,初始化条件选择结果result为0;
步骤4.2.2、对于每一个i,i=1,2...N,计算selector,i等于secret_value时,selector是-1,否则selector是0;
步骤4.2.3、使用selector将dummy[i]的所有位与selector相与,若selector是-1,结果为dummy[i];若selector 是0,结果为0;
步骤4.2.4、将步骤4.3的结果与result相或,对于每个可能的i,计算相应的selector,将dummy[i]&selector与result相或,dummy[i]&selector为dummy[i]或0,取决于i是否等于secret_value;
步骤4.2.5、循环结束时,只有dummy[secret_value]不是0,条件选择结果result为dummy[secret_value];
步骤4、对新的中间代码应用位运算进行条件选择;
步骤5、插入步骤4条件选择的结果到原来的中间代码;
步骤6、继续生成中间代码的剩余部分,具体为:处理机器码中的条件分支指令、函数调用和返回、处理多线程、锁定和其他并发控制结构;
步骤7、目标代码生成:将优化后的中间代码转换为目标平台的二进制代码。
2.根据权利要求1所述的基于二进制转换器的定时旁路攻击安全防护方法,其特征在于,步骤1中,使用QEMU的动态代码生成器TCG,将客体代码转换为 TCG 的中间代码,在生成中间代码的过程中,包括识别基于秘密数值的条件分支。
3.根据权利要求1所述的基于二进制转换器的定时旁路攻击安全防护方法,其特征在于,步骤3中,所述选择器为一种控制结构,基于给定的条件或表达式的结果选择执行哪个代码分支,决定程序执行的路径。
4.根据权利要求1所述的基于二进制转换器的定时旁路攻击安全防护方法,其特征在于,步骤4中,执行所有可能的条件分支,根据 secret_value 的值,选择正确的结果。
5.根据权利要求1所述的基于二进制转换器的定时旁路攻击安全防护方法,其特征在于,步骤5中,插入条件选择结果到原来的中间代码,方法为:将步骤4中得到的新的中间代码直接插入到步骤2中原来的中间代码中,替换原来的条件分支,在进行后续的优化和目标代码生成时,不会生成依赖于秘密值的分支,避免被时序攻击。
6.根据权利要求1所述的基于二进制转换器的定时旁路攻击安全防护方法,其特征在于,步骤6中,继续生成中间代码的剩余部分,包括:插入操作、条件分支处理、代码块处理;
所述插入操作,具体为:算术和逻辑操作,包括基本算术运算、逻辑运算、位运算;控制结构操作,包括跳转、循环控制结构和条件分支;函数调用操作,处理函数或过程调用,包括参数传递、堆栈帧的处理;
所述条件分支处理,具体为:处理机器码中的其他条件分支指令;
所述代码块处理,包括:函数调用和返回,处理函数的调用机制,包括参数传递、栈帧处理、返回值处理;并发和同步机制,处理多线程、锁定和并发控制结构。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至6中任一所述的方法。
8.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时,实现权利要求1至6中任一项所述的定时旁路攻击安全防护方法中的步骤。
CN202410016019.9A 2024-01-05 2024-01-05 一种基于二进制转换器的定时旁路攻击安全防护方法 Active CN117521061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410016019.9A CN117521061B (zh) 2024-01-05 2024-01-05 一种基于二进制转换器的定时旁路攻击安全防护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410016019.9A CN117521061B (zh) 2024-01-05 2024-01-05 一种基于二进制转换器的定时旁路攻击安全防护方法

Publications (2)

Publication Number Publication Date
CN117521061A CN117521061A (zh) 2024-02-06
CN117521061B true CN117521061B (zh) 2024-03-15

Family

ID=89751711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410016019.9A Active CN117521061B (zh) 2024-01-05 2024-01-05 一种基于二进制转换器的定时旁路攻击安全防护方法

Country Status (1)

Country Link
CN (1) CN117521061B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847195A (zh) * 2010-06-26 2010-09-29 上海交通大学 基于Cache时间特性的防御攻击方法
CN102662830A (zh) * 2012-03-20 2012-09-12 湖南大学 一种基于动态二进制翻译框架的代码复用攻击检测系统
CN111865909A (zh) * 2020-06-08 2020-10-30 西安电子科技大学 Sgx侧信道攻击防御方法、系统、介质、程序及应用
CN112199681A (zh) * 2020-10-22 2021-01-08 中国人民解放军国防科技大学 基于多编码模式cpu的代码注入型攻击防护方法及装置
CN116346382A (zh) * 2021-12-24 2023-06-27 北京微步在线科技有限公司 一种阻断恶意tcp连接的方法、装置及电子设备
CN116755778A (zh) * 2016-12-31 2023-09-15 英特尔公司 用于异构计算的系统、方法和装置
CN116781300A (zh) * 2022-03-10 2023-09-19 华为技术有限公司 一种侧信道攻击防护方法、系统以及编译器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3557471B1 (en) * 2018-04-20 2022-08-03 ARM Limited Power rail noise monitoring to detect attempted security tampering or side channel attacks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847195A (zh) * 2010-06-26 2010-09-29 上海交通大学 基于Cache时间特性的防御攻击方法
CN102662830A (zh) * 2012-03-20 2012-09-12 湖南大学 一种基于动态二进制翻译框架的代码复用攻击检测系统
CN116755778A (zh) * 2016-12-31 2023-09-15 英特尔公司 用于异构计算的系统、方法和装置
CN111865909A (zh) * 2020-06-08 2020-10-30 西安电子科技大学 Sgx侧信道攻击防御方法、系统、介质、程序及应用
CN112199681A (zh) * 2020-10-22 2021-01-08 中国人民解放军国防科技大学 基于多编码模式cpu的代码注入型攻击防护方法及装置
CN116346382A (zh) * 2021-12-24 2023-06-27 北京微步在线科技有限公司 一种阻断恶意tcp连接的方法、装置及电子设备
CN116781300A (zh) * 2022-03-10 2023-09-19 华为技术有限公司 一种侧信道攻击防护方法、系统以及编译器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于GCC 的TMS320C67xx汇编代码的优化;王浩等;《应用天地》;20150624;第34卷(第5期);第61-65页 *
面向二进制程序的空指针解引用错误的检测方法;傅玉等;《计算机学报》;20180702;第41卷(第3期);第574-587页 *

Also Published As

Publication number Publication date
CN117521061A (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
US10467389B2 (en) Secret shared random access machine
JP5643894B2 (ja) サイドチャネル攻撃および反復起動攻撃に耐える動的可変タイミング演算パスのシステムおよび方法
US8185749B2 (en) System and method for revising boolean and arithmetic operations
US10180824B2 (en) Computing device comprising a table network
US11392672B2 (en) Computer program code obfuscation methods and systems
US8918768B2 (en) Methods and apparatus for correlation protected processing of data operations
EP2917833B1 (en) Compiler generating operator free code
WO2019053396A1 (en) AUTHENTICATION DEPENDING ON A CALL PATH
RU2661308C2 (ru) Вычислительное устройство, конфигурируемое с помощью табличной сети
US11475166B2 (en) Compiling device and method
CN111538962A (zh) 程序控制流混淆方法、系统、存储介质、云服务器及应用
Pircher et al. Exploring the RISC-V vector extension for the Classic McEliece post-quantum cryptosystem
CN101847195B (zh) 基于Cache时间特性的防御攻击方法
Fell et al. TAD: Time side-channel attack defense of obfuscated source code
CN117521061B (zh) 一种基于二进制转换器的定时旁路攻击安全防护方法
WO2020008045A1 (en) A compiler device with masking function
CN112491543B (zh) 基于改进的蒙哥马利模幂电路的ic卡解密方法
Tang et al. WBMatrix: An optimized matrix library for white-box block cipher implementations
Belleville et al. Maskara: Compilation of a Masking Countermeasure With Optimized Polynomial Interpolation
Breuer Compiled Obfuscation for Data Structures in Encrypted Computing
Dunaev Complexity of a special deobfuscation problem
Deprez et al. Optimized Software Implementations for theLightweight Encryption Scheme ForkAE
Moss et al. Automatic insertion of dpa countermeasures
Eiers Analyzing Cryptographic Functions in Java for JIT-Based Sidechannels
CN116561781A (zh) 一种基于Long数组加密存储脚本信息的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant