CN114329644A - 对逻辑系统设计进行加密仿真的方法、设备及存储介质 - Google Patents
对逻辑系统设计进行加密仿真的方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114329644A CN114329644A CN202111364088.1A CN202111364088A CN114329644A CN 114329644 A CN114329644 A CN 114329644A CN 202111364088 A CN202111364088 A CN 202111364088A CN 114329644 A CN114329644 A CN 114329644A
- Authority
- CN
- China
- Prior art keywords
- output
- data selector
- encoding
- input
- code
- 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.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请实施例提供一种对逻辑系统设计进行加密仿真的方法、设备及存储介质。该逻辑系统设计包括第一门电路。该方法包括:根据第一门电路的多组输入将第一门电路的多个输出分别加密为多个编码,所述多个编码用于指示所述第一门电路;以及将多个编码发送到云端用于对第一门电路进行仿真,其中,云端包括等效电路模型,多个编码用作等效电路模型的输入,多个编码用作等效电路模型的输入使得等效电路模型仿真第一门电路的功能。本申请实施例保证了在云端对逻辑系统设计进行仿真时该逻辑系统设计不被泄露,从而提高了逻辑系统设计的安全性。
Description
技术领域
本申请涉及仿真技术领域,尤其涉及一种对逻辑系统设计进行加密仿真的方法、设备及存储介质。
背景技术
云计算得到广泛应用的同时也面临着客户对云计算提供商缺乏足够信任的问题。为此,客户通常会对上传至云端的数据进行加密,以保证敏感数据不被云计算提供商获取。但是上传的数据加密之后,也失去了在云端继续处理该上传数据的能力。而且在云计算提供商拥有最高权限的前提下,任何形式的解密数据都有可能被有可能被云计算提供商获取。
虽然目前存在一些加密技术,能够对加密后数据直接进行操作,得到的结果在解密之后等效为对于未加密数据直接进行操作得到的结构。但对于数字电路的设计者来说,这类加密技术虽然能够在一定程度上满足利用云计算对数字电路进行仿真的需求,但是在更多的情况下数字电路,需要保护的不是仿真过程中的数据,而是对这些数据进行运算的数字电路的门级运算符及其组合。所以,在现有技术下,这些数字电路中的运算符是没有保护而直接可见的,在云端仿真时容易被泄露,逻辑系统设计的安全性低。
发明内容
有鉴于此,本申请的目的在于提出一种对逻辑系统设计进行加密仿真的方法、设备及存储介质。
本申请第一方面,提供了一种对逻辑系统设计进行加密仿真的方法,所述逻辑系统设计包括第一门电路,所述方法包括:根据所述第一门电路的多组输入将所述第一门电路的多个输出分别加密为多个编码,所述多个编码用于指示所述第一门电路;以及将所述多个编码发送到云端用于对所述第一门电路进行仿真,其中,所述云端包括等效电路模型,所述多个编码用作所述等效电路模型的输入,所述多个编码用作所述等效电路模型的输入使得所述等效电路模型仿真所述第一门电路的功能。
本申请第二方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
本申请第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行第一方面所述的方法。
从上面所述可以看出,本申请提供的对逻辑系统设计进行加密仿真的方法、设备及存储介质,通过根据逻辑系统设计的门电路的输入输出对该门电路进行编码,在云端利用该编码和等效电路模型仿真该门电路的功能,将门电路的信息转化为编码的信息,以实现在云端对门电路进行隐藏并在云端仿真时不被泄露,提高了逻辑系统设计的安全性。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了根据本申请实施例的一种计算装置的示意图。
图1B示出了根据本申请实施例的一种云系统的示意图。
图2示出了根据本申请实施例的等效电路模型的示意图。
图3示出了根据本申请实施例的等效电路模型的示意图。
图4示出了根据本申请实施例的逻辑系统设计的加密仿真系统的示意图。
图5示出了根据本申请实施例的一种对逻辑系统设计进行加密仿真的方法的示意性流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
利用云计算对逻辑系统设计进行仿真(Simulation)是在云端运行仿真工具,而本地主机将逻辑系统设计以及仿真的要求发送到云端的仿真工具进行仿真,并接收来自云端的仿真结果,以检测逻辑系统设计是否可以实现预定的功能。在现有技术中,这一过程不可避免地需要用户将逻辑系统设计的源代码上传到云端。这样,逻辑系统设计的源代码就可能在上传的过程或者云端进行仿真的过程中泄露。云计算无法完全保证逻辑系统设计的源代码的安全直接制约了云计算在EDA行业的运用。如何解决云计算对源代码的安全的威胁从而促进云计算在EDA行业的运用是一个亟待解决的问题。
图1A示出了根据本申请实施例的一种计算装置100的示意图。如图1A所示,计算装置100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在计算装置内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1A所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令、TCL对象的列表、计算机代码、对象的属性与属性的值等)。如图1A所示,存储器存储的数据可以包括程序指令(例如,用于实现本申请的显示逻辑系统设计的目标模块的方法的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码、对象的属性与属性的值等)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向计算装置100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将计算装置100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在计算装置100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述计算装置架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该计算装置架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述计算装置架构中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图1B示出了根据本申请实施例的一种云系统120的示意图。
如图1B所示,云系统120可以包括多个云服务器(122、124)。这些云服务器例如可以是图1A所示的计算装置100或者由云计算服务器提供的计算机。云系统120可以用于提供云计算资源。
为了保证在云端进行逻辑系统设计的仿真时所涉及的仿真数据不被泄露,可以采用加密技术实现云端的仿真计算。例如可以对加密后数据直接进行操作,得到的结果在解密之后等效为对于未加密数据直接进行操作。例如,输入数据记为D,对于数据的操作记为f,最终结果记为R,则直接对输入数据D进行操作f得到最终结果可以表示为R=f(D)。而同态加密技术则利用加密函数encrypt、解密函数decrypt和操作fFHE,对输入数据D进行处理后得到的结果与R一致,即R=decrypt(fFHE(encrypt(D)))。其中,首先对输入数据D加密得到加密后的输入数据encrypt(D),将加密后的输入数据encrypt(D)上传至云端,在云端对该加密后的输入数据encrypt(D)进行相应的计算fFHE,得到一输出数据fFHE(encrypt(D))并将该输出数据fFHE(encrypt(D))发送至本地,在本地对该输出数据fFHE(encrypt(D))进行解密后得到结果decrypt(fFHE(encrypt(D)))即R,可以看出采用同态加密技术的输出结果与直接对输入数据D进行操作f得到的结果一致。而且,在云端进行计算fFHE时,其输入encrypt(D)和输出fFHE(encrypt(D))都是加密的,即使云计算提供商拥有最高权限,也无法恢复出原始的输入数据D和输出结果R,能够实现在云端进行可靠的数据操作。
鉴于此,本申请实施例结合逻辑系统设计中逻辑门电路的运算特点,根据逻辑门电路的多个输入和多个输出之间的对应关系,对逻辑门电路的多个输出分别进行编码,以将逻辑门电路所表示的运算功能隐藏到编码数据中。这样,对于所有的逻辑电路的运算都可以在一通用的等效电路模型中通过编码数据实现。那么,在云端进行仿真时只需基于逻辑门电路对应的编码数据和激励信号,即可在等效电路模型中确定其对应的运算功能,并得到对应的仿真结果。此时返回的仿真结果也是加密状态的仿真结果。由于云端并未获取具体的逻辑门电路,实现了对逻辑门电路的隐藏,从而保证了整个逻辑系统设计的逻辑结构不被泄露,提高了在云端对逻辑系统设计进行加密仿真的可靠性和安全性。
对于任何一个逻辑门电路,真值表都能够反映逻辑门电路的多组输入和多个输出之间的对应关系。而几乎所有的数字电路都可以用AND门、OR门以及XOR门结合时序电路来实现。下面以AND门、OR门以及XOR门为例进行说明,将I0、I1为记为输入,O记为输出。
对于AND门,其真值表如下表1所示:
I0 | I1 | O |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
表1
对于OR门,其真值表如下表2所示:
表2
对于XOR门,其真值表如下表3所示:
I0 | I1 | O |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
表3
根据表1-表3所示,AND门、OR门和XOR门的真值表仅在于输出O不同。由于真值表可以用来表示不同的逻辑运算门,所以,对于输入信号个数(例如表1和表2中的输入信号个数为2)相同的逻辑门电路,其区别仅仅在于真值表中每一行相同的输入I0、I1所对应的输出O的不同。那么,据此逻辑门电路的运算特点,可以根据逻辑门电路的输入输出之间的关系来进行编码。将表1-表3中的输出O的输出值V*分别标记为V00、V01、V10、V11,如下表4所示:
I0 | I1 | O |
0 | 0 | V00 |
0 | 1 | V01 |
1 | 0 | V10 |
1 | 1 | V11 |
表4
那么,根据输出值V*的不同,(V00,V01,V10,V11)可以形成多个不同的输出组合,每个输出组合即可以表示一种逻辑门电路的计算功能,例如,表1中的(V00,V01,V10,V11)1=(0,0,0,1),则该种输出组合表示的是AND门;表2中的(V00,V01,V10,V11)2=(0,1,1,1),则该种输出组合表示的是OR门;表3中的(V00,V01,V10,V11)3=(0,1,1,0),则该种输出组合表示的是XOR门。可以据此多组输入和多个输出之间的对应关系,对逻辑门电路进行编码。例如,可以根据逻辑门电路的多组输入(I0,I1)将每组输入对于的输出进行加密得到多个编码(V00,V01,V10,V11)。
在一些实施例中,所述多个编码与所述多组输入分别对应。例如,一组输入(0,0)与一个编码V00对应,一组输入(0,1)与一个编码V01对应,一组输入(1,0)与一个编码V10对应,一组输入(1,1)与一个编码V11对应。那么,在确定了编码与每组输入之间的对应关系之后,只需要配置该编码的值即可以实现不同的逻辑门电路。例如,将编码(V00,V01,V10,V11)配置为(0,0,0,1)则表示AND门,将编码(V00,V01,V10,V11)配置为(0,1,1,1)则表示OR门,将编码(V00,V01,V10,V11)配置为(0,1,1,0)则表示XOR门。
在一些实施例中,所述多组输入以及与所述多组输入分别对应的多个编码以查找表的形式存储。例如,可以存储于图1中所示的计算装置100的存储器104。该查找表可以用于根据第一门电路的多组输入将其对应的多个输出进行编码,以及对云端计算的加密仿真数据解密。
由此,任何逻辑门电路的计算就可以等效为根据一组输入(I0,I1)从输出编码(V00,V01,V10,V11)中选择对应的编码V*,这一选择过程可以基于等效电路模型来实现。即将多个编码(V00,V01,V10,V11)作为等效电路模型的输入,根据等效电路模型的另一组输入(I0,I1)在该多个编码中选择与该组输入(V00,V01,V10,V11)对应的编码V*输出,就能够实现与该逻辑门电路相同的功能。那么对于逻辑系统设计,其中的每个逻辑门电路的功能都能够采用各自对应的多组输入和多个编码关系来实现。由于采用编码数据是加密数据,等效电路模型为通用的模型,每个逻辑门电路的等效电路模型均相同,所以也即使云计算供应商获取了仿真过程中的等效电路模型和编码数据,其也无法恢复出多组输入与编码数据之间的关系,更无法恢复出整个逻辑系统设计的结构,极大地保障了在云端进行逻辑系统设计的仿真的安全性。
图2示出了根据本申请实施例的等效电路模型200的示意图。如图2所示,等效电路模型200包括:
第一数据选择器MUX1,用于接收第一编码V00和第二编码V01,并基于第一输入I0得到所述第一数据选择器MUX1的第一输出;其中,所述第一输出包括所述第一编码V00或所述第二编码V01;
第二数据选择器MUX2,用于接收第三编码V10和第四编码V11,并基于第一输入I0得到所述第二数据选择器MUX2的第二输出;其中,所述第二输出包括所述第三编码V10或所述第四编码V11;
第三数据选择器MUX3,连接于所述第一数据选择器MUX1和第二数据选择器MUX2的输出端,用于接收所述第一输出和所述第二输出,并基于第二输入I1得到所述第三输出O;所述第三输出包括所述第一输出或所述第二输出。
其中,图2中的等效电路模型200具有两个输入信号I0、I1,则其对应的真值表如下表5所示:
I1 | I0 | MUX1的输出 | MUX2的输出 | MUX3的输出 |
0 | 0 | V00 | V10 | V00 |
1 | 0 | V01 | V10 | V10 |
0 | 1 | V00 | V11 | V01 |
1 | 1 | V01 | V11 | V11 |
表5
也就是说,图2的等效电路模型200可以根据V00、V01、V10、V11的值实现不同的电路。如上所述,将编码(V00,V01,V10,V11)配置为(0,0,0,1)则表示AND门,将编码(V00,V01,V10,V11)配置为(0,1,1,1)则表示OR门,将编码(V00,V01,V10,V11)配置为(0,1,1,0)则表示XOR门。而等效电路模型200在不知晓V00、V01、V10、V11的真实数值的情况下也可以根据输入信号I0、I1完成运算。因此,本地计算装置只需要将V00、V01、V10、V11以及激励信号(也就是电路的输入信号)发送到云系统120,云系统120可以根据等效电路模型进行仿真,并输出一个以V00、V01、V10、或V11表示的输出。本地计算装置可以读取该输出,并解码,从而验证解码的输出是否符合设计预期。
应了解,图2中的具有两个输入信号的等效电路模型仅为示例,并不旨在对等效电路模型进行限制,等效电路模型还可具有三个或更多个输入信号,在此不做限制。
图3示出了根据本申请实施例的等效电路模型300的示意图。如图3所示,等效电路模型300包括:
第一数据选择器MUX1,用于接收第一编码V000和第二编码V001,并基于第一输入I0得到所述第一数据选择器MUX1的第一输出;其中,所述第一输出包括所述第一编码V000或所述第二编码V001;
第二数据选择器MUX2,用于接收第三编码V010和第四编码V011,并基于第一输入I0得到所述第二数据选择器MUX2的第二输出;其中,所述第二输出包括所述第三编码V010或所述第四编码V011;
第三数据选择器MUX3,用于接收第五编码V100和第六编码V101,并基于第一输入I0得到所述第三数据选择器MUX3的第三输出;其中,所述第三输出包括所述第五编码V100或所述第六编码V101;
第四数据选择器MUX4,用于接收第七编码V110和第八编码V111,并基于第一输入I0得到所述第四数据选择器MUX4的第四输出;其中,所述第四输出包括所述第七编码V110或所述第八编码V111;
第五数据选择器MUX5,连接于所述第一数据选择器MUX1和第二数据选择器MUX2的输出端,用于接收所述第一输出和所述第二输出,并基于第二输入I1得到所述第五输出;所述第五输出包括所述第一输出或所述第二输出;
第六数据选择器MUX6,连接于所述第三数据选择器MUX3和第四数据选择器MUX4的输出端,用于接收所述第三输出和所述第四输出,并基于第二输入I1得到所述第六输出;所述第六输出包括所述第三输出或所述第四输出;
第七数据选择器MUX7,连接于所述第五数据选择器MUX5和第六数据选择器MUX6的输出端,用于接收所述第五输出和所述第六输出,并基于第三输入I2得到所述第七输出O;所述第七输出包括所述第五输出或所述第六输出。
其中,图3中的等效电路模型具有三个输入信号I0、I1、I2,则其对应的真值表如下表6所示:
表6
图4示出了根据本申请实施例的逻辑系统设计的加密仿真系统400的示意图,逻辑系统设计包括第一门电路。在一些实施例中,第一门电路包括AND门、OR门或XOR门。
如图4所示,逻辑系统设计的加密仿真系统400可以包括计算装置100和云系统120。逻辑系统设计的加密仿真系统400在逻辑系统设计的仿真过程中测试逻辑系统设计的多个功能单元。逻辑系统设计的功能单元可以是逻辑系统设计的一个功能模块(例如,通信模块、存储模块、计算模块)。功能单元也可以是一个大功能模块下的小功能模块(例如,计算模块中的通用计算模块、神经网络计算模块等)或者是功能模块的一部分(例如,存储模块的各个地址段等)。简而言之,逻辑系统设计的功能单元的粒度可以根据测试的要求而具体的设置。
在本申请实施例中,计算装置100可以实现对仿真数据(例如,逻辑系统设计)进行加密、对仿真结果进行解密以及仿真结果分析的功能。并且如图4所示,计算装置100可以进一步包括激励生成单元401、加密单元402和解密单元403。
在本申请实施例中,云系统120可以实现对逻辑系统设计进行加密仿真得到相应的仿真结果的功能,并且可以进一步包括仿真工具405以及等效电路模型406。
加密单元402可以根据逻辑系统设计404中的第一门电路的多组输入将第一门电路的多个输出分别加密为多个编码407。可以理解,该多个编码407可以用于将等效电路模型配置为第一门电路。也就是说,该多个编码407可以用于指示第一门电路。例如,多组输入以及与所述多组输入分别对应的多个编码以查找表的形式存储在如图1所示的计算装置100的存储器104中。加密单元402可以从存储器104中获取该第一门电路的多组输入与对应的多个编码的查找表,并基于该查找表得到多个编码407。计算装置100将该多个编码407发送至云系统120。仿真工具405根据该多个编码407使得等效电路模型406仿真第一门电路的功能。需要注意的是,在这个过程中,仿真工具405并不知道等效电路模型406的实际功能。
激励生成单元401可以根据仿真的要求生成激励信号,用作待仿真的门电路的输入。例如,激励生成单元401生成第一门电路的激励信号408,发送至云系统120。仿真工具405将该激励信号408作为该等效电路模型406的输入。基于该输入对该等效电路模型406的多个编码407进行选择,并且在多个编码407中得到与该输入对应的第一编码。该第一编码也相应地作为加密仿真结果409。云系统120将该加密仿真结果发送至解密单元403。在图4中,激励生成单元401是由计算装置100实现。可以理解的是,在一些实施例中,激励生成单元401也可以由云系统120实现。
解密单元403对该加密仿真结果409进行解密。在一些实施例中,解密单元403先根据编码时的多组输入与多个编码之间的对应关系,由加密仿真结果409即第一编码确定第一门电路的输入为第一组输入;再根据第一组输入确定第一门电路的输出值V*的真实数值,该真实数值作为逻辑系统设计的实际的仿真结果。
本申请的实施例还提供了一种对逻辑系统设计进行加密仿真的方法。
图5示出了根据本申请实施例的一种对逻辑系统设计进行加密仿真的方法500的示意性流程图。所述逻辑系统设计包括第一门电路。第一门电路可以是如表1-3所述的各种门电路或者是规模更大的门电路。该方法500可由图4所示的逻辑系统设计的加密仿真系统400实施。更具体地,方法500可以由运行加密仿真系统400的计算装置100实施。参照图5所示,该方法500可以包括如下步骤。
在步骤S510,根据所述第一门电路的多组输入(例如,I0和I1),计算装置100可以将所述第一门电路的多个输出分别加密为多个编码(例如,V00、V01、V10以及V11)。如上所述,根据多个编码的值的不同,所述多个编码可以用于指示所述第一门电路。
在步骤S520,计算装置100可以将所述多个编码发送到云端(例如,云系统120)用于对所述第一门电路进行仿真。所述云端可以包括等效电路模型。所述多个编码用作所述等效电路模型的输入,以使得所述等效电路模型仿真所述第一门电路的功能。
在一些实施例中,如图2所示,所述等效电路模型可以是一个二输入的电路,并且包括第一数据选择器、第二数据选择器和第三数据选择器。
第一数据选择器可以用于接收第一编码和第二编码,并基于第一输入得到所述第一数据选择器的第一输出;其中,所述第一输出包括所述第一编码或所述第二编码。
第二数据选择器可以用于接收第三编码和第四编码,并基于第一输入得到所述第二数据选择器的第二输出;其中,所述第二输出包括所述第三编码或所述第四编码。
第三数据选择器可以连接于所述第一数据选择器和第二数据选择器的输出端,用于接收所述第一输出和所述第二输出,并基于第二输入得到所述第三输出;所述第三输出包括所述第一输出或所述第二输出。
在一些实施例中,如图3所示,所述等效电路模型可以是一个三输入的电路,并且包括第一到第七数据选择器。
第一数据选择器可以用于接收第一编码和第二编码,并基于第一输入得到所述第一数据选择器的第一输出;其中,所述第一输出包括所述第一编码或所述第二编码。
第二数据选择器可以用于接收第三编码和第四编码,并基于第一输入得到所述第二数据选择器的第二输出;其中,所述第二输出包括所述第三编码或所述第四编码。
第三数据选择器可以用于接收第五编码和第六编码,并基于第一输入得到所述第三数据选择器的第三输出;其中,所述第三输出包括所述第五编码或所述第六编码。
第四数据选择器可以用于接收第七编码和第八编码,并基于第一输入得到所述第四数据选择器的第四输出;其中,所述第四输出包括所述第七编码或所述第八编码。
第五数据选择器可以连接于所述第一数据选择器和第二数据选择器的输出端,用于接收所述第一输出和所述第二输出,并基于第二输入得到所述第五输出;所述第五输出包括所述第一输出或所述第二输出。
第六数据选择器可以连接于所述第三数据选择器和第四数据选择器的输出端,用于接收所述第三输出和所述第四输出,并基于第二输入得到所述第六输出;所述第六输出包括所述第三输出或所述第四输出。
第七数据选择器可以连接于所述第五数据选择器和第六数据选择器的输出端,用于接收所述第五输出和所述第六输出,并基于第三输入得到所述第七输出;所述第七输出包括所述第五输出或所述第六输出。
在步骤S530,计算装置100从所述云端接收对于所述逻辑系统设计的加密仿真结果。如上所述,加密仿真结果可以是多个编码之一(例如,V00)。
在一些实施例中,所述多个编码与所述多组输入分别对应。例如,编码V00对应于输入I0和I1为“00”的情况。在一些实施例中,所述多组输入以及与所述多组输入分别对应的多个编码以查找表的形式存储。
在步骤S540,计算装置对所述加密仿真结果进行解密得到所述逻辑系统设计的仿真结果。在一些实施例中,计算装置100可以根据所述第一门电路确定所述多个编码的真实数值,并且根据所述多个编码的真实数值确定逻辑系统设计实际的仿真结果。如参考表4的描述,对于一个OR门,其多个编码(V00,V01,V10,V11)的真实值是(0,1,1,1)。如果返回的加密仿真结果是V00,则计算装置100可以根据本地已知的多个编码的真实数值确定实际的仿真结果为“0”,从而实现解密。由于多个编码的真实数值仅为本地所知晓,云端并无法知道实际的仿真结果,更无法知道实际的门电路是什么,从而实现在云端对门电路进行隐藏并在云端仿真时不被泄露,提高了逻辑系统设计的安全性,促进了云计算在EDA行业的运用。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的对逻辑系统设计进行加密仿真的方法。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的对逻辑系统设计进行加密仿真的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的对逻辑系统设计进行加密仿真的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种对逻辑系统设计进行加密仿真的方法,所述逻辑系统设计包括第一门电路,所述方法包括:
根据所述第一门电路的多组输入将所述第一门电路的多个输出分别加密为多个编码,所述多个编码用于指示所述第一门电路;以及
将所述多个编码发送到云端用于对所述第一门电路进行仿真,其中,
所述云端包括等效电路模型,所述多个编码用作所述等效电路模型的输入,以使得所述等效电路模型仿真所述第一门电路的功能。
2.根据权利要求1所述的方法,还包括:
从所述云端接收对于所述逻辑系统设计的加密仿真结果,所述加密仿真结果是所述多个编码之一;
对所述加密仿真结果进行解密得到所述逻辑系统设计的仿真结果。
3.根据权利要求2所述的方法,其中,所述多个编码与所述多组输入分别对应,并且对所述加密仿真结果进行解密得到所述逻辑系统设计的仿真结果进一步包括:
根据所述第一门电路确定所述多个编码的真实数值;
根据所述多个编码的真实数值确定所述仿真结果。
4.根据权利要求1所述的方法,其中,所述等效电路模型包括:
第一数据选择器,用于接收第一编码和第二编码,并基于第一输入得到所述第一数据选择器的第一输出;其中,所述第一输出包括所述第一编码或所述第二编码;
第二数据选择器,用于接收第三编码和第四编码,并基于第一输入得到所述第二数据选择器的第二输出;其中,所述第二输出包括所述第三编码或所述第四编码;
第三数据选择器,连接于所述第一数据选择器和第二数据选择器的输出端,用于接收所述第一输出和所述第二输出,并基于第二输入得到所述第三输出;所述第三输出包括所述第一输出或所述第二输出。
5.根据权利要求1所述的方法,其中,所述等效电路模型包括:
第一数据选择器,用于接收第一编码和第二编码,并基于第一输入得到所述第一数据选择器的第一输出;其中,所述第一输出包括所述第一编码或所述第二编码;
第二数据选择器,用于接收第三编码和第四编码,并基于第一输入得到所述第二数据选择器的第二输出;其中,所述第二输出包括所述第三编码或所述第四编码;
第三数据选择器,用于接收第五编码和第六编码,并基于第一输入得到所述第三数据选择器的第三输出;其中,所述第三输出包括所述第五编码或所述第六编码;
第四数据选择器,用于接收第七编码和第八编码,并基于第一输入得到所述第四数据选择器的第四输出;其中,所述第四输出包括所述第七编码或所述第八编码;
第五数据选择器,连接于所述第一数据选择器和第二数据选择器的输出端,用于接收所述第一输出和所述第二输出,并基于第二输入得到所述第五输出;所述第五输出包括所述第一输出或所述第二输出;
第六数据选择器,连接于所述第三数据选择器和第四数据选择器的输出端,用于接收所述第三输出和所述第四输出,并基于第二输入得到所述第六输出;所述第六输出包括所述第三输出或所述第四输出;
第七数据选择器,连接于所述第五数据选择器和第六数据选择器的输出端,用于接收所述第五输出和所述第六输出,并基于第三输入得到所述第七输出;所述第七输出包括所述第五输出或所述第六输出。
6.根据权利要求1所述的方法,其中,所述第一门电路包括AND门、OR门或XOR门。
7.根据权利要求1所述的方法,其中,所述多组输入以及与所述多组输入分别对应的多个编码以查找表的形式存储。
8.根据权利要求7所述的方法,其中,根据所述第一门电路的多组输入将所述第一门电路的多个输出分别加密为多个编码进一步包括:基于所述查找表得到所述多个编码。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至8任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111364088.1A CN114329644B (zh) | 2021-11-17 | 2021-11-17 | 对逻辑系统设计进行加密仿真的方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111364088.1A CN114329644B (zh) | 2021-11-17 | 2021-11-17 | 对逻辑系统设计进行加密仿真的方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114329644A true CN114329644A (zh) | 2022-04-12 |
CN114329644B CN114329644B (zh) | 2023-03-24 |
Family
ID=81047442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111364088.1A Active CN114329644B (zh) | 2021-11-17 | 2021-11-17 | 对逻辑系统设计进行加密仿真的方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329644B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115293076A (zh) * | 2022-04-21 | 2022-11-04 | 芯华章科技股份有限公司 | 生成电路的方法、电子设备及存储介质 |
CN116738906A (zh) * | 2023-07-05 | 2023-09-12 | 芯华章智能科技(上海)有限公司 | 实现循环电路的方法、电路、装置和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2605826A1 (fr) * | 1986-10-23 | 1988-04-29 | Kalfon Rene | Equipement de raccordement pour terminaux d'abonne relie a un commutateur numerique rnis |
US5185794A (en) * | 1990-08-06 | 1993-02-09 | Nec Home Electronics, Ltd. | System and method for scrambling and/or descrambling a video signal |
US20030081688A1 (en) * | 2001-11-01 | 2003-05-01 | Hitachi, Ltd. | Data communication method and data communication device and semiconductor device |
CN104769862A (zh) * | 2012-07-15 | 2015-07-08 | 派克特光子学有限公司 | 用于光学装置和组件的控制系统 |
US20180137031A1 (en) * | 2016-11-11 | 2018-05-17 | Synopsys, Inc. | Waveform based reconstruction for emulation |
US10331830B1 (en) * | 2016-06-13 | 2019-06-25 | Apple Inc. | Heterogeneous logic gate simulation using SIMD instructions |
CN111931445A (zh) * | 2020-10-09 | 2020-11-13 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器及存储介质 |
US10860763B1 (en) * | 2015-09-24 | 2020-12-08 | Cadence Design Systems, Inc. | Data routing and multiplexing architecture to support serial links and advanced relocation of emulation models |
CN112100957A (zh) * | 2020-11-17 | 2020-12-18 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器、存储介质 |
CN112287569A (zh) * | 2020-12-29 | 2021-01-29 | 芯华章科技股份有限公司 | 用于仿真逻辑系统设计的方法、电子设备及存储介质 |
CN112434478A (zh) * | 2021-01-26 | 2021-03-02 | 芯华章科技股份有限公司 | 仿真逻辑系统设计的虚拟接口的方法及相关设备 |
CN113283203A (zh) * | 2021-07-21 | 2021-08-20 | 芯华章科技股份有限公司 | 用于仿真逻辑系统设计的方法、电子设备及存储介质 |
-
2021
- 2021-11-17 CN CN202111364088.1A patent/CN114329644B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2605826A1 (fr) * | 1986-10-23 | 1988-04-29 | Kalfon Rene | Equipement de raccordement pour terminaux d'abonne relie a un commutateur numerique rnis |
US5185794A (en) * | 1990-08-06 | 1993-02-09 | Nec Home Electronics, Ltd. | System and method for scrambling and/or descrambling a video signal |
US20030081688A1 (en) * | 2001-11-01 | 2003-05-01 | Hitachi, Ltd. | Data communication method and data communication device and semiconductor device |
CN104769862A (zh) * | 2012-07-15 | 2015-07-08 | 派克特光子学有限公司 | 用于光学装置和组件的控制系统 |
US10860763B1 (en) * | 2015-09-24 | 2020-12-08 | Cadence Design Systems, Inc. | Data routing and multiplexing architecture to support serial links and advanced relocation of emulation models |
US10331830B1 (en) * | 2016-06-13 | 2019-06-25 | Apple Inc. | Heterogeneous logic gate simulation using SIMD instructions |
US20180137031A1 (en) * | 2016-11-11 | 2018-05-17 | Synopsys, Inc. | Waveform based reconstruction for emulation |
CN111931445A (zh) * | 2020-10-09 | 2020-11-13 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器及存储介质 |
CN112100957A (zh) * | 2020-11-17 | 2020-12-18 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器、存储介质 |
CN112287569A (zh) * | 2020-12-29 | 2021-01-29 | 芯华章科技股份有限公司 | 用于仿真逻辑系统设计的方法、电子设备及存储介质 |
CN112434478A (zh) * | 2021-01-26 | 2021-03-02 | 芯华章科技股份有限公司 | 仿真逻辑系统设计的虚拟接口的方法及相关设备 |
CN113283203A (zh) * | 2021-07-21 | 2021-08-20 | 芯华章科技股份有限公司 | 用于仿真逻辑系统设计的方法、电子设备及存储介质 |
Non-Patent Citations (9)
Title |
---|
CHAOBO LI: "Gate-level timing analysis and waveform evaluation", 《SURFACE》 * |
DAVID BÁEZ-LÓPEZ等: "《SYNTHESIS LECTURES ON DIGITAL CIRCUITS AND SYSTEMS》", 31 December 2011 * |
SAIMA HASAN等: "Equivalent Circuit Modeling of a Dual-Gate Graphene FET", 《ELECTRONICS》 * |
丁业兵等: "基于Multisim的组合逻辑电路设计与仿真", 《价值工程》 * |
庞子涵等: "FPGA物理不可克隆函数及其实现技术", 《计算机辅助设计与图形学学报》 * |
张运涛等: "功能覆盖率统计用于核级可编程逻辑仿真验证", 《自动化博览》 * |
李桃: "基于Multisim仿真软件的组合逻辑电路的设计", 《现代工业经济和信息化》 * |
王琰: "基于软件技术的组合逻辑电路模型分析与实现研究", 《中央民族大学学报(自然科学版)》 * |
陈夏寅等: "可重构逻辑门电路的设计与仿真", 《信息通信》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115293076A (zh) * | 2022-04-21 | 2022-11-04 | 芯华章科技股份有限公司 | 生成电路的方法、电子设备及存储介质 |
CN115293076B (zh) * | 2022-04-21 | 2024-03-22 | 芯华章科技股份有限公司 | 生成电路的方法、电子设备及存储介质 |
CN116738906A (zh) * | 2023-07-05 | 2023-09-12 | 芯华章智能科技(上海)有限公司 | 实现循环电路的方法、电路、装置和存储介质 |
CN116738906B (zh) * | 2023-07-05 | 2024-04-19 | 芯华章智能科技(上海)有限公司 | 实现循环电路的方法、电路、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114329644B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10958416B2 (en) | Encrypted and compressed data transmission with padding | |
CN114329644B (zh) | 对逻辑系统设计进行加密仿真的方法、设备及存储介质 | |
US9906511B1 (en) | Secure impersonation detection | |
CN107204986A (zh) | 云端存储加密方法、解密方法及云端存储加密装置 | |
US10601580B2 (en) | Secure order preserving string compression | |
CN111191255B (zh) | 信息加密处理的方法、服务器、终端、设备以及存储介质 | |
CN111611621A (zh) | 基于区块链的分布式数据加密存储方法和电子设备 | |
CN109547201A (zh) | 一种根密钥的加密方法、计算机可读存储介质及终端设备 | |
CN112073444B (zh) | 数据集的处理方法、装置和服务器 | |
CN113544679A (zh) | 安全操作系统映像的增量解密和完整性验证 | |
US9755832B2 (en) | Password-authenticated public key encryption and decryption | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
CN114785524B (zh) | 电子印章生成方法、装置、设备和介质 | |
US9270455B1 (en) | CPU assisted seeding of a random number generator in an externally provable fashion | |
CN114036567A (zh) | 一种信息安全分享的权限认证方法及系统 | |
CN110321727A (zh) | 应用程序信息的存储、处理方法及装置 | |
CN112434094A (zh) | 基于加密算法的数据库连接方法、装置及计算机设备 | |
CN115708339B (zh) | 数据处理方法、装置和存储介质 | |
US20230085239A1 (en) | Querying fully homomorphic encryption encrypted databases using client-side preprocessing or post-processing | |
CN111949996A (zh) | 安全私钥的生成方法、加密方法、系统、设备及介质 | |
CN113609156B (zh) | 数据的查询与写入方法、装置、电子设备及可读存储介质 | |
CN111294196A (zh) | 一种信号发送及接收方法、装置、电子设备及存储介质 | |
US10680801B2 (en) | Data distribution against credential information leak | |
CN113824672A (zh) | 数据处理方法、装置、电子设备及安全多方计算系统 | |
CN116049837B (zh) | 一种可信计算系统及方法、电子设备和存储介质 |
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 |