【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
近年来,加密在计算机软件中的作用已变得越发重要。在过去,加密的使用限于特定类型的应用,但最近对隐私性以及安全性的关注已迫使应用开发人员响应以显著增加加密在各种应用中的使用。遗憾的是,加密使用的这种增加(以及其他安全性领域的增加)在实践中并未显著提高隐私性或安全性。其中一个原因是标准加密算法基于现实世界中并非始终存在的前提。作为所有标准加密基础的基本前提是用于执行加密操作的机密(例如密钥)保密。如果机密暴露,则使用这些机密保护的任何信息也暴露。在加密文献中,参与信息交换的实体被建模为不透明端点,使得如果实体使用机密,则假设该机密对该实体保持私有,除非该实体传输允许另一个实体导出机密的信息。但是,在现实世界中,这些实体通常是在设备上运行的应用,这些设备可能受到恶意软件攻击或者甚至由恶意个人直接访问。如果攻击者直接访问在设备上运行的软件,则对于他们而言窃取这些应用中由加密操作使用的任何机密通常轻而易举。当发生这种情况时,上述前提不再成立并且受影响的应用将不再从加密的使用中获得任何好处。该问题近年来已导致称为白盒加密的新领域,白盒加密旨在通过以防止直接从应用提取这些机密的形式重新实现加密操作来解决该问题。在最低限度上,加密操作的白盒版本应该甚至在非常短的一段时间内防止在存储器中暴露机密数据。但是,在实践中,还需要抵抗旨在通过检查实现的内部细节而导出机密数据的攻击。早期产生白盒实现的尝试是高度算法特定的,即,专家必须使用专业
算法知识谨慎地设计用于每个算法的方法。这些白盒实现在防止在存储器中暴露机密数据方面非常有效,但在防止通过检查实现的内部细 ...
【技术保护点】
一种生成以存储在存储器中的代码形式表达的算法的受保护实现的计算机实现的方法,所述方法包括:将实现所述算法的原始源代码扩展成单个真实操作集;将使用真实数据的每个真实操作与每个真实操作所使用的真实数据相组合,以获得以这样的方式表示的组合:该方式以不同于原始形式的形式使用实际真实数据片段;产生应用于引诱数据的表示所述算法的备选实现的重复和变异引诱操作集;将所述引诱操作集与包括所述组合的所述真实操作集相组合,以便获得其中所述引诱操作与所述真实操作和由所述真实操作处理的所述真实数据交互的实现,以使得难以分析所述实现中的真实数据流;以及将所述实现变换成被存储在所述存储器中并且能够被执行的结果代码。
【技术特征摘要】
【国外来华专利技术】2014.01.21 GB 1400992.21.一种生成以存储在存储器中的代码形式表达的算法的受保护实现的计算机实现的方法,所述方法包括:将实现所述算法的原始源代码扩展成单个真实操作集;将使用真实数据的每个真实操作与每个真实操作所使用的真实数据相组合,以获得以这样的方式表示的组合:该方式以不同于原始形式的形式使用实际真实数据片段;产生应用于引诱数据的表示所述算法的备选实现的重复和变异引诱操作集;将所述引诱操作集与包括所述组合的所述真实操作集相组合,以便获得其中所述引诱操作与所述真实操作和由所述真实操作处理的所述真实数据交互的实现,以使得难以分析所述实现中的真实数据流;以及将所述实现变换成被存储在所述存储器中并且能够被执行的结果代码。2.如权利要求1所述的方法,其中所述算法是加密算法并且所述真实数据包括机密数据。3.如权利要求1或2所述的方法,其中扩展所述算法包括:由仿真器执行所述原始源代码,并且记录正在被执行的操作、发生的控制流改变以及发生的对存储器的改变;通过由所述仿真器使用不同运行时输入多次执行所述原始源代码并且将这些执行的结果组合成所述真实操作集来恢复在执行期间未被执行的代码;以及由所述仿真器通过将在所述执行期间未被执行的缺失代码注入所述真实操作集中来协调所述缺失代码。4.如权利要求1至3中的一项所述的方法,其中扩展所述算法包括产生对所述真实操作集中的操作与在所述真实操作间流动的数据值之间的数据依赖性建模的数据依赖性图。5.如权利要求3或4所述的方法,其中扩展所述算法包括消除所述真实操作集中产生静态已知值的操作,所述产生静态已知值的操作包括针对所述真实数据的操作,以使得所述真实数据的每个部分仅以最终导出形式存在并尽可能深入地被传播到结果真实操作集中。6.如权利要求3至5中的一项所述的方法,其中扩展所述算法包括减小所述真实操作集的大小,方式为:消除通过所述仿真器的执行生成的所述真实操作集的一部分内联函数代码和展开循环,使用来自所述原始源代码的函数调用和循环替换这些内联函数代码和展开循环,使用为函数和基本块分配得分的决策模型,所述得分表示与通过这种消除发生的真实数据传播损失的成本相对的通过消除内联和/或展开获得的收益水平。7.如权利要求1至6中的一项所述的方法,其中扩展所述算法包括:将涉及导出的真实数据的所述源代码的原始操作拆分成多个新操作,以使得每个新操作使用一段所述导出的真实数据;将各段所述导出的真实数据变换成产生各段所述导出的真实数据块的唯一操作子集,其中这些操作子集使用在运行时生成的序列敏感数据值;以及将所述操作子集插入到所述真实操作集中。8.如权利要求1至7中的一项所述的方法,其中产生重复和变异引诱操作集包括多次重复扩展步骤以便产生多个引诱操作集,其中为每个引诱操作集供应随机生成的数据而不是所述真实数据,以便产生表示所述算法的备选虚假实现的多个引诱操作集。9.如权利要求1至8中的一项所述的方法,其中将所述引诱操作集与所述真实操作集相组合包括:使来自每个集合的操作与来自所有其它操作集的操作相交错以获得组合集,使得当所述组合集被执行时,同时有效地执行所有操作集;以及通过逐渐选择多组操作并且通过将每个输出转发到正确接收操作的新生成的路由操作路由所述多组操作的输出,将来自所述组合集中不同集合的操作的数据流彼此合并,由此使用唯一生成的不透明表达式来构造路由
\t操作,所述唯一生成的不透明表达式使用在运行时生成的序列敏感数据值。10.如权利要求1至9中的一项所...
【专利技术属性】
技术研发人员:N·斯图尔特,
申请(专利权)人:麦塔福里克有限公司,
类型:发明
国别省市:英国;GB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。