CN113343262A - 同态加密装置、同态加密芯片及同态加密方法 - Google Patents

同态加密装置、同态加密芯片及同态加密方法 Download PDF

Info

Publication number
CN113343262A
CN113343262A CN202110694855.9A CN202110694855A CN113343262A CN 113343262 A CN113343262 A CN 113343262A CN 202110694855 A CN202110694855 A CN 202110694855A CN 113343262 A CN113343262 A CN 113343262A
Authority
CN
China
Prior art keywords
data
input
processing
modular
modulo
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
Application number
CN202110694855.9A
Other languages
English (en)
Other versions
CN113343262B (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.)
Haiguang Yunxin Integrated Circuit Design Shanghai Co ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110694855.9A priority Critical patent/CN113343262B/zh
Publication of CN113343262A publication Critical patent/CN113343262A/zh
Application granted granted Critical
Publication of CN113343262B publication Critical patent/CN113343262B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

同态加密装置、同态加密芯片及同态加密方法,所述同态加密装置包括:输入输出控制单元,适于获取输入数据及其模运算类型信息;以及获取模加和/或模减运算数据或者获取进位运算结果并输出;至少两个变换处理单元,适于在输入数据的模运算类型信息为模乘运算时,对其进行数论变换;以及对模乘运算数据进行逆变换处理,得到处理结果;模处理单元,适于在输入数据的模运算类型信息为模加和/或模减运算时,对其进行模运算,得到模加和/或模减运算数据,以及对处理数据进行模乘运算,得到模乘运算数据;进位处理单元,适于对输入的处理结果进行进位处理,得到进位运算结果。采用上述方案,能够提高同态加密的运算效率,同时实现多种同态加密运算。

Description

