KR20230136424A - 양자 컴퓨팅 기술을 적용한 aes 암복호화 시스템 및 그 방법 - Google Patents

양자 컴퓨팅 기술을 적용한 aes 암복호화 시스템 및 그 방법 Download PDF

Info

Publication number
KR20230136424A
KR20230136424A KR1020220034152A KR20220034152A KR20230136424A KR 20230136424 A KR20230136424 A KR 20230136424A KR 1020220034152 A KR1020220034152 A KR 1020220034152A KR 20220034152 A KR20220034152 A KR 20220034152A KR 20230136424 A KR20230136424 A KR 20230136424A
Authority
KR
South Korea
Prior art keywords
random number
encryption
computing technology
quantum computing
quantum
Prior art date
Application number
KR1020220034152A
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 KR1020220034152A priority Critical patent/KR20230136424A/ko
Publication of KR20230136424A publication Critical patent/KR20230136424A/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/40Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법에 관한 것으로서, Shift row 암호화 과정에서 특정 패턴이 없는 Quantum Random Walk를 이용하여 난수를 생성한 후, 생성한 난수에 따라 row를 이동시킴으로써, 복호화 방법을 예측하지 못하게 하여 보안성을 강화시킬 수 있는 기술에 관한 것이다.

Description

양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법 {AES encryption and decryption system and method using quantum computing technology}
본 발명은 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 각 데이터 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(shift row) 수행함에 있어서, 양자 컴퓨팅 기술을 적용하여 생성한 난수에 따라 행을 이동시킴으로써 복호화 방법을 예측하지 못하게 하여 암호화 성능을 향상시킬 수 있는 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법에 관한 것이다.
사이버 보안 위협이 증대됨에 개인 정보나 회사 정보 등의 민감한 정보들이 탈취 및 변조되기도 한다. 대부분의 정보들은 다양한 형식의 파일들(텍스트 파일, 이미지 파일 등)로 관리되는데, 이러한 정보들이 탈취 및 변조되는 것을 방지하기 위해 다양한 파일 암호화 및 복호화 방법이 제안되고 있다.
이 중 무작위 대입 공격에 강한 AES(Advanced Encryption Standard) 알고리즘은 대칭키 블록암호의 종류로서, DES(Data Encryption Standard) 알고리즘이 더 이상 안전하지 않게 되자 이를 대체하기 위해 NIST(미국 연방표준, 기술국)National Institute of Standards and Technology, DOC)가 공개적으로 투명한 연구를 진행하며 선정한 높은 안정성과 빠른 속도를 가진 암호 알고리즘이다.
이러한 AES 알고리즘은 대칭키 알고리즘으로, 파일에 대한 액세스 이벤트가 탐지되면 파일 암호화 시스템이 파일을 암호화하고, 암호화에 사용되는 key를 통해 복호화하고 파일에 액세스한다. 파일 복원 시스템은 재해나 해킹으로 파일이 손상되더라도 파일을 복구하며, 파일이 유출되더라도 암호화 시스템을 통해 내부 정보가 유출되는 2차 피해를 방지할 수 있다.
이와 관련해서, 국내 등록 특허 제10-0949538호("AES 라인달 알고리즘을 이용하는 암호화 및 복호화 장치 및 그 방법")에서는 AES 라인달 알고리즘을 이용하여 암호화 또는 복호화를 더욱 빠르게 수행하기 위한 기술에 관한 것이다.
국내등록특허 제10-0949538호(등록일자 2010.03.18.)
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 AES 암호화 과정에서 각 데이터 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(shift row) 수행함에 있어서, 양자 컴퓨팅 기술을 적용하여 생성한 난수에 따라 행을 이동시킴으로써 복호화 추정을 어렵게 하여 암호화 성능을 향상시킬 수 있는 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법에 관한 것이다.
본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템에 있어서, 복수의 라운드를 반복 수행하는 AES(Advanced Encryption Standard) 알고리즘을 이용하여, 입력 데이터의 암호화를 수행하는 암호화부(100), 상기 암호화부(100)에서 각 데이터 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(shift row) 연산에 적용할 난수(random number)들을 생성하는 난수 생성부(200) 및 상기 난수 생성부(200)에서 생성한 난수들을 데이터베이스화하여 저장하는 난수 저장부(300)를 포함하는 것이 바람직하다.
더 나아가, 상기 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템은 복수의 라운드를 반복 수행하는 AES 알고리즘을 이용하여, 입력 데이터의 복호화를 수행하는 복호화부(400)를 더 포함하되, 상기 복호화부(400)는 상기 난수 저장부(300)에 저장되어 있는 난수들을 이용하여 각 데이터 구성 요소의 행렬에서 행을 역이동시키는 역 쉬프트 로우(Inv_shift row) 연산에 적용하는 것이 바람직하다.
더 나아가, 상기 난수 생성부(200)는 양자 컴퓨팅 기술인 양자 랜덤 워크(Quantum Random Walk) 알고리즘을 이용하는 것이 바람직하다.
더 나아가, 상기 난수 생성부(200)는 동전(coin) 연산 모듈과 이동(shift) 연산 모듈에 의해 동작이 수행되며, 상기 동전 연산 모듈과 이동 연산 모듈의 반복 동작을 통해 워커(walker) 위치에 따른 Qubit(양자 비트, quantum bit)의 측정 확률을 산출하면서 난수를 생성하는 것이 바람직하다.
더 나아가, 상기 동전 연산 모듈은 Hadamard 게이트를 이용하여 Unitary 변환을 수행하며, 상기 이동 연산 모듈은 INC(Increment) 게이트와 DEC(Decrement) 게이트를 이용하여 각 노드 아래의 개별 하위 노드와 확률 진폭을 결합하는 것이 바람직하다.
더 나아가, 상기 동전 연산 모듈은 워커의 이동 방향을 결정하고, 상기 이동 연산 모듈의 INC 게이트는 워커 상태를 증가시키고, DEC 게이트는 워커 상태를 감소시키며, 반복 동작을 수행하는 것이 바람직하다.
더 나아가, 상기 난수 생성부(200)는 선형 합동 생성기(Linear Congruential Generator)를 이용하는 것이 바람직하다.
더 나아가, 상기 난수 생성부(200)는 Mersenne Twister 알고리즘을 이용하는 것이 바람직하다.
본 발명의 또 다른 일 실시예에 따른 컴퓨터를 포함하는 연산 처리 수단에 의해 각 단계가 수행되는 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템을 이용한 AES 암복호화 방법으로서, 난수 생성부에서, 복수의 라운드를 반복 수행하는 AES(Advanced Encryption Standard) 알고리즘을 이용하여, 입력 데이터의 암호화를 수행하는 과정에서, 각 데이터 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(shift row) 연산에 적용할 난수(random number)들을 생성하는 난수 생성 단계 및 난수 저장부에서, 상기 난수 생성 단계에 의해 생성한 상기 난수들을 데이터베이스화하여 저장 및 관리하는 난수 저장 단계를 포함하며, 암호화부에서, 입력 데이터의 암호화를 수행하되, 쉬프트 로우 연산시, 상기 난수 생성 단계에 의해 생성한 난수들을 적용하는 암호화 단계와, 복호화부에서, 입력 데이터의 복호화를 수행하되, 역 쉬프트 연산(Inv_shift row) 연산시, 상기 난수 저장 단계에 의해 저장되어 있는 난수들을 이용하는 복호화 단계를 수행하는 것이 바람직하다.
더 나아가, 상기 난수 생성 단계는 양자 컴퓨팅 기술인 양자 랜덤 워크(Quantum Random Walk) 알고리즘을 이용하는 것이 바람직하다.
더 나아가, 상기 난수 생성 단계는 동전(coin) 연산 모듈과 이동(shift) 연산 모듈에 의해 동작이 수행되며, 상기 동전 연산 모듈은 Hadamard 게이트를 이용하여 Unitary 변환을 수행하며, 상기 이동 연산 모듈은 INC(Increment) 게이트와 DEC(Decrement) 게이트를 이용하여 각 노드 아래의 개별 하위 노드와 확률 진폭을 결합하되, 상기 동전 연산 모듈과 이동 연산 모듈의 반복 동작을 통해 이동되는 워커(walker) 위치에 따른 Qubit(양자 비트, quantum bit)의 측정 확률을 산출하면서 난수를 생성하는 것이 바람직하다.
더 나아가, 상기 난수 생성 단계는 상기 동전 연산 모듈에 의해 워커의 이동 방향을 결정하는 단계, 상기 이동 연산 모듈의 INC 게이트를 통해서 워커 상태가 증가되는 단계 및 상기 이동 연산 모듈의 DEC 게이트를 통해서 워커 상태가 감소되는 단계를 포함하되, 반복 동작을 수행하는 것이 바람직하다.
더 나아가, 상기 난수 생성 단계는 선형 합동 생성기(Linear Congruential Generator)를 이용하는 것이 바람직하다.
더 나아가, 상기 난수 생성 단계는 Mersenne Twister 알고리즘을 이용하는 것이 바람직하다.
상기와 같은 구성에 의한 본 발명의 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법은 AES 암호화 과정에서 각 데이터 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(shift row) 수행함에 있어서, 양자 컴퓨팅 기술을 적용하여 생성한 난수에 따라 행을 이동시킴으로써 복호화 추정을 어렵게 하여 암호화 성능을 향상시킬 수 있는 장점이 있다.
실험 결과를 통해서, 2개의 일반 이미지(평문) 사이에 약간의 차이만 있어도 2개의 암호화된 이미지(암호문)는 완전히 상이함을 확인하였으며, 일반 이미지의 작은 변화에도 매우 민감함을 알 수 있어, 차등 공격에 매우 강력한 장점이 있다.
도 1은 종래의 AES 암복호화 시스템의 동작 예시도이다.
도 2 내지 도 8은 종래의 AES 암복호화 시스템에 의한 암호화 과정의 세부 동작 예시도이다.
도 9는 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템을 나타낸 구성 예시도이다.
도 10 내지 도 12는 종래의 고전 논리 게이트(classical logic gate)와 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템에 적용된 양자 게이트(quantum gate)의 대비 예시도이다.
도 13 내지 도 15는 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템에 적용된 양자 회로를 나타낸 예시도이다.
도 16은 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템에 적용된 양자 컴퓨팅 기술을 나타낸 예시도이다.
도 17은 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템에 의해 암호화 과정에서 각 데이터 구성 요소의 행렬에서 생성한 난수에 따라 행을 이동시키는 쉬프트 로우 수행 과정을 나타낸 예시도이다.
이하 첨부한 도면들을 참조하여 본 발명의 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법을 상세히 설명한다. 다음에 소개되는 도면들은 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 예로서 제공되는 것이다. 따라서, 본 발명은 이하 제시되는 도면들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 또한, 명세서 전반에 걸쳐서 동일한 참조번호들은 동일한 구성요소들을 나타낸다.
이때, 사용되는 기술 용어 및 과학 용어에 있어서 다른 정의가 없다면, 이 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 통상적으로 이해하고 있는 의미를 가지며, 하기의 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 설명은 생략한다.
더불어, 시스템은 필요한 기능을 수행하기 위하여 조직화되고 규칙적으로 상호 작용하는 장치, 기구 및 수단 등을 포함하는 구성 요소들의 집합을 의미한다.
본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법은 더욱 강력한 암호화 알고리즘의 필요성이 대두되고 있는 바, 보안을 강화하기 위해 난수 생성 알고리즘을 적용한 AES 알고리즘에 관한 것이다.
특히, 양자 컴퓨팅 기술인 Quantum Random Walk를 이용하여 난수를 생성함으로써, 생성한 난수의 반복적인 주각 없어 앞뒤 숫자 간의 상호 연관성이 없기 때문에, 난수 예측의 보안을 강화할 수 있는 장점이 있다.
AES 알고리즘에 대해 먼저 알아보자면,
AES는 암호화 및 복호화 시 동일한 key를 사용하는 대칭 key 알고리즘이다.
AES는 128bit, 192bit 및 256bit의 암호화 key를 가질 수 있으며, 암호화 key의 크기에 따라 실행되는 10, 12 및 14 라운드로 구성된다. 도 1의 a)는 AES-128 암호화 알고리즘 동작 예시도이며, 도 1의 b)는 AES-128 복호화 알고리즘 동작 예시도이다. 도 1의 a)에 도시된 바와 같이, 맨 처음 입력되는 평문(plain text)과 key를 통해 Add Round Key 연산을 수행하고, Sub Byte, Shift Row, Mix Column, Add Round Key로 구성된 9번의 Round 변환을 수행한 후, 마지막 10번째 Round에서 Mix Column을 제외한 나머지 Sub Byte, Shift Row, Add Round Key 변환을 수행하여 암호문(Cipher text)이 생성되게 된다.
복호화 과정은 암호화의 반대 과정으로 도 1의 b)에 도시된 바와 같이, 암호문과 Round Key 10으로 Add Round Key 연산을 수행한 후, Inv Shift Row, Inv Sub Byte, Add Round Key, Inv Mix Column으로 구성된 9번의 Round 역변환을 수행한 후, 마지막 10번째 Round에서 Inv Mix Column을 제외한 나머지 Inv Shift Row, Inv Sub Byte, Add Round Key를 수행하여 복호화를 수행하게 된다.
암호화 과정을 기준으로 각 연산 과정에 대해서 자세히 알아보자면,
Add Round Key 연산은 도 2에 도시된 바와 같이, Add Round Key에서 평문과 Key의 XOR 연산이 수행된다. XOR연산을 수행하려면 평문과 Key 모두 매트릭스 형태로 변환해야 하는데, 이 때 매트릭스 형태로의 변환을 위해 AND 연산이 사용된다.
Sub Byte 연산은 하기의 표 1에 도시된 S-box table을 사용하여 1byte 단위로 데이터를 교체(치환)하는 연산으로서, 입력이 7b(16진수)일 경우, 출력은 21(16진수)임을 알 수 있다.
Shift Row 연산은 행 단위로 다르게 shift 연산을 수행하는 것으로, 통상적으로 암호화의 경우, 한 행을 내려갈수록 shift 크기가 1씩 커지는 0, 1, 2, 3 순으로 이루어지고, 복호화의 경우, 0, 3, 2, 1 순으로 이루어진다.
도 3에 도시된 바와 같이, 암호화 과정에서의 Shift Row 연산은 1번째 행은 shift 크기가 0이기 때문에 그대로 유지되며, 2번째 행은 shift 크기가 0이기 때문에 왼쪽으로 1칸 이동하고, 3번째 행은 왼쪽으로 2칸 이동, 마지막 3번째 행은 왼쪽으로 3칸 이동하게 된다.
이러한 Shift Row 연산은 복호화 과정에서는 단순히 암호화 과정에서의 Shift Row 연산과 반대로 진행하기 때문에, 해당 과정을 예측할 수 있는 문제점이 있다.
Mix Column 연산은 각 열(Column) 단위로 특정 매트릭스와 곱셈 연산을 수행한다. 곱셈 연산을 하는 과정에서 덧셈이 발생하는데, 덧셈은 XOR연산으로 처리하게 된다. 이 때, 도 4는 Mix Column 연산에서 사용되는 특정 매트릭스의 예시도이다.
AES 알고리즘은 Key Schedule을 사용하여 여러 개의 Round Key로 확장하게 된다. 도 1에 도시된 바와 같이, Add Round Key 연산에서 Round Key 1부터 Round Key 9까지 입력하게 되는데, Key Schedule을 통해서 Round Key들을 생성하게 된다.
상세하게는, 도 5에 도시된 바와 같이, Key의 마지막 4byte를 추출하여 한 칸씩 Shift하고 Sub Byte 연산을 수행하게 된다. Sub Byte 연산은 하기의 표 2와 같은 S-box table을 이용하는 것이 바람직하다.
상기의 표 2와 같이, Sub Byte 연산 결과를 알 수 있으며, 도 6에 도시된 바와 같이, 이 결과값과 Rcon table의 각 열들로 XOR 연산을 수행하게 된다.
Rcon table은 1 round마다 1열씩 왼쪽부터 순서대로 사용하게 되며, 도 7에 도시된 바와 같이, key의 1번째 열과 XOR 연산한 결과가 1번째 Round Key 의 1번째 열을 생성하게 된다. 도 8은 1번째 Round Key의 2번째 열이 생성되는 과정을 나타내며, 1번째 Round Key의 1번째 열과 Key의 2번째 열의 XOR 연산 결과값이 1번째 Round Key의 2번째 열로 생성되며, 나머지 열들고 같은 과정을 수행하게 된다. 이러한 과정들을 반복 수행함으로써, 모든 Round Key가 생성되게 된다.
상술한 AES 알고리즘의 과정을 통해서 도출된 매트릭스 결과값은 암호문으로 다시 변환되게 되며, 암호문으로의 변환은 OR 연산이 사용되게 된다.
양자 컴퓨팅은 양자 역학의 원리를 이용하기 위해 양자 비트(Qubit)로 정보를 처리한다. 그러나 양자 입자의 상태를 나타내는 Qubit는 외부 환경의 영향에 의해 쉽게 변형되므로 외부 영향을 피하기 위해 극저온 상태로 유지해야 하는데, 극 저온 상태로 유지하는 장비는 매우 비싸다. 그렇기 때문에, 양자 시스템을 개발하는 기업들은 양자 시뮬레이터를 제공하며, 양자 시뮬레이터는 양자 컴퓨터에서 양자 알고리즘을 실행하는 것과 같이 고전 컴퓨터에서 양자 알고리즘을 실행하고 테스트할 수 있는 소프트웨어 프로그램이다.
Qubit는 양자 컴퓨터에 사용되는 정보의 최소 단위로서, 양자 중첩 현상으로 인해 측정될 때까지 0과 1을 동시에 가질 수 있으며, 측정이나 간섭이 발생하면 기존 bit처럼 하나의 값을 가질 수 있다. N Qubit는 직교 기저라고 불리는 2n차원 Hilbert 공간의 중첩 벡터로 표현되며, 단일 Qubit의 경우, a|0>+b|1>로 나타낼 수 있으며, a, b는 을 만족시키는 복소수이다.
양자 중첩은 측정되기 전까지 동시에 여러 가능성을 갖은 상태이기 때문에 기존 컴퓨터(고전 컴퓨터)와 비교했을 때 2Qubit배 시간만큼 빠른 연산을 수행할 수 있다. 양자 얽힘은 입자가 둘로 쪼개져 매우 먼 거리에 위치하더라도 한 쪽의 상태가 결정되면 동시에 다른 한 쪽의 상태가 결정되는 현상이다. 양자 게이트는 이러한 특성을 기반으로 동작하며, 일부 양자 게이트는 고전 논리 게이트를 대체할 수 있다.
상술한 바와 같이, AES 알고리즘의 과정에서 AND, OR, XOR 연산이 수행된다. 그렇기 때문에, 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템은 양자 컴퓨팅 기술을 활용한 만큼 고전 논리 게이트를 양자 게이트로 구현하게 된다.
각 게이트 간의 관계에 대해서 알아보자면,
도 10의 a)에 도시된 고전 AND 게이트는 도 10의 b)에 도시된 Toffoli 게이트로 대체할 수 있다. Toffoli 게이트는 2개의 Qubit 상태가 하나의 Qubit 상태에 영향을 주는 게이트로서, 하기의 표 3과 같이, A와 B가 모두 |1>이면, NOT 연산(표 3의 3번째 줄 참조.)이 수행됨을 알 수 있다.
도 11의 a)에 도시된 고전 OR 게이트는 고전 NOT 게이트와 고전 AND 게이트의 조합으로 만들 수 있으며, 고전 AND 게이트는 상술한 바와 같다. 고전 NOT 게이터는 도 11의 b)에 도시된 바와 같으며, 도 11의 c)에 도시된 Pauli-X 게이트로 대체할 수 있다. Pauli-X 게이트는 Qubit를 X축으로 회전시키는 동작을 수행하며, 하기의 표 4에 도시된 바와 같이, Qubit가 |1>이면 |0>으로 변경되고, |0>이면 |1>으로 변경된다.
도 12의 a)에 도시된 고전 XOR 게이트는 도 12의 b)에 도시된 CNOT(Controlled-NOT) 게이트로 대체할 수 있다. CNOT 게이트는 1번째 Qubit의 상태는 2번째 Qubit의 상태에 영향을 주는 게이트로서, 두 Qubit의 얽힘을 나타낸다. 즉, 하기의 표 5에 도시된 바와 같이, CNOT 게이트는 A가 |1>이면 B에 대해 NOT 연산을 수행하며, 이는 고전 XOR 연산과 동일하다.
본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템은 이러한 고전 논리 게이트와 양자 게이트 간의 관계를 기초로, 양자 컴퓨터 플랫폼(일 예를 들자면, IBM에서 개발한 Qiskit)으로 AES 알고리즘을 구현하고자 한다.
먼저, Qubit를 저장하기 위해 양자 레지스터를 할당하고, 고전 bit를 저장하기 위해 고전 레지스터를 할당한다. 양자 레지스터는 모든 Qubit를, 고전 레지스터는 모든 고전 bit를 list 형태로 저장하게 되며, 고전 bit는 Qubit가 측정되는 경우에만 사용할 수 있다. 각 레지스터를 실행하기 위해 구성한 레지스터를 입력으로 받는 양자 회로를 생성하고, 생성한 양자 회로에 다른 레지스터를 추가할 수 있으며 필요한 경우 시각적으로 확인도 가능하다. 또한, 각각의 고전 논리 게이트에 해당하는 양자 게이트를 양자 회로에 적용하게 된다.
입력값은 Input1 = 1101, Input2 = 0110으로 가정하였으며, 도 13 내지 도 15에서 q424, q431 및 q442는 단순하게 Qubit를 의미하고 있으며 숫자가 의미하는 바는 없다.
도 13은 Toffoli 게이트를 사용한 고전 AND 게이트를 구현하는 양자 회로이다.
1. Qubit의 초기 상태를 |0>으로 초기화한다.
2. 입력값의 마지막 자릿수(네 번째 자릿수)에서 계산한다. Input1의 마지막 자릿수는 1이고, Input2의 마지막 자릿수는 0이다. Qubit_0(q424_0)은 |1>이어야 하고, Qubit_1(q424_1)은 |0>이어야 하기 때문에, Qubit_0에 Pauli-X 게이트를 적용하게 된다. 또한 Toffoli 게이트가 고전 AND 연산을 만족해야 하므로 Qubit_2(q424_2)은 |0>이어야 한다. Qubit_2의 측정은 고전 AND 연산의 결과를 반환한다.
3. 입력 값의 세 번째 자릿수를 계산한다. Input1의 세 번째 자릿수는 0이고, Input2의 세 번째 자릿수는 1이기 때문에, Qubit_3(q424_3)은 |0>이어야 하고, Qubit_4(q424_4)는 |1>이어야 하기 때문에, Qubit_4에서 Pauli-X 게이트를 적용하게 된다. 또한, Toffoli 게이트가 고전 AND 연산을 만족해야 하므로 Qubit_5(q424_5)는 |0>이어야 한다. Qubit_5의 측정은 고전 AND연산의 결과를 반환한다.
4. 각 자리의 숫자에 대해 2., 3. 과정을 반복하게 된다.
도 14는 Pauli-X 게이트와 Toffoli 게이트를 사용한 고전 OR 게이트를 구현하는 양자 회로이다.
1. Qubit의 초기 상태를 |0>으로 초기화한다.
다만, 고전 OR 게이트를 구현하려면 Input1 및 Input2에서 NOT 연산을 수행해야 하므로, Qubit_0(q431_0)과 Qubit_1(q431_1)에 Pauli-X 게이트를 적용하게 된다.
2. 입력값의 마지막 자릿수(네 번째 자릿수)에서 계산한다. Input1의 마지막 자릿수는 1이고, Input2의 마지막 자릿수는 0이다. Qubit_0은 |1>이어야 하고, Qubit_1은 |0>이어야 하기 때문에, Qubit_0은 Pauli-X 게이트를 적용한다.
3. Qubit_2(q431_2)는 Toffoli 게이트가 고전 AND 연산을 만족해야 하므로 |0>이어야 한다. 단, 고전 AND 연산 후 NOT 연산을 수행해야 하기 때문에, Qubit_2에 Toffoli 게이트를 적용한 다음 Pauli-X 게이트를 적용한다. Qubit_2의 측정은 고전 OR 연산의 결과를 반환한다.
4. 각 자리의 숫자에 대해 2., 3. 과정을 반복하게 된다.
도 15는 CNOT 게이트를 사용한 고전 XOR 게이트를 구현한 양자 회로이다.
1. Qubit의 초기 상태를 |0>으로 초기화한다.
2. 입력값의 마지막 자릿수(네 번째 자릿수)에서 계산한다. Input1의 마지막 자릿수는 1이고, Input2의 마지막 자릿수는 0이다. Qubit_0(q442_0)은 |1>이어야 하고, Qubit_1(q442_1)은 |0>이어야 하기 때문에, Qubit_0에 Pauli-X 게이트를 적용한다.
3. Qubit_1에서 결과값을 반환하며, CNOT 게이트를 적용한 후, Qubit_`1의 측정을 수행하면 고전 XOR 연산 결과가 반환한다.
4. 각 자리의 숫자에 대해 2., 3. 과정을 반복하게 된다.
이러한 양자 회로를 기반으로 도 9는 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템을 나타낸 구성 예시도이다.
본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템은 도 9에 도시된 바와 같이, 암호화부(100), 난수 생성부(200), 난수 저장부(300) 및 복호화부(400)를 포함하여 구성되는 것이 바람직하며, 각 구성들은 양자 컴퓨터를 포함하는 하나의 연산 처리 수단 또는 다수의 연산 처리 수단에 포함되는 것이 바람직하다.
각 구성에 대해서 자세히 알아보자면,
상기 암호화부(100)는 복수의 라운드를 반복 수행하는 AES 알고리즘을 이용하여, 입력 데이터(평문)의 암호화를 수행(암호문)하는 것이 바람직하다.
이 때, 상기 암호화부(100)의 AES 알고리즘 동작은 상술한 바와 같이, 양자 게이트를 통해서 양자 회로로 구성될 수도 있다.
상기 복호화부(400) 역시도 복수의 라운드를 반복 수행하는 AES 알고리즘을 이용하여, 입력 데이터(암호문)의 복호화를 수행(평문)하는 것이 바람직하다. 상기 복호화부(400)의 AES 알고리즘 동작 역시도 양자 게이트를 통해서 양자 회로로 구성될 수 있다.
본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템은 AES 알고리즘이 갖고 있는 취약점인 복호화 과정의 Shift Row(Inv Shift Row) 과정이 단순히 암호화 과정의 Shift Row 과정을 역으로 수행하기 때문에 예측할 수 있다는 점을 해결하고, 복호화 과정을 예측하지 못하게 하여 암호화의 보안성을 강화시키기 위하여, 상기 난수 생성부(200)를 통해서 예측 불가능한 난수를 생성하여 암호화 과정에서의 Shift Row 연산에 적용하는 것이 바람직하다.
상세하게는, 상기 난수 생성부(200)는 상기 암호화부(100)에서 각 데이터 구성 요소의 행렬에서 행을 이동시키는 Shift Row 연산에 적용할 난수(random number)들을 생성하는 것이 바람직하다.
상기 암호화부(100)는 상기 난수 생성부(200)에서 생성한 난수들을 이용하여, Shift Row 연산을 수행하며 난수에 따라 각각의 열들을 이동시켜 암호화를 진행하게 된다.
상기 복호화부(400)는 생성한 난수들을 이용하여 Inv Shift Row 연산을 수행하며 난수에 따라 각각의 열들을 반대로 이동시켜 복호화를 진행해야 하기 때문에, 상기 난수 저장부(300)를 통해서 상기 난수 생성부(200)에서 생성한 난수들을 데이터베이스화하여 저장 및 관리하는 것이 바람직하다.
다시 말하자면, AES 암호화 과정에서 Shift Row 연산은 각각의 Row의 수에 따라 Row를 Shift시킨다. 이 과정에 대한 복호화는 단순히 암호화 과정에서의 Shift Row 연산을 반대로 진행하기 때문에, 실행된 Shift Row 동작에 대한 복호화 방법이 졍해져 있다. 그렇기 때문에, 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템은 도 17에 도시된 바와 같이, 상기 난수 생성부(200)를 통해서 생성된 난수 값에 따라 암호화 과정에서의 Shift Row 연산의 보완성을 향상시켜 복호화 방법을 예측하기 어렵게 하는 것이 바람직하다.
이 때, 상기 난수 생성부(200)는 양자 컴퓨팅 기술인 양자 랜덤 워크(Quantum Random Walk) 알고리즘을 이용하는 것이 가장 바람직하다. 그렇지만, 양자 컴퓨팅 기술의 활용이 여의치 않을 경우, 선형 합동 생성기(Linear Congruential Generator) 또는, Mersenne Twister 알고리즘을 이용하여 난수를 생성할 수 있다.
선형 합동 생성기는 널리 알려진 의사 난수 생성기로서, 의사 난수 값에 a를 곱하고 c를 추가한 다음 m으로 나눈 후 다음 의사 난수 값을 생성한다. a, c, m은 모두 임의의 수이며, m>0, 0<a<m, 0≤c≤m, 0≤X0<m을 만족한다. 이러한 선형 합동 생성기는 하기의 수학식 1과 같이 정의된다.
(여기서, X0는 시드 값을 나타내며,
시드 값은 보통, 오늘 날짜나 노이즈 등을 사용함.)
선형 합동 생성기는 m으로 나머지 연산을 하기 때문에 최대 m의 주기를 갖게 된다. 또한, 선형 합동 생성기에 의해 생성되는 난수는 인자 값들에 의해 많이 좌우되고, 주기가 클수록 다양한 난수를 생성할 수 있기 때문에 인자 값들을 잘 선택해서 주기가 최댓값인 m에 가깝도록 연산하는 것이 바람직하다. 다만, 선형 합동 생성기는 인자 값들과 마지막으로 생성된 난수를 통해서 그 뒤에 생성되는 난수를 예측할 수 있다는 단점이 있다.
Mersenne Twister 알고리즘은 의사 난수 생성 알고리즘으로서, bit수에 따라 32bit이면 219.937-1인 MT19937을 난수의 주기로 사용하고, 64bit이면 MT19937-64를 주기로 사용한다. 이 주기는 Mersenne 소수이며, Mersenne 소수는 Mersenne 숫자 중에서 소수인 수를 의미한다. 하기의 수학식 2와 같이 정의된 바와 같이, Mersenne 수는 2의 거듭제곱 빼기 1에서 나온 숫자이다.
이러한 점을 고려하여 Mersenne Twister 알고리즘은 시드를 사용하여 624의 길이를 가진 벡터를 생성하고, 생성한 벡터를 이용하여 624개의 유사 난수를 만드는데, 이 난수들 사이의 패턴을 찾기가 어렵다. 그렇지만, 난수의 주기와 범위를 알고 624개의 난수를 추출하면 다음 난수를 예측할 수 있다는 단점이 있다.
상기 난수 생성부(200)를 통해서 생성한 난수가 예측 가능하다면 난수를 적용한 의미가 없기 때문에, 이러한 선형 합동 생성기와 Mersenne Twister 알고리즘을 이용하여 생성한 난수의 문제점인 예측 가능하다는 점을 해소하기 위하여, 양자 컴퓨팅 기술인 양자 랜덤 워크(Quantum Random Walk) 알고리즘을 이용하는 것이 가장 바람직하다. 양자 랜덤 워크는 연속 양자 랜덤 워크와 이산 양자 랜덤 워크로 나뉘는데, 본 발명의 일 실시예에 따른 상기 난수 생성부(200)에서는 이동을 랜덤화하기 위한 값이 필요하기 때문에, 이산 양자 랜덤 워크를 사용하는 것이 바람직하다.
양자 랜덤 워크 알고리즘을 사용하여 생성한 난수는 반복되는 주기가 없어 앞뒤 숫자 사이에 상관관계가 없고 확률에 의존하기 때문에 예측할 수 없는 장점이 있다.
상세하게는, 양자 랜덤 워크는 고전 랜덤 워크의 양자 유사체이며, 동전(Coin) 연산 모듈과 이동(Shift) 연산 모듈에 의해 동작이 수행된다.
상기 동전 연산 모듈은 동전 공간에서 Unitary 변환을 수행함으로써 작동하며, 이는 고전 랜덤 워크에서 "동전 뒤집기"와 유사한 회전을 생성한다. 본 발명의 일 실시예에 따른 상기 난수 생성부(200)에서는 동전 기반 확률을 시뮬레이션할 수 있도록 Qubit를 중첩 상태에 놓아야 하므로 하기의 수학식 3과 같은 Hadamard 게이트를 사용하는 것이 바람직하다.
상기 이동 연산 모듈은 상기 동전 연산 모듈과 함께 동작을 수행하며, 각 노드 아래의 개별 하위 노드와 확률 진폭을 결합한다.
이산 양자 랜덤 워크의 Unitary 연산은 상기 동전 연산 모듈과 상기 이동 연산 모듈을 통해서 이루어지며, U = SC로 정의되며, 하기의 수학식 4와 같이 Hilbert 공간에 의해 정의될 수 있다.
(여기서, Hc는 동전 Hilbert 공간이고, Hp는 위치 Hilbert 공간임.)
도 16의 a)는 노드 4개가 있는 사이클 그래프에서의 양자 랜덤 워크를 나타낸 도면이며, 도 16의 b)는 사이클 그래프에서의 양자 랜덤 워크의 수행을 양자 회로에 구현한 도면이다. q[0], q[1]은 워커(walker)의 상태를 나타내는 이동 연산 모듈을 의미하며, q[2]는 동전 연산 모듈을 나타낸다. 동전 연산 모듈은 워커가 시계 방향으로 이동할지, 반시계 방향으로 이동할지를 결정하며, INC 게이트는 워커 상태를 증가시키는 게이트이고, DEC 게이트는 워커 상태를 감소시키는 게이트이다. 사이클 그래프에서 반시계 방향 회전과 같다. 동전 연산 모듈과 이동 연산 모듈을 반복적으로 실행하면서 워커 위치에 따른 Qubit의 측정 확률을 알 수 있다. 여기서 측정된 Qubit을 난수로 설정하게 된다.
도 16의 c)는 워커의 위치 값에 따라 Qubit가 측정될 확률을 나타낸 그래프이다. 높은 확률값이 반드시 Qubit의 측정으로 이어지는 것은 아니며 낮은 확률값에서도 Qubit의 측정이 이어질 수 있기 때문에, 암호화 과정에서 난수를 통해서 Shift Row 연산을 수행함으로써, 복호화 과정에서의 Inv Shift Row 연산에서 적용할 난수의 예측이 불가능하게 한다.
즉, 상기 난수 생성부(200)에 의한 양자 랜덤 워크를 사용하여 생성된 난수는 반북되는 주기가 없어 앞뒤 숫자 사이에 상관관계가 없고 확률에 의존하기 때문에 예측할 수 없다. 그렇기 때문에 상기 암호화부(100)에서 상기 난수 생성부(200)에 의해 생성된 난수를 Shift Row 연산 과정에 적용할 경우, 복호화 추정을 어렵게 함으로써, 보안성을 강화시킬 수 있다.
본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법은 컴퓨터를 포함하는 연산 처리 수단에 의해 각 단계가 수행되는 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템에 의해 각 단계가 수행되는 것이 바람직하다.
본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법은 난수 생성 단계 및 난수 저장 단계를 포함하여 구성되며, 이에 의한 생성되는 난수들을 이용하여 암호화 단계 또는, 복호화 단계가 수행되는 것이 바람직하다.
각 단계에 대해서 자세히 알아보자면,
상기 난수 생성 단계는, 상기 난수 생성부(200)에서 복수의 라운드를 반복 수행하는 AES 알고리즘을 이용하여, 입력 데이터(평문)의 암호화를 수행(암호문)하는 과정에서, 각 데이터 구성 요소의 행렬에서 행을 이동시키는 Shift Row 연산에 적용할 난수(random number)들을 생성하게 된다.
이 때, 복수의 라운드를 반복 수행하는 AES 알고리즘을 이용하여, 입력 데이터(암호문)의 복호화를 수행(평문)하는 과정에서, 상기 난수 생성 단계에 의해 생성한 난수들을 이용하여 Inv Shift Row 연산을 수행하며 난수에 따라 각각의 열들을 반대로 이동시켜 복호화를 진행해야 하기 때문에, 상기 난수 저장 단계를 통해서 생성한 난수들을 데이터베이스화하여 저장 및 관리하게 된다.
이를 통해서, 상기 암호화 단계는 상기 암호화부(100)에서, 입력 데이터의 암호화를 수행하되, Shift Row 연산 수행시, 상기 난수 생성 단계에 의해 생성한 난수들을 적용하게 된다.
상기 복호화 단계는 상기 복호화부(400)에서, 입력 데이터의 복호화를 수행하되, Inv Shift Row 연산 수행시, 상기 난수 저장 단계에 의해 저장되어 있는 난수들을 적용하게 된다.
이 때, 상기 난수 생성 단계는 양자 컴퓨팅 기술인 양자 랜덤 워크(Quantum Random Walk) 알고리즘을 이용하는 것이 가장 바람직하며, 양자 컴퓨팅 기술의 활용이 여의치 않을 경우, 선형 합동 생성기(Linear Congruential Generator) 또는, Mersenne Twister 알고리즘을 이용하여 난수를 생성할 수 있다.
다만, 선형 합동 생성기(Linear Congruential Generator) 또는, Mersenne Twister 알고리즘을 이용하여 난수를 생성할 경우, 생성되는 난수를 예측할 수 있다는 단점이 있다.
이에 반해서, 양자 랜덤 워크 알고리즘을 이용하여 난수를 생성할 경우, 생성한 난수에 대한 반복되는 주기가 없어 앞뒤 숫자 사이에 상관관계가 없고 확률에 의존하기 때문에 예측할 수 없기 때문에, 기존 AES 알고리즘이 갖고 있는 취약점인 복호화 과정의 Shift Row(Inv Shift Row) 과정이 단순히 암호화 과정의 Shift Row 과정을 역으로 수행하기 때문에 예측할 수 있다는 점을 해결하고, 복호화 과정을 예측하지 못하게 하여 암호화의 보안성을 강화할 수 있다.
양자 랜덤 워크 알고리즘을 사용하여 생성한 난수는 반복되는 주기가 없어 앞뒤 숫자 사이에 상관관계가 없고 확률에 의존하기 때문에 예측할 수 없는 장점이 있다.
상세하게는, 양자 랜덤 워크는 고전 랜덤 워크의 양자 유사체이며, 동전(Coin) 연산 모듈과 이동(Shift) 연산 모듈에 의해 동작이 수행된다.
상기 동전 연산 모듈은 동전 공간에서 Unitary 변환을 수행함으로써 작동하며, 이는 고전 랜덤 워크에서 "동전 뒤집기"와 유사한 회전을 생성한다. 본 발명의 일 실시예에 따른 상기 난수 생성 단계에서는 동전 기반 확률을 시뮬레이션할 수 있도록 Qubit를 중첩 상태에 놓아야 하므로 상기의 수학식 3과 같은 Hadamard 게이트를 사용하게 된다.
상기 이동 연산 모듈은 상기 동전 연산 모듈과 함께 동작을 수행하며, 각 노드 아래의 개별 하위 노드와 확률 진폭을 결합한다.
이산 양자 랜덤 워크의 Unitary 연산은 상기 동전 연산 모듈과 상기 이동 연산 모듈을 통해서 이루어지며, U = SC로 정의되며, 상기의 수학식 4와 같이 Hilbert 공간에 의해 정의될 수 있다.
도 16의 a)는 노드 4개가 있는 사이클 그래프에서의 양자 랜덤 워크를 나타낸 도면이며, 도 16의 b)는 사이클 그래프에서의 양자 랜덤 워크의 수행을 양자 회로에 구현한 도면이다. q[0], q[1]은 워커(walker)의 상태를 나타내는 이동 연산 모듈을 의미하며, q[2]는 동전 연산 모듈을 나타낸다. 동전 연산 모듈은 워커가 시계 방향으로 이동할지, 반시계 방향으로 이동할지를 결정하며, INC 게이트는 워커 상태를 증가시키는 게이트이고, DEC 게이트는 워커 상태를 감소시키는 게이트이다. 사이클 그래프에서 반시계 방향 회전과 같다. 동전 연산 모듈과 이동 연산 모듈을 반복적으로 실행하면서 워커 위치에 따른 Qubit의 측정 확률을 알 수 있다. 여기서 측정된 Qubit을 난수로 설정하게 된다.
도 16의 c)는 워커의 위치 값에 따라 Qubit가 측정될 확률을 나타낸 그래프이다. 높은 확률값이 반드시 Qubit의 측정으로 이어지는 것은 아니며 낮은 확률값에서도 Qubit의 측정이 이어질 수 있기 때문에, 암호화 과정에서 난수를 통해서 Shift Row 연산을 수행함으로써, 복호화 과정에서의 Inv Shift Row 연산에서 적용할 난수의 예측이 불가능하게 한다.
즉, 상기 난수 생성 단계를 통해서 양자 랜덤 워크를 사용하여 생성된 난수는 반북되는 주기가 없어 앞뒤 숫자 사이에 상관관계가 없고 확률에 의존하기 때문에 예측할 수 없다. 그렇기 때문에 상기 암호화 단계에서 상기 난수 생성 단계에 의해 생성된 난수를 Shift Row 연산 과정에 적용할 경우, 복호화 추정을 어렵게 함으로써, 보안성을 강화시킬 수 있다.
본 출원인은 실험을 통해서 기존의 AES 알고리즘 보안 성능과, 선형 합동 생성기와 Mersenne Twister 알고리즘을 이용하여 생성한 난수를 적용한 AES 알고리즘 보안 성능 및 양자 랜덤 워크 알고리즘을 이용하여 생성한 난수를 적용한 AES 알고리즘 보안 성능을 비교 평가하였다.
상세하게는, 암호화 성능을 평가하기 위해 NPCR(Number of Pixel Change Rate)와 UACI(Unified Average Changing Intensity)를 사용하였으며, NPCR과 UACI 값이 높을수록 암호화 성능이 더 좋음을 의미한다.
NPCR은 이미지 암호화에서 avalanche 효과를 측정하는데 사용되며, avalanche 효과를 diffusion 효율성을 테스트하는데 사용된다. diffusion은 평문의 통계적 성질을 암호문 전반에 퍼뜨려 알지 못하도록 하는 것을 의미하며, 수정된 이미지 P2를 제공하기 위해 이미지 P1에서 단일 bit 변경을 수행할 수 있으며, P1과 P2는 모두 암호화되어 각각의 C1과 C2를 제공한다. NPCR은 하기의 수학식 5와 같이 정의된다.
0(여기서, D(i, j)는 을 의미함.)
일반 이미지에서 1 pixel 변경 전후의 암호화 이미지를 C1과 C2로 정의한다. C1과 C2의 grid(i, j)에 있는 pixel 값은 각각의 C1(i, j) 및 C2(i, j)로 나타내며, M과 N은 암호화할 이미지의 차원을 의미한다.
UACI는 두 이미지 간의 차이의 평균 강도를 측정하는 것으로 하기의 수학식 6과 같이 정의된다.
(여기서, C1, C2는 일반 이미지에서 1 pixel 변경 전후의 암호화 이미지를 의미하며,
M, N은 암호화할 이미지의 차원을 의미함.)
본 출원인은 실험을 통해서 기존의 AES 알고리즘 보안 성능과, 선형 합동 생성기와 Mersenne Twister 알고리즘을 이용하여 생성한 난수를 적용한 AES 알고리즘 보안 성능 및 양자 랜덤 워크 알고리즘을 이용하여 생성한 난수를 적용한 AES 알고리즘 보안 성능을 비교 평가하기 위하여, 일반 이미지(Lena, Baboon, Pepper)에 대해 실험마다 무작위 위치의 1 pixel을 변경한 후 모든 pixel에 대해 NPCR 및 UACI를 계산하여 일반 이미지의 민감도 분석을 수행하였다. 일반 이미지(Lena, Baboon, Pepper)에 대해 각 10회의 실험을 진행하였으며, 하기의 표 6은 NPCR의 결과를 나타내며, 하기의 표 7은 UACI의 결과를 나타내고 있으며, 평균 NPCR은 99% 이상, 평균 UACI는 33% 이상임을 알 수 있다.
이는 2개의 일반 이미지 사이에 약간의 차이만 있어도 2개의 암호화된 이미지는 완전히 상이하다는 것을 의미하며, 양자 랜덤 워크 알고리즘을 이용하여 생성한 난수를 적용한 AES 알고리즘이 일반 이미지의 작은 변화에도 매우 민감하다는 것을 알 수 있다.
이에 따라, 본 발명의 일 실시예에 따른 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템 및 그 방법은 차등 공격에 대해 매우 강력하고, 기존 알고리즘들에 비해 보안성이 향상되었음을 알 수 있다.
차등 공격이란, 결과의 변화를 관찰하기 위해 일반 이미지를 약간 변경(예를 들자면, 1 pixel만 수정)하고, 이를 통한 암호 이미지 간의 의미 있는 관계를 찾는 것을 말한다. 그렇지만, 상술한 표 6 및 표 7의 결과와 같이, 일반 이미지의 사소한 변경이 암호 이미지에 큰 변화를 발생시킨다면 차등 공격은 무용지물임이 분명한다.
이상과 같이 본 발명에서는 구체적인 구성 소자 등과 같은 특정 사항들과 한정된 실시예 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것 일 뿐, 본 발명은 상기의 일 실시예에 한정되는 것이 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허 청구 범위뿐 아니라 이 특허 청구 범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (14)

  1. 복수의 라운드를 반복 수행하는 AES(Advanced Encryption Standard) 알고리즘을 이용하여, 입력 데이터의 암호화를 수행하는 암호화부(100);
    상기 암호화부(100)에서 각 데이터 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(shift row) 연산에 적용할 난수(random number)들을 생성하는 난수 생성부(200); 및
    상기 난수 생성부(200)에서 생성한 난수들을 데이터베이스화하여 저장하는 난수 저장부(300);
    를 포함하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  2. 제 1항에 있어서,
    상기 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템은
    복수의 라운드를 반복 수행하는 AES 알고리즘을 이용하여, 입력 데이터의 복호화를 수행하는 복호화부(400);
    를 더 포함하되,
    상기 복호화부(400)는
    상기 난수 저장부(300)에 저장되어 있는 난수들을 이용하여 각 데이터 구성 요소의 행렬에서 행을 역이동시키는 역 쉬프트 로우(Inv_shift row) 연산에 적용하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  3. 제 1항에 있어서,
    상기 난수 생성부(200)는
    양자 컴퓨팅 기술인 양자 랜덤 워크(Quantum Random Walk) 알고리즘을 이용하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  4. 제 3항에 있어서,
    상기 난수 생성부(200)는
    동전(coin) 연산 모듈과 이동(shift) 연산 모듈에 의해 동작이 수행되며,
    상기 동전 연산 모듈과 이동 연산 모듈의 반복 동작을 통해 워커(walker) 위치에 따른 Qubit(양자 비트, quantum bit)의 측정 확률을 산출하면서 난수를 생성하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  5. 제 4항에 있어서,
    상기 동전 연산 모듈은 Hadamard 게이트를 이용하여 Unitary 변환을 수행하며,
    상기 이동 연산 모듈은 INC(Increment) 게이트와 DEC(Decrement) 게이트를 이용하여 각 노드 아래의 개별 하위 노드와 확률 진폭을 결합하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  6. 제 5항에 있어서,
    상기 동전 연산 모듈은 워커의 이동 방향을 결정하고, 상기 이동 연산 모듈의 INC 게이트는 워커 상태를 증가시키고, DEC 게이트는 워커 상태를 감소시키며, 반복 동작을 수행하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  7. 제 1항에 있어서,
    상기 난수 생성부(200)는
    선형 합동 생성기(Linear Congruential Generator)를 이용하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  8. 제 1항에 있어서,
    상기 난수 생성부(200)는
    Mersenne Twister 알고리즘을 이용하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템.
  9. 컴퓨터를 포함하는 연산 처리 수단에 의해 각 단계가 수행되는 양자 컴퓨팅 기술을 적용한 AES 암복호화 시스템을 이용한 AES 암복호화 방법으로서,
    난수 생성부에서, 복수의 라운드를 반복 수행하는 AES(Advanced Encryption Standard) 알고리즘을 이용하여, 입력 데이터의 암호화를 수행하는 과정에서, 각 데이터 구성 요소의 행렬에서 행을 이동시키는 쉬프트 로우(shift row) 연산에 적용할 난수(random number)들을 생성하는 난수 생성 단계; 및
    난수 저장부에서, 상기 난수 생성 단계에 의해 생성한 상기 난수들을 데이터베이스화하여 저장 및 관리하는 난수 저장 단계;
    를 포함하며,
    암호화부에서, 입력 데이터의 암호화를 수행하되, 쉬프트 로우 연산시, 상기 난수 생성 단계에 의해 생성한 난수들을 적용하는 암호화 단계; 또는,
    복호화부에서, 입력 데이터의 복호화를 수행하되, 역 쉬프트 연산(Inv_shift row) 연산시, 상기 난수 저장 단계에 의해 저장되어 있는 난수들을 이용하는 복호화 단계;
    를 수행하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법.
  10. 제 9항에 있어서,
    상기 난수 생성 단계는
    양자 컴퓨팅 기술인 양자 랜덤 워크(Quantum Random Walk) 알고리즘을 이용하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법.
  11. 제 10항에 있어서,
    상기 난수 생성 단계는
    동전(coin) 연산 모듈과 이동(shift) 연산 모듈에 의해 동작이 수행되며,
    상기 동전 연산 모듈은 Hadamard 게이트를 이용하여 Unitary 변환을 수행하며,
    상기 이동 연산 모듈은 INC(Increment) 게이트와 DEC(Decrement) 게이트를 이용하여 각 노드 아래의 개별 하위 노드와 확률 진폭을 결합하되,
    상기 동전 연산 모듈과 이동 연산 모듈의 반복 동작을 통해 이동되는 워커(walker) 위치에 따른 Qubit(양자 비트, quantum bit)의 측정 확률을 산출하면서 난수를 생성하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법.
  12. 제 11항에 있어서,
    상기 난수 생성 단계는
    상기 동전 연산 모듈에 의해 워커의 이동 방향을 결정하는 단계;
    상기 이동 연산 모듈의 INC 게이트를 통해서 워커 상태가 증가되는 단계; 및
    상기 이동 연산 모듈의 DEC 게이트를 통해서 워커 상태가 감소되는 단계;
    를 포함하되,
    반복 동작을 수행하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법.
  13. 제 9항에 있어서,
    상기 난수 생성 단계는
    선형 합동 생성기(Linear Congruential Generator)를 이용하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법.
  14. 제 9항에 있어서,
    상기 난수 생성 단계는
    Mersenne Twister 알고리즘을 이용하는, 양자 컴퓨팅 기술을 적용한 AES 암복호화 방법.

KR1020220034152A 2022-03-18 2022-03-18 양자 컴퓨팅 기술을 적용한 aes 암복호화 시스템 및 그 방법 KR20230136424A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220034152A KR20230136424A (ko) 2022-03-18 2022-03-18 양자 컴퓨팅 기술을 적용한 aes 암복호화 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220034152A KR20230136424A (ko) 2022-03-18 2022-03-18 양자 컴퓨팅 기술을 적용한 aes 암복호화 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20230136424A true KR20230136424A (ko) 2023-09-26

Family

ID=88190931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220034152A KR20230136424A (ko) 2022-03-18 2022-03-18 양자 컴퓨팅 기술을 적용한 aes 암복호화 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20230136424A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949538B1 (ko) 2008-09-09 2010-03-25 한국전자통신연구원 Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949538B1 (ko) 2008-09-09 2010-03-25 한국전자통신연구원 Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법

Similar Documents

Publication Publication Date Title
Wang et al. An image encryption algorithm based on new chaos and diffusion values of a truth table
Wang et al. Image encryption algorithm for synchronously updating Boolean networks based on matrix semi-tensor product theory
Zhu et al. An image encryption algorithm based on compound homogeneous hyper-chaotic system
Ping et al. Image encryption based on non-affine and balanced cellular automata
Farwa et al. A highly nonlinear S-box based on a fractional linear transformation
Norouzi et al. A fast color image encryption algorithm based on hyper-chaotic systems
Ghebleh et al. A novel image encryption algorithm based on piecewise linear chaotic maps and least squares approximation
CN103258312B (zh) 具有快速密钥流生成机制的数字图像加密方法
Zhu et al. Image encryption algorithm with an avalanche effect based on a six-dimensional discrete chaotic system
CN106778304A (zh) 一种具有明文相关置乱机制的快速混沌图像加密方法
Yahi et al. A color image encryption scheme based on 1D cubic map
Hanchinamani et al. An efficient image encryption scheme based on a Peter De Jong chaotic map and a RC4 stream cipher
Chen et al. A fast chaos-based symmetric image cryptosystem with an improved diffusion scheme
CN104851071A (zh) 一种基于三维混沌系统的数字图像加密方法
Deepthi et al. Cryptanalysis of Salsa and ChaCha: revisited
Zhang et al. An image encryption algorithm based on a compound-coupled chaotic system
Zhao et al. Image encryption algorithm based on a new chaotic system with Rubik's cube transform and Brownian motion model
Agarwal A review of image scrambling technique using chaotic maps
Jallouli Chaos-based security under real-time and energy constraints for the Internet of Things
Vidhya et al. A novel conditional Butterfly Network Topology based chaotic image encryption
Hemdan et al. A fast hybrid image cryptosystem based on random generator and modified logistic map
Alharbi et al. A New Multistage Encryption Scheme Using Linear Feedback Register and Chaos‐Based Quantum Map
Alyas et al. Enhancement the ChaCha20 Encryption Algorithm Based on Chaotic Maps
Jawad et al. A novel dynamic secret key generation for an efficient image encryption algorithm
Kamran et al. A highly secured image encryption scheme using quantum walk and chaos