CN114595487A - 加密处理器、其操作方法和包括加密处理器的电子设备 - Google Patents
加密处理器、其操作方法和包括加密处理器的电子设备 Download PDFInfo
- Publication number
- CN114595487A CN114595487A CN202110611355.4A CN202110611355A CN114595487A CN 114595487 A CN114595487 A CN 114595487A CN 202110611355 A CN202110611355 A CN 202110611355A CN 114595487 A CN114595487 A CN 114595487A
- Authority
- CN
- China
- Prior art keywords
- polynomial
- multiplication
- result
- coefficients
- multiplication operation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000004044 response Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 20
- 230000001133 acceleration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/156—Correlation function computation including computation of convolution operations using a domain transform, e.g. Fourier transform, polynomial transform, number theoretic transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Algebra (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
一种加密处理器、操作加密处理器的方法、以及包括加密处理器的电子设备。一种操作用于执行基于格的文本的多项式乘法运算的加密处理器的方法,包括:将用于所述多项式乘法运算的多项式的系数传输到乘法器;使用所述乘法器并行地对所述系数中的一部分执行乘法运算;使用加法器对所述乘法运算的一部分结果执行加法运算;以及基于所述乘法运算的另一部分结果和所述加法运算的结果确定所述多项式乘法运算的结果。
Description
相关申请的交叉引用
本申请要求于2020年12月3日向韩国知识产权局递交的韩国专利申请No.10-2020-0167378的优先权,其全部公开内容通过引用并入本文中以用于所有目的。
技术领域
以下描述涉及加密处理器、操作加密处理器的方法、以及包括加密处理器的电子设备。
背景技术
同态加密是实现要在经加密的数据上执行的任意逻辑运算或数学运算的加密方案。同态加密不需要对数据处理进行解密,由此保持数据处理的安全性。同态加密允许将经加密的信息发送到服务器以使用各种服务,而不存在数据隐私侵入或勒索的风险。
发明内容
提供了本发明内容以便以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容并非意在标识所请求保护的主题的关键特征或基本特征,也并非意在帮助确定所请求保护的主题的范围。
一种操作用于执行基于格的文本的多项式乘法运算的加密处理器的方法,包括:将用于多项式乘法运算的多项式的系数传输到乘法器;使用乘法器并行地对系数中的一部分执行乘法运算;使用加法器对乘法运算的一部分结果执行加法运算;以及基于乘法运算的另一部分结果和加法运算的结果确定多项式乘法运算的结果。
乘法运算的一部分结果可以通过乘法器中的一部分获得,并且该一部分结果通过分别将乘法器中的一部分连接到加法器的内部数据路径被发送到加法器。
执行乘法运算包括并行地执行:经复用的系数中的第一文本的第一多项式系数和第二文本的第三多项式系数之间的乘法运算;第一文本的第二多项式系数和第三多项式系数之间的乘法运算;第一多项式系数和第二文本的第四多项式系数之间的乘法运算;以及第二多项式系数和第四多项式系数之间的乘法运算。
执行加法运算可以包括:对第二多项式系数和第三多项式系数之间的乘法运算的结果以及第一多项式系数和第四多项式系数之间的乘法运算的结果执行加法运算。
确定可以包括:基于第一多项式系数和第三多项式系数之间的乘法运算的结果、加法运算的结果、以及第二多项式系数和第四多项式系数之间的乘法运算的结果确定多项式乘法运算的结果。
方法还可以包括:接收用于执行多项式乘法运算的指令和系数,其中,可以响应于接收到指令而执行发送。
接收可以包括:接收多项式的系数中的相同次数的系数。
文本中的每一个可以是明文或密文,其中在明文中编码了要传送的消息,在密文中明文被加密。
方法还可以包括:控制加密处理器的运算模式,其中,可以响应于运算模式是第一模式而执行加法运算,可以响应于运算模式是第二模式,通过向乘法器发送与乘法器中的每一个相对应的相同系数而执行乘法运算,并且可以响应于运算模式是第三模式,通过向乘法器发送不同系数而执行乘法运算。
文本中的每一个可以通过多项式表示。
表示文本中的每一个的多项式可以包括:与消息相对应的第一多项式;以及与加密密钥相对应的第二多项式,加密密钥与对应于消息的密文的加密和/或解密有关。
多项式可以通过数论变换(NTT)进行变换,并且对系数中的一部分执行的乘法运算中的每一个可以被执行为点乘。
方法可以包括:在将用于多项式乘法运算的多项式的系数传输到乘法器以前,对系数进行复用。
在另一个总体方面,一种用于执行基于格的文本的多项式乘法运算的加密处理器包括:输入寄存器,被配置为存储用于多项式乘法运算的多项式的系数;乘法器,被配置为并行地对系数中的一部分执行乘法运算;加法器,被配置为对乘法运算的一部分结果执行加法运算;以及输出寄存器,被配置为存储乘法运算的另一部分结果和加法运算的结果,其中,可以基于乘法运算的另一部分结果和加法运算的结果确定多项式乘法运算的结果。
在另一个总体方面,一种电子设备包括:存储器,被配置为存储用于多项式乘法运算的多项式的系数;以及加密处理器,被配置为对系数进行复用并且将经复用的系数发送到乘法器,使用乘法器并行地对经复用的系数中的一部分执行乘法运算,使用加法器对乘法运算的一部分结果执行加法运算,以及基于乘法运算的另一部分结果和加法运算的结果确定多项式乘法运算的结果。
在另一个总体方面,一种电子设备包括:一个或多个处理器,被配置为:将第一明文加密为第一密文,第一密文由包括第一消息的第一多项式和包括第一加密密钥的第二多项式表示;将第二明文加密为第二密文,第二密文由包括第二消息的第三多项式和包括第二加密密钥的第四多项式表示;使用第一多项式、第二多项式、第三多项式和第四多项式执行四个并行的乘法运算以输出四个乘法运算结果;对四个乘法运算结果中的两个乘法运算结果执行加法运算以输出加法运算结果;以及使用加法运算结果和四个乘法运算结果中未在加法运算中使用的两个乘法运算结果,执行第一密文和第二密文的多项式乘法运算。
一个或多个处理器可以被配置为:将第一消息编码为以多项式形式表示的第一明文,并且将第二消息编码为以多项式形式表示的第二明文。
一个或多个处理器可以被配置为:通过内部数据路径将四个乘法运算结果中的两个乘法运算结果直接输出到加法器,并且加法器被配置为输出加法运算结果。
一个或多个处理器可以被配置为:接收四元乘加(QMAD)指令,并且基于QMAD指令执行第一密文和第二密文的多项式乘法运算。
其他特征和方面通过以下具体实施方式、附图和权利要求将变得清楚。
附图说明
图1示出用于基于同态加密处理密文的用户终端和服务器的操作的示例。
图2示出同态运算的示例。
图3示出同态运算的示例。
图4示出加密处理器的运算的示例。
图5示出加密处理器的运算的示例。
图6示出加密处理器的示例。
图7示出操作加密处理器的方法的示例。
图8示出电子设备的示例。
在整个附图和详细描述中,除非另有描述或提供,否则相同的附图标记应被理解为指代相同的元件、特征以及结构。附图可以不按比例绘制,并且为了清楚、说明和方便,可以扩大附图中元件的相对尺寸、比例和描绘。
具体实施方式
提供以下详细的结构或功能描述仅作为示例,并且可以对示例进行各种变更和修改。这里,示例不被解释为限于本公开,并且应被理解为包括本公开的构思和技术范围内的所有改变、等同物和替换。
本文中可以使用诸如第一、第二等的术语来描述组件。这些术语中的每一个都不用于定义对应组件的本质、顺序或次序,而仅用于将对应组件与其他组件区分开。例如,第一组件可以被称为第二组件,且第二组件也可以类似地被称为第一组件。
应注意的是,如果描述一个组件“连接”、“耦接”或“接合”到另一个组件,则第三组件可以“连接”、“耦接”或“接合”在第一组件与第二组件之间,尽管第一组件可以直接连接、耦接或接合到第二组件。
单数形式“一”、“一个”和“所述(该)”意在还包括复数形式,除非上下文明确地给出相反的指示。还将理解,术语“包括”、“具有”和/或“包含”在本文中使用时表示存在所陈述的特征、整数、步骤、操作、元件和/或组件,但并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合。
除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有本公开所属领域的普通技术人员通常所理解的相同意义。术语(诸如在常用词典中定义的术语)将被解释为其含义与在相关技术的上下文中的含义一致,而不应将其解释为理想的或过于正式的含义,除非本文明确如此定义。
在下文中,将参考附图来详细描述示例。当参考附图描述示例时,相同的附图标记指相同的组件,并且将省略与其相关的重复描述。
图1示出用于基于同态加密处理密文的用户终端和服务器的操作的示例。
参考图1,示出了用户终端110和服务器120。用户终端110是由用户控制的设备,并且可以包括例如各种计算设备(例如,智能手机、平板计算机、笔记本计算机和个人计算机)、各种可穿戴设备(例如,智能手表和智能眼镜)、各种家用电器(例如,智能扬声器、智能电视和智能冰箱)、智能车辆、智能报亭、物联网(IoT)设备、无人机、机器人等。用户终端110可以加密数据以进行信息保护,并且将经加密的数据发送到服务器120,以使用由服务器120提供的各种服务。为了使服务器120处理经加密的数据,发送到服务器120的数据可以基于同态加密进行加密。在本文中,经加密的数据可以被称为密文,而未经加密的数据可以被称为明文。
同态加密可以是允许在无需解密的情况下对经加密的数据进行计算的加密方案。换言之,同态加密是用于在对经加密的数据执行各种运算并且解密数据时,推导出与针对未经加密的数据的运算结果相同的结果的加密技术。因为数据被加密,所以即使黑客成功地勒索到数据也不会暴露数据。此外,经加密的数据可以无需解密地进行处理。因此,同态加密可以适合于处理需要隐私保护的数据的各种应用。
同态加密包含噪声,并且噪声级别可以随着对密文执行运算而增大。为了防止噪声淹没数据,可以执行用于刷新噪声的噪声处理,即自举(bootstrapping)。通过自举,参数尺寸和计算开销可以固定,而与电路深度无关。
通过同态加密所加密的密文具有无需自举的可能的最大数量的运算,并且所述可能的最大数量的运算可以通过级别(level)1(0<l≤L)表示。自举可以是如下过程:通过刷新不可以再执行运算的级别0密文来生成具有相同消息的级别L密文。
服务器120可以通过自举对密文执行各种操作。因为这不需要密文的解密,所以不入侵隐私。由服务器120操作的密文可以被发送回用户终端110,并且用户终端110可以将通过解密密文所获得的数据提供给用户或将数据用于后续的操作。
图2和图3示出同态运算的示例。
参考图2,示出了根据同态加密的数据处理。
在操作210中,包括信息的消息可以被编码为以多项式形式表示的明文。在操作220中,明文可以被加密为密文。在基于格的加密(例如,基于环上带误差学习(Ring-LWE)的同态加密)中,通过加密包含消息的明文所生成的密文可以由包括该消息的第一多项式和包括加密密钥的第二多项式表示。该消息可以包括要传送的信息,并且加密密钥可以包括用于对消息进行加密和/或解密的值。构成密文的多项式的数量可以被称为密文的尺寸。例如,当由如上所述的第一多项式和第二多项式表示密文时,尺寸可以是2。表示密文的两个多项式可以被表示为包括小于模q的n个系数的n-1次多项式。
[等式1]
A(x)=an-1Xn-1+an-2Xn-2+.......+a0X0
B(x)=bn-1Xn-1+bn-2Xn-2+.......+b0X0
在操作230中,可以针对密文执行同态运算。例如,虽然其可以根据应用而不同,但是密文乘法运算可以是同态加密的基本运算。密文之间的乘法运算可以由相应的密文中所包括的多项式之间的乘法运算表示。可以在通过整数快速傅里叶变换(FFT)(即数论变换(NTT))对两个多项式进行变换之后执行这两个多项式的乘法运算,以减小计算复杂度。
将参考图3描述使用NTT的多项式乘法运算。用于乘法运算的两个密文ct1和密文ct2可以分别通过如下表示的NTT变换为Ct1和Ct2。
[等式2]
NTT(ct1)=Ct1=(A1,B1)
NTT(ct2)=Ct2=(A2,B2)
密文ct1可以通过NTT变换为Ct1,并且Ct1可以由A1和B1表示,其中A1是与第一消息相对应的第一多项式的系数的集合,B1是与第一加密密钥相对应的第二多项式的系数的集合。类似地,密文ct2可以通过NTT变换为Ct2,并且并且Ct2可以由A2和B2表示,其中A2是与第二消息相对应的第三多项式的系数的集合,B2是与第二加密密钥相对应的第四多项式的系数的集合。多项式的系数的集合可以包括多项式中包括的n个系数,并且被表示为例如A={a0,a1,...,an-1}。
对两个密文的乘法运算可以通过NTT被执行为构成这两个密文的多项式的系数之间的点乘,并且点乘的结果CR可以如下表示。
[等式3]
CR=(Ar,Br,Cr)
=Ct1*Ct2
=(A1,B1)*(A2,B2)
=(A1*A2,A1*B2+B1*A2,B1*B2)
在等式3中,*表示点乘,并且可以指示各个多项式中相同次数的系数之间的乘积。
乘法运算结果CR可以由分别表示多项式的系数的集合的Ar、Br和Cr来表示。因为多项式的数量随着乘法运算的结果而增大到3,所以多项式的数量可以通过后处理(未示出)再次减小到2。乘法运算结果CR可以通过逆数论变换(INTT)变换为结果密文cr。
在图3中,示出了通过NTT对密文进行变换并且对其执行点乘的示例。然而,在一些示例中,图2的明文可以通过NTT进行变换,并且可以对其执行点乘。在这个示例中,也可以应用上面的描述。
返回参考图2,在操作240中,可以将已经执行了同态运算的密文解密为经运算的明文。在操作250中,可以将经运算的明文解码为经运算的消息。
如上所述,具有多项式的两个密文的乘法运算可以通过NTT被执行为多项式的系数之间的点乘。将在下文中详细描述用于在硬件中加速乘法运算的方法。
为了便于描述,已经在本文中基于同态加密描述了所述示例。然而,上面的描述也可以应用到后量子加密法(PQC)中的基于格的多项式乘法运算的示例。
图4和图5示出加密处理器的运算的示例。
参考图4,加密处理器400可以包括输入寄存器410、复用器(未示出)、乘法器430、加法器440和输出寄存器450。
为了增加同态加密的加密级别或可运算的级别,可以增大表示密文的多项式的次数,导致用于多项式的系数的存储空间增加、存储器存取的次数增加、以及运算的数量增加。此外,在同态加密中通常执行的运算中,频繁地执行密文乘法运算,并且运算性能可以通过其基于存储器存取方式所布置的运算单元的并行处理而得到改善。
每个密文可以包括两个多项式,并且两个密文的乘法运算可以被执行为相应多项式中的相同次数的系数的乘积。与第一密文Ct1相对应的系数集合A1和集合B1和与第二密文Ct2相对应的系数集合A2和B2可以如下表示。
[等式4]
A1={a10,a11,a12,...}
B1={b10,b11,b12,...}
A2={a20,a21,a22,...}
B2={b20,b21,b22,...}
可以使用乘法器430和加法器440对相同次数的系数执行点乘。为此,可以执行打包,以将输入到输入寄存器410的数据重配置为相同次数的系数。例如,(a10,b10,a20,b20)可以分别输入到输入寄存器410。然后,(a11,b11,a21,b21)可以开始依次分别输入到输入寄存器410。最后,(a1n-1,b1n-1,a2n-1,b2n-1)可以分别输入到输入寄存器410。
在一个示例中,可以在主机处理器的设备驱动器终端处执行打包。相同次数的系数可以被打包进运算数并且存储在存储器的连续区域中。加密处理器400可以从存储器读出相同次数的系数并且将相同次数的系数存储在输入寄存器410中。例如,存储器可以是位于加密处理器400外部的动态随机存取存储器(DRAM)。
例如,可以利用4端口双倍数据率同步动态随机存取存储器(DDR SDRAM)存储器结构来有效地读出存储在存储器的分离区域中的相同次数的系数。例如,当将系数集合A1中包括的系数存储在DDRSDRAM的端口1中、将系数集合B1中包括的系数存储在DDRSDRAM的端口2中、将系数集合A2中包括的系数存储在DDR SDRAM的端口3中、以及将系数集合B2中包括的系数存储在DDRSDRAM的端口4中时,系数可以根据次数顺序(例如,升序或降序)被依次存储。当读出所存储的系数时,可以按照从每个DDR SDRAM端口的起始地址开始并且逐渐增大地址的方式依次读出所存储的系数。如果使用高级的可扩展接口(AXI)总线,则可以通过可以提高总线效率的突发模式来连续地读出属于单个多项式的多个系数。
此外,可以利用大步长存储器补丁功能来高效地读出存储在存储器的分离区域中的相同次数的系数。此外,可以通过使用直接存储器存取(DMA)以大步长的形式访问存储器来读出相同次数的系数。
相同次数的系数可以被分别加载到输入寄存器410,并且通过复用420而被发送到乘法器430。参考等式3,在点乘中,可以执行四个乘法运算,即,A1*A2、A1*B2、B1*A2和B1*B2。乘法运算可以分别通过乘法器430执行。为此,用于每个乘法运算的运算数可以通过复用420被发送到对应的乘法器。
例如,输入寄存器410中所存储的A1和A2可以通过复用420输入到第一乘法器以执行运算A1*A2。同样,B1和A2可以通过复用420输入到第二乘法器以执行运算B1*A2,A1和B2可以通过复用420输入到第三乘法器以执行运算A1*B2,并且B1和B2可以通过复用420输入到第四乘法器以执行运算B1*B2。
通过第二乘法器执行的运算B1*A2的结果和通过第三乘法器执行的运算A1*B2的结果可以通过内部数据路径被发送到加法器440以执行运算A1*B2+B1*A2。
输出寄存器450可以分别存储通过第一乘法器执行的运算A1*A2的结果、通过加法器440执行的运算A1*B2+B1*A2的结果、以及通过第四乘法器执行的运算B1*B2的结果。输出寄存器450中所存储的运算结果可以分别输出为上面的等式3的Ar、Br和Cr。Ar、Br和Cr可以如下表示。
[等式5]
Ar={ar0,ar1,ar2,...}
Br={br0,br1,br2,...}
Cr={cr0,cr1,cr2,...}
例如,为了获得ar0、br0和cr0所执行的运算可以如下表示,并且可以以相同的方式对另一次数的系数进行运算。
[等式6]
ar0=a10*a20
br0=b10*b20
cr0=a10*b20+a20*b10
如上所述,因为与运算数相对应的系数通过加密处理器400中的输入寄存器410和复用420被发送到乘法器430,因此可以通过针对系数中的每一个仅执行一次存储器存取来减少不必要的存储器存取。如果相同次数的系数已被打包,则可以通过对已打包的数据进行一次存储器存取来加载运算数。换言之,通过复用420,即使利用最少数量的输入寄存器410,也可以将运算数发送到相应的乘法器430。
此外,通过经由乘法器430并行地执行相对于其他运算需要较长时间的乘法运算,可以有效地减少由加密处理器400执行的运算所需的时间。
此外,为了执行运算A1*B2+B1*A2,乘法运算结果A1*B2和B1*A2可以通过内部数据路径被直接发送到加法器440,而无需针对乘法运算结果A1*B2和B1*A2的单独的存储器存取,由此可以最小化通过存储器存取导致的性能下降。
虽然为了便于描述,图4示出针对输入寄存器410所存储的数据执行复用420,但是示例不限于此。作为另一个示例,可以首先针对数据执行复用420,经复用的数据可以存储在输入寄存器410中,并且输入寄存器410中的每一个可以简单地将所存储的数据发送到每个对应的乘法器。
可以在包括可以由加密处理器400执行的机器语言指令的指令集架构(ISA)、以及用于有效地执行两个密文的多项式乘法运算的加密处理器400的结构中定义用于两个密文的多项式乘法运算的指令。例如,用于两个密文的多项式乘法运算的指令可以被称为四元乘加(QMAD)。QMAD是包括四个乘法运算和一个加法运算的集成指令,并且可以通过如下面的表1中所示的微代码表示。
[表1]
当将QMAD指令、运算数Ct1和Ct2、以及作为返回的运算结果的变量CR发送到加密处理器400时,可以执行上述运算,并且两个密文的多项式乘法运算的结果可以被返回为CR。换言之,可以仅用一个指令代码执行两个密文的多项式乘法运算。在本文中,为了便于描述,两个密文的多项式乘法运算也可以被称为QMAD运算。
参考图5,加密处理器500包括输入复用器510、输入寄存器520、乘法器530、加法器540、输出复用器550、输出寄存器560以及QMAD模式控制器570。
除了上述QMAD运算以外,加密处理器500还可以执行SQUARE运算和8输入乘法运算。QMAD运算、SQUARE运算和8输入乘法运算可以对应于同态加密中频繁使用的求值器(evaluator)。虽然图5示出加密处理器500能够选择性地执行QMAD运算、SQUARE运算和8输入乘法运算,但是示例不限于此。本文提供的描述也可以应用于执行三个运算或至少两个运算的组合的加密处理器。
QMAD模式控制器570可以确定要由加密处理器500执行的运算的类型。QMAD模式控制器570可以控制输入复用器510和输出复用器550,从而可以执行所确定的类型的运算。
例如,当由QMAD模式控制器570设置模式1时,可以执行上述QMAD运算。为此,输入复用器510可以将沿着由图5中的实线所指示的数据路径输入的数据发送到输入寄存器520。此外,在图5所示的输出复用器550中,上复用器可以将从加法器540接收的数据发送到输出寄存器,并且下复用器可以将从第四乘法器接收的数据发送到输出寄存器。
此外,当由QMAD模式控制器570设置模式2时,可以执行SQUARE运算。例如,当要在同态加密的SEAL库中执行用于平方运算的ckks_square求值器时,可以执行SQUARE运算。
为了执行SQUARE运算,可以控制输入复用器510,使得相同的数据可以输入到乘法器530中的每一个。例如,可以控制输入复用器,使得A1可以通过从A1开始的实线数据路径和点线数据路径被发送到与第一乘法器连接的输入寄存器。此外,可以控制对应的输入复用器,使得B1可以通过从B1开始的实线数据路径和点线数据路径被发送到与第二乘法器连接的输入寄存器。此外,可以控制对应的输入复用器,使得A2可以通过从A2开始的点线数据路径和点划线数据路径被发送到与第三乘法器连接的输入寄存器。此外,可以控制对应的输入复用器,使得B2可以通过从B2开始的点划线数据路径和实线数据路径被发送到与第四乘法器连接的输入寄存器。
由第一乘法器执行的运算A1*A1的结果可以通过对应的输出寄存器被输出为Ar。可以控制输出复用器550,使得由第二乘法器执行的运算B1*B1的结果可以被输出为Br,并且由第三乘法器执行的运算A2*A2的结果可以被输出为Cr。由第四乘法器执行的运算B2*B2的结果可以通过对应的输出寄存器被输出为Br。
此外,当由QMAD模式控制器570设置模式3时,可以执行8输入乘法运算。当执行8输入乘法运算时,加密处理器500可以操作为具有8输入的多项式乘法器。为此,输入复用器510可以将沿着图5中的点划线数据路径输入的数据发送到输入寄存器520。在图5中,除了A1、B1、A2和B2以外,P1、P2、P3和P4也可以是8输入乘法运算的运算数。输出复用器550可以以与上述SQUARE运算中相同的方式操作,并且可以将乘法器530的运算结果传输到各个对应的输出寄存器560。通过8输入乘法运算,可以输出与A1*P1、B1*P2、A2*P3和B2*P4相对应的多项式对的点乘的结果。
加法器540未用于SQUARE运算或8输入乘法运算。
图6示出加密处理器的示例。
参考图6,加密处理器600可以包括输入寄存器610、复用器(未示出)、蝶形单元(BU)630和输出寄存器640。加密处理器600可以针对Ct1=(A1,B1)和Ct2=(A2,B2)执行QMAD运算。对输入到输入寄存器610中的相同次数的系数可以通过复用620被发送到BU 630中包括的乘法器。由BU1和BU2中的乘法器执行的乘法运算的结果可以通过内部数据路径被发送到BU1和BU2之一所包括的加法器,使得可以对乘法运算的结果执行加法运算。由BU0和BU3中的乘法器以及BU2中的加法器执行的运算的结果可以相应地被输出为QMAD运算结果。上面提供的描述也适用于其余的运算,因此将省略进一步的详细描述。
图7示出操作加密处理器的方法的示例。
参考图7,一种操作加密处理器的方法,包括:操作710,对用于多项式乘法运算的多项式的系数进行复用并且将经复用的系数发送到乘法器;操作720,使用乘法器并行地对经复用的系数中的一部分执行乘法运算;操作730,使用加法器对乘法运算的一部分结果执行加法运算;以及操作740,基于乘法运算的另一部分结果和加法运算的结果确定多项式乘法运算的结果。
根据示例,可以通过硬件加速来高效地执行基于格的同态加密中对两个密文的多项式乘法运算(例如,作为由Cheon、Kim、Kim和Song提出的HE方案的基于RNS的CKKS中的密文乘法运算)。此外,可以生成用于硬件加速的指令,并且可以改善根据指令执行多项式乘法运算的加密处理器的性能。此外,通过复用将运算数发送到相应乘法器、以及通过内部数据路径将乘法运算结果的一部分发送到加法器的结构可以有效地解决加密处理器中的存储器限制。此外,本文提供的描述也可以应用于执行多项式运算的领域(例如,PQC、剩余数系(RNS)等)中。
参考图1至图6提供的描述可以应用于图7所示的运算,因此将省略进一步的详细描述。
图8示出电子设备的示例。
参考图8,电子设备800可以包括存储器810和加密处理器820。在一些示例中,电子设备800还可以包括主机处理器830。存储器810、加密处理器820和主机处理器830可以通过总线、外围组件高速互连(PCIe)、片上网络(NoC)等彼此通信。电子设备800可以对应于图1的服务器120。
存储器810可以存储用于加密处理器820的运算的指令和多项式乘法运算的运算数(例如,多项式系数等)。当由加密处理器820执行存储器810中存储的指令时,加密处理器820可以执行上述运算。存储器910可以包括易失性存储器或非易失性存储器。
加密处理器820响应于接收到的指令而执行基于格的文本的多项式乘法运算。加密处理器820对多项式的系数进行复用,将经复用的系数发送到乘法器,使用乘法器并行地对经复用的系数中的一部分执行乘法运算,使用加法器对乘法运算的一部分结果执行加法运算,并且基于乘法运算的另一部分结果和加法运算的结果确定多项式乘法运算的结果。例如,加密处理器820可以被实现为加速器核心单元中的运算单元中的一个。然而,示例不限于此。
主机处理器830是控制电子设备800的设备,并且可以包括例如中央处理单元(CPU)和/或图形处理单元(GPU)。主机处理器830可以执行同态加密的应用(例如,基于格的文本的多项式乘法运算)。例如,主机处理器830可以使用同态加密库(例如,SEAL),并且同态加密库可以与用于驱动硬件加速器的设备驱动器进行接口连接。设备驱动器可以生成用于驱动硬件加速器的指令集合。所生成的指令集合可以被发送到加速器,以执行同态加密的应用,并且结果可以返回到主机处理器830。
此外,电子设备800可以处理上述运算。
本文描述的单元可以使用硬件组件、软件组件和/或其组合实现。处理设备可以使用一个或多个通用或专用计算机来实现,通用或专用计算机例如是处理器、控制器、算术逻辑单元(ALU)、DSP、微型计算机、FPGA、可编程逻辑单元(PLU)、微处理器或能够以定义方式响应和执行指令的任何其他设备。处理设备可以运行操作系统(OS)以及在OS上运行的一个或多个软件应用。处理设备还可以响应于软件的执行而访问、存储、操控、处理和创建数据。出于简便的目的,以单数描述处理设备;然而,本领域技术人员应明白,处理设备可以包括多个处理元件和多种类型的处理元件。例如,处理设备可以包括多个处理器或者单个处理器和单个控制器。此外,不同的处理配置也是可能的,例如并行处理器。
软件可以包括计算机程序、一段代码、指令或其某种组合,以便独立地或者一致地指示或配置处理设备按照需要操作。软件和数据可以永久地或临时地体现在任何类型的机器、组件、物理或虚拟设备、计算机存储介质或设备中,或者体现在能够向处理设备提供指令或数据或者由处理设备解释的传播的信号波中。软件还可以分布在网络耦接的计算机系统上,从而以分布式的方式存储和执行软件。软件和数据可以由一个或多个非暂时性计算机可读记录介质存储。
根据上述示例的方法可以被记录在,包括用于实现上述示例的各种操作的程序指令的非暂时性计算机可读介质中。介质还可以单独包括程序指令、数据文件、数据结构等或与其组合。记录在介质上的程序指令可以是出于示例的目的而专门设计和构造的程序指令,或者程序指令可以是计算机软件领域中的普通技术人员周知和可获得的种类。非暂时性计算机可读介质的示例包括:磁介质,例如硬盘、软盘和磁带;光介质,例如CD-ROM盘、DVD和/或蓝光盘;磁光介质,例如光盘;以及专门配置为存储和执行程序指令的硬件设备,例如只读存储器(ROM)、随机存取存储器(RAM)、闪存(例如USB闪存驱动器、存储卡、存储棒等)等。程序指令的示例包括:例如由编译器产生的机器代码、以及可以由计算机使用解释器来执行的包含更高级的代码的文件两者。
上述设备可以配置为用作一个或多个软件模块,以便执行上述示例的操作,反之亦然。
上面已经描述了多个示例。然而,应当理解,可以对这些示例进行各种修改。例如,如果所描述的技术以不同的顺序执行和/或如果所描述的系统、架构、设备或电路中的组件以不同的方式组合和/或被其它组件或其等同物替换或补充,则可以实现合适的结果。
因此,其他实施方式在所附权利要求的范围内。
Claims (20)
1.一种操作用于执行基于格的文本的多项式乘法运算的加密处理器的方法,所述方法包括:
将用于所述多项式乘法运算的多项式的系数发送到乘法器;
使用所述乘法器并行地对所述系数中的一部分执行乘法运算;
使用加法器对所述乘法运算的一部分结果执行加法运算;以及
基于所述乘法运算的另一部分结果和所述加法运算的结果确定所述多项式乘法运算的结果。
2.根据权利要求1所述的方法,其中,所述乘法运算的所述一部分结果通过所述乘法器中的一部分获得,并且所述一部分结果通过分别将所述乘法器中的所述一部分连接到所述加法器的内部数据路径被发送到所述加法器。
3.根据权利要求1所述的方法,其中,执行所述乘法运算包括并行地执行:
所述系数中的第一文本的第一多项式系数和第二文本的第三多项式系数之间的乘法运算;
所述第一文本的第二多项式系数和所述第三多项式系数之间的乘法运算;
所述第一多项式系数和所述第二文本的第四多项式系数之间的乘法运算;以及
所述第二多项式系数和所述第四多项式系数之间的乘法运算。
4.根据权利要求3所述的方法,其中,执行所述加法运算包括:对所述第二多项式系数和所述第三多项式系数之间的乘法运算的结果以及所述第一多项式系数和所述第四多项式系数之间的乘法运算的结果执行加法运算。
5.根据权利要求4所述的方法,其中,所述确定包括:基于所述第一多项式系数和所述第三多项式系数之间的乘法运算的结果、所述加法运算的结果、以及所述第二多项式系数和所述第四多项式系数之间的乘法运算的结果确定所述多项式乘法运算的结果。
6.根据权利要求1所述的方法,还包括:
接收用于执行所述多项式乘法运算的指令和所述系数,
其中,响应于接收到所述指令而执行所述发送。
7.根据权利要求6所述的方法,其中,所述接收包括:接收所述多项式的所述系数中的相同次数的系数。
8.根据权利要求1所述的方法,其中,所述文本中的每一个是明文或密文,在所述明文中编码了要传送的消息,在所述密文中明文被加密。
9.根据权利要求1所述的方法,还包括:
控制所述加密处理器的运算模式,
其中,响应于所述运算模式是第一模式,执行所述加法运算,
响应于所述运算模式是第二模式,通过向所述乘法器发送与所述乘法器中的每一个相对应的相同系数而执行乘法运算,并且
响应于所述运算模式是第三模式,通过向所述乘法器发送不同系数而执行乘法运算。
10.根据权利要求1所述的方法,其中,所述文本中的每一个通过多项式表示。
11.根据权利要求10所述的方法,其中,表示所述文本中的每一个的所述多项式包括:
与消息相对应的第一多项式;以及
与加密密钥相对应的第二多项式,所述加密密钥与对应于所述消息的密文的加密和/或解密有关。
12.根据权利要求1所述的方法,其中,所述多项式通过数论变换NTT进行变换,并且
对所述系数中的所述一部分执行的乘法运算中的每一个被执行为点乘。
13.根据权利要求1所述的方法,还包括:在将用于所述多项式乘法运算的所述多项式的所述系数发送到所述乘法器以前,对所述系数进行复用。
14.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使所述处理器执行根据权利要求1所述的方法。
15.一种用于执行基于格的文本的多项式乘法运算的加密处理器,所述加密处理器包括:
输入寄存器,被配置为存储用于所述多项式乘法运算的多项式的系数;
乘法器,被配置为并行地对所述系数中的一部分执行乘法运算;
加法器,被配置为对所述乘法运算的一部分结果执行加法运算;以及
输出寄存器,被配置为存储所述乘法运算的另一部分结果和所述加法运算的结果,
其中,基于所述乘法运算的所述另一部分结果和所述加法运算的结果确定所述多项式乘法运算的结果。
16.一种电子设备,包括:
存储器,被配置为存储用于多项式乘法运算的多项式的系数;以及
加密处理器,被配置为对所述系数进行复用并且将经复用的系数发送到乘法器,使用所述乘法器并行地对所述经复用的系数中的一部分执行乘法运算,使用加法器对所述乘法运算的一部分结果执行加法运算,以及基于所述乘法运算的另一部分结果和所述加法运算的结果确定所述多项式乘法运算的结果。
17.一种电子设备,包括:
一个或多个处理器,被配置为:
将第一明文加密为第一密文,所述第一密文由包括第一消息的第一多项式和包括第一加密密钥的第二多项式表示;
将第二明文加密为第二密文,所述第二密文由包括第二消息的第三多项式和包括第二加密密钥的第四多项式表示;
使用所述第一多项式、所述第二多项式、所述第三多项式和所述第四多项式执行四个并行的乘法运算以输出四个乘法运算结果;
对所述四个乘法运算结果中的两个乘法运算结果执行加法运算以输出加法运算结果;以及
使用所述加法运算结果和所述四个乘法运算结果中未在所述加法运算中使用的两个乘法运算结果,执行所述第一密文和所述第二密文的多项式乘法运算。
18.根据权利要求17所述的电子设备,其中,所述一个或多个处理器被配置为:将所述第一消息编码为以多项式形式表示的所述第一明文,并且将所述第二消息编码为以多项式形式表示的所述第二明文。
19.根据权利要求17所述的电子设备,其中,所述一个或多个处理器被配置为:通过内部数据路径将所述四个乘法运算结果中的两个乘法运算结果直接输出到加法器,并且所述加法器被配置为输出所述加法运算结果。
20.根据权利要求17所述的电子设备,其中,所述一个或多个处理器被配置为:接收四元乘加QMAD指令,并且基于所述QMAD指令执行所述第一密文和所述第二密文的多项式乘法运算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200167378A KR20220078155A (ko) | 2020-12-03 | 2020-12-03 | 암호 프로세서, 암호 프로세서의 동작 방법 및 이를 포함한 전자 장치 |
KR10-2020-0167378 | 2020-12-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114595487A true CN114595487A (zh) | 2022-06-07 |
Family
ID=77103975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110611355.4A Pending CN114595487A (zh) | 2020-12-03 | 2021-06-01 | 加密处理器、其操作方法和包括加密处理器的电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11895224B2 (zh) |
EP (1) | EP4009575A1 (zh) |
KR (1) | KR20220078155A (zh) |
CN (1) | CN114595487A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192359A (zh) * | 2022-12-27 | 2023-05-30 | 北京瑞莱智慧科技有限公司 | 一种同态乘法阵列电路和数据处理方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995184B2 (en) * | 2021-09-24 | 2024-05-28 | Intel Corporation | Low-latency digital signature processing with side-channel security |
KR102498123B1 (ko) * | 2022-07-15 | 2023-02-09 | 인하대학교 산학협력단 | 동형암호를 위한 가변적으로 동작하는 ntt 기반 다항식 곱셈기 장치 및 방법 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599981B2 (en) * | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
JP3447053B2 (ja) * | 2001-03-09 | 2003-09-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 組み合わせ回路、該組み合わせ回路を使用する符号化装置、復号装置、および半導体デバイス |
DE102005028662B4 (de) * | 2005-03-04 | 2022-06-02 | Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik | Verfahren und Vorrichtung zum Berechnen einer Polynom-Multiplikation, insbesondere für die elliptische Kurven-Kryptographie |
JP4182226B2 (ja) * | 2005-08-24 | 2008-11-19 | 国立大学法人名古屋大学 | 剰余系の計算方法及び装置並びにプログラム |
US8380767B2 (en) * | 2007-06-30 | 2013-02-19 | Intel Corporation | Polynomial-basis to normal-basis transformation for binary Galois-Fields GF(2m) |
WO2012127262A1 (en) * | 2011-03-24 | 2012-09-27 | Sandisk Il Ltd. | Parallelization of error analysis circuitry for reduced power consumption |
US9281941B2 (en) * | 2012-02-17 | 2016-03-08 | International Business Machines Corporation | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management |
US9313028B2 (en) * | 2012-06-12 | 2016-04-12 | Kryptnostic | Method for fully homomorphic encryption using multivariate cryptography |
US10382194B1 (en) | 2014-01-10 | 2019-08-13 | Rockwell Collins, Inc. | Homomorphic encryption based high integrity computing system |
US9425823B1 (en) * | 2015-03-23 | 2016-08-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | State-split based encoder and decoder with table compression |
US20170293913A1 (en) | 2016-04-12 | 2017-10-12 | The Governing Council Of The University Of Toronto | System and methods for validating and performing operations on homomorphically encrypted data |
US10298385B2 (en) | 2017-04-11 | 2019-05-21 | The Governing Council Of The University Of Toronto | Homomorphic processing unit (HPU) for accelerating secure computations under homomorphic encryption |
US11196539B2 (en) * | 2017-06-22 | 2021-12-07 | Microsoft Technology Licensing, Llc | Multiplication operations on homomorphic encrypted data |
KR102040120B1 (ko) | 2018-07-27 | 2019-11-05 | 주식회사 크립토랩 | 근사 암호화된 암호문에 대한 연산을 수행하는 장치 및 방법 |
DE102018122278A1 (de) | 2018-09-12 | 2020-03-12 | Infineon Technologies Ag | Ausführen einer kryptographischen Operation |
KR102297536B1 (ko) | 2018-12-07 | 2021-09-03 | 주식회사 크립토랩 | 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법 |
JP7273753B2 (ja) * | 2020-03-06 | 2023-05-15 | 株式会社東芝 | 数論変換処理装置、数論変換処理方法及びプログラム |
-
2020
- 2020-12-03 KR KR1020200167378A patent/KR20220078155A/ko active Search and Examination
-
2021
- 2021-04-19 US US17/233,701 patent/US11895224B2/en active Active
- 2021-06-01 CN CN202110611355.4A patent/CN114595487A/zh active Pending
- 2021-07-28 EP EP21188188.3A patent/EP4009575A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192359A (zh) * | 2022-12-27 | 2023-05-30 | 北京瑞莱智慧科技有限公司 | 一种同态乘法阵列电路和数据处理方法 |
CN116192359B (zh) * | 2022-12-27 | 2024-01-05 | 北京瑞莱智慧科技有限公司 | 一种同态乘法阵列电路和数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220182220A1 (en) | 2022-06-09 |
KR20220078155A (ko) | 2022-06-10 |
EP4009575A1 (en) | 2022-06-08 |
US11895224B2 (en) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114595487A (zh) | 加密处理器、其操作方法和包括加密处理器的电子设备 | |
US8340280B2 (en) | Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations | |
US10726108B2 (en) | Protecting the input/output of modular encoded white-box RSA | |
US7991152B2 (en) | Speeding up Galois Counter Mode (GCM) computations | |
US9898623B2 (en) | Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product | |
Rahimunnisa et al. | FPGA implementation of AES algorithm for high throughput using folded parallel architecture | |
US9619658B2 (en) | Homomorphically encrypted one instruction computation systems and methods | |
CN111984990B (zh) | 基于边缘计算的支持隐私保护的矩阵乘法任务外包方法 | |
US10235506B2 (en) | White-box modular exponentiation | |
Hutter et al. | NaCl’s crypto_box in hardware | |
EP3127271B1 (en) | Obfuscated performance of a predetermined function | |
US10140437B2 (en) | Array indexing with modular encoded values | |
CN113839770A (zh) | 用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎 | |
EP3125145B1 (en) | White-box elliptic curve point multiplication | |
Singh et al. | Compact and Secure S-Box Implementations of AES—A Review | |
JP2004533671A (ja) | 多項式演算オペレーション | |
Thongkhome et al. | A FPGA design of AES core architecture for portable hard disk | |
CN110266481B (zh) | 基于矩阵的后量子加、解密方法与解密装置 | |
CN111712816B (zh) | 使用密码蒙蔽以用于高效地使用蒙哥马利乘法 | |
CN116070230A (zh) | 加密处理器、包括加密处理器的电子装置和计算方法 | |
WO2022252876A1 (en) | A hardware architecture for memory organization for fully homomorphic encryption | |
EP2928111B1 (en) | Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product | |
KR20190022023A (ko) | 하드웨어 구현된 모듈러 역원 모듈 | |
Chaves et al. | SCA-Resistance for AES: How Cheap Can We Go? | |
EP3125144B1 (en) | Array indexing with modular encoded values |
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 |