同态加密装置、同态加密芯片及同态加密方法
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种同态加密装置、同态加密芯片及同态加密方法。
背景技术
随着互联网技术和云计算技术的发展,用户数据的安全性和隐私性受到越来越多的关注。同态加密(Homomorphic Encryption)作为一种加密算法,其对密文操作后再解密,其操作结果等价于对明文做同样操作。采用同态加密方式,第三方可以在仅知道密文的情况下,对明文进行操作,从而可以保护用户数据的安全。
作为同态加密算法的一种,全同态加密(Fully Homomorphic Encryption,FHE)可以对加密数据进行无限次的任意运算,而不会泄露明文的任何信息,是保护用户数据安全的有效技术之一。
然而,现有的同态加密方案运算效率较低,而且只能进行一种类型的同态加密运算。
发明内容
有鉴于此,本发明实施例提供一种同态加密装置、同态加密芯片及同态加密方法,能够提高同态加密的运算效率,且能够实现多种同态加密运算。
本发明实施例提供一种同态加密装置,包括:输入输出控制单元、至少两个变换处理单元、模处理单元和进位处理单元,其中:
所述输入输出控制单元,适于获取输入数据以及所述输入数据的模运算类型信息;以及适于获取所述模处理单元输出的模加运算数据和/或模减运算数据作为同态运算结果并输出,或者从所述进位处理单元获取进位运算结果作为所述同态运算结果并输出;
所述至少两个变换处理单元中的任一变换处理单元,适于在所述输入数据的模运算类型信息为模乘运算时,对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元;以及对输入的模乘运算数据进行对应的逆数论变换处理,得到处理结果,并输出至所述进位处理单元;
所述模处理单元,适于在所述输入数据的模运算类型信息为模加运算和/或模减运算时,对从所述输入输出控制单元获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据,并将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元;以及适于对所述至少两个变换处理单元中任一变换处理单元输出的处理数据进行模乘运算,得到模乘运算数据,并将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元;
所述进位处理单元,适于对所述至少两个变换处理单元中至少一个变换处理单元输出的处理结果进行进位处理,得到进位运算结果,并输出至所述输入输出控制单元。
可选地,所述至少两个变换处理单元中任一变换处理单元均包括多个移位模块和多个求和处理模块,且移位模块和求和处理模块一一对应,其中:
所述移位模块,适于在所述获取的输入数据的模运算类型信息为模乘运算时,对所述从所述输入输出控制单元获取的输入数据进行移位处理,得到移位数据,并输出至相应的求和处理模块;
所述求和处理模块,适于对所述移位数据进行累加求和运算,得到所述处理数据,并输出至所述模处理单元。
可选地,所述求和处理模块包括:进位保留加法器、模约减器和模加器,其中:
所述进位保留加法器,适于在所述获取的输入数据的模运算类型信息为模乘运算时,对所述移位数据进行加法运算,得到加法数据,并输出至相应的模约减器;
所述模约减器,适于对所述加法数据进行位数转换,得到转换数据,并输出至相应的模加器;
所述模加器,适于对所述转换数据进行模加法运算,得到所述处理数据,并输出至所述模处理单元。
可选地,所述进位保留加法器包括m路输入n级串联结构的进位保留加法器,其中m和n均为正整数,且m>n。
可选地,所述同态加密装置还包括:
存储单元,适于存储所述至少两个变换处理单元中任一变换处理单元获取的输入数据的模运算类型信息为模乘运算时的旋转因子;
所述至少两个变换处理单元中任一变换处理单元,适于在从所述输入输出控制单元获取的输入数据的模运算类型信息为模乘运算时,从所述存储单元获取与所述获取的输入数据对应的旋转因子,并将所述获取的输入数据与其对应的旋转因子相乘,得到相应的处理数据,并输出至所述模处理单元。
可选地,所述模处理单元包括:第一存储器、第二存储器、第一数据选择器、第二数据选择器、模乘运算器、模加运算器、模减运算器和第三数据选择器,其中:
所述第一存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的另一输入数据;
所述输入输出控制单元,还适于获取所述模处理单元的运算策略并控制所述第一数据选择器、所述第二数据选择器及所述第三数据选择器按照所述运算策略进行数据选择;以及根据所述运算策略中包含的模运算类型信息控制所述模乘运算器、模加运算器或模减运算器进行相应运算;
所述第一数据选择器,适于基于所述输入输出控制单元的控制,从所述第一存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据;或/和从所述第一存储器中选择所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二数据选择器,适于基于所述输入输出控制单元的控制,从所述第二存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据;或/和从所述第二存储器中选择所述模处理单元从所述输入输出控制单元获取的另一个输入数据;
所述模乘运算器,适于基于所述输入输出控制单元的控制,将所述第一数据选择器选择的处理数据与所述第二数据选择器选择的处理数据进行模乘运算,得到所述模乘运算数据;
所述模加运算器,适于基于所述输入输出控制单元的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模加运算,得到所述模加运算数据;
所述模减运算器,适于基于所述输入输出控制单元的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模减运算,得到所述模减运算数据;
所述第三数据选择器,适于基于所述输入输出控制单元的控制,将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元,或者,将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元
可选地,所述模处理单元包括:第一存储器、第二存储器、第一数据选择器、第二数据选择器、模乘运算器、模加运算器、模减运算器、第三数据选择器和信号控制器,其中:
所述第一存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的另一输入数据;
所述信号控制器,适于获取所述模处理单元的运算策略并控制所述第一数据选择器、所述第二数据选择器及所述第三数据选择器按照所述运算策略进行数据选择;以及根据所述运算策略中包含的模运算类型信息控制所述模乘运算器、模加运算器或模减运算器进行相应运算;
所述第一数据选择器,适于基于所述信号控制器的控制,从所述第一存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据,或/和从所述第一存储器中选择所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二数据选择器,适于基于所述信号控制器的控制,从所述第二存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据,或/和从所述第二存储器中选择所述模处理单元从所述输入输出控制单元获取的另一输入数据;
所述模乘运算器,适于基于所述信号控制器的控制,将所述第一数据选择器选择的处理数据与所述第二数据选择器选择的处理数据进行模乘运算,得到所述模乘运算数据;
所述模加运算器,适于基于所述信号控制器的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模加运算,得到所述模加运算数据;
所述模减运算器,适于基于所述信号控制器的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模减运算,得到所述模减运算数据;
所述第三数据选择器,适于基于所述信号控制器的控制,将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元,或者将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元。
相应的,本发明实施例还提供了一种同态加密芯片,包括前述任一实施例所述的同态加密装置。
相应的,本发明实施例还提供了一种同态加密方法,应用于前述任一实施例所述的同态加密装置,所述同态加密装置包括输入输出控制单元、至少两个变换处理单元、模处理单元以及进位处理单元,其中,所述同态加密方法包括:
由所述输入输出控制单元获取输入数据以及所述输入数据的模运算类型信息;
在所述输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的至少一个变换处理单元分别对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元;由所述模处理单元对所述处理数据进行模乘运算,得到模乘运算数据,并输出至所述至少两个变换处理单元中至少一个变换处理单元;由所述至少两个变换处理单元中的任一变换处理单元对输入的模乘运算数据进行对应的逆数论变换处理,得到处理结果,并输出至所述进位处理单元;以及由所述进位处理单元对所述至少两个变换处理单元中至少一个变换处理单元输出的处理结果进行进位处理,得到进位运算结果,并输出至所述输入输出控制单元;
在所述输入数据的模运算类型信息为模加运算和/或模减运算时,由所述模处理单元对所述输入输出控制单元获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据,并输出至输入输出控制单元;
由所述输入输出控制单元获取所述模处理单元输出的模加运算和/或模减运算数据作为同态运算结果并输出;从所述进位处理单元获取进位运算结果作为所述同态运算结果并输出。
可选地,所述同态加密装置还包括存储单元,所述存储单元存储所述至少两个变换处理单元中任一变换处理单元获取的输入数据的模运算类型信息为模乘运算时的旋转因子;
所述在所述输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的至少一个变换处理单元对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元,包括:
在从所述输入输出控制单元获取的输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的任一变换处理单元从所述存储单元获取与所述获取的输入数据对应的旋转因子,并将所述获取的输入数据与其对应的旋转因子相乘,得到相应的处理数据,并输出至所述模处理单元。
采用本发明实施例中的同态加密装置,其中,对于至少两个变换处理单元中任一变换处理单元,可以在所述输入数据的模运算类型信息为模乘运算时,对从输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至模处理单元;且对于输入的模乘运算数据进行对应的逆数论变换处理,得到处理结果,并输出至所述进位处理单元;并且,所述模处理单元可以在所述输入数据的模运算类型信息为模加运算和/或模减运算时,对从所述输入输出控制单元获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据。换言之,在整个同态加密运算过程,一方面,可由所述至少两个变换处理单元中任一变换处理单元对输入数据进行数论变换处理,并由所述模处理单元进行模运算操作,因此,可以降低所述至少两个变换处理单元中任一变换处理单元的负载,提高所述至少两个变换处理单元中任一变换处理单元的运行速度,使得所述至少两个变换处理单元中任一变换处理单元能够更快的对下一组数据进行变换处理,从而能够提高同态加密的运算效率;另一方面,根据输入数据的模运算类型信息,可对输入数据进行模乘运算、模加运算以及模减运算中的至少一种运算,从而能够实现多种同态加密运算,进一步增强数据安全。
进一步地,所述同态加密装置还包括存储单元,所述存储单元存储所述第一变换处理单元和所述第二变换处理单元对应模运算类型信息为模乘运算时的旋转因子,即所述第一变换处理单元和所述第二变换处理单元可以共用一个存储单元,可以节约硬件存储资源。
本发明实施例还提供了一种同态加密芯片,所述同态加密芯片包括前述任一实施例所述的同态加密装置,在同态加密过程中,通过所述同态加密装置就可以实现同态加密,也即同态加密过程由硬件实现即可,从而能够降低同态加密芯片中软件部分的负载,进而提高所述同态加密芯片的运行速率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
图1示出了本发明实施例中一种同态加密装置的结构示意图。
图2示出了本发明实施例中一种变换处理单元的结构示意图。
图3示出了本发明实施例中一种求和处理模块的结构示意图。
图4示出了本发明实施例中一具体应用场景中的求和处理模块的结构示意图。
图5示出了本发明实施例中一种模处理单元的结构示意图。
图6示出了本发明实施例中另一种模处理单元的结构示意图。
图7示出了本发明实施例中一种同态加密芯片的结构示意图。
图8示出了本发明实施例中一种同态加密方法的流程图。
具体实施方式
如背景技术所述,由于进行同态加密的乘法需要进行多次幂运算,导致同态加密运算效率较低,因此,提高同态加密运算效率对同态加密至关重要。
在同态加密过程中,可由第一数论变换处理单元将互质的输入数据中其中一个输入数据与其对应的旋转因子相乘,得到第一数论变换处理结果;由第二数论变换处理单元将互质的输入数据中另一输入数据与其对应的旋转因子相乘,第二数论变换处理结果。由第一数论变换处理单元和第二数论变换处理单元中的其中一个数论变换处理单元对第一数论变换处理结果和第二数论变换处理结果进行模乘运算,得到模乘结果,并对所述模乘结果进行逆数论变换(Inverse Number Theoretical Transform,INTT)处理,得到逆数论变换处理结果。之后,对所述逆数论变换处理结果进行进位处理,并输出,从而完成同态加密过程。
上述同态加密过程只实现了同态加密的模乘运算,而且,数论变换处理(NumberTheoretical Transform,NTT)和模乘运算均由第一数论变换处理单元和第二数论变换处理单元中其中一个数论变换处理单元进行处理,增加了数论变换处理单元负载,降低所述数论变换处理单元的运行速度,从而降低整体的运算效率。
为解决上述问题,采用本发明实施例中的同态加密装置,在整个同态加密运算过程,一方面,可由至少两个变换处理单元中任一变换处理单元对输入数据进行数论变换处理,并由所述模处理单元进行模运算操作,因此,可以降低所述至少两个变换处理单元中任一变换处理单元的负载,提高所述至少两个变换处理单元中任一变换处理单元的运行速度,使得所述至少两个变换处理单元中任一变换处理单元能够更快的对下一组数据进行变换处理,从而能够提高整个同态加密装置的运算效率;另一方面,根据输入数据的模运算类型信息,可对输入数据进行模乘运算、模加运算以及模减运算中的至少一种运算,从而能够实现多种同态加密运算,进一步增强数据安全性能。
为使本领域技术人员更好地理解和实施和实现本发明实施例,以下参照附图,通过具体示例进行详细说明。
为方便理解和描述,以下以本发明实施例中同态加密装置具有两个变换处理单元为例,详细说明同态加密装置的加密过程。
参照图1所示的本发明实施例中的一种同态加密装置的结构示意图,在本发明实施例中,如图1所示,所述同态加密装置10可以包括:输入输出控制单元11、至少两个变换处理单元(例如第一变换处理单元12和第二变换处理单元13)、模处理单元14和进位处理单元15,其中:
所述输入输出控制单元11,适于获取输入数据以及所述输入数据的模运算类型信息;以及适于获取所述模处理单元14输出的模加运算数据和/或模减运算数据作为同态运算结果并输出,或者从所述进位处理单元15获取进位运算结果作为所述同态运算结果并输出;
所述至少两个变换处理单元中的任一变换处理单元,如第一变换处理单元12和所述第二变换处理单元13中的任一变换处理单元,适于在所述输入数据的模运算类型为模乘运算时,对从所述输入输出控制单元11获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元14;以及对于输入的模乘运算数据进行对应逆数论变换处理,得到处理结果,并输出至所述进位处理单元15;
所述模处理单元14,适于在所述输入数据的模运算类型信息为模加运算和/或模减运算时,对从所述输入输出控制单元11获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据,并将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元11;以及适于对所述至少两个变换处理单元中任一变换处理单元输出的处理数据进行模乘运算,得到模乘运算数据,并将所述模乘运算数据输出至所述至少两个变换处理单元中的至少一个变换处理单元,例如,可以将所述模乘运算数据输出至所述第一变换处理单元12和所述第二变换处理单元13中至少一个变换处理单元;
所述进位处理单元15,适于对所述至少两个变换处理单元(例如第一变换处理单元12和第二变换处理单元13)中至少一个变换处理单元输出的处理结果进行处理,得到进位运算结果,并输出至所述输入输出控制单元11。
在具体实施中,所述同态加密装置10具体可以封装形成同态加密芯片。
以下参照图1,通过具体同态加密过程描述其工作原理:
首先,由输入输出控制单元11获取输入数据以及所述输入数据的模运算类型信息。
之后,当所述输入数据的模运算类型信息为模乘运算时,可由所述至少两个变换处理单元中任一变换处理单元,例如第一变换处理单元12和第二变换处理单元13中的任一变换处理单元,对从所述输入输出控制单元11获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元14;并由所述模处理单元14对所述第一变换处理单元12和第二变换处理单元13获取的处理数据进行模乘运算,得到模乘运算数据,并将所述模乘运算数据输出至所述第一变换处理单元12和第二变换处理单元13中至少一个变换处理单元,由所述第一变换处理单元12和第二变换处理单元13中至少一个变换处理单元对所述模乘运算结果进行对应逆数论变换处理,得到处理结果,并输出至所述进位处理单元15,由进位处理单元15对处理结果进行进位处理,并将得到的进位处理结果输出至所述输入输出控制单元11,作为同态运算结果输出;当所述输入数据的模运算类型信息为模加运算和/或模减运算时,可以由所述模处理单元14将从所述输入输出控制单元11获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据,并将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元11,作为同态运算结果输出。
由上可知,在整个同态加密运算过程中,一方面,可由所述至少两个变换处理单元中的任一变换处理单元,对输入数据进行数论变换处理,并由所述模处理单元进行模运算操作,因此,可以降低所述至少两个变换处理单元中的任一变换处理单元的负载,提高所述至少两个变换处理单元中任一变换处理单元的运行速度,使得所述至少两个变换处理单元中任一变换处理单元能够更快的对下一组数据进行变换处理,从而能够提高同态加密的运算效率;另一方面,根据输入数据的模运算类型信息,可对输入数据进行模乘运算、模加运算以及模减运算中的至少一种运算,从而能够实现多种同态加密运算,进一步增强数据安全性能。
为使本领域技术人员更好地理解和实施本发明实施例,以下结合图1,分别根据不同的模运算类型对本发明实施例中涉及的同态加密装置的结构及相应的同态加密过程进行详细描述。
在本发明一些实施例中,对于所述至少两个变换处理单元中的任一变换处理单元,当获取到的输入数据的模运算类型信息为模乘运算,在对所述输入数据进行数论变换处理,得到相应的处理数据时,所述至少两个变换处理单元中的任一变换处理单元还需要获取与所述输入数据相对应的旋转因子,并将所述输入数据与其对应的旋转因子相乘,得到相应的处理数据,并将所述处理数据输出至所述模处理单元,由所述模处理单元对所述处理数据进行模乘运算。
其中,为方便理解和描述,以下以本发明实施例中同态加密装置具有两个变换处理单元为例,如图1所示,所述同态加密装置10还可以包括存储单元16,其中:
所述存储单元16,适于存储所述至少两个变换处理单元中任一变换处理单元获取的输入数据的模运算类型信息为模乘运算时的旋转因子,例如可以存储所述第一变换处理单元12和所述第二变换处理单元13对应模运算类型信息为模乘运算时的旋转因子,其中,所述第一变换处理单元12和所述第二变换处理单元13中的任一变换处理单元,适于在从所述输入输出控制单元11获取的输入数据的模运算类型信息为模乘运算时,从所述存储单元16获取与所述获取的输入数据对应的旋转因子,并将所述获取的输入数据与其对应的旋转因子相乘,得到相应的处理数据,并输出至所述模处理单元14。
所述第一变换处理单元12和所述第二变换处理单元13通过共用一个存储单元16,可以节约硬件存储资源。
在具体实施中,对于在有限域中的数论变换处理,硬件所涉及到的模加运算、模乘运算和模减运算均是基于2的幂次方,因此在整个数论变换过程中,进行相应的移位操作就可以得到2的幂次方计算结果,之后,对各个点的计算结果进行累计和,就可以得到处理数据,从而可以降低数论变换运算的复杂性。
具体而言,在本发明一些实施例中,所述至少两个变换处理单元中任一变换处理单元均可以包括用于对从所述输入输出控制单元获取的输入数据进行移位处理的移位模块,以及用于对经移位处理的输入数据进行累加求和运算的求和处理模块,以实现对所述获取的输入数据的数论变换处理。
参照图2所述的本发明实施例中的一种变换处理单元的结构示意图,在本发明实施例中,如图2所示,所述变换处理单元20为n*64bit,即n点64bit的变换处理单元,其中,n为大于等于1的整数,所述变换处理单元20可以包括多个移位模块和多个求和处理模块,如2图中的移位模块0、移位模块1、…、移位模块i、…、移位模块n-1,以及求和处理模块0、求和处理模块1、…、求和处理模块i、…、求和处理模块n-1,且移位模块和求和处理模块一一对应,例如:所述移位模块0和所述求和处理模块0对应,移位模块i和求和处理模块i对应,其中,i和n均为大于等于1的整数,且i≤n。
在具体实施中,结合参考图1,所述变换处理单元20可以作为第一变换处理单元12,用于对从所述输入输出控制单元获取的输入数据的模运算类型信息为模乘运算时,对所述获取的输入数据进行数论变换运算,得到相应处理数据,并输出至所述模处理单元;或者,所述变换处理单元20可以作为第二变换处理单元13,用于对从所述输入输出控制单元获取的输入数据的模运算类型信息为模乘运算时,对所述获取的输入数据进行数论变换运算,得到相应的处理数据,并输出至所述模处理单元。
换言之,所述第一变换处理单元12和所述第二变换处理单元13均可以采用上述变换处理单元20的结构。
需要说明的是,当同态加密装置具有多个变换处理单元时,例如M个变换处理单元(M为大于2的整数)时,其中任一变换处理单元均可以采用上述变换处理单元的结构。
以所述变换处理单元20为第一变换处理单元为例,说明所述变换处理单元对所述输入数据进行数论变换运算,得到处理数据的过程。
为方便描述,用所述移位模块i表示任一移位模块,用求和处理模块i表示任一求和处理模块,其中:
所述移位模块i,适于在所述获取的输入数据的模运算类型信息为模乘运算时,对所述从所述输入输出控制单元获取的输入数据进行移位处理,得到移位数据,并输出至相应的求和处理模块i;
在具体实施中,所述移位模块i可以为移位器。
所述求和处理模块i,适于对所述移位数据进行累加求和运算,得到所述处理数据,并输出至所述模处理单元,例如,所述处理数据可以为图2中的A[0]、A[1]、…、A[i]、…A[n-1]。
在具体实施中,参照图1和图2,当从所述输入输出控制单元获取到的输入数据的模运算类型信息为模乘运算,所述第一变换处理单元12可以对所述获取的输入数据进行数论变换处理,其中,可以由所述第一变换处理单元12中的移位模块i对所述输入数据进行移位运算,并将得到的移位数据输出至所述求和处理模块i,所述求和处理模块i可以对所述移位数据进行累加求和运算,并得到所述处理数据,并输出至所述模处理单元14。
对于本发明实施例中的n点64bit的第一变换处理单元12,要实现64位宽的操作,每一个累计求和运算结果都要进行模运算,从而占用大量硬件资源,因此,可以根据实际应用场景,采用“0填充”的方式将64位宽的操作数进行扩展,以避免每次累计求和运算都进行模运算。例如,采用“0填充”的方式将64位宽的输入数据扩展为192位宽的输入数据。
结合图1和2,并参照图3所示本发明实施例中一种求和处理模块的结构示意图,其中,求和处理模块30可以包括进位保留加法器(Carry Save Adder,CSA)31、模约减器32和模加器33,其中:
所述进位保留加法器31,适于在所述获取的输入数据的模运算类型信息为模乘运算时,对所述移位数据进行加法运算,得到加法数据,并输出至相应的模约减器32;
所述模约减器32,适于对所述加法数据进行位数转换,得到转换数据,并输出至相应的模加器33;
所述模加器33,适于对所述转换数据进行模加法运算,得到所述处理数据,并输出至所述模处理单元14。
作为一具体示例,当从所述输入输出控制单元获取到的输入数据的模运算类型为模乘运算时,可以将64位宽的输入数据扩展为192位宽的输入数据,并由图2中的移位模块i对所述192位宽的输入数据进行移位操作,得到2的幂次方运算结果,并输出至所述求和处理模块30中的进位保留加法器31,由所述进位保留加法器31对移位数据进行加法运算,其中,所述进位保留加法器31的输入有两个加法数据和一个来自低位的进位数据,其输出为部分和输出以及进位输出,从而能够得到相应的加法数据,并将所述加法数据输出至所述模约减器32,所述模约减器32可以将192bit的加法数据转换为64bit的转换数据,并输出至所述模加器33,所述模加器33对64bit的转换数据进行模加运算,得到处理数据,并输出至模处理单元14,由所述模处理单元14进行模乘运算。
在本发明实施例中,所述进位保留加法器31可以包括m路输入n级串联结构的进位保留加法器,其中m和n均为正整数,且m>n。
在本发明实施例中,作为一具体示例,为实现64位宽输入数据的数论变换,可以通过“0填充”方式,将64位宽的输入数据扩展为192位,以避免每次操作都要进行模运算,且有2192modρ=1,其中,mod为取模运算。
在具体实施中,继续参照图1,由于26是32点64bit的所述第一变换处理单元12的单位根,因此,对于32点64bit的第一变换处理单元12,其有限域的数论变换公式:
Figure BDA0003127693340000141
相应的,32点64bit第一变换处理单元12的有限域的逆数论变换公式:
Figure BDA0003127693340000142
其中,k表示序数,取值为0至31中的任一整数,n表示采样点数,取值为0至31中的任一整数,ρ为素数,取值可以是264-232+1。
经上述移位处理后,可以将32点64bit的运算结果进行累加,作为一具体示例,对于32点64bit的第一变换处理单元12,所述进位保留加法器31可以包括32路输入4级串联结构的进位保留加法器。
参照图4所示的本发明实施例中一具体应用场景的求和处理模块结构示意图,在求和处理模块40中,所述进位保留加法器41为32路输入4级串联结构的进位保留加法器,如图4中的CSA1至CSA15,对于任意一个CSA,例如CSA1,其输入的数据包括两个加法数据和一个来自低位的进位数据,所述两个加法数据可以为a、b,所述进位数据可以为c,则CSA1输出的部分和为数据a、b、c异或运算的结果,即:CSA1输出的部分和为a⊕b⊕c,其进位输出为先对数据a、b、c进行与运算,得到与运算结果ab、ac和bc,再对ab、ac和bc进行或运算,即:进位输出为ab+ac+bc。
同理,可以按照上述原理,分别计算每个CSA的输出的部分和和进位数据,并将任意两个CSA的输出作为下一级CSA的输入,例如,可以将CSA1和CSA2输出作为CSA9的输入,CSA9和CSA10输出可以作为CSA13的输入,CSA13和CSA14的输出可以作为CSA15的输入,因此,采用所述进位保留加法器41可以做一个32路输入的四级求和单元,并由CSA15经32路输入的总的求和结果输出至约模减器42,利用所述模约减器42将192位宽的输入数据转换为64位宽,并由模加器43对64位宽的进位数据和部分和数据进行模加运算,得到所述处理数据,并输出至模处理单元,由所述模处理单元进行模乘运算处理。
需要说明的是,上述仅为示例说明,在实际应用中,所述进位保留加法器可以为其他类型或结构的进位加法器。
在具体实施中,可以按照上述过程,由所述第二变换处理单元对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到相应的处理数据,在此不再赘述。
其中,参照图1,所述输入输出控制单元11可以根据预设的输入控制策略,在所述输入数据的模运算类型信息为模加运算和/或模减运算时,直接将所述输入数据输入至模处理单元14,由所述模处理单元14对所述输入数据进行模加运算和/或模减运算;以及在所述输入数据的模运算类型信息为模乘运算时,将输入数据分为两组,并分别输入至所述第一变换处理单元12和所述第二变换处理单元13进行变换处理,或者所述输入输出控制单元11直接同步获取具有对应关系的两组输入数据,并分别输入至所述第一变换处理单元12和所述第二变换处理单元13进行数论变换处理,得到处理数据,并将处理数据输出至所述模运算单元14,由所述模处理单元14进行模乘运算。
在具体实施中,输入输出控制单元11可以通过比特流的方式获取输入数据并按照预设的控制策略传输至所述模处理单元14、所述第一变换处理单元12或所述第二变换处理单元13,进行相应的处理,并将经处理得到的数据按照预设的控制策略依次传递给后续的处理单元。
在具体实施中,所述同态加密装置10中各处理单元可以通过流水线形式对输入的数据进行处理,从而可以更加高效地利用所述同态加密装置10中的处理资源。
在本发明实施例中,所述模处理单元14获取到所述第一变换处理单元12和所述第二变换处理单元13输出的处理数据时,可以对所述第一变换处理单元12输出的处理数据和所述第二变换处理单元13输出的处理数据进行模乘运算,或者,将直接从输入输出控制单元11获取到的输入数据进行模加运算和/或模减运算。
在具体实施中,可能有多组第一处理数据和第二处理数据待完成相应的模运算,为提高运算效率,需要考虑如何对多组数据进行运算控制。
为此,可以预先设定运算策略,并由相应的处理模块按照所述运算策略对输入数据进行处理。以下给出一些可实现示例。
在本发明的一些实施例中,可以由输入输出控制单元获取模处理单元预先设定的运算策略,通过控制所述模处理单元,进行相应的运算。
其中,所述运算策略可以包括:数据对象的选择、运算时序、运算类型等。
需要说明的是,本发明实施例中并不限定具体的运算策略。
结合图1,并参照图5所示的本发明实施例中一种模处理单元的结构示意图,在本发明实施例中,如图5所示,所述模处理单元50分别与输入输出控制单元5A、第一变换处理单元5B、第二变换处理单元5C耦接,所述模处理单元50可以包括:第一存储器51、第二存储器52、第一数据选择器53、第二数据选择器54,模乘运算器55、模加运算器56、模减运算器57和第三数据选择器58,其中:
所述第一存储器51,适于存储所述至少两个变换处理单元中的任意两个变换处理单元(例如所述第一变换处理单元5B和第二变换处理单元5C)中其中一个变换处理单元(例如所述第一变换处理单元5B)输出的处理数据;以及适于存储所述模处理单元50从所述输入输出控制单元5A获取的其中一个输入数据;
所述第二存储器52,适于存储所述至少两个变换处理单元中任意两个变换处理单元(例如所述第一变换处理单元5B和第二变换处理单元5C)中另一个变换处理单元(例如,所述第二变换处理单元5C)输出的处理数据;以及适于存储所述模处理单元50从所述输入输出控制单元5A获取的另一输入数据;
所述输入输出控制单元5A,还适于获取所述模处理单元50的运算策略并控制所述第一数据选择器53、所述第二数据选择器54及所述第三数据选择器58按照所述运算策略进行数据选择;以及根据所述运算策略中包含的模运算类型信息控制所述模乘运算器55、模加运算器56或模减运算器57进行相应运算;
所述第一数据选择器53,适于基于所述输入输出控制单元5A的控制,从所述第一存储器51中选择所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据,例如可以从所述第一存储器51中选择第一变换处理单元5B输出的处理数据;或/和从所述第一存储器51中选择所述模处理单元50从所述输入输出控制单元5A获取的其中一个输入数据;
所述第二数据选择器54,适于基于所述输入输出控制单元5A的控制,从所述第二存储器52中选择所述至少两个变换处理单元中任意两个变换处理单元(例如所述第一变换处理单元5B和第二变换处理单元5C)中另一个变换处理单元(例如第二变换处理单元5C)输出的处理数据;或/和从所述第二存储器52中选择所述模处理单元50从所述输入输出控制单元5A获取的另一个输入数据;
所述模乘运算器55,适于基于所述输入输出控制单元5A的控制,将所述第一数据选择器53选择的处理数据与所述第二数据选择器54选择的处理数据进行模乘运算,得到所述模乘运算数据;
所述模加运算器56,适于基于所述输入输出控制单元5A的控制,将所述第一数据选择器53选择的输入数据与所述第二数据选择器54选择的输入数据进行模加运算,得到所述模加运算数据;
所述模减运算器57,适于基于所述输入输出控制单元5A的控制,将所述第一数据选择器53选择的输入数据与所述第二数据选择器54选择的输入数据进行模减运算,得到所述模减运算数据;
所述第三数据选择器58,适于基于所述输入输出控制单元5A的控制,将所述模加运算数据和/或模减运算数据输出至所述输入输出模块5A,或者将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元,例如,可以将模乘运算数据输出至所述第一变换处理单元5B和所述第二变换处理单元5C中至少一个变换处理单元。
作为一具体示例,所述第一数据选择器53基于所述输入输出控制单元5A的控制,从所述第一存储器51选择处理数据,以及所述第二数据选择器54基于所述输入输出控制单元5A的控制,从所述第二存储器52选择处理数据,可由所述模乘运算器55将所述第一数据选择器53选择的处理数据与所述第二选择器54选择的输入数据进行模乘运算,得到所述模乘运算数据,所述第三数据选择器58可以基于所述输入输出控制单元5A的控制,将所述模运算数据输出至变换处理单元,其中可以由所述第一变换处理单元5B和所述第二变换处理单元5C中至少一个变换处理单元,对所述模乘运算数据进行逆数论变换。
作为一另具体示例,所述第一数据选择器53基于所述输入输出控制单元5A的控制,从所述第一存储器51选择输入数据,以及所述第二数据选择器54基于所述输入输出控制单元5A的控制,从所述第二存储器52选择输入数据时,可由所述模加运算器56对所述第一数据选择器53选择的输入数据和所述第二数据选择器54选择的输入数据进行模加运算,得到所述模加运算数据,所述第三数据选择器58可以基于所述输入输出控制单元5A的控制,将所述模加运算数据输出至所述输入输出控制单元5A。
作为又一具体示例,所述第一数据选择器53基于所述输入输出控制单元5A的控制,从所述第一存储器51选择输入数据,以及所述第二数据选择器54基于所述输入输出控制单元5A的控制,从所述第二存储器52选择输入数据时,可由所述模减运算器57对所述第一数据选择器53选择的输入数据和所述第二数据选择器54选择的输入数据进行模减运算,得到所述模运算数据,所述第三数据选择器58可以基于所述输入输出控制单元5A的控制,将所述模减运算数据输出至所述输入输出控制单元5A。
在具体实施中,所述输入输出控制单元5A还可以根据所述第一变换处理单元5B和所述第二变换处理单元5C的空闲程度,将所述模运算数据选择输入二者中空闲的变换处理单元。
需要说明的是,上述第一数据选择器53和第二数据选择器54在同一时刻,从第一存储器51和第二存储器52获取的数据的模运算类型信息需要保持一致,从而确保同态加密数据类型的一致性,避免因模运算类型不同,导致同态加密失败。
在本发明的另一些实施例中,所述模处理单元的可以通过内置信号控制器,由所述信号控制器根据预先设定的运算策略,控制相应的运算进程。
其中,所述运算策略可以包括:数据对象的选择、运算时序、运算类型等。
需要说明的是,本发明实施例中并不限定具体的运算策略。
结合图1,并参照图6所示的本发明实施例中另一种模处理单元的结构示意图,在本发明实施例中,如图6所示,模处理单元60分别与输入输出控制单元(图6未示出)、第一变换处理单元6A、第二变换处理单元6B耦接,所述模处理单元60可以包括:第一存储器61、第二存储器62、第一数据选择器63、第二数据选择器64、模乘运算器65、模加运算器66、模减运算器67、第三数据选择器68和信号控制器69,其中:
所述第一存储器61,适于存储所述至少两个变换处理单元中任意两个变换处理单元(例如所述第一变换处理单元6A和第二变换处理单元6B)中其中一个变换处理单元输出的处理数据,例如可以存储所述第一变换处理单元6A输出的处理数据;以及存储所述模处理单元60从所述输入输出控制单元11获取的其中一个输入数据;
所述第二存储器62,适于存储所述至少两个变换处理单元中任意两个变换处理单元(例如所述第一变换处理单元6A和第二变换处理单元6B)中另一个变换处理单元输出的处理数据,例如可以存储所述第二变换处理单元6B输出的处理数据;以及适于存储所述模处理单元60从所述输入输出控制单元11获取的另一输入数据;
所述信号控制器69,适于获取所述模处理单元60的运算策略并控制所述第一数据选择器63、所述第二数据选择器64及所述第三数据选择器68按照所述运算策略进行数据选择;以及根据所述运算策略中包含的模运算类型信息控制所述模乘运算器65、模加运算器66或模减运算器67进行相应运算;
所述第一数据选择器63,适于基于所述信号控制器69的控制,从所述第一存储器61中选择所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据,例如可以从所述第一存储器61中选择所述第一变换处理单元6A输出的处理数据;或/和从所述第一存储器61中选择所述模处理单元60从所述输入输出控制单元11获取的其中一个输入数据;
所述第二数据选择器64,适于基于所述信号控制器69的控制,从所述第二存储器62中选择所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据,例如可以从所述第二存储器62中选择所述第二变换处理单元6B输出的处理数据;
所述模乘运算器65,适于基于所述信号控制器69的控制,将所述第一数据选择器63选择的处理数据与所述第二数据选择器64选择的处理数据进行模乘运算,得到所述模乘运算数据;
所述模加运算器66,适于基于所述信号控制器69的控制,将所述第一数据选择器63选择的输入数据与所述第二数据选择器64选择的输入数据进行模加运算,得到所述模加运算数据;
所述模减运算器67,适于基于所述信号控制器69的控制,将所述第一数据选择器63选择的输入数据与所述第二数据选择器64选择的输入数据进行模减运算,得到所述模减运算数据;
所述第三数据选择器68,适于基于所述信号控制器69的控制,将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元11,或者将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元,例如,可以将所述模乘运算数据输出至所述第一变换处理单元6A和所述第二变换处理单元6B中至少一个变换处理单元。
作为一具体示例,当所述第一数据选择器63基于所述信号控制器69的控制,从所述第一存储器61选择处理数据时,以及所述第二数据选择器64基于所述信号控制器69的控制,从所述第二存储器62选择处理数据时,可由所述模乘运算器65将所述第一数据选择器63选择的处理数据与所述第二数据选择器64选择的处理数据进行模乘运算,得到所述模乘运算数据,所述第三数据选择器68可以基于所述信号控制器69的控制,将所述模乘运算数据输出至变换处理单元,可以由所述第一变换处理单元6A和所述第二变换处理单元6B中至少一个变换处理单元,对所述模乘运算数据进行逆数论变换。
作为另一具体示例,所述第一数据选择器63基于所述信号控制器69的控制,从所述第一存储器61选择输入数据,以及所述第二数据选择器64基于所述信号控制器69的控制,从所述第二存储器62选择输入数据时,可由所述模加运算器66对所述第一数据选择器63选择的输入数据和所述第二数据选择器64选择的输入数据进行模加运算,得到所述模加运算数据,所述第三数据选择器68可以基于所述信号控制器69的控制,将所述模加运算数据输出至所述输入输出控制单元11。
作为又一具体示例,所述第一数据选择器63基于所述信号控制器69的控制,从所述第一存储器61选择的输入数据,以及当第二数据选择器64基于所述信号控制器69的控制,从所述第二存储器62选择输入数据时,可由所述模减运算器67对所述第一数据选择器63选择的输入数据和所述第二数据选择器64选择的输入数据进行模减运算,得到所述模减运算数据,所述第三数据选择器68可以基于所述信号控制器69的控制,将所述模运算数据输出至所述输入输出控制单元11。
在具体实施中,所述信号控制器69可以根据所述第一变换处理单元6A和所述第二变换处理单元6B的空闲程度,将所述模运算数据选择输入二者中空闲的变换处理单元。
需要说明的是,上述第一数据选择器63和第二数据选择器64在同一时刻,从第一存储器61和第二存储器62获取的数据的模运算类型信息需要保持一致,从而确保同态加密数据类型的一致性,避免因模运算类型不同,导致同态加密失败。
在具体实施中,可由输入输出控制单元判断输入数据的模运算类型信息,并将模运算类型信息为模乘运算的输入数据输出至至少两个变换处理单元,以及将模运算类型信息为模加运算和/或模减运算的输入数据输出至模处理单元,从而实现对不同模运算类型信息的输入数据进行相应的处理。
在本发明的其他实施例中,无论所述输入数据的类型是模加运算、模减运算还是模乘运算,从所述输入输出控制单元获取到的输入数据也可以经所述变换处理单元,再输出至模处理单元,以及经所述模处理单元处理后的数据,可以经所述变换处理单元,再输出至输入输出控制单元。即,所述变换处理单元可以作为用于模加和/或模减运算的数据的通道,在具体实施中,所述至少两个变换处理单元中的任一变换处理单元,可以根据所所输入的数据的模运算类型决定是对所述输入数据进行变换处理,或者直接传输至所述模处理单元。
具体而言,当所述输入数据的模运算类型为模加运算和/或模减运算时,可由所述变换处理单元从输入输出控制单元获取输入数据,不对所述输入数据做任何处理,直接输出至模处理单元,由模处理单元对所述输入数据做模加运算和/或模减运算,并将得到的模加运算结果和/或模减运算结果输出至变换处理单元,由所述变换处理单元将来自于所述模处理单元的模加运算结果和/或模减运算结果输出至输入输出控制单元。
作为一具体示例,继续参照图5所示的本发明实施例中一种模处理单元的结构示意图,其中,所述模加运算器56基于所述输入输出控制单元5A的控制,将所述第一数据选择器53选择的输入数据与所述第二数据选择器54选择的输入数据进行模加运算,得到所述模加运算数据,可以将所述模加运算数据输出至所述第一变换处理单元5B和所述第二变换处理单元5C中至少一个变换处理单元,并由所述变换处理单元将所述模加运算数据输出至输入输出控制单元5A。
当所述输入数据的模运算类型为模乘运算时,可以参照图5或者图6所涉及到的对输入数据的模乘运算过程,在此不再展开。
在本发明实施例中,根据输入数据的模运算类型信息,由所述模处理单元对其进行相应的模运算时,可以根据模运算类型信息,将得到的模运算数据输出至所述第一变换处理单元和所述第二变换处理单元中至少一个变换处理单元,或者将得到的模运算数据输出至所述输入输出控制单元。
在一具体实施中,经所述模处理单元处理得到的模运算数据的模运算类型信息为模乘运算时,可以将所述得到的模运算数据输出至所述第一变换处理单元和所述第二变换处理单元中至少一个变换处理单元,由所述第一变换处理单元和所述第二变换处理单元中的任一变换处理单元,对所述模乘运算数据进行逆数论变换,得到相应的处理结果,并输出至进位处理单元。
在本发明实施例中,由上可知,作为一具体实施例,对于32点64bit的变换处理单元,要实现64位宽输入数据的数论逆运算,可以按照前述公式(2)得到相应的处理结果,然后由所述进位处理单元根据预先内置的函数,对经所述逆数论变换得到的处理结果进行进位处理,得到进位运算结果,并由所述输入输出控制单元从所述进位处理单元获取所述进位运算结果作为同态结果并输出。
在另一具体实施中,经所述模处理单元处理得到的模运算数据的模运算类型信息为模加运算/模减运算时,可以直接将所述得到的模运算数据输出至所述输入输出控制单元,并作为同态加密运算结果输出。
本发明实施例还提供了一种同态加密芯片,参照图7所示的本发明实施例中一种同态加密芯片,所述同态加密芯片70具体可以包括上述任一实施例所述的同态加密装置71。所述同态加密装置71的具体结构示例、实现原理等均可以参见前述实施例的描述,此处不再展开说明。
采用上述同态加密芯片,通过同态加密装置71执行同态加密过程,即同态加密过程由硬件实现即可,从而能够降低同态加密芯片中软件部分的负载,进而能够提高所述同态加密芯片的运行速率。
本发明实施例还提供了相应的同态加密方法,所述同态加密方法可以应用于上述任一实施例所述的同态加密装置,其中,所述同态加密装置可以包括输入输出控制单元、至少两个变换处理单元、模处理单元以及进位处理单元。在本发明的一些实施例中,参照图8,具体可按以下步骤对输入数据进行同态加密:
S10,由所述输入输出控制单元获取输入数据以及所述输入数据的模运算类型信息。
具体而言,所述输入输出控制单元可以获取输入数据及所述输入数据的模运算类型,进而可以根据所述输入数据的模运算类型信息进行相应的操作,其中,在所述输入数据的模运算类型信息为模乘运算时,可以执行步骤S11;在所述输入数据的模运算类型信息为模加运算和/或模减运算时,可以执行步骤S12。
S11,在所述输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的任一变换处理单元分别对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元;由所述模处理单元对所述处理数据进行模乘运算,得到模乘运算数据,并输出至所述至少两个变换处理单元中至少一个变换处理单元;由所述至少两个变换处理单元中的任一变换处理单元对输入的模乘运算数据进行对应的逆变换处理,得到处理结果,并输出至所述进位处理单元;以及由所述进位处理单元对所述至少两个变换处理单元中至少一个变换处理单元输出的处理结果进行进位处理,得到进位运算结果,并输出至所述输入输出控制单元。
作为具体示例,当所述输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的任一变换处理单元从所述输入输出控制单元获取所述输入数据,并对获取到的输入数据进行数论变换处理,得到处理数据,并输出至模处理单元。所述模处理单元对从所述至少两个变换单元中任意相对应的两个变换处理单元获取的处理数据,得到模乘运算结果,并输出至所述至少两个变换单元中任意相对应的两个变换处理单元中至少一个变换处理单元,由其中至少一个变换处理单元对模乘运算数据进行逆数论变换处理,得到处理结果,并将所述处理结果输出至进位处理单元,由所述进位处理单元根据预设函数,对经所述逆数论变换得到的处理结果进行进位处理,得到进位运算结果,并由输出至所述输入输出控制单元。
S12,在所述输入数据的模运算类型信息为模加运算和/或模减运算时,由所述模处理单元对所述输入输出控制单元获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据,并输出至输入输出控制单元。
具体而言,当所述输入数据的模运算类型信息为模加运算和/或模减运算时,所述模处理单元直接从所述输入输出控制单元获取输入数据,并对所述输入数据进行模加运算和/或模减运算,得到对应的模加运算数据和/或模减运算数据,并直接输出至所述输入输出控制单元。
S13,由所述输入输出控制单元获取所述模处理单元输出的模加运算和/或模减运算数据作为同态运算结果并输出;或由所述输入输出控制单元从所述进位处理单元获取进位运算结果作为所述同态运算结果并输出。
具体而言,当经所述模处理单元对输入数据进行模加运算和/或模减运算,并得到对应的模加运算数据和/或模减运算数据,可由所述输入输出控制单元获取所述模处理单元输出的模加运算和/或模减运算数据作为同态运算结果并输出,或者,经所述进位处理单元进行进位处理,得到进位处理数据,由所述输入输出控制单元获取所述进位处理数据作为所述同态运算结果输出。
需要说明的是,在具体实施中,对步骤S11和步骤S12执行时序不做要求,当基于获取到的输入数据的模运算类型信息执行相应的步骤,即当获取的输入数据的模运算类型信息为模加运算和/或模减运算时,则可以执行步骤S12;而当获取到的输入数据的模运算类型信息为模乘运算时,则可以执行步骤S11。
由上可知,在同态加密过程中,一方面,可由至少两个变换处理单元中任一变换处理单元对输入数据进行数论变换处理,并由所述模处理单元进行模运算操作,因此,可以降低所述至少两个变换处理单元中任一变换处理单元的负载,提高所述至少两个变换处理单元中任一变换处理单元的运行速度,使得所述至少两个变换处理单元中任一变换处理单元能够更快的对下一组数据进行变换处理,从而能够提高整个同态加密装置的运算效率;另一方面,根据输入数据的模运算类型信息,可对输入数据进行模乘运算、模加运算以及模减运算中的至少一种运算,从而能够实现多种同态加密运算,进而可以增强数据安全性能。
在具体实施中,所述同态加密装置还可以包括存储单元,所述存储单元存储所述至少两个变换处理单元中任一变换处理单元获取的输入数据的模运算类型信息为模乘运算时的旋转因子,在从所述输入输出控制单元获取的输入数据的模运算类型信息为模乘运算时,所述至少两个变换处理单元中的至少一个变换处理单元可以从所述存储单元获取与所述获取的输入数据对应的旋转因子,并将所述获取的输入数据与其对应的旋转因子相乘,得到相应的处理数据,并输出至所述模处理单元。
具体而言,当获取到的输入数据的模运算类型信息为模乘运算,在对所述输入数据进行数论变换处理,得到相应的处理数据时,所述至少两个变换处理单元中的任一变换处理单元除了需要从输入输出单元获取模运算类型信息为模乘运算的输入数据,还需要从所述存储单元获取与所述获取的输入数据对应的旋转因子,并将所述输入数据与其对应的旋转因子相乘,得到相应的处理数据,并将所述处理数据输出至所述模处理单元,由所述模处理单元对所述处理数据进行模乘运算。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (10)

