摘要

本发明公开了一种基于SGX的程序控制流混淆方法及系统,方法包括:将原程序中所有分支语句条件中变量的定义进行隐藏,所述变量称为隐藏变量;对包括所述隐藏变量的所有程序语句进行转换以隐藏所述隐藏变量,获得转换程序和控制流矩阵;将所述转换程序和控制流矩阵发送至远程计算单元,所述转换程序存储在所述远程计算单元的不可信环境中,所述控制流矩阵存储在所述远程计算单元的可信环境SGX Enclave中;基于所述控制流矩阵,在所述远程计算单元中执行所述转换程序。本发明结合程序变换技术和英特尔软件保护扩展技术,通过转换每个分支语句的条件,并将其评估移动到不透明且可信的硬件执行环境中,从而保证高控制流机密性。