KR20210146513A - 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 - Google Patents
인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 Download PDFInfo
- Publication number
- KR20210146513A KR20210146513A KR1020200063361A KR20200063361A KR20210146513A KR 20210146513 A KR20210146513 A KR 20210146513A KR 1020200063361 A KR1020200063361 A KR 1020200063361A KR 20200063361 A KR20200063361 A KR 20200063361A KR 20210146513 A KR20210146513 A KR 20210146513A
- Authority
- KR
- South Korea
- Prior art keywords
- ciphertext
- artificial intelligence
- semiconductor device
- intelligence computation
- data
- Prior art date
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 81
- 239000004065 semiconductor Substances 0.000 title claims abstract description 67
- 238000004364 calculation method Methods 0.000 title description 11
- 230000009466 transformation Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 11
- 239000012190 activator Substances 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000013501 data transformation Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 5
- 238000012856 packing Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4983—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/50—Adding; Subtracting
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- 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/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/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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
-
- 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
- H04L2209/122—Hardware reduction or efficient architectures
-
- 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/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Memory System (AREA)
Abstract
몇몇 실시예에 따른 연산 속도가 향상된 인공 지능 연산 반도체 장치와 이를 포함하는 저장 장치가 제공된다. 몇몇 실시예에 따른 인공 지능 연산 반도체 장치는, 제어부, 및 제어부를 통해 동형 암호 연산을 수행하는 MAC(Multiply and Accumulator) 연산기를 포함하되, MAC 연산기는, 데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT(Numeric Theoretic Transform)/INTT(Inverse NTT) 회로, 암호문 간의 곱 연산을 수행하는 암호문 곱셈기, 암호문 간의 덧셈 및/또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기, 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함한다.
Description
본 발명은 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치에 관한 것이다.
서버에 개인 정보 내지 자료를 저장하고 필요한 경우에 사용자가 사용자 단말기를 통해서 서버에 저장되어 있는 데이터를 이용하는 클라우드 컴퓨팅 환경이 제공될 수 있다. 개인 정보 내지 데이터를 서버에 보관할 때에는 데이터 유출을 방지하는 등 개인 정보 보호를 위해 데이터를 암호화하여 보관하게 된다.
이처럼 암호화된 데이터가 서버에 보관되어 있는 경우 해당 데이터를 검색하거나 연산을 통한 소정의 작업을 할 때에 암호화된 데이터를 일일이 복호화한 후에 원하는 검색 또는 연산을 수행하여야 하기 때문에 매우 비효율적이고, 연산을 위해 일시적으로 복호화된 개인 정보 내지 자료가 제3자에게 유출될 가능성이 증대되는 단점이 존재한다.
이러한 문제를 해결하기 위해 동형 암호화 방법이 널리 연구되고 있다. 동형 암호화에 의하면, 암호화된 정보나 자료를 복호화하지 않고 암호문 자체에 대해서 연산을 해도 평문에 대해 동일한 연산을 수행한 후 암호화한 결과와 동일한 결과를 얻기 때문에 암호문을 복호화하지 않고도 소정의 연산을 수행할 수 있다.
최근에는 인공 지능 분야에서 동형 암호화 방법이 이용되는데, 인공 지능 분야에서 사용되는 동형 암호화 연산에서 빠른 연산 처리 속도가 요구된다.
본 발명이 해결하고자 하는 기술적 과제는 연산 속도가 향상된 인공 지능 연산 반도체 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 연산 속도가 향상된 인공 지능 연산 반도체 장치를 포함하는 저장 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 인공 지능 연산 반도체 장치는, 제어부, 및 제어부를 통해 동형 암호 연산을 수행하는 MAC(Multiply and Accumulator) 연산기를 포함하되, MAC 연산기는, 다항식 곱셈의 연산 복잡도를 단순화시키기 위한 데이터 변환 및 역변환하는 NTT(Numeric Theoretic Transform)/INTT(Inverse NTT) 회로, 암호문 간의 곱 연산을 수행하는 암호문 곱셈기, 암호문 간의 덧셈 및/또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기, 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 모바일 장치는, 데이터를 저장하는 데이터 영역을 포함하는 메모리 장치, 메모리 장치를 제어하여 데이터를 주고받는 CPU(Central Processor Unit), 및 동형 암호 연산을 수행함으로써, 인공 지능 연산을 수행하는 인공 지능 연산 반도체 장치를 포함하되, 인공 지능 연산 반도체 장치는, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT/INTT 회로와, 암호문 간의 곱 연산을 수행하는 암호문 곱셈기와, 암호문 간의 덧셈 및/또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기와, 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 MAC 연산기를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 저장 장치는, 데이터를 저장하는 데이터 영역을 포함하는 비휘발성 메모리 장치, 비휘발성 메모리 장치를 제어하여 데이터를 주고받는 컨트롤러, 및 동형 암호 연산을 수행함으로써, 인공 지능 연산을 수행하는 인공 지능 연산 반도체 장치를 포함하되, 인공 지능 연산 반도체 장치는, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT/INTT 회로와, 암호문 간의 곱 연산을 수행하는 암호문 곱셈기와, 암호문 간의 덧셈 및/또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기와, 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 MAC 연산기를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 도시한 예시적인 블록도이다.
도 2는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 동작을 설명하기 위한 예시적인 흐름도이다.
도 3은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 부호화 동작을 설명하기 위한 예시적인 도면이다.
도 4는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 연산 일부를 설명하기 위한 예시적인 도면이다.
도 5 및 도 6은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 모바일 장치를 설명하기 위한 예시적인 블록도이다.
도 7 내지 도 10은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 저장 장치를 설명하기 위한 예시적인 블록도이다.
도 2는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 동작을 설명하기 위한 예시적인 흐름도이다.
도 3은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 부호화 동작을 설명하기 위한 예시적인 도면이다.
도 4는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 연산 일부를 설명하기 위한 예시적인 도면이다.
도 5 및 도 6은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 모바일 장치를 설명하기 위한 예시적인 블록도이다.
도 7 내지 도 10은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 저장 장치를 설명하기 위한 예시적인 블록도이다.
도 1은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 도시한 예시적인 블록도이다.
도 1을 참조하면, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)는 제어부(100), 파라미터 메모리(110), 부트 스트랩핑 회로(130), 버스(140), MAC(Multiply and Accumulator) 연산기(160), 동형화 액티베이터(150)를 포함한다.
제어부(100)는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)의 동작을 전반적으로 제어할 수 있다. 제어부(100)는 호스트(미도시)로부터 제공되는 명령어 등을 해석하고, 해석 결과에 따라 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)의 동작을 제어할 수 있다. 예를 들어, 제어부(100)는 호스트로부터 프로그램 명령어/어드레스/데이터 등을 제공받아, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)의 명령어에 따른 동작을 수행할 수 있다.
파라미터 메모리(110)는 MAC 연산기(160)가 사용하는 데이터를 저장할 수 있다. 더 자세히는, 파라미터 메모리(110)는 MAC 연산기(160)의 연산에 사용되는 데이터를 저장하고, 버스(140)를 통해 MAC 연산기(160)에 데이터를 전송할 수 있다. 파라미터 메모리(110)에 저장되는 데이터는 예를 들어, 인공 지능 연산에 이용되는 가중치들(weights)일 수 있다. 또는, 파라미터 메모리(110)에 저장되는 데이터는 예를 들어, 인공 지능 연산에 필요한 파라미터값이나 동형 연산의 중간 값일 수 있다. 파라미터 메모리(110)는 SRAM(Static Random Access Memory)로 구성될 수 있으나, 이에 제한되는 것은 아니다.
부트 스트랩핑(Boot Strapping) 회로(130)는 MAC 연산기(160)에 의해 동형 암호화된 데이터에 키 스위칭(key-switching)이 수행된 후 생성된 에러를 제거할 수 있다. 더 자세히는 부트 스트랩핑 회로(130)는 MAC 연산기(160)가 정해진 횟수 이상의 연산을 수행하면 동형 암호화된 암호문(chipertext)를 재부팅할 수 있다.
동형화 엑티베이터(Homomorphic Activator)(150)는 MAC 연산기(160)가 비선형 연산을 수행하는데 이용될 수 있다. 더 자세히는, MAC 연산기(160)에 의해 동형 암호화된 데이터를 인공 지능 연산에 이용하기 위해 비선형 연산이 수행될 수 있다. 이때, 동형화 엑티베이터(150)가 동형 암호화된 데이터에 대한 비선형 연산을 수행할 수 있다. 동형 암호화된 데이터에 대한 비선형 연산을 수행하기 위해, 동형화 엑티베이터(150)에는 간소화(approximated) 회로 모델이 배치될 수 있다. 간소화 회로 모델은 예를 들어, 동형 암호화된 데이터에 대해 테일러 시리즈(taylor series)로 변환하는 간소화 모델일 수 있다. 또한, 동형화 엑티베이터(150)는 ReLU, GeLU, Sigmoid, Tanh, Square 등 다양한 비선형 함수들을 지원할 수 있다.
MAC 연산기(160)는 NTT(Numeric Theoretic Transform)/INTT(Inverse NTT) 회로(161), 암호문 곱셈기(Cipher text Multiplier)(162), 암호문 덧셈/뺄셈기(Cipher Adder/Subtractor)(163), 회전기(164), 재선형기(165), 및 리스케일 회로(166)를 포함한다.
NTT/INTT 회로(161)는 RLWE(Ring Learning With Errors) 기반의 동형 암호문의 곱셈 연산을 효율적으로 처리할 수 있다. 즉, NTT/INTT 회로(161)는 다항식 곱셈의 연산 복잡도를 단순화시키기 위해 데이터를 변환하거나 역변환할 수 있다. 이를 통해,
더 자세히 살펴보면, RLWE 기반의 동형 암호문은 다항식 형태로 생성될 수 있다. 이때, 다항식 형태의 RLWE 기반의 동형 암호문에 대해 곱셈 연산을 수행할 때, 콘볼루션(convolution) 연산을 수행할 수 있다. 다항식 간의 곱은 큰 연산량을 요구할 수 있다. 예를 들어, n항의 다항식과 n항의 다항식 사이의 곱은 n2의 연산량이 필요할 수 있다.
하지만, NTT/INTT 회로(161)는 RLWE 기반의 동형 암호문의 곱셈 연산 수행 시, RLWE 기반의 동형 암호문에 대해 NTT 변환을 수행한 후 요소별(element-wise) 곱을 수행한다. 이후, NTT/INTT 회로(161)는 NTT 변환된 RLWE 기반의 동형 암호문에 대한 요소별 곱이 수행된 후, INTT 변환을 수행함으로써, 낮은 연산량으로 다항식 간의 곱을 수행할 수 있다. 예를 들어, NTT/INTT 회로(161)를 이용함으로써, n항의 다항식과 n항의 다항식 사이의 곱에 N*logN의 연산량만이 필요할 수 있다.
암호문 곱셈기(162)는 RLWE 기반의 동형 암호문 사이의 곱셈 연산을 수행할 수 있다.
암호문 덧셈/뺄셈기(163)는 RLWE 기반의 동형 암호문 사이의 덧셈 및/또는 뺄셈을 수행할 수 있다.
몇몇 실시예에 따른 MAC 연산기(160)는 이에 제한되지 않고, 암호문 사이의 XOR 동작, XNOR 동작, AND 동작 등을 수행하는 회로를 더 포함할 수도 있다.
회전기(164)는 동형 암호문에 대해 슬롯(slot) 순환 이동(cyclic shift)시킬 수 있다. 즉, 회전기(164)는 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시킬 수 있다. 상기 슬롯은 동형 암호가 수행될 데이터를 패킹(packing)함으로써 벡터(vector)화된 암호문의 일부를 의미할 수 있다.
재선형기(165)는 NTT/INTT 회로(161) 및/또는 암호문 곱셈기(162)를 통해 연산량이 증가된 암호문의 디맨젼(dimension)을 감소시킬 수 있다. 예를 들어, 재선형기(165)는 NTT/INTT 회로(161) 및/또는 암호문 곱셈기(162)를 통해 연산량이 증가된 암호문의 디맨젼을 암호문 간의 곱셈 연산 전의 디맨젼으로 회복시킬 수 있다.
리스케일 회로(166)는 NTT/INTT 회로(161) 및/또는 암호문 곱셈기(162)를 통해 수행된 암호문 간의 곱셈 연산 이후, 곱셈 연산된 암호문에 대한 크기를 줄일 수 있다. 혹은 리스케일 회로(166)는 곱셈 연산된 암호문에 대한 라운딩(rounding) 처리를 수행할 수 있다.
도 2는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 동작을 설명하기 위한 예시적인 흐름도이다.
도 1 및 도 2를 참조하면, 먼저, MAC 연산기(160)가 동형 암호의 대상이 되는 제1 메시지(1st message)에 대해 인코딩을 수행하여 제1 평문(1st plaintext)을 생성한다(S100). 이때, MAC 연산기(160)는 제1 메시지(1st message)를 벡터화하여 인코딩할 수 있다. 이를 도 3을 통해 예시적으로 살펴본다.
도 3은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 부호화 동작을 설명하기 위한 예시적인 도면이다.
도 3을 참조하면, 4 * 4 행렬로 구성된 제1 메시지(m)에 대해 인코딩이 수행될 수 있다. 이때, 제1 메시지(m)가 벡터화된 제1 벡터(v)에 대해 인코딩이 수행되어 제1 평문(c)이 생성될 수 있다. 제1 벡터(v)는 회전기(164)가 회전시키는 대상인 슬롯이 될 수 있다. 제1 평문(c)은 복수개의 슬롯들이 패킹되어 형성될 수 있다.
다시 도 1 및 도 2를 참조하면, 제1 평문(1st plaintext)을 부호화하여 제1 암호문(1st chiphertext)을 생성한다(S200). 이때, 제1 평문(1st plaintext)에 공개키(Public key) 및/또는 암호키(Secret key)를 이용하여 제1 암호문(1st ciphertext)를 생성할 수 있다.
이때, 암호문은 제1 암호문(1st ciphertext)을 포함한 복수의 암호문이 병렬적으로 생성될 수 있다.
이후, 복수의 암호문들 중 일부에 대해 동형 연산을 수행할 수 있다(S300). 더 자세히는, NTT/INTT 회로(161), 암호문 곱셈기(162) 및/또는 암호문 덧셈/뺄셈기(163)를 통해 복수의 암호문들 중 일부에 대해 동형 곱셈 및/또는 덧셈/뺄셈이 수행될 수 있다.
몇몇 실시예에 따른 동형 연산은 이에 제한되지 않고, 복수의 암호문들 중 일부 사이의 XOR 동작, XNOR 동작, AND 동작 등을 수행할 수도 있다.
상술한 동형 연산 중에서, 동형 곱셈 연산의 수행에 많은 연산량이 필요할 수 있다. 즉, 연산량의 증대에 따라 인공 지능 연산 장치의 연산 속도가 감소할 수 있다.
이를 방지하기 위해, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)의 동형 연산시, 회전기(164)를 통해 회전을 수행한다. 이를 도 4를 통해 예시적으로 설명한다.
도 4는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치의 연산 일부를 설명하기 위한 예시적인 도면이다.
도 4를 참조하면, 복수의 슬롯이 패킹된 제1 암호문(p1)과 복수의 슬롯이 패킹된 제2 암호문(p2) 사이의 동형 곱 연산()을 직접 수행하는 경우, 높은 연산량이 필요할 수 있다.
따라서, 연산량을 감소시키기 위해, 먼저 도 4의 우변과 같이 제1 암호문(p1)과 제2 암호문(p2) 각각에 대해 회전기(164)를 통해 슬롯을 원형 이동(cyclic shift)시킨 각각의 회전된 암호문을 준비한다. 예를 들어, 제1 암호문(p1)을 회전기(164)를 통해 원형 이동시킨 암호문은 제1_1 암호문(p1_1), 제1_2 암호문(p1_2), 및 제1_3 암호문(p1_3)이 될 수 있다. 또한, 제2 암호문(p2)을 회전기(164)를 통해 원형 이동시킨 암호문은 제2_1 암호문(p2_1), 제2_2 암호문(p2_2), 및 제2_3 암호문(p2_3)이 될 수 있다.
이후, 각각의 회전된 암호문들끼리 단순 행렬 곱 연산(⊙)을 수행할 수 있다. 예를 들어, 제1_1 암호문(p1_1)과 제2_1 암호문(p2_1)을 곱하고, 제1_2 암호문(p1_2)과 제2_2 암호문(p2_2)을 곱하고, 제1_3 암호문(p1_3)과 제2_3 암호문(p2_3)을 곱할 수 있다.
마지막으로, 각각의 회전된 암호문들끼리 단순 행렬 곱 연산(⊙)된 값에 대해 덧셈 연산(+)을 수행할 수 있다. 예를 들어, 제1_1 암호문(p1_1)과 제2_1 암호문(p2_1)을 곱한 값과, 제1_2 암호문(p1_2)과 제2_2 암호문(p2_2)을 곱한 값과, 제1_3 암호문(p1_3)과 제2_3 암호문(p2_3)을 곱한 값을 서로 더할 수 있다.
상술한 바와 같이, 회전기(164)를 통해 각각의 암호문을 원형 이동시킨 후, 단순 행렬 곱을 수행하여, 단순 행렬 곱이 수행된 값들을 더함으로써 암호문 사이의 곱 연산에 사용되는 연산량이 감소될 수 있다.
다시 도 1 및 도 2를 참조하면, 동형 연산을 통해 제2 암호문(2nd ciphertext)를 획득할 수 있다(S400). 이후, 제2 암호문(2nd ciphertext)를 복호화하여 제2 평문(2nd plaintext)를 생성할 수 있다(S500). 마지막으로, 제2 평문(2nd plaintext)를 디코딩하여 제2 메시지(2nd message)를 생성할 수 있다.
도 5 및 도 6은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 모바일 장치를 설명하기 위한 예시적인 블록도이다.
도 5를 참조하면, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 모바일 장치(20)는 APU(Application Processing Unit)(200), 메모리(230)를 포함한다.
APU(200)는 CPU(Central Processing Unit)(210)과 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함한다.
CPU(210)는 APU(200)를 제어할 수 있으며, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 제어할 수 있다. 예를 들어, CPU(210)는 APU(200) 및/또는 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10) 제어하기 위해 소프트웨어를 실행할 수 있고, 다양한 데이터 처리 또는 계산을 수행할 수 있다. 이를 위해, CPU(210)는 메모리(230) 내의 데이터 영역(230)으로부터 다양한 데이터를 로드할 수 있다. 또는 CPU(210)는 메모리(230)의 데이터 영역(230)으로 다양한 데이터를 기입할 수 있다.
메모리(220)는 비휘발성 메모리로 구성될 수 있으나, 이에 제한되는 것은 아니다. 메모리(220)의 일부 영역은 CPU(210)와 주고받는 데이터를 저장하는 데이터 영역(230)으로 할당될 수 있다. 동형 암호화를 수행하는 경우 평문에 비해 암호문의 크기가 상대적으로 더 커지기 때문에, 전용 영역(240)을 할당함으로써, 동형 암호화를 좀 더 효율적으로 수행할 수 있다. 메모리(220)의 다른 일부 영역은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)와 데이터를 주고받는 전용 영역(240)으로 할당될 수 있다.
메모리(220)를 데이터 영역(230)과 전용 영역(240)으로 나누어 배치함으로써, 서로 다른 암호화를 병렬적으로 처리할 수도 있다. 예를 들어, RSA 암호화와 동형 암호화를 병렬적으로 처리할 수 있다.
전용 영역(240)은 예를 들어, 인공 지능 연산에 필요한 가중치들을 저장하는 영역(250)과 공개키를 저장하는 영역(260)을 포함할 수 있다.
몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 모바일 장치(20)의 구성은 이에 제한되지 않는다.
예를 들어, 도 6을 참조하면, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 모바일 장치(22)는 도 5의 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 모바일 장치(20)와는 달리, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)가 APU(200)의 외부에 배치될 수 있다.
즉, 인공 지능 연산 반도체 장치(10)는 APU(200)와 함께 혹은 독립적으로 동작이 가능할 수 있다.
도 7 내지 도 10은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 저장 장치를 설명하기 위한 예시적인 블록도이다.
참고적으로, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 저장 장치는 스마트 카드, SD(secure digital) 카드, 멀티미디어 카드(multimedia card(MMC)), 임베디드 MMC(embedded MMC (eMMC)), 임베디드 멀티-칩 패키지 (embedded multi-chip package(eMCP)), PPN(perfect page NAND), 유니버셜 플래시 스토리지(universal flash storage(UFS)), USB 플래시 드라이브, 솔리드 스테이트 드라이브(solid state drive(SSD)), 또는 임베디드 SSD(embedded SSD(eSSD))로 구현될 수 있으나, 이에 한정되는 것은 아니다.
도 7을 참조하면, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 저장 장치(30)는 컨트롤러(310)와 비휘발성 메모리 장치(320)를 포함한다.
컨트롤러(310)는 호스트(300)로부터 제공되는 명령어 등을 해석하고, 해석 결과에 따라 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(30)의 동작을 제어할 수 있다. 예를 들어, 호스트(300)로부터 프로그램 명령어/어드레스/데이터 등을 제공받아, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(30)의 상기 어드레스에 상기 데이터를 저장할 수 있다. 또한, 호스트(300)로부터 리드 명령어/어드레스 등을 제공받아, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 저장 장치(30)의 상기 어드레스에 저장되어 있는 데이터를 비휘발성 메모리 장치(320)로부터 리드하여 출력할 수 있다.
컨트롤러(310)는 CPU(314), DRAM(318), 및 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함한다.
CPU(314)는 호스트(300)로부터 수신받은 명령어 등을 해석하여 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)의 동작을 제어할 수 있다.
몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)는 CPU(314)의 제어를 통해, 동형 암호화 동작을 수행할 수 있다. 이때, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)가 이용하는 데이터가 DRAM(318)에 저장될 수 있다. 더 자세히는, DRAM(318)은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)의 동형 암호 연산에 사용되는 데이터를 저장하고, 저장된 데이터를 다시 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)로 전송할 수 있다.
비휘발성 메모리 장치(320)의 일부는 데이터 영역(330)으로 할당될 수 있다. 비휘발성 메모리 장치(320)의 다른 일부는 전용 영역(340)으로 할당될 수 있다.
데이터 영역(330)과 전용 영역(340)은 서로 다른 형태로 구성될 수도 있다. 예를 들어, 데이터 영역(330)은 MLC(Multi Level Cell)로 구성되고, 전용 영역(340)은 SLC(Single Level Cell)로 구성될 수 있다. 하지만, 이에 제한되지 않고, 데이터 영역(330)이 TLC(Tripple Level Cell)로 구성되고, 전용 영역(340)은 MLC(Multi Level Cell)로 구성될 수 있다. 또는, 이에 제한되지 않고, 데이터 영역(330)이 TLC(Tripple Level Cell)로 구성되고, 전용 영역(340)은 SLC(Single Level Cell)로 구성될 수 있다.
데이터 영역(330)은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)의 연산에 이용되지 않는 데이터를 저장할 수 있다.
전용 영역(340)은 DRAM(318)의 일부 데이터를 저장할 수 있다. 상기 일부 데이터는 예를 들어, 인공 지능 연산에 이용되는 가중치들이 될 수 있다.
도 8을 참조하면, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(32)는 도 7의 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(30)와는 달리, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)가 컨트롤러(310) 외부에 배치될 수 있다.
도 9를 참조하면, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(34)는 도 7의 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(30)와는 달리, 전용 영역이 컨트롤러(310) 내에 배치될 수 있다.
도 10을 참조하면, 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(36)는 도 9의 몇몇 실시예에 따른 인공 지능 연산 반도체 장치(10)를 포함하는 저장 장치(34)와는 달리, 전용 영역(340)이 DRAM(318)내에 배치될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 인공 지능 연산 반도체 장치
100: 제어부
110: 파라미터 메모리
130: 부트 스트랩핑 회로
140: 버스
150: 동형화 엑티베이터
160: MAC 연산기
161: NTT/INTT 회로
162: 암호문 곱셈기
163: 암호문 덧셈/뺄셈기
164: 회전기
165: 재선형기
166: 리스케일 회로
Claims (10)
- 제어부; 및
상기 제어부를 통해 동형 암호 연산을 수행하는 MAC(Multiply and Accumulator) 연산기를 포함하되,
상기 MAC 연산기는,
데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT(Numeric Theoretic Transform)/INTT(Inverse NTT) 회로,
상기 암호문 간의 곱 연산을 수행하는 암호문 곱셈기,
상기 암호문 간의 덧셈 또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기,
상기 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 인공 지능 연산 반도체 장치. - 제 1항에 있어서,
상기 암호문 내의 에러를 제거하는 부트 스트랩핑(Boot Strapping) 회로를 더 포함하는 인공 지능 연산 반도체 장치. - 제 1항에 있어서,
상기 암호문에 대한 비선형 연산을 처리하는 동형화 엑티베이터(Homomorphic Activator)를 더 포함하는 인공 지능 연산 반도체 장치. - 제 1항에 있어서,
상기 MAC 연산기는,
상기 암호문의 크기를 줄이는 리스케일 회로를 더 포함하는 인공 지능 연산 반도체 장치. - 제 1항에 있어서,
상기 MAC 연산기는,
상기 암호문의 디맨젼(Dimension)을 감소시키고, 재선형 키를 교체하는 재선형기를 더 포함하는 인공 지능 연산 반도체 장치. - 제 1항에 있어서,
인공 지능 연산에 필요한 파라미터값이나 동형 연산의 중간 값을 저장하는 파라미터 메모리를 더 포함하는 인공 지능 연산 반도체 장치. - 데이터를 저장하는 데이터 영역을 포함하는 메모리 장치;
상기 메모리 장치를 제어하여 상기 데이터를 주고받는 CPU(Central Processor Unit); 및
동형 암호 연산을 수행함으로써, 인공 지능 연산을 수행하는 인공 지능 연산 반도체 장치를 포함하되,
상기 인공 지능 연산 반도체 장치는,
데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT/INTT 회로와, 상기 암호문 간의 곱 연산을 수행하는 암호문 곱셈기와, 상기 암호문 간의 덧셈 또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기와, 상기 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 MAC 연산기를 포함하는 모바일 장치. - 제 7항에 있어서,
상기 메모리 장치는 상기 동형 암호 연산을 수행하는데 이용되는 파라미터값들을 저장하는 인공 지능 연산 전용 영역을 포함하는 모바일 장치. - 제 7항에 있어서,
상기 인공 지능 연산 반도체 장치는,
상기 암호문 내의 에러를 제거하는 부트 스트랩핑 회로와,
상기 암호문에 대한 비선형 연산을 처리하는 동형화 엑티베이터를 더 포함하는 모바일 장치. - 데이터를 저장하는 데이터 영역을 포함하는 비휘발성 메모리 장치;
상기 비휘발성 메모리 장치를 제어하여 상기 데이터를 주고받는 컨트롤러; 및
동형 암호 연산을 수행함으로써, 인공 지능 연산을 수행하는 인공 지능 연산 반도체 장치를 포함하되,
상기 인공 지능 연산 반도체 장치는,
데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT/INTT 회로와, 상기 암호문 간의 곱 연산을 수행하는 암호문 곱셈기와, 상기 암호문 간의 덧셈 또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기와, 상기 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 MAC 연산기를 포함하는 저장 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200063361A KR20210146513A (ko) | 2020-05-27 | 2020-05-27 | 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 |
US17/136,522 US11895219B2 (en) | 2020-05-27 | 2020-12-29 | Artificial intelligence calculation semiconductor device and storage device comprising the same |
EP21154693.2A EP3917068A1 (en) | 2020-05-27 | 2021-02-02 | Artificial intelligence calculation semiconductor device and storage device comprising the same |
CN202110576252.9A CN113742741A (zh) | 2020-05-27 | 2021-05-26 | 人工智能计算半导体器件和包含该器件的存储器件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200063361A KR20210146513A (ko) | 2020-05-27 | 2020-05-27 | 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210146513A true KR20210146513A (ko) | 2021-12-06 |
Family
ID=74505048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200063361A KR20210146513A (ko) | 2020-05-27 | 2020-05-27 | 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11895219B2 (ko) |
EP (1) | EP3917068A1 (ko) |
KR (1) | KR20210146513A (ko) |
CN (1) | CN113742741A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102451633B1 (ko) * | 2021-12-09 | 2022-10-06 | 인하대학교 산학협력단 | 동형암호를 위한 암호화 처리 장치 및 방법 |
KR102498123B1 (ko) * | 2022-07-15 | 2023-02-09 | 인하대학교 산학협력단 | 동형암호를 위한 가변적으로 동작하는 ntt 기반 다항식 곱셈기 장치 및 방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11700110B2 (en) * | 2020-09-16 | 2023-07-11 | The Johns Hopkins University | Approximate algebraic operations for homomorphic encryption |
US11764944B2 (en) * | 2021-12-30 | 2023-09-19 | Huawei Technologies Co., Ltd. | Field-programmable gate array (FPGA) clusters and methods of using an FPGA cluster for homomorphic encryption acceleration |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101425020B1 (ko) * | 2008-03-17 | 2014-08-04 | 삼성전자주식회사 | 메모리 장치 및 데이터 판정 방법 |
US9281941B2 (en) * | 2012-02-17 | 2016-03-08 | International Business Machines Corporation | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management |
US10075288B1 (en) * | 2014-02-28 | 2018-09-11 | The Governing Council Of The University Of Toronto | Systems, devices, and processes for homomorphic encryption |
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 |
KR102614616B1 (ko) * | 2017-04-11 | 2023-12-15 | 더 가버닝 카운슬 오브 더 유니버시티 오브 토론토 | 동형 암호화에 의한 보안 계산 가속화를 위한 동형 처리 유닛(hpu) |
US10541805B2 (en) * | 2017-06-26 | 2020-01-21 | Microsoft Technology Licensing, Llc | Variable relinearization in homomorphic encryption |
EP3461054A1 (en) | 2017-09-20 | 2019-03-27 | Universidad de Vigo | System and method for secure outsourced prediction |
US10198399B1 (en) * | 2018-03-06 | 2019-02-05 | KenSci Inc. | Cryptographically secure machine learning |
US11063759B2 (en) * | 2018-04-27 | 2021-07-13 | The University Of Akron | Blockchain-empowered crowdsourced computing system |
US11087223B2 (en) * | 2018-07-11 | 2021-08-10 | International Business Machines Corporation | Learning and inferring insights from encrypted data |
US11575500B2 (en) * | 2018-07-25 | 2023-02-07 | Sap Se | Encrypted protection system for a trained neural network |
KR102040120B1 (ko) * | 2018-07-27 | 2019-11-05 | 주식회사 크립토랩 | 근사 암호화된 암호문에 대한 연산을 수행하는 장치 및 방법 |
KR102129183B1 (ko) | 2018-11-23 | 2020-07-01 | 세종대학교산학협력단 | 특징 융합 기반 주가 예측 방법 및 시스템 |
US10972252B2 (en) * | 2019-06-18 | 2021-04-06 | International Business Machines Corporation | Compressible (F)HE with applications to PIR |
US20210081807A1 (en) * | 2019-09-17 | 2021-03-18 | Sap Se | Non-Interactive Private Decision Tree Evaluation |
-
2020
- 2020-05-27 KR KR1020200063361A patent/KR20210146513A/ko unknown
- 2020-12-29 US US17/136,522 patent/US11895219B2/en active Active
-
2021
- 2021-02-02 EP EP21154693.2A patent/EP3917068A1/en active Pending
- 2021-05-26 CN CN202110576252.9A patent/CN113742741A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102451633B1 (ko) * | 2021-12-09 | 2022-10-06 | 인하대학교 산학협력단 | 동형암호를 위한 암호화 처리 장치 및 방법 |
KR102498123B1 (ko) * | 2022-07-15 | 2023-02-09 | 인하대학교 산학협력단 | 동형암호를 위한 가변적으로 동작하는 ntt 기반 다항식 곱셈기 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN113742741A (zh) | 2021-12-03 |
US11895219B2 (en) | 2024-02-06 |
EP3917068A1 (en) | 2021-12-01 |
US20210376997A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210146513A (ko) | 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 | |
US11983280B2 (en) | Protection of cryptographic operations by intermediate randomization | |
CN107040362B (zh) | 模乘设备和方法 | |
US9942039B1 (en) | Applying modular reductions in cryptographic protocols | |
EP1320027B1 (en) | Elliptic curve cryptosystem apparatus, method and program | |
CN101540672B (zh) | 数据处理***以及数据处理方法 | |
EP1248409A2 (en) | Attack-resistant cryptographic method and apparatus | |
US9520995B2 (en) | Efficient prime-number check | |
US20130301826A1 (en) | System, method, and program for protecting cryptographic algorithms from side-channel attacks | |
US11190340B2 (en) | Efficient unified hardware implementation of multiple ciphers | |
US10025559B2 (en) | Protection of a modular exponentiation calculation | |
US11902432B2 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
US9571281B2 (en) | CRT-RSA encryption method and apparatus | |
US9042543B2 (en) | Method for arbitrary-precision division or modular reduction | |
CN103765493B (zh) | 数字平方计算机实现的方法和设备 | |
KR20210147645A (ko) | 동형 암호화 장치 및 그것의 암호문 연산 방법 | |
US10977365B2 (en) | Protection of an iterative calculation against horizontal attacks | |
CN113032797B (zh) | 在处理设备中执行加密操作的方法 | |
Yuan et al. | Memory‐constrained implementation of lattice‐based encryption scheme on standard Java Card platform | |
US9942038B2 (en) | Modular exponentiation using randomized addition chains | |
WO2002071687A1 (en) | Recursive cryptoaccelerator and recursive vhdl design of logic circuits | |
US11431499B2 (en) | Finite-field division operator, elliptic curve cryptosystem having finite-field division operator and method for operating elliptic curve cryptosystem | |
US20230205491A1 (en) | System and Method for Big Number Hardware Multiplication for Cryptography | |
US20240171395A1 (en) | Encryption method using fixed-base comb method | |
US20230195943A1 (en) | Processor architecture and related techniques |