1.一种同态加密装置,其特征在于,包括:输入输出控制单元、至少两个变换处理单元、模处理单元和进位处理单元,其中:
所述输入输出控制单元,适于获取输入数据以及所述输入数据的模运算类型信息;以及适于获取所述模处理单元输出的模加运算数据和/或模减运算数据作为同态运算结果并输出,或者从所述进位处理单元获取进位运算结果作为所述同态运算结果并输出;
所述至少两个变换处理单元中的任一变换处理单元,适于在所述输入数据的模运算类型信息为模乘运算时,对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元;以及对输入的模乘运算数据进行对应的逆数论变换处理,得到处理结果,并输出至所述进位处理单元;
所述模处理单元,适于在所述输入数据的模运算类型信息为模加运算和/或模减运算时,对从所述输入输出控制单元获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据,并将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元;以及适于对所述至少两个变换处理单元中任一变换处理单元输出的处理数据进行模乘运算,得到模乘运算数据,并将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元;
所述进位处理单元,适于对所述至少两个变换处理单元中至少一个变换处理单元输出的处理结果进行进位处理,得到进位运算结果,并输出至所述输入输出控制单元。
2.根据权利要求1所述的同态加密装置,其特征在于,所述至少两个变换处理单元中任一变换处理单元均包括多个移位模块和多个求和处理模块,且移位模块和求和处理模块一一对应,其中:
所述移位模块,适于在所述获取的输入数据的模运算类型信息为模乘运算时,对所述从所述输入输出控制单元获取的输入数据进行移位处理,得到移位数据,并输出至相应的求和处理模块;
所述求和处理模块,适于对所述移位数据进行累加求和运算,得到所述处理数据,并输出至所述模处理单元。
3.根据权利要求2所述的同态加密装置,其特征在于,所述求和处理模块包括:进位保留加法器、模约减器和模加器,其中:
所述进位保留加法器,适于在所述获取的输入数据的模运算类型信息为模乘运算时,对所述移位数据进行加法运算,得到加法数据,并输出至相应的模约减器;
所述模约减器,适于对所述加法数据进行位数转换,得到转换数据,并输出至相应的模加器;
所述模加器,适于对所述转换数据进行模加法运算,得到所述处理数据,并输出至所述模处理单元。
4.根据权利要求3所述的同态加密装置,其特征在于,所述进位保留加法器包括m路输入n级串联结构的进位保留加法器,其中m和n均为正整数,且m>n。
5.根据权利要求1至4任一项所述的同态加密装置,其特征在于,还包括:
存储单元,适于存储所述至少两个变换处理单元中任一变换处理单元获取的输入数据的模运算类型信息为模乘运算时的旋转因子;
所述至少两个变换处理单元中任一变换处理单元,适于在从所述输入输出控制单元获取的输入数据的模运算类型信息为模乘运算时,从所述存储单元获取与所述获取的输入数据对应的旋转因子,并将所述获取的输入数据与其对应的旋转因子相乘,得到相应的处理数据,并输出至所述模处理单元。
6.根据权利要求1所述的同态加密装置,其特征在于,所述模处理单元包括:第一存储器、第二存储器、第一数据选择器、第二数据选择器、模乘运算器、模加运算器、模减运算器和第三数据选择器,其中:
所述第一存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的另一输入数据;
所述输入输出控制单元,还适于获取所述模处理单元的运算策略并控制所述第一数据选择器、所述第二数据选择器及所述第三数据选择器按照所述运算策略进行数据选择;以及根据所述运算策略中包含的模运算类型信息控制所述模乘运算器、模加运算器或模减运算器进行相应运算;
所述第一数据选择器,适于基于所述输入输出控制单元的控制,从所述第一存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据;或/和从所述第一存储器中选择所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二数据选择器,适于基于所述输入输出控制单元的控制,从所述第二存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据;或/和从所述第二存储器中选择所述模处理单元从所述输入输出控制单元获取的另一个输入数据;
所述模乘运算器,适于基于所述输入输出控制单元的控制,将所述第一数据选择器选择的处理数据与所述第二数据选择器选择的处理数据进行模乘运算,得到所述模乘运算数据;
所述模加运算器,适于基于所述输入输出控制单元的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模加运算,得到所述模加运算数据;
所述模减运算器,适于基于所述输入输出控制单元的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模减运算,得到所述模减运算数据;
所述第三数据选择器,适于基于所述输入输出控制单元的控制,将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元,或者,将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元。
7.根据权利要求1所述的同态加密装置,其特征在于,所述模处理单元包括:第一存储器、第二存储器、第一数据选择器、第二数据选择器、模乘运算器、模加运算器、模减运算器、第三数据选择器和信号控制器,其中:
所述第一存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二存储器,适于存储所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据;以及适于存储所述模处理单元从所述输入输出控制单元获取的另一输入数据;
所述信号控制器,适于获取所述模处理单元的运算策略并控制所述第一数据选择器、所述第二数据选择器及所述第三数据选择器按照所述运算策略进行数据选择;以及根据所述运算策略中包含的模运算类型信息控制所述模乘运算器、模加运算器或模减运算器进行相应运算;
所述第一数据选择器,适于基于所述信号控制器的控制,从所述第一存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中其中一个变换处理单元输出的处理数据,或/和从所述第一存储器中选择所述模处理单元从所述输入输出控制单元获取的其中一个输入数据;
所述第二数据选择器,适于基于所述信号控制器的控制,从所述第二存储器中选择所述至少两个变换处理单元中任意两个变换处理单元中另一个变换处理单元输出的处理数据,或/和从所述第二存储器中选择所述模处理单元从所述输入输出控制单元获取的另一输入数据;
所述模乘运算器,适于基于所述信号控制器的控制,将所述第一数据选择器选择的处理数据与所述第二数据选择器选择的处理数据进行模乘运算,得到所述模乘运算数据;
所述模加运算器,适于基于所述信号控制器的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模加运算,得到所述模加运算数据;
所述模减运算器,适于基于所述信号控制器的控制,将所述第一数据选择器选择的输入数据与所述第二数据选择器选择的输入数据进行模减运算,得到所述模减运算数据;
所述第三数据选择器,适于基于所述信号控制器的控制,将所述模加运算数据和/或模减运算数据输出至所述输入输出控制单元,或者将所述模乘运算数据输出至所述至少两个变换处理单元中至少一个变换处理单元。
8.一种同态加密芯片,其特征在于,包括权利要求1至7任一项所述的同态加密装置。
9.一种同态加密方法,应用于同态加密装置,所述同态加密装置包括输入输出控制单元、至少两个变换处理单元、模处理单元以及进位处理单元,其特征在于,所述同态加密方法包括:
由所述输入输出控制单元获取输入数据以及所述输入数据的模运算类型信息;
在所述输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的至少一个变换处理单元分别对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元;由所述模处理单元对所述处理数据进行模乘运算,得到模乘运算数据,并输出至所述至少两个变换处理单元中至少一个变换处理单元;由所述至少两个变换处理单元中的任一变换处理单元对输入的模乘运算数据进行对应的逆数论变换处理,得到处理结果,并输出至所述进位处理单元;以及由所述进位处理单元对所述至少两个变换处理单元中至少一个变换处理单元输出的处理结果进行进位处理,得到进位运算结果,并输出至所述输入输出控制单元;
在所述输入数据的模运算类型信息为模加运算和/或模减运算时,由所述模处理单元对所述输入输出控制单元获取的输入数据进行模加运算和/或模减运算,得到模加运算数据和/或模减运算数据,并输出至输入输出控制单元;
由所述输入输出控制单元获取所述模处理单元输出的模加运算和/或模减运算数据作为同态运算结果并输出;从所述进位处理单元获取进位运算结果作为所述同态运算结果并输出。
10.根据权利要求9所述的同态加密方法,其特征在于,所述同态加密装置还包括存储单元,所述存储单元存储所述至少两个变换处理单元中任一变换处理单元获取的输入数据的模运算类型信息为模乘运算时的旋转因子;
所述在所述输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的任一变换处理单元对从所述输入输出控制单元获取的输入数据进行数论变换处理,得到处理数据,并输出至所述模处理单元,包括:
在从所述输入输出控制单元获取的输入数据的模运算类型信息为模乘运算时,由所述至少两个变换处理单元中的至少一个一变换处理单元从所述存储单元获取与所述获取的输入数据对应的旋转因子,并将所述获取的输入数据与其对应的旋转因子相乘,得到相应的处理数据,并输出至所述模处理单元。
CN202110694855.9A 2021-06-22 2021-06-22 同态加密装置、同态加密芯片及同态加密方法 Active CN113343262B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110694855.9A CN113343262B (zh) 2021-06-22 2021-06-22 同态加密装置、同态加密芯片及同态加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110694855.9A CN113343262B (zh) 2021-06-22 2021-06-22 同态加密装置、同态加密芯片及同态加密方法

