KR20210147645A - 동형 암호화 장치 및 그것의 암호문 연산 방법 - Google Patents

동형 암호화 장치 및 그것의 암호문 연산 방법 Download PDF

Info

Publication number
KR20210147645A
KR20210147645A KR1020200065187A KR20200065187A KR20210147645A KR 20210147645 A KR20210147645 A KR 20210147645A KR 1020200065187 A KR1020200065187 A KR 1020200065187A KR 20200065187 A KR20200065187 A KR 20200065187A KR 20210147645 A KR20210147645 A KR 20210147645A
Authority
KR
South Korea
Prior art keywords
reboot
level
ciphertexts
levels
parameter
Prior art date
Application number
KR1020200065187A
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 KR1020200065187A priority Critical patent/KR20210147645A/ko
Priority to US17/126,935 priority patent/US11483128B2/en
Priority to EP20217765.5A priority patent/EP3917067A1/en
Priority to CN202110143171.XA priority patent/CN113810169A/zh
Priority to SG10202101159RA priority patent/SG10202101159RA/en
Publication of KR20210147645A publication Critical patent/KR20210147645A/ko

Links

Images

Classifications

    • 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
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Power Sources (AREA)

Abstract

본 개시에 따르면, 동형 암호화 장치는, 복수의 암호문들 사이의 연산 스케줄에 대한 정보를 포함하는 연산 시나리오를 기초로 복수의 암호문들 각각에 대한 재부팅 레벨을 포함하는 재부팅 파라미터를 생성하도록 구성되는 재부팅 파라미터 생성 회로, 재부팅 파라미터를 기초로, 복수의 암호문들 각각을 대응되는 재부팅 레벨로 재부팅함으로써 복수의 재부팅된 암호문들을 생성하도록 구성되는 재부팅 회로 및 연산 시나리오에 따라, 복수의 재부팅된 암호문들을 이용해 연산을 수행함으로써 연산 결과를 출력하도록 구성되는 연산 회로를 포함할 수 있다.

Description

