KR20210146513A - 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 - Google Patents

인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 Download PDF

Info

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
Application number
KR1020200063361A
Other languages
English (en)
Inventor
임진수
설창규
윤필상
김지엽
정주영
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200063361A priority Critical patent/KR20210146513A/ko
Priority to US17/136,522 priority patent/US11895219B2/en
Priority to EP21154693.2A priority patent/EP3917068A1/en
Priority to CN202110576252.9A priority patent/CN113742741A/zh
Publication of KR20210146513A publication Critical patent/KR20210146513A/ko

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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • G06F7/4983Multiplying; Dividing
    • 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/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/52Multiplying; Dividing
    • 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Abstract

몇몇 실시예에 따른 연산 속도가 향상된 인공 지능 연산 반도체 장치와 이를 포함하는 저장 장치가 제공된다. 몇몇 실시예에 따른 인공 지능 연산 반도체 장치는, 제어부, 및 제어부를 통해 동형 암호 연산을 수행하는 MAC(Multiply and Accumulator) 연산기를 포함하되, MAC 연산기는, 데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT(Numeric Theoretic Transform)/INTT(Inverse NTT) 회로, 암호문 간의 곱 연산을 수행하는 암호문 곱셈기, 암호문 간의 덧셈 및/또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기, 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함한다.

Description

인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 {Artificial intelligence calculation semiconductor device and storage device comprising the same}
본 발명은 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치에 관한 것이다.
서버에 개인 정보 내지 자료를 저장하고 필요한 경우에 사용자가 사용자 단말기를 통해서 서버에 저장되어 있는 데이터를 이용하는 클라우드 컴퓨팅 환경이 제공될 수 있다. 개인 정보 내지 데이터를 서버에 보관할 때에는 데이터 유출을 방지하는 등 개인 정보 보호를 위해 데이터를 암호화하여 보관하게 된다.
이처럼 암호화된 데이터가 서버에 보관되어 있는 경우 해당 데이터를 검색하거나 연산을 통한 소정의 작업을 할 때에 암호화된 데이터를 일일이 복호화한 후에 원하는 검색 또는 연산을 수행하여야 하기 때문에 매우 비효율적이고, 연산을 위해 일시적으로 복호화된 개인 정보 내지 자료가 제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은 몇몇 실시예에 따른 인공 지능 연산 반도체 장치를 포함하는 저장 장치를 설명하기 위한 예시적인 블록도이다.
도 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) 사이의 동형 곱 연산(
Figure pat00001
)을 직접 수행하는 경우, 높은 연산량이 필요할 수 있다.
따라서, 연산량을 감소시키기 위해, 먼저 도 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)

  1. 제어부; 및
    상기 제어부를 통해 동형 암호 연산을 수행하는 MAC(Multiply and Accumulator) 연산기를 포함하되,
    상기 MAC 연산기는,
    데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT(Numeric Theoretic Transform)/INTT(Inverse NTT) 회로,
    상기 암호문 간의 곱 연산을 수행하는 암호문 곱셈기,
    상기 암호문 간의 덧셈 또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기,
    상기 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 인공 지능 연산 반도체 장치.
  2. 제 1항에 있어서,
    상기 암호문 내의 에러를 제거하는 부트 스트랩핑(Boot Strapping) 회로를 더 포함하는 인공 지능 연산 반도체 장치.
  3. 제 1항에 있어서,
    상기 암호문에 대한 비선형 연산을 처리하는 동형화 엑티베이터(Homomorphic Activator)를 더 포함하는 인공 지능 연산 반도체 장치.
  4. 제 1항에 있어서,
    상기 MAC 연산기는,
    상기 암호문의 크기를 줄이는 리스케일 회로를 더 포함하는 인공 지능 연산 반도체 장치.
  5. 제 1항에 있어서,
    상기 MAC 연산기는,
    상기 암호문의 디맨젼(Dimension)을 감소시키고, 재선형 키를 교체하는 재선형기를 더 포함하는 인공 지능 연산 반도체 장치.
  6. 제 1항에 있어서,
    인공 지능 연산에 필요한 파라미터값이나 동형 연산의 중간 값을 저장하는 파라미터 메모리를 더 포함하는 인공 지능 연산 반도체 장치.
  7. 데이터를 저장하는 데이터 영역을 포함하는 메모리 장치;
    상기 메모리 장치를 제어하여 상기 데이터를 주고받는 CPU(Central Processor Unit); 및
    동형 암호 연산을 수행함으로써, 인공 지능 연산을 수행하는 인공 지능 연산 반도체 장치를 포함하되,
    상기 인공 지능 연산 반도체 장치는,
    데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT/INTT 회로와, 상기 암호문 간의 곱 연산을 수행하는 암호문 곱셈기와, 상기 암호문 간의 덧셈 또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기와, 상기 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 MAC 연산기를 포함하는 모바일 장치.
  8. 제 7항에 있어서,
    상기 메모리 장치는 상기 동형 암호 연산을 수행하는데 이용되는 파라미터값들을 저장하는 인공 지능 연산 전용 영역을 포함하는 모바일 장치.
  9. 제 7항에 있어서,
    상기 인공 지능 연산 반도체 장치는,
    상기 암호문 내의 에러를 제거하는 부트 스트랩핑 회로와,
    상기 암호문에 대한 비선형 연산을 처리하는 동형화 엑티베이터를 더 포함하는 모바일 장치.
  10. 데이터를 저장하는 데이터 영역을 포함하는 비휘발성 메모리 장치;
    상기 비휘발성 메모리 장치를 제어하여 상기 데이터를 주고받는 컨트롤러; 및
    동형 암호 연산을 수행함으로써, 인공 지능 연산을 수행하는 인공 지능 연산 반도체 장치를 포함하되,
    상기 인공 지능 연산 반도체 장치는,
    데이터의 변환 또는 역변환을 통해, 동형 곱셈 연산을 수행하여 암호문을 생성하는 NTT/INTT 회로와, 상기 암호문 간의 곱 연산을 수행하는 암호문 곱셈기와, 상기 암호문 간의 덧셈 또는 뺄셈 연산을 수행하는 암호문 덧셈/뺄셈기와, 상기 암호문의 슬롯(slot)을 순환 이동(cyclic shift)시키는 회전기를 포함하는 MAC 연산기를 포함하는 저장 장치.