Publications (2)

Publication Number Publication Date
CN113343262A true CN113343262A (zh) 2021-09-03
CN113343262B CN113343262B (zh) 2022-10-11

Family

ID=77477665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110694855.9A Active CN113343262B (zh) 2021-06-22 2021-06-22 同态加密装置、同态加密芯片及同态加密方法

Country Status (1)

Country Link
CN (1) CN113343262B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106452723A (zh) * 2016-12-13 2017-02-22 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法
CN106484366A (zh) * 2016-10-17 2017-03-08 东南大学 一种二元域位宽可变模乘运算器
CN108111295A (zh) * 2017-12-15 2018-06-01 河海大学 一种基于类模运算的同态加密算法
CN110892393A (zh) * 2017-04-11 2020-03-17 多伦多大学管理委员会 用于在同态加密下加速安全计算的同态处理单元(hpu)
CN110990767A (zh) * 2019-11-29 2020-04-10 华中科技大学 一种应用于格密码体制的可重构数论变换单元和方法
CN112199707A (zh) * 2020-10-28 2021-01-08 支付宝(杭州)信息技术有限公司 一种同态加密中的数据处理方法、装置以及设备
CN112464296A (zh) * 2020-12-18 2021-03-09 合肥工业大学 一种用于同态加密技术的大整数乘法器硬件电路

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484366A (zh) * 2016-10-17 2017-03-08 东南大学 一种二元域位宽可变模乘运算器
CN106452723A (zh) * 2016-12-13 2017-02-22 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法
CN110892393A (zh) * 2017-04-11 2020-03-17 多伦多大学管理委员会 用于在同态加密下加速安全计算的同态处理单元(hpu)
CN108111295A (zh) * 2017-12-15 2018-06-01 河海大学 一种基于类模运算的同态加密算法
CN110990767A (zh) * 2019-11-29 2020-04-10 华中科技大学 一种应用于格密码体制的可重构数论变换单元和方法
CN112199707A (zh) * 2020-10-28 2021-01-08 支付宝(杭州)信息技术有限公司 一种同态加密中的数据处理方法、装置以及设备
CN112464296A (zh) * 2020-12-18 2021-03-09 合肥工业大学 一种用于同态加密技术的大整数乘法器硬件电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谢星等: "基于FPGA的有限域NTT算法设计与实现", 《现代电子技术》 *