동형 암호화 장치 및 그것의 암호문 연산 방법{HOMOMORPHIC ENCRYPTION DEVICE AND CYPHERTEXT OPERATION METHOD THEREOF}
본 개시의 기술적 사상은 동형 암호화 장치 및 동형 암호화 장치의 암호문 연산 방법에 관한 것으로서, 암호문을 재부팅하고, 재부팅된 암호문을 이용해 연산을 수행하기 위한 동형 암호화 장치 및 동형 암호화 장치의 동작 방법에 관한 것이다.
통신 기술이 발달하고, 전자 장치의 보급이 활발해짐에 따라, 전자 장치 간의 통신 보안을 유지하기 위한 노력이 지속적으로 이루어지고 있으며, 이에 따라, 대부분의 통신 환경에서는 암호화/복호화 기술이 이용되고 있다.
암호화 기술에 의해 암호화된 메시지가 상대방에게 전달되면, 상대방은 메시지를 이용하기 위해 암호화된 메시지를 복호화 한다. 이 경우, 상대방이 연산을 위해 일시적으로 메시지를 복호화한 상태에서 제3자의 해킹이 발생하는 경우, 복호화된 메시지가 제3자에게 손쉽게 유출될 수 있는 문제점도 존재한다.
이러한 문제를 해결하기 위해 동형 암호화 방법이 연구되고 있다. 동형 암호화에 따르면, 암호화된 정보를 복호화하지 않고 암호문 상태에서 연산을 하더라도, 예비문에 대해 연산한 후 암호화한 값과 동일한 결과를 얻을 수 있다. 따라서, 암호문을 복호화하지 않은 상태에서 각종 연산을 수행할 수 있다.
본 개시의 기술적 사상은 동형 암호화 장치 및 동형 암호화 장치의 암호문 연산 방법에 있어서, 재부팅(recryption)에서 연산량을 줄이고, 동형 암호화 장치의 동작 속도를 향상시키기 위한 방법 및 장치를 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 동형 암호화 장치는, 복수의 암호문들 사이의 연산 스케줄에 대한 정보를 포함하는 연산 시나리오를 기초로 복수의 암호문들 각각에 대한 재부팅 레벨을 포함하는 재부팅 파라미터를 생성하도록 구성되는 재부팅 파라미터 생성 회로, 재부팅 파라미터를 기초로, 복수의 암호문들 각각을 대응되는 재부팅 레벨로 재부팅함으로써 복수의 재부팅된 암호문들을 생성하도록 구성되는 재부팅 회로 및 연산 시나리오에 따라, 복수의 재부팅된 암호문들을 이용해 연산을 수행함으로써 연산 결과를 출력하도록 구성되는 연산 회로를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 동형 암호화 장치의 암호문 연산 방법은, 복수의 암호문들에 대한 연산 스케줄에 대한 정보를 포함하는 연산 시나리오를 기초로, 복수의 암호문들에 대한 복수의 재부팅 레벨들을 결정하는 단계, 복수의 암호문들 각각을, 복수의 재부팅 레벨들 중 대응되는 재부팅 레벨로 재부팅하는 단계 및 복수의 재부팅된 암호문들을 이용해 적어도 하나의 곱셈 연산을 포함하는 연산을 수행함으로써 연산 결과를 출력하는 단계를 포함할 수 있으며, 복수의 재부팅 레벨들 중 적어도 두 개는 서로 다른 레벨을 가질 수 있다.
본 개시의 기술적 사상의 일측면에 따른 동형 암호화 장치는, 복수의 연산 조합들에 대응되는 복수의 재부팅 파라미터들을 포함하는 파라미터 맵핑 테이블을 저장하는 메모리, 연산 시나리오에 포함된 복수의 암호문들에 대한 연산 조합을 메모리로부터 제공되는 파라미터 맵핑 테이블과 비교하는 것에 기초하여, 복수의 암호문들에 대한 복수의 재부팅 레벨들을 포함하는 재부팅 파라미터를 생성하도록 구성되는 재부팅 파라미터 생성 회로, 재부팅 파라미터를 기초로, 복수의 암호문들 각각을 복수의 재부팅 레벨들 중 대응되는 재부팅 레벨로 재부팅함으로써 복수의 재부팅된 암호문들을 생성하도록 구성되는 재부팅 회로 및 복수의 재부팅 암호문들을 복수의 암호문들에 대한 연산 조합에 따라 연산함으로써 연산 결과를 출력하도록 구성되는 연산 회로를 포함할 수 있으며, 파라미터 맵핑 테이블에 포함된 복수의 재부팅 파라미터들 각각은, 연산 결과의 레벨이, 복수의 연산 조합들 중 대응되는 연산 조합에 따라, 최소화 되도록 최적화된 레벨들에 대한 정보를 포함 다.
본 개시의 기술적 사상의 일측면에 따른 동형 암호화 장치의 암호문 연산 방법은, 복수의 암호문들을 상기 동형 암호화 장치 외부로부터 수신하는 단계, 요구되는 복수의 암호문들 사이의 연산 종류 및 연산 순서를 기초로, 연산 결과에 예비문이 포함되지 않도록 복수의 암호문들을 각각에 대응되는 재부팅 레벨로 재부팅하는 단계 및 복수의 재부팅된 암호문들을 이용해 적어도 하나의 곱셈을 포함하는 연산을 수행함으로써 예비문이 포함되지 않은 연산 결과를 출력하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 동형 암호화 장치의 암호문 연산 방법은, 복수의 암호문들을 수신하는 단계, 복수의 암호문들 사이의 적어도 하나의 연산에 대한 정보를 포함하는 연산 시나리오를 기초로, 적어도 하나의 연산 각각에 대한 레벨 소모 양을 판단하는 단계, 복수의 암호문들 각각에 대해, 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양의 합을 해당 암호문에 대응되는 재부팅 레벨로 결정하는 단계 및 복수의 암호문들 각각에 대해 해당 암호문을 대응되는 결정된 재부팅 레벨로 재부팅함으로써, 복수의 재부팅된 암호문들을 생성하는 단계 및 복수의 재부팅된 암호문들을 이용해 연산을 수행함으로써 연산 결과를 출력하는 단계를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 동형 암호화 장치 및 동형 암호화 장치의 암호문 연산 방법에 따르면, 복수의 암호문들에 대한 연산 종류 및/또는 연산 순서를 포함하는 연산 스케줄에 대한 정보를 포함하는 연산 시나리오를 기초로 복수의 암호문들 각각에 대한 재부팅 레벨을 결정할 수 있으며, 복수의 암호문들 각각을 결정된 재부팅 레벨로 재부팅 할 수 있다.
이로써, 요구되는 연산에 필요한 양의 재부팅 만이 수행될 수 있으며, 불필요하게 많은 재부팅이 수행되지 않을 수 있어 재부팅에서의 연산량이 감소될 수 있다. 재부팅에서 연산량이 감소됨에 따라, 동형 암호화 장치의 동작 속도가 향상될 수 있다.
도 1은 본 개시의 예시적 실시 예에 따른 장치를 나타낸다.
도 2는 본 개시의 예시적 실시 예에 따른 암호화 장치를 나타낸다.
도 3은 본 개시의 예시적 실시 예에 따른 동형 암호화를 설명하기 위한 도면이다.
도 4는 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다.
도 5는 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다.
도 6은 본 개시의 예시적 실시 예에 따른 연산 시나리오를 나타낸다.
도 7은 본 개시의 예시적 실시 예에 따른 재부팅 및 연산 과정을 설명하기 위한 개념도를 나타낸다.
도 8은 본 개시의 예시적 실시 예에 따른 파라미터 맵핑 테이블을 나타낸다.
도 9는 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다.
도 10은 본 개시의 예시적 실시 예에 따른 연산 시나리오를 나타낸다.
도 11a 및 도 11b는 본 개시의 예시적 실시 예에 따른 재부팅 및 연산 과정을 설명하기 위한 개념도를 나타낸다.
도 12는 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다.
도 13은 본 개시의 예시적 실시 예에 따른 SSD 시스템을 나타낸다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시 예에 따른 장치(1)를 나타낸다. 장치(1)는 암호화 장치(10), 프로세서(20), 인터페이스(30) 및 메모리(40)를 포함할 수 있다. 장치(1)는 외부와 데이터(DT)를 송수신할 수 있다. 예를 들어, 장치(1)는 스마트 카드, 메모리 카드 또는 다른 장치와 데이터(DT)를 송수신할 수 있다.
장치(1)는 다양한 전자 장치로 구현되거나, 다양한 전자 장치에 포함될 수 있다. 예를 들어, 전자 장치는 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트 폰, 의료 장치, 모바일 장치, 영상 표시 장치, 계측 장치, IoT(Internet of Things) 장치 등을 포함할 수 있다. 이외에도, 장치(1)는 도 13과 같은 저장 장치로 구현될 수도 있다.
암호화 장치(10)는 장치(1) 외부로부터 수신한 데이터(DT)를 암호화(encryption) 및/또는 복호화(decryption)할 수 있다. 암호화 장치(10)는 암호화 알고리즘에 기반한 암호화 연산의 수행을 통해 데이터(DT)의 보안을 유지할 수 있다. 암호화 알고리즘은, 예를 들어 암호화 키를 이용하여 암호화된 데이터를 생성하는 알고리즘일 수 있다. 일 실시 예에서, 암호화 알고리즘은, 동형 암호화 알고리즘(homomorphic encryption algorithm)일 수 있다.
프로세서(20)는 인터페이스(30)를 통해 장치(1)의 외부와 데이터(DT)를 송수신할 수 있다. 프로세서(20)는 작업(task)을 실행하고, 그 결과를 메모리(40)에 저장할 수 있다. 일 예로, 프로세서(20)는, 복수의 코어들을 포함할 수 있다.
메모리(40)는 프로세서(20)의 동작에 필요한 각종 데이터를 저장할 수 있다. 메모리(40)는, 예를 들어 DRAM(Dynamic Random Access Memory), 모바일 DRAM(Mobile DRAM), SRAM(Static RAM), PRAM(Phase change RAM), FRAM(Ferroelectric RAM), 저항성 메모리(Resistive RAM) 및/또는 MRAM(Magnetic RAM)으로 구현될 수 있다.
일 실시 예에서, 암호화 장치(10)는 동형 암호화 기법에 따라 암호화된 암호문(cipher text)을 처리(process)할 수 있다. 설명의 편의를 위해, 본 명세서에서 동형 암호화 기법에 따라 암호화된 암호문은 동형 암호문이라 칭해질 수 있다. 예를 들어, 암호화 장치(10)는 복수의 암호문들을 이용해 연산을 수행할 수 있다.
동형 암호문은 동형 암호화 기법의 성질상 예비문(preliminary text), 메시지(message) 및 에러(error)(또는 노이즈)를 포함할 수 있다. 동형 암호문에 대한 곱셈 연산이 수행되는 경우, 예비문의 길이는 감소하고, 연산 결과에 대응되는 암호문에 포함되는 에러가 피연산 암호문에 포함된 에러보다 커지기 때문에, 곱셈 연산이 적어도 1회 수행되는 것에 응답하여 에러의 제거가 요구된다. 결과적으로, 동형 암호문에 대한 곱셈 연산이 수행될 때마다, 예비문의 길이가 점점 짧아지게 되므로, 동형 암호문에 대해 곱셈 연산이 수행될 수 있는 횟수가 제한된다. 이에 따라, 동형 암호문의 잔여 연산 가능 횟수가 요구되는 연산량에 비해 적은 경우, 동형 암호문에는 예비문의 길이를 추가하는 재부팅(recryption)이 수행되어야 한다.
설명의 편의를 위해, 동형 암호문의 잔여 연산 가능 횟수에 대응되는 개념을 동형 암호문의 레벨로 칭하기로 하며, 동형 암호문의 레벨은 동형 암호문의 예비문의 길이를 이산적인 값(discrete value)으로 표현한 것이라 할 수 있다. 비제한적인 예시로서, 도형 암호문의 예비문의 최대 길이에 대응되는 동형 암호문의 최대 레벨이 10인 경우, 동형 암호문의 레벨은 0부터 10까지의 정수의 값을 가질 수 있다. 예를 들어, 동형 암호문의 레벨이 7인 경우, 해당 동형 암호문에는 7회의 추가 곱셈 연산이 수행될 수 있다. 하지만, 이에만 제한되는 것은 아니며, 연산의 종류 또는 함께 연산되는 다른 암호문의 성질에 따라, 1회의 연산에서 소모(consume)되는 레벨이 2 이상일 수도 있다.
추가적으로, 동형 암호문들에 곱셈 연산이 수행되기 위해서는 피연산 동형 암호문들의 레벨이 동일해야 한다.
본 개시의 예시적 실시 예에 따른 장치(1)에 포함된 암호화 장치(10)는, 복수의 암호문들에 대한 연산 스케줄에 대한 정보를 포함하는 연산 시나리오를 기초로 복수의 암호문들 각각에 대한 재부팅 레벨을 결정할 수 있다. 다시 말해, 암호화 장치(10)는 복수의 암호문들에 대한 복수의 재부팅 레벨들을 결정할 수 있는데, 일 실시 예에서, 복수의 재부팅 레벨들 중 적어도 2개는 서로 다른 레벨을 가질 수 있다. 일 실시 예에서, 복수의 암호문들에 대한 연산 스케줄은, 복수의 암호문들에 대해 수행이 예정된 연산의 종류, 연산의 순서를 포함할 수 있다. 뿐만 아니라, 일 실시 예에서, 연산 스케줄은, 예정된 연산에서 소모되는 레벨에 대한 정보를 포함할 수 있다. 암호화 장치(10)의 재부팅 레벨 결정, 재부팅 및 연산 등의 동작들에 대해서는 이하의 도면들을 참조해 보다 자세히 설명된다.
본 개시의 예시적 실시 예에 따른 장치(1)에 의하면, 암호화 장치(10)에서 요구되는 연산에 필요한 양의 재부팅 만이 수행될 수 있으며, 불필요하게 많은 재부팅이 수행되지 않을 수 있다. 이에 따라, 재부팅에서 연산량이 감소될 수 있다. 나아가, 재부팅에서 연산량이 감소됨에 따라, 암호화 장치(10) 및 장치(1)의 동작 속도가 향상될 수 있다.
도 2는 본 개시의 예시적 실시 예에 따른 암호화 장치(10)를 나타낸다. 암호화 장치(10)는 도 1의 암호화 장치(10)에 대응될 수 있다.
암호화 장치(10)는 재부팅 회로(100), 연산 회로(200), 재부팅 파라미터 생성 회로(300) 및 메모리(400)를 포함할 수 있다.
재부팅 회로(100)는 암호화 장치(10)의 외부로부터 복수의 암호문들(CT)을 수신할 수 있다. 일 실시 예에서, 복수의 암호문들(CT)은 동형 암호화 기법에 따라 암호화된 암호문들일 수 있다. 재부팅 회로(100)는, 재부팅 파라미터 생성 회로(300)로부터 제공되는 재부팅 파라미터(P_R)를 기초로, 복수의 암호문들(CT)을 재부팅할 수 있다. 재부팅 파라미터(P_R)는 복수의 암호문들(CT) 각각에 대응되는 재부팅 레벨을 포함하는 복수의 재부팅 레벨들을 포함할 수 있다. 재부팅 회로(100)는, 복수의 암호문들(CT) 각각에 대해, 재부팅 파라미터(P_R)에 포함된 복수의 재부팅 레벨들 중 대응되는 복수의 재부팅 레벨로 재부팅 할 수 있다. 참고로, 암호문을 재부팅 레벨로 재부팅 한다는 것은, 재부팅된 암호문의 레벨이 재부팅 레벨을 갖도록 암호문의 예비문의 길이를 늘리는 것을 의미한다. 재부팅 회로(100)는 재부팅 파라미터(P_R)를 기초로 복수의 암호문들(CT)을 재부팅 함으로써 복수의 재부팅된 암호문들(CT_R)을 생성할 수 있고, 복수의 재부팅된 암호문들(CT_R)을 연산 회로(200)에 제공할 수 있다.
연산 회로(200)는 재부팅 회로(100)로부터 제공되는 복수의 재부팅된 암호문들(CT_R)을 이용해 연산을 수행할 수 있다. 예를 들어, 연산 회로(200)는 연산의 종류 및/또는 연산의 순서 등을 포함하는 연산 시나리오(SNR_A)에 포함된 적어도 하나의 연산을 수행할 수 있다. 연산 시나리오(SNR_A)는 암호화 장치(10) 내부에서 결정될 수 있으며, 실시 예에 따라, 암호화 장치(10) 외부에서 주어지거나 요구되는 정보일 수 있다. 연산 회로(200)는 복수의 재부팅된 암호문들(CT_R)을 이용해 연산을 수행함으로써 연산 결과(RST)를 생성할 수 있고, 연산 결과(RST)를 출력할 수 있다. 연산 회로(200)는 연산 시나리오(SNR_A)를 재부팅 파라미터 생성 회로(300)에 제공할 수 있다.
재부팅 파라미터 생성 회로(300)는 연산 회로(200)로부터 제공되는 연산 시나리오(SNR_A)를 기초로 복수의 암호문들에 대응되는 복수의 재부팅 레벨들을 포함하는 재부팅 파라미터(P_R)를 생성할 수 있다. 이를 위해, 재부팅 파라미터 생성 회로(300)는 연산 시나리오(SNR_A)를 기초로 복수의 재부팅 레벨들을 결정할 수 있다. 재부팅 파라미터 생성 회로(300)는 재부팅 파라미터(P_R)를 재부팅 회로(100)에 제공할 수 있다. 일 실시 예에서, 복수의 재부팅 레벨들 중 적어도 2개는 서로 다른 레벨을 가질 수 있다.
또한 일 실시 예에서, 재부팅 파라미터 생성 회로(300)는, 연산 시나리오(SNR_A)에 포함된 적어도 하나의 연산에 대한 레벨 소모 양을 판단할 수 있고, 판단된 적어도 하나의 연산에 대한 레벨 소모 양을 기초로 복수의 재부팅 레벨들을 결정할 수 있다. 예를 들어, 복수의 암호문들 각각에 대해, 재부팅 파라미터 생성 회로(300)는, 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양을 합할 수 있고, 합산 결과를 해당 암호문에 대응되는 재부팅 레벨로 결정할 수 있다. 이 실시 예에 대해서는 도 5 내지 도 8을 참조하여 보다 상세히 설명된다.
일 실시 예에서, 복수의 암호문들 중 특정 암호문에 대해 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양의 합이 최대 재부팅 레벨을 초과할 수 있다. 최대 재부팅 레벨은, 암호문에 포함된 예비문이 가질 수 있는 최대 길이에 대응되는 레벨을 나타낼 수 있다. 이 경우, 한 번의 재부팅은 연산 시나리오(SNR_A)에서 해당 암호문에 요구되는 스펙을 충족시킬 수 없다. 따라서, 재부팅 파라미터 생성 회로(300)는, 해당 암호문이 거치는 적어도 하나의 연산의 합을 복수의 레벨들로 분할할 수 있으며, 복수의 레벨들에 대응되는 복수의 재부팅 동작들을 스케줄링 할 수 있다. 이 때, 복수의 재부팅 동작들은 상기 적어도 하나의 연산 사이에 수행될 수 있다. 일 실시 예에서, 재부팅 파라미터 생성 회로(300)는 복수의 재부팅 동작들에 대한 스케줄링 정보를 재부팅 회로(100)에 추가적으로 제공할 수 있다. 이 때, 재부팅 회로(100)는 적어도 하나의 연산 중 일부 연산 수행에 따른 중간 결과(RST_M)를 연산 회로(200)로부터 수신할 수 있으며, 스케줄링 정보에 따라 중간 결과(RST_M)에 대해 재부팅을 수행할 수 있다. 이 실시 예에 대해서는 도 9 내지 도 11b를 참조해 보다 상세히 설명된다.
본 개시의 예시적 실시 예에 따른 암호화 장치(10)에 의하면, 암호화 장치(10)는 복수의 암호문들(CT)에 대한 연산 종류 및/또는 연산 순서를 포함하는 연산 스케줄에 대한 정보를 포함하는 연산 시나리오(SNR_A)를 기초로 복수의 암호문들(CT) 각각에 대한 재부팅 레벨을 결정할 수 있으며, 복수의 암호문들(CT) 각각을 결정된 재부팅 레벨로 재부팅 할 수 있다. 암호화 장치(10)에서 요구되는 연산에 필요한 양의 재부팅 만이 수행될 수 있으며, 불필요하게 많은 재부팅이 수행되지 않을 수 있다. 이에 따라, 재부팅에서 연산량이 감소될 수 있다. 나아가, 재부팅에서 연산량이 감소됨에 따라, 암호화 장치(10) 및 장치(1)의 동작 속도가 향상될 수 있다.
도 3은 본 개시의 예시적 실시 예에 따른 동형 암호화 기법에 따른 암호문들에 대한 곱셈 연산을 설명하기 위한 도면이다. 도 3은 도 2를 함께 참조하여 설명된다.
암호화 장치(10)는 제1 암호문(CT1) 및 제2 암호문(CT2)을 이용해 곱셈 연산을 수행할 수 있다. 이 때, 제1 암호문(CT1)은 제1 예비문(PT1), 제1 메시지(M1) 및 제1 에러(E1)를 포함할 수 있다. 제1 예비문(PT1)의 길이는 길이(L_p)에 대응될 수 있으며, 제1 암호문(CT1)의 길이는 모듈러스(q)에 대응될 수 있다. 마찬가지로, 제2 암호문(CT2)은 제2 예비문(PT2), 제2 메시지(M2) 및 제2 에러(E2)를 포함할 수 있다. 제2 예비문(PT2)의 길이는 길이(L_p)에 대응될 수 있으며, 제2 암호문(CT2)의 길이는 모듈러스(q)에 대응될 수 있다. 제1 암호문(CT1)과 제2 암호문(CT2)에는 곱셈 연산이 수행되어야 하기 때문에, 제1 암호문(CT1)의 길이와 제2 암호문(CT2)의 길이는 같을 수 있다. 다시 말해, 제1 암호문(CT1)의 레벨은 제2 암호문(CT2)의 레벨과 동일할 수 있다.
암호화 장치(10)는 제1 암호문(CT1)과 제2 암호문(CT2)을 이용해 곱셈 연산을 수행함으로써 제3 암호문(CT3)을 생성할 수 있다. 제3 암호문(CT3)은 제3 예비문(PT3), 제3 메시지(M3) 및 제3 에러(E3)를 포함할 수 있다. 제3 예비문(PT3)의 길이는 길이(L_p)보다 짧은 변형된 길이(L_p’)에 대응될 수 있으며, 제3 메시지(M3)는 제1 메시지(M1)와 제2 메시지(M2)의 곱에 대응될 수 있다. 제3 에러(E3)의 크기는 제1 에러(E1)의 크기 및 제2 에러(E2)의 크기에 비해 클 수 있다. 암호문의 에러가 과도하게 커질 경우, 암호문의 신뢰성이 저하될 우려가 있기 때문에, 암호화 장치(10)는 제3 암호문(CT3)에 포함된 제3 에러(E3)의 하위 비트(LSB) 일부를 제거함으로써 변경된 제3 에러(E3*)를 얻어낼 수 있다. 암호화 장치(10)는 제3 예비문(PT3), 제3 메시지(M3) 및 변경된 제3 에러(E3)를 포함하는 변경된 제3 암호문(CT3*)을 얻어낼 수 있다. 변경된 제3 암호문(CT3*)의 길이는 모듈러스(q’)에 대응될 수 있으며, 제3 암호문(CT3)의 모듈러스(q)보다 작을 수 있다.
이하의 도면들에서는, 설명의 편의를 위해, 암호문들에 대해 곱셈 연산을 포함하는 연산을 수행한 뒤 에러의 하위 비트(LSB) 일부를 제거하는 동작을 일컬어 MAR(Multiplication And Recryption) 동작이라 칭하기로 한다.
위와 같이, 제1 암호문(CT1)과 제2 암호문(CT2)에 곱셈 연산을 포함하는 연산이 수행될 경우, 최종 결과 암호문인 변경된 제3 암호문(CT3*)과 같이, 예비문의 길이가 감소될 수 있다. 따라서, 앞서 설명한 바와 같이, 요구되는 연산들이 수행되기 위해서는, 복수의 암호문들(CT)의 일부 또는 전부에는 재부팅이 요구된다.
도 4는 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다. 도 4는 도 2를 함께 참조하여 설명된다.
암호화 장치(10)는 연산 시나리오(SNR_A)를 기초로 복수의 암호문들(CT) 각각을 해당 암호문에 대해 결정된 재부팅 레벨로 재부팅 할 수 있다(S120). 예를 들어, 재부팅 파라미터 생성 회로(300)는 연산 시나리오(SNR_A)를 기초로 복수의 암호문들(CT)에 대응되는 복수의 재부팅 레벨들을 결정할 수 있고, 복수의 재부팅 레벨들을 포함하는 재부팅 파라미터(P_R)를 재부팅 회로(100)에 제공할 수 있다. 재부팅 회로(100)는 재부팅 파라미터(P_R)레 포함된 복수의 재부팅 레벨들을 기초로 복수의 암호문들(CT)을 재부팅할 수 있다. 예를 들어, 재부팅 회로(100)는, 복수의 암호문들(CT) 각각에 대해, 해당 암호문을 대응되는 재부팅 레벨로 재부팅할 수 있다.
암호화 장치(10)는 복수의 재부팅된 암호문들(CT_R)을 이용해 연산을 수행함으로써 연산 결과(RST)를 출력할 수 있다(S140). 예를 들어, 재부팅 회로(100)는 복수의 재부팅된 암호문들(CT_R)을 연산 회로(200)에 제공할 수 있고, 연산 회로(200)는 복수의 재부팅된 암호문들(CT_R)을 이용해 연산을 수행함으로써 연산 결과(RST)를 출력할 수 있다.
도 5는 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다. 도 5는 특히, 도 4의 S120 단계의 일 실시 예에 따른 순서도를 나타낼 수 있다. 도 5는 도 2를 함께 참조하여 설명된다.
암호화 장치(10)는 연산 시나리오(SNR_A)에 포함된 적어도 하나의 연산 각각에 대한 레벨 소모 양을 판단할 수 있다(S220). 예를 들어, 재부팅 파라미터 생성 회로(300)는, 연산 시나리오(SNR_A)에 포함된 복수의 암호문들(CT)에 대한 적어도 하나의 연산을 식별할 수 있고, 적어도 하나의 연산 각각에 대한 레벨 소모 양을 판단할 수 있다. 여기서, 레벨 소모 양이란, 해당 연산이 수행되는 것에 응답하여 제거되는 LSB의 길이에 대응되는 레벨의 양을 나타낼 수 있다.
암호화 장치(10)는, 연산 시나리오(SNR_A)를 기초로, 복수의 암호문들(CT) 각각에 대해, 해당 암호문이 거치게 되는 적어도 하나의 연산의 레벨 소모 양을 합산할 수 있고, 상기 합을 해당 암호문에 대응되는 재부팅 레벨로 결정할 수 있다(S240). 해당 암호문이 거치게 되는 적어도 하나의 연산이란, 해당 암호문의 최초 상태에서 연산 결과(RST)에 이르기까지 거치는 적어도 하나의 연산을 나타낸다.
암호화 장치(10)는, 복수의 암호문들(CT) 각각에 대해, 해당 암호문을 해당 암호문에 대해 결정된 재부팅 레벨로 재부팅할 수 있다(S260). 예를 들어, 재부팅 회로(100)는 복수의 암호문들(CT)을 각각에 대응되는 재부팅 레벨로 재부팅함으로써 복수의 재부팅된 암호문들(CT_R)을 생성할 수 있다.
도 6은 본 개시의 예시적 실시 예에 따른 연산 시나리오(SNR_A)를 나타낸다. 도 6에 개시된 연산 시나리오(SNR_A)의 구체적인 내용은 예시적 실시 예에 대한 설명의 편의를 위한 것일 뿐, 이에 제한되지는 않는다. 도 6은 도 2를 함께 참조하여 설명된다.
일 실시 예에서, 연산 시나리오(SNR_A)는 복수의 암호문들(CT)에 대해 수행되는 연산들, 연산들 각각에 이용되는 암호문들 및 연산들 각각에서 소모되는 레벨 양에 대한 정보를 포함할 수 있다.
예를 들어, 도 6의 연산 시나리오(SNR_A)에 따를 때, 복수의 암호문들(CT)은 제1 암호문(CT1), 제2 암호문(CT2) 및 제3 암호문(CT3)을 포함하며, 제1 암호문(CT1) 및 제2 암호문(CT2)에 대해 제1 연산(OP1)이 수행된 뒤, 제1 연산(OP1)의 결과인 중간 결과(RST_M)와 제3 암호문(CT3)에 대해 제2 연산(OP2)이 수행될 수 있다. 다시 말해, 제1 암호문(CT1)은 제1 연산(OP1) 및 제2 연산(OP2)을 거치게 되며, 제2 암호문(CT2) 역시 제1 연산(OP1) 및 제2 연산(OP2)을 거치게 되며, 제3 암호문(CT3)은 제2 연산(OP2) 만을 거치게 된다. 제1 연산(OP1)의 레벨 소모 양(Cons_L)은 ‘3’일 수 있으며, 제2 연산(OP2)의 레벨 소모 양(Cons_L)은 ‘5’일 수 있다. 여기서, 제1 연산(OP1) 및 제2 연산(OP2) 각각은 적어도 하나의 곱셈 연산을 포함할 수 있으며, 포함된 곱셈 연산으로 인해 제1 연산(OP1) 및 제2 연산(OP2) 각각을 통해 연산되는 암호문들의 레벨이 소모될 수 있다.
이와 같은 연산 시나리오(SNR_A)에 따라 복수의 암호문들(CT)에 대한 재부팅 레벨을 결정하는 실시 예는 이하의 도 7을 참조해 설명된다.
도 7은 본 개시의 예시적 실시 예에 따른 재부팅 및 연산 과정을 설명하기 위한 개념도를 나타낸다. 도 7은 특히, 도 5 및 도 6에 따른 재부팅 레벨 결정 실시 예를 설명하기 위한 개념도일 수 있다. 도 7은 도 2, 도 5 및 도 6을 함께 참조하여 설명된다.
S220 단계에서, 암호화 장치(10)는, 연산 시나리오(SNR_A)를 기초로, 제1 연산(OP1) 및 제2 연산(OP2) 각각에서 소모되는 레벨의 양이 ‘3’ 및 ‘5’라고 판단할 수 있다.
S240 단계에서, 암호화 장치(10)는, 제1 암호문(CT1)이 거치는 제1 연산(OP1) 및 제2 연산(OP2)에서 소모되는 레벨의 양의 합인 ‘8’을 제1 암호문(CT1)에 대응되는 재부팅 레벨로 결정할 수 있으며, 제2 암호문(CT2)이 거치는 제1 연산(OP1) 및 제2 연산(OP2)에서 소모되는 레벨의 양의 합인 ‘8’을 제2 암호문(CT2)에 대응되는 재부팅 레벨로 결정할 수 있으며, 제3 암호문(CT3)이 거치는 제2 연산(OP2)에서 소모되는 레벨의 양의 합인 ‘5’를 제3 암호문(CT3)에 대응되는 재부팅 레벨로 결정할 수 있다.
S260 단계에서, 암호화 장치(10)는, ‘6’의 레벨을 갖는 제1 암호문(CT1)을 재부팅함으로써 ‘8’의 레벨을 갖는 재부팅된 제1 암호문(CT1_R)을 생성할 수 있고, ‘0’의 레벨을 갖는 제2 암호문(CT2)을 재부팅함으로써 ‘8’의 레벨을 갖는 재부팅된 제2 암호문(CT2_R)을 생성할 수 있다. 한편, 제3 암호문(CT3)은 ‘5’의 레벨을 가지기 때문에, 제3 암호문(CT3)에 대해서는 재부팅이 수행되지 않을 수 있다. 물론 이에만 제한되는 것은 아니며, 실시 예에 따라, 제3 암호문(CT3)의 레벨이 5보다 작은 경우에는, 제3 암호문(CT3)에 대해서도 재부팅이 수행될 수 있다.
암호화 장치(10)는 재부팅된 제1 암호문(CT1_R) 및 재부팅된 제2 암호문(CT2_R)을 이용해 제1 연산 및 LSB 제거 동작을 포함하는 MAR1 동작을 수행함으로써 중간 결과(RST_M)를 얻어낼 수 있다. 암호화 장치(10)는 중간 결과(RST_M) 및 제3 암호문(CT3)을 이용해 제2 연산 및 LSB 제거 동작을 포함하는 MAR2 동작을 수행함으로써 연산 결과(RST)를 얻어낼 수 있다. 연산 결과(RST)의 레벨은 ‘0’일 수 있다.
연산 결과의 레벨이 ‘0’보다 상당히 크게 나타나는 비교 예에 따른 암호화 장치는 재부팅 동작을 불필요하게 많이 진행하는 것이다. 반면, 본 개시의 예시적 실시 예에 따른 암호화 장치(10)는 재부팅 동작을 요구되는 범위에서 최소한으로 수행할 수 있다. 이에 따라, 본 개시의 예시적 실시 예에 따른 암호화 장치(10)에서, 재부팅 동작에서 연산량이 감소할 수 있으며, 나아가 암호화 장치(10)의 동작 속도가 향상될 수 있다.
도 8은 본 개시의 예시적 실시 예에 따른 파라미터 맵핑 테이블(PMT)을 나타낸다. 파라미터 맵핑 테이블(PMT)은 도 2의 파라미터 맵핑 테이블(PMT)에 대응될 수 있다. 도 8은 도 2를 함께 참조하여 설명된다.
파라미터 맵핑 테이블(PMT)은 복수의 연산 조합들에 대응되는 복수의 재부팅 파라미터들을 포함할 수 있다. 예를 들어, 파라미터 맵핑 테이블(PMT)은 제1 연산 조합(CO_1)에 대응되는 제1 재부팅 파라미터(P_R_1), 제2 연산 조합(CO_2)에 대응되는 제2 재부팅 파라미터(P_R_2) 및 제N 연산 조합(CO_N)에 대응되는 제N 재부팅 파라미터(P_R_N)를 포함할 수 있다(단, N은 2 이상의 자연수).
복수의 재부팅 파라미터들 각각은 복수의 암호문들(CT)에 대한 복수의 재부팅 레벨들을 포함할 수 있다. 예를 들어, 제1 재부팅 파라미터(P_R_1)는 제1 암호문에 대한 재부팅 레벨(RL_1)로서 레벨(L11)의 값을 포함하고, 제2 암호문에 대한 재부팅 레벨(RL_2)로서 레벨(L21)의 값을 포함하고, 제3 암호문에 대한 재부팅 레벨(RL_3)로서 레벨(L31)의 값을 포함할 수 있다. 마찬가지로, 예를 들어, 제2 재부팅 파라미터(P_R_2)는 제1 암호문에 대한 재부팅 레벨(RL_1)로서 레벨(L12)의 값을 포함하고, 제2 암호문에 대한 재부팅 레벨(RL_2)로서 레벨(L22)의 값을 포함하고, 제3 암호문에 대한 재부팅 레벨(RL_3)로서 레벨(L32)의 값을 포함할 수 있다.
한편, 파라미터 맵핑 테이블(PMT)은 제k 연산 조합(CO_k)(단, k는 자연수)에 대응되는 제k 재부팅 파라미터(P_R_k)를 포함할 수 있다. 도 6 및 도 7을 참조한 실시 예를 참조할 때, 제k 연산 조합(CO_k)이 제1 연산(OP1) 이후 수행되는 제2 연산(OP2)을 나타낼 때, 제k 재부팅 파라미터(P_R_k)는 제1 암호문에 대한 재부팅 레벨(RL_1)로서 ‘8’의 값을 포함하고, 제2 암호문에 대한 재부팅 레벨(RL_2)로서 ‘8’의 값을 포함하고, 제3 암호문에 대한 재부팅 레벨(RL_3)로서 ‘5’의 값을 포함할 수 있다.
일 실시 예에서, 암호화 장치(10)는, 연산 시나리오(SNR_A)에 포함된 연산 조합을 파라미터 맵핑 테이블(PMT)과 비교할 수 있다. 예를 들어, 재부팅 파라미터 생성 회로(300)는, 파라미터 맵핑 테이블(PMT)에 포함된 복수의 연산 조합들 중 연산 시나리오(SNR_A)에 포함된 연산 조합을 선택할 수 있고, 파라미터 맵핑 테이블(PMT)에 포함된 복수의 재부팅 파라미터들 중 선택된 연산 조합에 대응되는 재부팅 파라미터를 선택할 수 있다. 재부팅 파라미터 생성 회로(300)는, 선택된 재부팅 파라미터를 재부팅 회로(100)에 제공할 수 있다.
일 실시 예에서, 파라미터 맵핑 테이블(PMT)은, 도 5 내지 도 7 등을 참조해 설명된 실시 예에 따라 복수의 암호문들에 대한 복수의 재부팅 레벨들이 결정되도록 사전 결정되어 메모리(400)에 저장된 데이터일 수 있다.
도 7은 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다. 도 9는 특히, 도 5의 S240 단계에서 합산이 최대 재부팅 레벨을 초과한 경우의 암호문 연산 방법의 실시 예를 도시하는 것일 수 있다. 도 9는 도 2 및 도 5를 함께 참조하여 설명된다.
암호화 장치(10)는, 복수의 암호문들(CT) 중 특정 암호문에 대한 S240 단계에서, 해당 암호문이 거치게 되는 적어도 하나의 연산의 레벨 소모 양의 합산이 최대 재부팅 레벨을 초과하는 것에 응답하여, 해당 암호문에 대한 합을 복수의 레벨들로 분할할 수 있다(S320). 이 때, 암호화 장치(10)는, 복수의 레벨들의 개수가 상기 합을 최대 재부팅 레벨로 나누었을 때 몫에 ‘1’을 더한 수가 되도록, 상기 합을 복수의 레벨들로 분할할 수 있다. 예를 들어, 합이 ‘12’이고, 최대 재부팅 레벨이 ‘10’인 경우, 암호화 장치(10)는 ‘12’를 (10, 2), (9,3), (8,4), (7,5), (6,6), (5,7), (4, 8), (3, 9), (2, 10)과 같이 2개의 레벨들로 분할할 수 있다. 또한 예를 들어, 합이 ‘23’이고, 최대 재부팅 레벨이 ‘10’인 경우, 암호화 장치(10)는 ‘23’을 (10, 10, 3) 등과 같이 3개의 레벨들로 분할할 수 있다.
한편 일 실시 예에서, S320 단계에서, 암호화 장치(10)는 상기 합에 ‘1’ 내지는 ‘3’ 정도의 크지 않은 자연수를 더한 값을 복수의 레벨들로 분할할 수 있다. 이는, 암호화 장치(10)의 환경, 수행되는 데이터의 종류 또는 수행되는 연산의 종류 등에 따라 연산에 대한 예상 레벨 소모 양이 변화될 수 있고, 연산 시나리오(SNR_A)가 도중에 변경될 가능성에 대비한 것이다.
암호화 장치(10)는, 분할된 복수의 레벨들에 대응되는 복수의 재부팅들을 해당 암호문이 거치게 되는 적어도 하나의 연산 사이에 스케줄링 할 수 있다(S340). 예를 들어, 재부팅 파라미터 생성 회로(300)는 분할된 복수의 레벨들에 대응되는 복수의 재부팅들을 해당 암호문이 거치게 되는 적어도 하나의 연산 사이에 스케줄링 할 수 있다.
암호화 장치(10)는, S340 단계에서의 재부팅 스케줄링에 따라, 복수의 재부팅들 및 적어도 하나의 연산을 수행할 수 있다(S360).
도 9의 순서도는 이하의 도 10 내지 도 11b를 참조하여 보다 자세히 설명된다.
도 10은 본 개시의 예시적 실시 예에 따른 연산 시나리오(SNR_A)를 나타낸다. 도 10에 개시된 연산 시나리오(SNR_A)의 구체적인 내용은 예시적 실시 예에 대한 설명의 편의를 위한 것일 뿐, 이에 제한되지는 않는다. 도 10은 도 2를 함께 참조하여 설명된다.
일 실시 예에서, 연산 시나리오(SNR_A)는 복수의 암호문들(CT)에 대해 수행되는 연산들, 연산들 각각에 이용되는 암호문들 및 연산들 각각에서 소모되는 레벨 양에 대한 정보를 포함할 수 있다.
예를 들어, 도 10의 연산 시나리오(SNR_A)에 따를 때, 복수의 암호문들(CT)은 제1 암호문(CT1), 제2 암호문(CT2) 및 제3 암호문(CT3)을 포함하며, 제1 암호문(CT1) 및 제2 암호문(CT2)에 대해 제1 연산(OP1)이 수행된 뒤, 제1 연산(OP1)의 결과인 중간 결과(RST_M)와 제3 암호문(CT3)에 대해 제2 연산(OP2)이 수행될 수 있다. 다시 말해, 제1 암호문(CT1)은 제1 연산(OP1) 및 제2 연산(OP2)을 거치게 되며, 제2 암호문(CT2) 역시 제1 연산(OP1) 및 제2 연산(OP2)을 거치게 되며, 제3 암호문(CT3)은 제2 연산(OP2) 만을 거치게 된다. 제1 연산(OP1)의 레벨 소모 양(Cons_L)은 ‘7’일 수 있으며, 제2 연산(OP2)의 레벨 소모 양(Cons_L)은 ‘5’일 수 있다.
또한, 최대 재부팅 레벨이 ‘10’이라는 가정적 배경 하에, 이와 같은 연산 시나리오(SNR_A)에 따라 복수의 암호문들(CT)에 대한 재부팅 레벨을 결정하는 실시 예는 이하의 도 11a 및 도 11b를 참조해 설명된다.
도 11a 및 도 11b는 본 개시의 예시적 실시 예에 따른 재부팅 및 연산 과정을 설명하기 위한 개념도를 나타낸다. 도 11a 및 도 11b는 특히, 도 9 및 도 10에 따른 재부팅 레벨 결정 실시 예를 설명하기 위한 개념도일 수 있다. 도 11a 및 도 11b는 도 2, 도 9 및 도 10을 함께 참조하여 설명된다.
도 11a를 먼저 참고하면, S320 단계에서, 제1 암호문(CT1)이 거치는 제1 연산(OP1) 및 제2 연산(OP2)에서 소모되는 레벨의 양이 ‘12’로서 최대 재부팅 레벨인 ‘10’을 초과하는 것에 응답하여, 암호화 장치(10)는 ‘12’를 2개의 레벨들로 분할할 수 있다. 예를 들어, 암호화 장치(10)는 ‘12’를 ‘10’과 ‘2’로 분할할 수 있다. 마찬가지로, 암호화 장치(10)는 ‘12’를 ‘10’과 ‘2’로 분할할 수 있다.
S340 단계에서, 암호화 장치(10)는, 제1 암호문(CT1)에 대해, ‘10’에 대응되는 재부팅, 제1 연산(OP1), ‘2’에 대응되는 재부팅 및 제2 연산(OP2)이 순차적으로 수행되도록 재부팅 동작 및 연산을 스케줄링 할 수 있다. 참고로, 최초로 수행되는 재부팅 동작에서 ‘10’에 대응되는 재부팅은, 레벨이 ‘10’이 되도록 재부팅하는 것을 의미할 수 있고, 나중에 수행되는 재부팅 동작에서 ‘2’에 대응되는 재부팅은, 레벨을 ‘2’만큼 증가시키는 재부팅 동작을 의미할 수 있다. 마찬가지로, 암호화 장치(10)는, 제2 암호문(CT2)에 대해서도, ‘10’에 대응되는 재부팅, 제1 연산(OP1), ‘2’에 대응되는 재부팅 및 제2 연산(OP2)이 순차적으로 수행되도록 재부팅 동작 및 연산을 스케줄링 할 수 있다.
S360 단계에서, 암호화 장치(10)는, 스케줄링에 따라 재부팅 동작 및 연산을 수행할 수 있다. 예를 들어, 연산 회로(200)는, 재부팅된 제1 암호문(CT1_R) 및 재부팅된 제2 암호문(CT2_R)을 이용해 MAR1 동작을 수행함으로써 ‘3’의 레벨을 갖는 중간 결과(RST_M)를 얻어낼 수 있다. 연산 회로(200)는 중간 결과(RST_M)를 재부팅 회로(100)에 제공할 수 있고, 재부팅 회로(100)는 ‘3’의 레벨을 갖는 중간 결과(RST_M)의 레벨을 ‘2’만큼 증가시키는 재부팅을 수행하여 재부팅된 중간 결과(RST_M_R)를 얻어낼 수 있다. 결과적으로, 재부팅된 중간 결과(RST_M_R)의 레벨은 ‘5’일 수 있다.
이후, 암호화 장치(10)는, 재부팅된 중간 결과(RST_M_R) 및 제3 암호문(CT3)을 이용해 MAR2 동작을 수행함으로써 ‘0’의 레벨을 갖는 연산 결과(RST)를 얻어낼 수 있다.
다음으로, 도 11b를 참고하면, S320 단계에서, 제1 암호문(CT1)이 거치는 제1 연산(OP1) 및 제2 연산(OP2)에서 소모되는 레벨의 양이 ‘12’로서 최대 재부팅 레벨인 ‘10’을 초과하는 것에 응답하여, 암호화 장치(10)는 ‘12’를 2개의 레벨들로 분할할 수 있다. 예를 들어, 암호화 장치(10)는 ‘12’를 ‘7’과 ‘5’로 분할할 수 있다. 마찬가지로, 암호화 장치(10)는 ‘12’를 ‘7’과 ‘5’로 분할할 수 있다.
이후의 S340 단계 및 S360 단계는, 도 11a를 참조한 설명과 실질적으로 동일하게 수행될 수 있다.
즉, 도 11a를 참조한 실시 예에서는, 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양의 합을 복수의 레벨들로 분할함에 있어서, 암호화 장치(10)는 우선적으로 최대 재부팅 레벨들을 갖는 레벨들로 분할하고, 이후 마지막에 남는 값을 나머지 레벨에 포함시킬 수 있다.
도 11b를 참조한 실시 예에서는, 도 11a와 달리, 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양의 합을 복수의 레벨들로 분할함에 있어서, 암호화 장치(10)는 제1 연산(OP1)에서 소모되는 레벨 양 만큼 레벨을 먼저 할당하고, 나머지 값을 나머지 레벨에 포함시킬 수 있다.
도 12는 본 개시의 예시적 실시 예에 따른 암호화 장치의 암호문 연산 방법의 순서도를 나타낸다. 도 12는 도 2를 함께 참조하여 설명된다.
암호화 장치(10)는, 연산 시나리오(SNR_A)를 기초로, 복수의 암호문들(CT)에 대해 수행되는 연산들 및 수행되는 연산들 각각에 대한 레벨 소모 양을 판단할 수 있다(S420).
암호화 장치(10)는, S420 단계에서 판단된 레벨 소모 양들을 기초로, 연산 결과(RST)의 레벨이 최소화 되도록 복수의 암호문들(CT)에 대한 복수의 재부팅 레벨들을 결정할 수 있다(S440). 예를 들어, 재부팅 파라미터 생성 회로(300)는 연산 결과(RST)의 레벨이 최소화 되도록 복수의 재부팅 레벨들을 최적화할 수 있다. 일 실시 예에서, 재부팅 파라미터 생성 회로(300)는 연산 결과(RST)의 레벨이 ‘0’이 되도록 복수의 재부팅 레벨들을 생성할 수 있다.
암호화 장치(10)는, 복수의 암호문들(CT) 각각에 대해, 해당 암호문을 해당 암호문에 대해 결정된 재부팅 레벨로 재부팅할 수 있다(S460). 예를 들어, 재부팅 회로(100)는 복수의 암호문들(CT)을 각각에 대응되는 재부팅 레벨로 재부팅함으로써 복수의 재부팅된 암호문들(CT_R)을 생성할 수 있다.
도 13은 본 개시의 예시적 실시 예에 따른 SSD 시스템(1000)을 나타낸다.
SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함할 수 있다. SSD(1200)는 신호 커넥터(signal connector)를 통해 호스트(1100)와 신호를 주고 받을 수 있으며, 전원 커넥터(power connector)를 통해 전원을 입력 받을 수 있다. SSD(1200)는 SSD 컨트롤러(1210), 보조 전원 장치(1220) 및 복수의 플래시 메모리 장치들(1230, 1240, 1250)을 포함할 수 있다.
이 때, SSD 컨트롤러(1210)는 암호화 장치(1212)를 포함할 수 있는데, 암호화 장치(1212)는 앞선 도 1 내지 도 12에 도시된 실시 예들을 이용하여 구현될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 동형 암호화 장치로서,
    복수의 암호문들 사이의 연산 스케줄에 대한 정보를 포함하는 연산 시나리오를 기초로 상기 복수의 암호문들 각각에 대한 재부팅 레벨(recryption level)을 포함하는 재부팅 파라미터를 생성하도록 구성되는 재부팅 파라미터 생성 회로;
    상기 재부팅 파라미터를 기초로, 상기 복수의 암호문들 각각을 대응되는 재부팅 레벨로 재부팅(recrypt)함으로써 복수의 재부팅된 암호문들을 생성하도록 구성되는 재부팅 회로; 및
    상기 연산 시나리오에 따라, 상기 복수의 재부팅된 암호문들을 이용해 연산을 수행함으로써 연산 결과를 출력하도록 구성되는 연산 회로를 포함하는 동형 암호화 장치.
  2. 제1항에 있어서,
    상기 복수의 암호문들에 대응되는 복수의 재부팅 레벨들 중 적어도 두 개는 서로 다른 레벨을 갖는 것을 특징으로 하는 동형 암호화 장치.
  3. 제1항에 있어서,
    상기 재부팅 파라미터 생성 회로는,
    상기 연산 시나리오에 포함된 적어도 하나의 연산의 레벨 소모 양을 판단하고, 상기 판단된 적어도 하나의 연산의 레벨 소모 양을 기초로 상기 재부팅 파라미터를 생성하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  4. 제3항에 있어서,
    상기 재부팅 파라미터 생성 회로는,
    상기 복수의 암호문들 각각에 대해, 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양의 합을 상기 해당 암호문의 재부팅 레벨로서 결정하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  5. 제4항에 있어서,
    상기 재부팅 파라미터 생성 회로는,
    상기 해당 암호문이 거치는 상기 적어도 하나의 연산의 레벨 소모 양의 합이 최대 재부팅 레벨을 초과하는 것에 응답하여, 상기 합을 복수의 레벨들로 분할하되, 상기 복수의 레벨들 각각이 상기 최대 재부팅 레벨 이하가 되도록 하고, 상기 분할된 복수의 레벨들에 대응되는 복수의 재부팅들을 상기 해당 암호문이 거치는 상기 적어도 하나의 연산 사이에 스케줄링하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  6. 제5항에 있어서,
    상기 복수의 레벨들의 개수는,
    상기 합을 상기 최대 재부팅 레벨로 나눈 몫에 ‘1’을 더한 값에 대응되는 것을 특징으로 하는 동형 암호화 장치.
  7. 제5항에 있어서,
    상기 연산 회로는,
    상기 해당 암호문이 거치는 상기 적어도 하나의 연산의 레벨 소모 양의 합이 최대 재부팅 레벨을 초과하는 것에 응답하여, 상기 연산 시나리오 이행 도중 중간 결과 값을 상기 재부팅 회로에 제공하도록 구성되고,
    상기 재부팅 회로는,
    상기 연산 시나리오 이행 도중 상기 중간 결과 값을 재부팅하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  8. 제3항에 있어서,
    상기 재부팅 파라미터 생성 회로는,
    상기 판단된 적어도 하나의 연산의 레벨 소모 양을 기초로, 상기 연산 결과의 레벨이 최소화 되도록 상기 재부팅 파라미터를 생성하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  9. 제8항에 있어서,
    상기 재부팅 파라미터 생성 회로는,
    상기 연산 결과의 레벨이 ‘0’이 되도록 상기 재부팅 파라미터를 생성하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  10. 제1항에 있어서,
    상기 동형 암호화 장치는,
    복수의 연산 조합들에 대응되는 복수의 재부팅 파라미터를 포함하는 파라미터 맵핑 테이블을 저장하는 메모리를 더 포함하고,
    상기 재부팅 파라미터 생성 회로는,
    상기 파라미터 맵핑 테이블을 상기 메모리로부터 수신하고, 상기 파라미터 맵핑 테이블과 상기 연산 시나리오에 포함된 연산 조합을 비교함으로써 상기 연산 시나리오에 포함된 상기 연산 조합에 대응되는 재부팅 파라미터를 출력하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  11. 동형 암호화 장치의 암호문 연산 방법으로서,
    복수의 암호문들에 대한 연산 스케줄에 대한 정보를 포함하는 연산 시나리오를 기초로, 상기 복수의 암호문들에 대한 복수의 재부팅 레벨들을 결정하는 단계;
    상기 복수의 암호문들 각각을, 상기 복수의 재부팅 레벨들 중 대응되는 재부팅 레벨로 재부팅하는 단계; 및
    복수의 재부팅된 암호문들을 이용해 적어도 하나의 곱셈 연산을 포함하는 연산을 수행함으로써 연산 결과를 출력하는 단계를 포함하되,
    상기 복수의 재부팅 레벨들 중 적어도 두 개는 서로 다른 레벨을 갖는 것을 특징으로 하는 동형 암호화 장치의 암호문 연산 방법.
  12. 제11항에 있어서,
    상기 복수의 재부팅 레벨들을 결정하는 단계는,
    복수의 연산 조합들에 대응되는 복수의 재부팅 파라미터를 포함하는 파라미터 맵핑 테이블을 획득하는 단계; 및
    상기 맵핑 테이블과 상기 연산 시나리오에 포함된 연산 조합을 비교하는 것에 기초하여, 상기 연산 조합에 대응되는 재부팅 파라미터에 따라 상기 복수의 재부팅 레벨들을 결정하는 단계를 포함하는 것을 특징으로 하는 동형 암호화 장치의 암호문 연산 방법.
  13. 제11항에 있어서,
    상기 복수의 재부팅 레벨들을 결정하는 단계는,
    상기 연산 시나리오에 포함된 적어도 하나의 연산 각각에 대한 레벨 소모 양을 판단하는 단계; 및
    상기 복수의 암호문들 각각에 대해, 상기 판단된 적어도 하나의 연산의 레벨 소모 양을 기초로, 대응되는 재부팅 레벨을 결정하는 단계를 포함하는 것을 특징으로 하는 동형 암호화 장치의 암호문 연산 방법.
  14. 제13항에 있어서,
    상기 대응되는 재부팅 레벨을 결정하는 단계는,
    상기 복수의 암호문들 중 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양의 합을 상기 해당 암호문에 대응되는 재부팅 레벨로 결정하는 단계를 포함하는 것을 특징으로 하는 동형 암호화 장치.
  15. 제13항에 있어서,
    상기 대응되는 재부팅 레벨을 결정하는 단계는,
    상기 복수의 암호문들 중 해당 암호문이 거치는 적어도 하나의 연산의 레벨 소모 양의 합이 최대 재부팅 레벨 이하인 것에 응답하여, 상기 합을 상기 해당 암호문의 재부팅 레벨로 결정하는 단계; 및
    상기 합이 상기 최대 재부팅 레벨을 초과하는 것에 응답하여, 상기 합을 복수의 레벨들로 분할함으로써 상기 분할된 복수의 레벨들에 대응되는 복수의 재부팅들을 상기 해당 암호문이 거치는 적어도 하나의 연산 사이에 스케줄링하는 단계를 포함하는 것을 특징으로 하는 동형 암호화 장치의 암호문 연산 방법.
  16. 제11항에 있어서,
    상기 복수의 재부팅 레벨들을 결정하는 단계는,
    상기 연산 시나리오에 포함된 적어도 하나의 연산 각각에 대한 레벨 소모 양을 기초로, 상기 연산 결과의 레벨이 최소화되도록 최적화된 레벨들을 상기 복수의 재부팅 레벨들로 결정하는 단계를 포함하는 것을 특징으로 하는 동형 암호화 장치의 암호문 연산 방법.
  17. 제11항에 있어서,
    상기 복수의 재부팅 레벨들을 결정하는 단계는,
    상기 동형 암호화 장치 내에 저장된 복수의 연산 조합들에 대응되는 복수의 재부팅 파라미터들을 포함하는 파라미터 맵핑 테이블과 상기 연산 시나리오에 포함된 연산 조합을 비교함으로써 상기 연산 시나리오에 포함된 상기 연산 조합에 대응되는 재부팅 파라미터에 포함된 레벨들을 상기 복수의 재부팅 레벨들로 결정하는 단계를 포함하는 것을 특징으로 하는 동형 암호화 장치의 암호문 연산 방법.
  18. 동형 암호화 장치로서,
    복수의 연산 조합들에 대응되는 복수의 재부팅 파라미터들을 포함하는 파라미터 맵핑 테이블을 저장하는 메모리;
    연산 시나리오에 포함된 복수의 암호문들에 대한 연산 조합을 상기 메모리로부터 제공되는 상기 파라미터 맵핑 테이블과 비교하는 것에 기초하여, 상기 복수의 암호문들에 대한 복수의 재부팅 레벨들을 포함하는 재부팅 파라미터를 생성하도록 구성되는 재부팅 파라미터 생성 회로;
    상기 재부팅 파라미터를 기초로, 상기 복수의 암호문들 각각을 상기 복수의 재부팅 레벨들 중 대응되는 재부팅 레벨로 재부팅함으로써 복수의 재부팅된 암호문들을 생성하도록 구성되는 재부팅 회로; 및
    상기 복수의 재부팅된 암호문들을 상기 복수의 암호문들에 대한 상기 연산 조합에 따라 연산함으로써 연산 결과를 출력하도록 구성되는 연산 회로를 포함하고,
    상기 파라미터 맵핑 테이블에 포함된 상기 복수의 재부팅 파라미터들 각각은,
    상기 연산 결과의 레벨이, 상기 복수의 연산 조합들 중 대응되는 연산 조합에 따라, 최소화 되도록 최적화된 레벨들에 대한 정보를 포함하는 것을 특징으로 하는 동형 암호화 장치.
  19. 제18항에 있어서,
    상기 재부팅 파라미터 생성 회로는,
    상기 연산 시나리오를 기초로 상기 연산 결과의 레벨이 ‘0’이 되도록 상기 재부팅 파라미터를 생성하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
  20. 제18항에 있어서,
    상기 재부팅 파라미터 생성 회로는,
    상기 연산 시나리오에 포함된 적어도 하나의 연산의 레벨 소모 양을 판단하고, 상기 판단된 적어도 하나의 연산의 레벨 소모 양을 기초로 상기 복수의 재부팅 레벨들을 결정하도록 구성되는 것을 특징으로 하는 동형 암호화 장치.
