[发明专利]一种编译链接方法、装置和用于编译链接的装置有效
申请号: | 202010699759.9 | 申请日: | 2020-07-20 |
公开(公告)号: | CN111736816B | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 徐鹏;王一帆 | 申请(专利权)人: | 华控清交信息科技(北京)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F8/53;G06F21/60 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100084 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 编译 链接 方法 装置 用于 | ||
1.一种编译链接方法,其特征在于,所述方法用于对密文处理源码进行编译链接,其中,所述密文处理源码基于第一编程语言实现,且所述密文处理源码中包含以动态库形式存在的第二编程语言实现的隐私操作,所述方法包括:
根据所述第一编程语言的语法规则以及自定义语言,对所述密文处理源码以及用于实现所述隐私操作的核心库进行编译,将所述密文处理源码转换为所述自定义语言对应的第一伪汇编代码,以及将所述核心库转换为所述自定义语言对应的第二伪汇编代码;
基于所述核心库编译过程产生的核心库基本信息表,对所述第一伪汇编代码中的各功能模块进行链接,得到目标文件,所述核心库基本信息表中包括所述第一伪汇编代码中的所有目标被调用对象的对象信息,所述对象信息包括目标被调用对象在所述第二伪汇编代码中的起始行信息;
其中,所述自定义语言中包括自定义的操作码,所述操作码用于支持所述密文处理源码中的隐私操作;
所述基于所述核心库编译过程产生的核心库基本信息表,对所述第一伪汇编代码中的各功能模块进行链接,包括:
基于所述核心库基本信息表,将所述第一伪汇编代码中的目标被调用对象对应的实现代码递归引入到所述第一伪汇编代码中,得到引入后的第一伪汇编代码;
对所述引入后的第一伪汇编代码进行扫描,标记每个代码行的代码类别,得到标记代码;
对于所述标记代码中代码类别为第一类别的代码行,转换为符合所述第一编程语言的语法规则的目标代码;
对于所述标记代码中代码类别为第二类别的代码行,生成接口函数。
2.根据权利要求1所述的方法,其特征在于,所述基于所述核心库基本信息表,将所述第一伪汇编代码中的目标被调用对象对应的实现代码递归引入到所述第一伪汇编代码中,包括:
在所述核心库基本信息表中查询所述目标被调用对象的对象信息;
根据所述目标被调用对象的对象信息,获取所述目标被调用对象在所述第二伪汇编代码中的起始行信息;
根据所述目标被调用对象在所述第二伪汇编代码中的起始行信息,获取所述目标被调用对象对应的实现代码;
将所述目标被调用对象对应的实现代码递归引入到所述第一伪汇编代码中调用所述目标被调用对象的所在位置。
3.根据权利要求1所述的方法,其特征在于,所述目标被调用对象包括所述目标被调用对象自身以及所述目标被调用对象内部嵌套的被调用对象。
4.根据权利要求1所述的方法,其特征在于,所述对所述引入后的第一伪汇编代码进行扫描,标记每个代码行的代码类别,包括:
对所述引入后的第一伪汇编代码进行扫描,将所述引入后的第一伪汇编代码中的第一被调用对象和非隐私操作对应的代码行标记为第一类别,以及将所述引入后的第一伪汇编代码中的第二被调用对象和隐私操作对应的代码行标记为第二类别;
其中,所述第一被调用对象包括所述第一编程语言对应的系统函数和库函数,所述第二被调用对象包括所述隐私操作调用的密文计算系统中的库函数、以及所述隐私操作调用的密文计算系统中的自定义函数和自定义类。
5.根据权利要求1至4任一所述的方法,其特征在于,所述得到目标文件之后,所述方法还包括:
将所述目标文件输入第一编程语言执行器,以通过所述第一编程语言执行器执行所述目标文件,其中,所述第一编程语言执行器在执行所述目标文件的过程中,在执行到所述目标文件中的接口函数时通过密文计算虚拟执行器调用相应的底层执行器执行相应的隐私操作。
6.根据权利要求5所述的方法,其特征在于,所述底层执行器包括如下任意一种:基于秘密分享的执行器、基于同态加密的执行器、基于可信执行环境的执行器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华控清交信息科技(北京)有限公司,未经华控清交信息科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010699759.9/1.html,转载请声明来源钻瓜专利网。