Also Published As

Publication number Publication date
CN113343262B (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
Mert et al. Design and implementation of encryption/decryption architectures for BFV homomorphic encryption scheme
US5499299A (en) Modular arithmetic operation system
JP3979786B2 (ja) 共用メモリ配線を有する暗号化プロセッサ
US9942039B1 (en) Applying modular reductions in cryptographic protocols
CN101170406B (zh) 双核公钥密码算法运算协处理器的一种实现方法
CN112070222B (zh) 用于联邦学习的处理装置、加速器及方法
CN103793199B (zh) 一种支持双域的快速rsa密码协处理器
CN113660076A (zh) 基于可重构技术的同态加密系统及同态加密执行方法
Güneysu Utilizing hard cores of modern FPGA devices for high-performance cryptography
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
KR101925868B1 (ko) 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템
CN113343262B (zh) 同态加密装置、同态加密芯片及同态加密方法
KR20040055550A (ko) 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기
CN110034918B (zh) 一种sm4加速方法和装置
WO2023236899A1 (zh) 数据处理方法、装置、设备及存储介质
CN109379191B (zh) 一种基于椭圆曲线基点的点乘运算电路和方法
KR100480997B1 (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
WO2002071687A1 (en) Recursive cryptoaccelerator and recursive vhdl design of logic circuits
CN113625994B (zh) 一种数据处理方法和处理核
CN115276960B (zh) 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法
US11924321B1 (en) System and method for encrypting and compressing blocks of data
KR100451570B1 (ko) 에스피에이에 견디는 타원 곡선 암호화 알고리즘을구현하는 방법 및 장치
US8532288B2 (en) Selectively isolating processor elements into subsets of processor elements
Du et al. A family of scalable polynomial multiplier architectures for ring-LWE based cryptosystems
KR102253211B1 (ko) 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법

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
TR01 Transfer of patent right

Effective date of registration: 20240919

Address after: Rooms 501 and 502, No. 289 Chunxiao Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 200020 (nominal floor is 6th floor)

Patentee after: Haiguang Yunxin Integrated Circuit Design (Shanghai) Co.,Ltd.

Country or region after: China

Address before: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Tianjin Huayuan Industrial Zone, Binhai New Area, Tianjin

Patentee before: Haiguang Information Technology Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right