KR1020200065187A 2020-05-29 2020-05-29 동형 암호화 장치 및 그것의 암호문 연산 방법 KR20210147645A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200065187A KR20210147645A (ko) 2020-05-29 2020-05-29 동형 암호화 장치 및 그것의 암호문 연산 방법
US17/126,935 US11483128B2 (en) 2020-05-29 2020-12-18 Homomorphic encryption device and ciphertext arithmetic method thereof
EP20217765.5A EP3917067A1 (en) 2020-05-29 2020-12-30 Homomorphic encryption device and ciphertext arithmetic method thereof
CN202110143171.XA CN113810169A (zh) 2020-05-29 2021-02-02 同态加密装置及其密文算术方法
SG10202101159RA SG10202101159RA (en) 2020-05-29 2021-02-03 Homomorphic encryption device and ciphertext arithmetic method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200065187A KR20210147645A (ko) 2020-05-29 2020-05-29 동형 암호화 장치 및 그것의 암호문 연산 방법

Publications (1)

Publication Number Publication Date
KR20210147645A true KR20210147645A (ko) 2021-12-07

Family

ID=74004016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200065187A KR20210147645A (ko) 2020-05-29 2020-05-29 동형 암호화 장치 및 그것의 암호문 연산 방법

Country Status (5)