KR1020200063361A 2020-05-27 2020-05-27 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치 KR20210146513A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
CA3065976A1 (en) * 2017-04-11 2019-02-11 The Governing Council Of The University Of Toronto A homomorphic processing unit (hpu) for accelerating secure computations under homomorphic encryption
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 세종대학교산학협력단 특징 융합 기반 주가 예측 방법 및 시스템
US10985904B2 (en) * 2019-06-18 2021-04-20 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

Cited By (2)

* Cited by examiner, † Cited by third party
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
US20210376997A1 (en) 2021-12-02
US11895219B2 (en) 2024-02-06
EP3917068A1 (en) 2021-12-01
CN113742741A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
KR20210146513A (ko) 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치
US9942039B1 (en) Applying modular reductions in cryptographic protocols
EP1320027B1 (en) Elliptic curve cryptosystem apparatus, method and program
CN105892991B (zh) 使用查找表的模乘运算
CN101540672B (zh) 数据处理系统以及数据处理方法
US20220075879A1 (en) Protection of cryptographic operations by intermediate randomization
US20130301826A1 (en) System, method, and program for protecting cryptographic algorithms from side-channel attacks
US11190340B2 (en) Efficient unified hardware implementation of multiple ciphers
US11902432B2 (en) System and method to optimize generation of coprime numbers in cryptographic applications
US20220085999A1 (en) System and method to optimize decryption operations in cryptographic applications
US9571281B2 (en) CRT-RSA encryption method and apparatus
US9042543B2 (en) Method for arbitrary-precision division or modular reduction
US20210226789A1 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
CN113810169A (zh) 同态加密装置及其密文算术方法
CN103765493B (zh) 数字平方计算机实现的方法和设备
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
CN107463354B (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
Yuan et al. Memory‐constrained implementation of lattice‐based encryption scheme on standard Java Card platform
US10977365B2 (en) Protection of an iterative calculation against horizontal attacks
US20170126407A1 (en) Modular Exponentiation Using Randomized Addition Chains
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
CN113032797A (zh) 在处理设备中执行加密操作的方法
CN114254335A (zh) 基于gpu的加密方法、装置、加密设备及存储介质
CN112487448B (zh) 一种加密信息处理装置、方法及计算机设备
US11431499B2 (en) Finite-field division operator, elliptic curve cryptosystem having finite-field division operator and method for operating elliptic curve cryptosystem