Country Link
US (1) US11483128B2 (ko)
EP (1) EP3917067A1 (ko)
KR (1) KR20210147645A (ko)
CN (1) CN113810169A (ko)
SG (1) SG10202101159RA (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11515996B2 (en) 2021-02-01 2022-11-29 Seagate Technology Llc Enforcing access structures in fully homomorphic encryption
US11522672B2 (en) * 2021-02-01 2022-12-06 Seagate Technology Llc Fully homomorphic encryption from error canceling set systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9240883B2 (en) 2008-09-04 2016-01-19 Intel Corporation Multi-key cryptography for encrypting file system acceleration
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
US9083526B2 (en) 2011-04-29 2015-07-14 International Business Machines Corporation Fully homomorphic encryption
KR101449239B1 (ko) 2013-01-24 2014-10-15 서울대학교산학협력단 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
KR20150123823A (ko) 2013-03-04 2015-11-04 톰슨 라이센싱 마스크들을 사용한 프라이버시-보존 리지 회귀
US10079674B2 (en) * 2015-02-26 2018-09-18 New York University Systems and methods for privacy-preserving functional IP verification utilizing fully homomorphic encryption
KR101861089B1 (ko) 2016-07-28 2018-05-25 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
CN106452723B (zh) 2016-12-13 2017-05-31 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法
KR101919940B1 (ko) 2017-02-08 2018-11-19 서울대학교산학협력단 완전 동형 암호 방법에 의한 동적 데이터의 처리 방법
US10541805B2 (en) 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
KR102040106B1 (ko) 2018-10-29 2019-11-27 주식회사 크립토랩 실수 평문에 대한 동형 암호화 방법
KR101965628B1 (ko) 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들

Also Published As

Publication number Publication date
EP3917067A1 (en) 2021-12-01
US11483128B2 (en) 2022-10-25
SG10202101159RA (en) 2021-12-30
US20210376996A1 (en) 2021-12-02
CN113810169A (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
CN105892991B (zh) 使用查找表的模乘运算
US9875377B2 (en) Encryption device of a substitution-box type, and corresponding encryption method and computer program product
CN109791517B (zh) 保护并行乘法运算免受外部监测攻击
US8681976B2 (en) System and method for device dependent and rate limited key generation
US20030123656A1 (en) Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method
EP3839788A1 (en) Bit-length parameterizable cipher
JP2010277085A (ja) Rsaアルゴリズムにおける素数生成の保護
CN113169860A (zh) 用于对密文进行非多项式计算的装置和方法
US11496295B2 (en) Non-transitory computer-readable medium storing program code, decryption device, and communication system including encryption device and decryption device
CN108108614B (zh) 安全处理器以及安全处理器的操作方法
KR20200087061A (ko) 근사 암호화된 암호문에 대한 재부팅 연산을 수행하는 장치 및 방법
KR20210147645A (ko) 동형 암호화 장치 및 그것의 암호문 연산 방법
EP3127271B1 (en) Obfuscated performance of a predetermined function
WO2019043921A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
US11799628B2 (en) Apparatus and method for processing non-polynomial operation on encrypted messages
US10855443B2 (en) Protecting polynomial hash functions from external monitoring attacks
EP3644546B1 (en) Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption
CN114124364A (zh) 密钥安全处理方法、装置、设备及计算机可读存储介质
CN109598105B (zh) 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质
US8774402B2 (en) Encryption/decryption apparatus and method using AES rijndael algorithm
CN110034918B (zh) 一种sm4加速方法和装置
CN110611568A (zh) 基于多种加解密算法的动态加解密方法、装置、及设备
CN107040370B (zh) 一种用于产生实施模幂运算的代码的装置
EP3975471A1 (en) Homomorphic encryption device and operating method thereof
CN114205104A (zh) 针对功率和电磁侧信道攻击的对认证标签计算的保护

Legal Events

Date Code Title Description
A201 Request for examination