KR102525749B1 - 인공지능 양자내성 암호화 방법 및 장치 - Google Patents

인공지능 양자내성 암호화 방법 및 장치 Download PDF

Info

Publication number
KR102525749B1
KR102525749B1 KR1020210126203A KR20210126203A KR102525749B1 KR 102525749 B1 KR102525749 B1 KR 102525749B1 KR 1020210126203 A KR1020210126203 A KR 1020210126203A KR 20210126203 A KR20210126203 A KR 20210126203A KR 102525749 B1 KR102525749 B1 KR 102525749B1
Authority
KR
South Korea
Prior art keywords
signature code
character
data
generating
ciphertext data
Prior art date
Application number
KR1020210126203A
Other languages
English (en)
Other versions
KR20230043393A (ko
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 KR1020210126203A priority Critical patent/KR102525749B1/ko
Priority to PCT/KR2021/019347 priority patent/WO2023048344A1/ko
Priority to US18/180,906 priority patent/US20230231705A1/en
Publication of KR20230043393A publication Critical patent/KR20230043393A/ko
Application granted granted Critical
Publication of KR102525749B1 publication Critical patent/KR102525749B1/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/08Randomization, e.g. dummy operations or using noise

Abstract

장치에 의해 수행되는, 암호화 키를 기초로 평문 데이터를 암호화하여, 제1 암호문 데이터를 생성하는 단계, 주기적으로 추출되는 노이즈 벡터를 딥러닝 기반의 생성 모델에 적용하여, 제1 시그니처 코드 및 제2 시그니처 코드를 각각 생성하는 단계 및 제1 암호문 데이터에 제1 시그니처 코드 및 제2 시그니처 코드를 적용하여 제2 암호문 데이터를 생성하는 단계를 포함하고, 제1 시그니처 코드의 생성 단계는, 기 설정된 환산식을 통해 제1 시그니처 코드의 생성에 필요한 문자의 종류 및 교체 위치를 결정하고, 제1 암호문 데이터 내에서 교체 위치에 존재하는 기존 암호화 문자 및 상기 문자를 기 설정된 방식으로 연산한 제1 문자를 상기 제1 시그니처 코드로 생성하고, 상기 제2 시그니처 코드의 생성 단계는, 상기 환산식을 통해 상기 제2 시그니처 코드로 사용될 제2 문자의 종류 및 삽입 위치를 결정하고, 상기 제2 암호문 데이터의 생성 단계는, 상기 제1 암호문 데이터 내의 상기 교체 위치에 존재하는 상기 기존 암호화 문자를 상기 제1 문자로 교체하고, 상기 제1 암호문 데이터 내의 상기 삽입 위치에 상기 제2 문자를 삽입하여 생성할 수 있다.

Description

인공지능 양자내성 암호화 방법 및 장치{Method and Apparatus for Artificial Intelligence Post-Quantum Cryptography}
본 발명은 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법 및 장치에 관한 것이다.
최근, 정보 통신 기술의 급속한 발전과 폭발적인 성장으로 데이터의 양이 늘어나고 복잡해지면서, 주어진 시간 내 데이터를 효율적으로 분석하기 위한 해결책으로 제시된 것이 '빅 데이터'이다. 그러나 대용량의 데이터를 처리하는 빅 데이터 환경에서는, 개인 정보가 유출되어 개인의 사생활과 인권이 침해되는 위험이 존재한다. 뿐만 아니라, 수많은 정보를 교환하고 관리하는 기업 시스템 또는 기업간의 거래에서는, 고객의 개인 정보뿐만 아니라 기업 내 영업 비밀이 유출되는 위험 또한 존재한다. 이를 방지하기 위해서 많은 기업들이 개인 정보 또는 기업 내 영업 비밀과 관련된 내용을 포함하는 데이터를 암호화하여, 암호문 데이터를 생성하여 사용하고 있다.
이러한 암호화 방법과 관련하여, 통상적으로 사용하는 방식으로는, 암호화와 관련된 내용을 암호문 데이터 내 접두 부분 또는 접미 부분에 포함시켜 사용하는 Prefix 방식과 Postfix 방식이다.
그러나 상술한 암호화 방식의 경우 암호화 과정에서 통상적으로 수행되는 방식이기 때문에, 암호문 데이터 내에서 제3자에 의해서도 위치에 기반한 추론이 가능하며, 특히 반복적인 암호화 과정에서 나타나는 규칙성으로 인하여, 암호화에 관한 정보가 유출되고, 궁극적으로 개인과 기업이 보호하고자 했던 개인 정보와 기업의 영업 비밀이 유출되기도 한다.
따라서, 기존의 Prefix 방식과 Postfix 방식에 벗어나, 암호화에 관한 정보를 암호문 데이터 내 포함시키고, 동시에 암호화 과정에서 나타나게 되는 규칙성을 제거하여, 제3자의 추론이 불가능하게 하는 방안이 필요하다.
공개특허공보 제10-2019-0048104호, 2019.06.26.
본 발명이 해결하고자 하는 과제는 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법 및 장치를 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또 다른 과제들이 존재할 수 있다.
상술한 과제를 해결하기 위한 본 발명에 따른 장치에 의해 수행되는 데이터 암호화 방법에 있어서, 암호화 키를 기초로 평문 데이터를 암호화하여, 제1 암호문 데이터를 생성하는 단계, 주기적으로 추출되는 노이즈 벡터를 인공지능 기반의 생성 모델에 적용하여, 제1 시그니처 코드 및 제2 시그니처 코드를 각각 생성하는 단계 및 제1 암호문 데이터에 제1 시그니처 코드 및 제2 시그니처 코드를 적용하여 제2 암호문 데이터를 생성하는 단계를 포함하고, 제1 시그니처 코드의 생성 단계는, 기 설정된 환산식을 통해 제1 시그니처 코드의 생성에 필요한 문자의 종류 및 교체 위치를 결정하고, 제1 암호문 데이터 내에서 교체 위치에 존재하는 기존 암호화 문자 및 상기 문자를 기 설정된 방식으로 연산한 제1 문자를 상기 제1 시그니처 코드로 생성하고, 상기 제2 시그니처 코드의 생성 단계는, 상기 환산식을 통해 상기 제2 시그니처 코드로 사용될 제2 문자의 종류 및 삽입 위치를 결정하고, 상기 제2 암호문 데이터의 생성 단계는, 상기 제1 암호문 데이터 내의 상기 교체 위치에 존재하는 상기 기존 암호화 문자를 상기 제1 문자로 교체하고, 상기 제1 암호문 데이터 내의 상기 삽입 위치에 상기 제2 문자를 삽입하여 생성하는 것을 특징으로 할 수 있다.
또한, 상기 제1 시그니처 코드 및 제2 시그니처 코드 생성 단계는, m개의(단, m은 자연수) 평문 데이터를 암호화할 때마다 상기 노이즈 벡터를 주기적으로 추출하는 단계, 상기 인공지능 기반의 생성 모델을 기반으로, 상기 주기적으로 추출된 노이즈 벡터를 인코딩하여 복수의 제1 입력값 및 제2 입력값을 생성하는 단계, 상기 환산식을 기반으로 상기 제1 입력값을 상기 제1 시그니처 코드로 변환하는 단계 및 상기 환산식을 기반으로 상기 제2 입력값을 상기 제2 시그니처 코드로 변환하는 단계를 포함할 수 있다.
또한, 상기 환산식은, 기 설정된 시그니처 코드 변환 테이블을 포함하고, 상기 제1 시그니처 코드 변환 단계는, 상기 시그니처 코드 변환 테이블을 기반으로 상기 제1 입력값에 상응하는 문자의 종류 및 상기 제1 암호문 데이터 내에서의 상기 문자의 교체 위치를 결정하는 단계, 상기 제1 암호문 데이터 내의 암호화 문자 중에서 상기 결정된 교체 위치에 존재하는 기존 암호화 문자를 확인하는 단계 및 상기 확인된 기존 암호화 문자 및 상기 결정된 문자를 기 설정된 방식으로 연산한 제1 문자를 생성하는 단계를 포함하고, 상기 제2 암호문 데이터 생성 단계는, 상기 생성된 제1 문자를 상기 제1 암호문 데이터 내의 상기 교체 위치에 교체하여 상기 제2 암호문 데이터를 생성할 수 있다.
또한, 상기 교체 위치 결정 단계는, 상기 노이즈 벡터를 상기 제1 암호문 데이터의 제1 위치에 첨부하는 단계 및 상기 제1 입력값 및 상기 제1 암호문 데이터의 길이 정보를 기반으로 상기 교체 위치를 결정하는 단계를 포함할 수 있다.
또한, 상기 기 설정된 방식의 연산은, 상기 시그니처 코드 변환 테이블 내에서 결정된 문자의 순번 및 상기 제1 암호문 데이터 내에서의 상기 교체 위치에 존재하는 상기 기존 암호화 문자의 순번에 대해 수행되는 사칙연산 중 어느 하나의 연산을 포함하고, 상기 제1 문자는, 상기 기존 암호화 문자의 순번 및 상기 결정된 문자의 순번에 대해 상기 어느 하나의 연산이 수행된 결과에 따른 순번을 가지는 문자인 것을 특징으로 할 수 있다.
또한, 상기 환산식은, 기 설정된 시그니처 코드 변환 테이블을 포함하고, 상기 제2 시그니처 코드 변환 단계는, 상기 시그니처 코드 변환 테이블을 기반으로 상기 제2 입력값에 상응하는 제2 문자 및 상기 제1 암호화 데이터 내에서 상기 제2 문자의 삽입 위치를 결정하고, 상기 제2 암호문 데이터 생성 단계는, 상기 결정된 제2 문자를 상기 제1 암호문 데이터 내의 상기 결정된 삽입 위치에 삽입할 수 있다.
또한, 상기 환산식은, 기 설정된 시그니처 코드 변환 테이블을 포함하고, 상기 시그니처 코드 변환 테이블을 기초로, 상기 제2 암호문 데이터를 주기적으로 갱신하는 단계를 더 포함하고, 상기 제2 암호문 데이터를 갱신하는 단계는, 상기 시그니처 코드 변화 테이블 내 문자 배열을 주기적으로 변경하고, 상기 문자 배열이 변경된 상기 시그니처 코드 변환 테이블을 기반으로, 상기 제2 암호문 데이터 내의 제1 시그니처 코드 또는 제2 시그니처 코드를 변경하여 상기 제2 암호문 데이터를 갱신할 수 있다.
또한, 상기 인공지능 기반의 생성 모델은, 상기 노이즈 벡터의 분포 정보가 주기적으로 변경되어 재학습되고, 상기 제2 암호문 데이터는, 상기 재학습된 인공지능 기반의 생성 모델을 기초로 주기적으로 갱신될 수 있다.
또한, 상술한 과제를 해결하기 위한 본 발명에 따른 장치는, 메모리, 평문 데이터를 획득하는 획득부 및 암호화 키를 기초로 평문 데이터를 암호화하여, 제1 암호문 데이터를 생성하고, 주기적으로 추출되는 노이즈 벡터를 인공지능 기반의 생성 모델에 적용하여, 제1 시그니처 코드 및 제2 시그니처 코드를 각각 생성하고, 제1 암호문 데이터에 제1 시그니처 코드 및 제2 시그니처 코드를 적용하여 제2 암호문 데이터를 생성하는 프로세서를 포함하고, 상기 프로세서는, 상기 제1 시그니처 코드를 생성 시에, 기 설정된 환산식을 통해 제1 시그니처 코드의 생성에 필요한 문자의 종류 및 교체 위치를 결정하고, 제1 암호문 데이터 내에서 교체 위치에 존재하는 기존 암호화 문자 및 상기 문자를 기 설정된 방식으로 연산한 제1 문자를 상기 제1 시그니처 코드로 생성하고, 상기 제2 시그니처 코드를 생성 시에, 상기 환산식을 통해 상기 제2 시그니처 코드로 사용될 제2 문자의 종류 및 삽입 위치를 결정하며, 상기 제2 암호문 데이터를 생성 시에, 상기 제1 암호문 데이터 내의 상기 교체 위치에 존재하는 상기 기존 암호화 문자를 상기 제1 문자로 교체하고, 상기 제1 암호문 데이터 내의 상기 삽입 위치에 상기 제2 문자를 삽입하여 생성하는 것을 특징으로 할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합하여 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
상술한 본 발명에 의하면, 암호문 데이터 내 포함되어 있는 암호화 정보에 관한 데이터를 제3자가 추론하거나 인지하지 못하도록 한다.
또한, 인공지능 기반의 암호화 과정을 통해 암호화 과정에서 나타나게 되는 규칙성을 제거하고, 암호문 데이터를 주기적으로 갱신함에 따라 암호문 데이터의 보안성을 강화할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1a는 본 발명에 따른, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 장치의 개략적인 구성도이다.
도 1b는 본 발명에 따른, 인공지능 기반의 암호화 코드 생성 모델을 설명하기 위한 예시도이다.
도 2는 본 발명에 따른, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법을 개략적으로 나타낸 순서도이다.
도 3은 본 발명에 따른, 개인 정보를 포함하는 평문 데이터를 암호화 키를 이용하여 제1 암호문으로 암호화하는 것을 나타낸 예시도이다.
도 4는 본 발명에 따른, 제1 시그니처 코드 및 제2 시그니처 코드 생성 방법에 대한 개략적인 순서도이다.
도 5는 본 발명에 따른 주기적으로 노이즈 벡터를 추출하는 것을 나타낸 예시도이고,
도 6a는 본 발명에 따른, 인공지능 기반의 생성 모델을 설명하기 위한 예시도이다.
도 6b와 도 6c는 본 발명에 따른, 인공지능 기반의 생성 모델을 이용하여, 노이즈 벡터를 인코딩하는 것을 나타낸 예시도이다.
도 7a와 도 7b는 본 발명에 따른, 노이즈 벡터를 인코딩 하여 제1 입력값 및 제2 입력값을 생성하는 것을 나타낸 예시도이고,
도 8a와 도 8b는 본 발명에 따른, 제1 시그니처 코드 및 제2 시그니처 코드를 구성하는 각각의 문자를 생성하는 방법을 나타낸 예시도이다.
도 9는 본 발명에 따른, 제2 암호문 데이터를 생성하는 방법을 개략적으로 나타낸 순서도이다.
도 10a는 본 발명에 따른, 제1 시그니처 코드를 구성하는 각각의 문자에 대한 제1 암호문 데이터 내의 교체 위치를 각각 결정하는 것을 나타낸 예시도이다.
도 10b는 본 발명에 따른, 문자 종류 코드 표를 나타낸 도면이다.
도 10c는 본 발명에 따른, 제2 시그니처 코드를 구성하는 각각의 문자에 대한 제1 암호문 데이터 내의 삽입 위치를 각각 결정하는 것을 나타낸 예시도이다.
도 11은 본 발명에 따른, 노이즈 값과 제1 시그니처 코드 및 제2 시그니처 코드를 기초로, 제2 암호문 데이터를 생성하는 것을 나타낸 예시도이다.
도 12는 본 발명에 따른, 제1 암호문 데이터 길이 정보와, 시그니처 코드 식별 키를 더 이용하여 제2 암호문 데이터를 생성하는 예시도이다.
도 13은 본 발명에 따른, 제2 암호화 데이터를 복호화 하는 방법을 개략적으로 나타낸 순서도이다.
도 14는 본 발명에 따른, 시그니처 코드 변환 테이블 조정을 통한, 제2 암호문 데이터의 갱신 방법을 나타낸 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
종래 많은 기업이나 보안 업체에서는 암호화 방식으로, 개인 정보를 포함하는 평문 데이터를 암호화하여 암호문 데이터를 생성한 후, 암호문 데이터의 접두 또는 접미 부분에 암호화 Context에 관한 정보(암호화 키, 암호화 알고리즘 등)를 포함시키는, Prefix 또는 Postfix 방식을 활용하였다.
그러나 이러한 암호화 방식은 이제는 암호화를 위해 통상적으로 사용되기 때문에, 암호화 과정에서 참여하거나 개입하지 않음에도 불구하고, 제3자가 암호문 또는 암호 데이터의 접두 또는 접미 부분에 암호화와 관련된 정보가 포함되어 있다고 쉽게 추론이 가능하다. 즉, 암호화 방식과 관련된 Prefix 방식 그리고 Postfix 방식은 현재로서는 보안상의 취약점을 가지고 있다.
본 발명은 이러한 문제점을 해결하고자, 암호화 Context 정보를 암호문 데이터의 접두 또는 접미가 아닌 내부에 삽입한다. 이와 더불어 암호화 Context 정보를 포함하는 문자 또는 코드를 생성하는데 있어, 제3자가 규칙성을 추론하지 못하도록 인공지능 기반의 생성 모델을 활용한다. 이하에서는, 첨부된 도면을 참조하여 이와 관련된 본 발명의 실시예에 대하여 상세히 설명하도록 한다.
도 1a는 본 발명에 따른, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 장치(10)의 개략적인 구성도이고, 도 1b는 본 발명에 따른, 인공지능 기반의 암호화 코드 생성 모델을 설명하기 위한 예시도이다.
도 1a를 참조하면, 장치(10)는 메모리(13), 획득부(12), 프로세서(11)를 포함한다. 다만, 몇몇 실시예에서 장치(10)는 도 1a에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수도 있다. 여기서, 장치(10)는 컴퓨팅 장치로서, 서버장치에 해당될 수 있다.
먼저 획득부(12)는 사용자로부터 개인 정보를 포함하는 평문 데이터를 입력 받을 수 있다. 또는 획득부(12)는 제1 입력값 및 제2 입력값을 생성하기 위한 임의의 노이즈 벡터(Noise Vector)를 사용자로부터 입력 받거나, 사전에 설정된 노이즈 벡터 네트워크 내에서 임의의 노이즈 벡터를 획득할 수 있다.
한편, 프로세서(11)는 평문 데이터를 암호화 키를 기초로 암호화하여 제1 암호문 데이터를 생성하고, 인공지능 기반의 생성 모델을 기초로 임의의 노이즈 벡터를 인코딩하여 제1 입력값 및 제2 입력값을 생성할 수 있다.
이후, 프로세서(11)는 기 설정된 시그니처 코드 변환 테이블을 기초로 상기 제1 입력값을 제1 시그니처 코드로 변환하고, 제2 입력값을 제2 시그니처 코드로 변환할 수 있다.
그리고, 프로세서(11)는 상기 제1 시그니처 코드 및 상기 제2 시그니처 코드를 상기 제1 암호문 데이터에 교체 또는 삽입하여 제2 암호문 데이터를 생성할 수 있다.
메모리(13)는 인공지능 기반의 생성 모델에 관한 알고리즘, 암호화 과정에서 이용되는 암호화 키, 암호화 알고리즘 등을 저장할 수 있다.
여기서, 제1 시그니처 코드 및 제2 시그니처 코드를 포함하는 시그니처 코드는 본 발명의 인공지능 기반의 생성 모델을 통해 생성되는 독자적 방식의 암호 코드일 수 있다.
이하, 데이터 암호화를 수행하는 주체는 상술한 사용자에 의해 운영되는 인공지능 기반의 생성 모델을 이용한 장치(10)에 의해 수행되는 것으로 이해될 수 있지만, 이에 제한되는 것은 아니다. 한편, 장치(10)는, 데이터 암호화를 수행하는 사용자가 운영하는 서버 컴퓨터로 이해될 수도 있다. 그러나 이에 제한되는 것은 아니다.
이하, 프로세서(11)의 동작은 장치(10)의 동작과 동일하다고 볼 수 있다.
도 2는 본 발명에 따른, 인공지능 기반의 암호화 코드 생성 모델을 이용한 데이터 암호화 방법을 개략적으로 나타낸 순서도이다.
먼저 도 2를 참조하면, 프로세서(11)는 입력된 평문 데이터를 암호화 키를 기초로 암호화하여, 제1 암호문 데이터를 생성할 수 있다(S110).
구체적으로 프로세서(11)는 사용자로부터 개인정보를 포함하는 평문 데이터를 입력 받으면, 사전 설정에 따라 암호화 키를 이용하여 또는 단방향 또는 양방향 암호 알고리즘을 적용하여 암호화를 수행할 수 있다.
예를 들어, 암호 알고리즘으로 SHA512, AES256, SEED128, ARIA256 등이 이용될 수 있으나, 이에 제한되는 것은 아니며, 본 발명이 속하는 기술분야에서 잘 알려진 임의의 암호 알고리즘이 이용될 수 있다. 이때, 제1 암호문에는 평문 이외에 암호화된 평문에 대한 스펙 정보, 예를 들며 암호화 알고리즘 방식, key index 등이 포함될 수 있다,
도 3은 본 발명에 따른, 개인 정보를 포함하는 평문 데이터를 암호화 키를 이용하여 제1 암호문으로 암호화하는 것을 나타낸 예시도이다.
도 3을 참조하면, 특정인의 성명에 관한 개인 정보를 포함하는, 평문 데이터 “홍길동”이 사용자로부터 입력되면, 프로세서(11)는 소정의 암호 알고리즘에 따라 평문 데이터를 암호화하여 제1 암호문 데이터인, “B2wDfsDfADSFBf4A4SF6DG77SsAdf8kjdGWdg”를 생성한다.
한편, 다시 도 2를 참조하면, 프로세서(11)는 제1 암호문 데이터를 생성한 후, 주기적으로 추출되는 노이즈 벡터를 인공지능 기반의 생성 모델에 적용하여, 제1 시그니처 코드 및 제2 시그니처 코드를 각각 생성할 수 있다(S120).
여기서, 프로세서(11)는 상기 제1 시그니처 코드 및 제2 시그니처 코드를 생성할 때, 동일 주기에 속하는 평문 데이터의 경우, 동일한 노이즈 벡터에 의해 각각의 제1 시그니처 코드 및 제2 시그니처 코드를 생성할 수 있다.
구체적으로, 프로세서(11)는 기 설정된 환산식을 통해 제1 시그니처 코드의 생성에 필요한 문자의 종류 및 교체 위치를 결정하고, 제1 암호문 데이터 내에서 교체 위치에 존재하는 기존 암호화 문자 및 상기 문자를 기 설정된 방식으로 연산한 제1 문자를 상기 제1 시그니처 코드로 생성할 수 있다.
또한, 프로세서(11)는 상기 환산식을 통해 상기 제2 시그니처 코드로 사용될 제2 문자의 종류 및 삽입 위치를 결정할 수 있다.
보다 상세하게는, 프로세서(11)는 상기 장치(10)가 설치되어 있는 시스템 상에서 노이즈 벡터를 추출할 수 있다. 그러나 이에 제한되는 것은 아니며, 사용자로부터 획득부(12)를 통해 임의의 노이즈 벡터에 관한 정보를 입력 받을 수도 있을 것이다.
한편, 본 발명의 일 실시예로, 노이즈 벡터는 컴퓨터, 즉 하드웨어의 시스템 정보에 기반하여 생성되는 난수에 기반하여 추출될 수 있다. 예를 들어, 하드웨어의 온도, 시각 등에 기초하여 생성되는 난수를 상술한 노이즈 벡터로 활용할 수도 있다. 이를 위해, 메모리(13)에는 임의의 난수를 생성하는 프로그램이 저장될 수 있다.
추출된 노이즈 벡터는 시그니처 코드를 생성하는데 이용될 수 있다. 구체적으로는, 프로세서(11)는 인공지능 기반의 생성 모델에 상기 노이즈 벡터를 입력하여, 제1 입력값 및 제2 입력값을 생성하고, 상기 제1 입력값 및 상기 제2 입력값을 각각 제1 시그니처 코드 및 제2 시그니처 코드로 변환할 수 있다.
이하에서는, 도 4 내지 도 8b를 참조하면, S120 단계의 제1 시그니처 코드 및 제2 시그니처 코드 생성 방법에 대하여 상세히 설명하도록 한다.
도 4는 본 발명에 따른, 제1 시그니처 코드 및 제2 시그니처 코드 생성 방법에 대한 개략적인 순서도이고, 도 5는 본 발명에 따른 주기적으로 노이즈 벡터를 추출하는 것을 나타낸 예시도이고, 도 6a와 도 6b는 본 발명에 따른, 인공지능 기반의 생성 모델을 이용하여, 노이즈 벡터를 인코딩하는 것을 나타낸 예시도이고, 도 7a와 도 7b는 본 발명에 따른, 노이즈 벡터를 인코딩 하여 제1 입력값 및 제2 입력값을 생성하는 것을 나타낸 예시도이고, 도 8a와 도 8b는 본 발명에 따른, 제1 시그니처 코드 및 제2 시그니처 코드를 구성하는 각각의 문자를 생성하는 방법을 나타낸 예시도이다.
먼저 도 4를 참조하면, m개의(단, m은 자연수) 평문 데이터를 암호화할 때마다 상기 노이즈 벡터를 주기적으로 추출할 수 있다(S121).
도 5를 참조하면, 프로세서(11)는 m이 2라고 가정하였을 때, 첫 번째로 입력된 평문 데이터 1과 두 번째로 입력된 평문 데이터 2에는 동일한 노이즈 벡터가 추출되어 시그니처 코드를 생성할 수 있다. 구체적으로, 프로세서(110)는 평문 데이터 1이 입력되었을 때, 노이즈 벡터 1을 추출하여, 시그니처 코드를 생성한 후 노이즈 벡터 1에 관한 정보를 메모리(13)에 저장할 수 있다. 그리고 프로세서(11)는 평문 데이터 2가 입력되었을 때는, 새로운 노이즈 벡터를 추출하지 않으며, 평문 데이터 1의 제1 시그니처 코드 또는 제2 시그니처 코드 생성 시 이용되었던 노이즈 벡터 1에 관한 정보를 추출하여, 이를 기초로 제1 시그니처 코드 또는 제2 시그니처 코드를 생성할 수 있다.
이와 마찬가지로 세 번째로 입력된 평문 데이터 3과 네 번째로 입력된 평문 데이터 4는 동일한 노이즈 벡터 2가, 다섯 번째로 입력된 평문 데이터 5와 여섯 번째로 입력된 평문 데이터 6은 동일한 노이즈 벡터 3이 제1 시그니처 코드 또는 제2 시그니처 코드를 생성하기 위하여 이용될 수 있다. 즉, 동일한 주기에 속한 평문 데이터는 동일한 노이즈 벡터가 이용될 수 있다.
다시 도 4를 참조하면, 프로세서(11)는 인공지능 기반의 생성 모델을 기반으로, 상기 주기적으로 추출된 노이즈 벡터를 인코딩하여 복수의 제1 입력값 및 제2 입력값을 생성할 수 있다(S122).
구체적으로 노이즈 벡터는 인공지능 기반의 생성 모델을 이용하여 인코딩 될 수 있다. 예를 들어, 노이즈 벡터를 원-핫 인코딩(One-Hot Encoding)을 통해 이진형 벡터로 변환할 수 있으나, 이에 제한되는 것은 아니다. 한편, 상술한 노이즈 벡터의 인코딩 과정은 인공지능 기반의 생성 모델(Black Box)을 이용하므로, 노이즈 벡터를 인코딩하는 과정에서 내재되어 있는 규칙성을 제3 자가 추론하거나 인지할 수 없도록 하는 효과를 발휘하게 된다.
도 6a를 참조하면, 본 발명에 따른 양자 내성 암호화 원천 기술(Dynamic Signature)은 위치선정 방식을 문자 종류와 독립적으로 활용할 수 있는 신경망 아웃풋을 사용하여, 최대한 콤플렉스(Complex)한 평면을 만들 수 있다.
도 6b를 참조하면, 프로세서(11)는 제1 인공지능 기반의 생성 모델(Black Box)을 기반으로 원-핫 인코딩을 통해 획득한 임의의 노이즈 벡터를 4개의 이진형 벡터인, [0 1 0 0 0 0 0 0 0 0], [0 0 1 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 1 0], [0 0 0 0 0 1 0 0 0 0]로 생성할 수 있다. 도면에 명확히 도시되지는 않았으나, 4개의 이진형 벡터를 생성하기 위해서 프로세서(11)는 4개의 임의의 벡터를 추출할 수 있다.
또한, 도 6c를 참조하면, 프로세서(11)는 제2 인공지능 기반의 생성 모델(Black Box)을 기반으로 원-핫 인코딩을 통해 획득한 임의의 노이즈 벡터를 4개의 이진형 벡터인, [0 0 0 0 0 1 0 0 0 0], [0 1 0 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 1 0], [0 0 0 0 0 0 0 1 0 0]로 생성할 수 있다. 도면에 명확히 도시되지는 않았으나, 4개의 이진형 벡터를 생성하기 위해서 프로세서(11)는 4개의 임의의 벡터를 추출할 수 있다.
한편, 프로세서(11)는 노이즈 벡터를 인코딩 한 후에는 제1 입력값 및 제2 입력값을 생성할 수 있다.
예를 들어, 도 7a를 참조하면, 프로세서(11)는 인공지능 기반의 생성 모델을 기초로, 노이즈 벡터를 4개의 원-핫 벡터로 인코딩 한 후, 상기 원-핫 벡터를 기초로 제1 입력값을 생성할 수 있다. 도 4를 참조하면, 프로세서(11)는 각각의 원-핫 벡터를 각각의 숫자로 변환하고, 변환된 숫자로 구성된 제1 입력값을 생성할 수 있다. 도 4를 참조하면, 4개의 이진형 벡터인 [0 1 0 0 0 0 0 0 0 0], [0 0 1 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 1 0], [0 0 0 0 0 1 0 0 0 0] 를 기초로, '1285'의 제1 입력값을 생성할 수 있다.
이때, 프로세서(11)는 노이즈 벡터의 입력 순서 또는 노이즈 벡터가 인코딩 되어 생성되는 원-핫 벡터의 생성 순서에 기초하여, 각각의 원-핫 벡터로부터 변환된 각각의 숫자로 제1 입력값을 생성할 수 있다. 예를 들어, [0 1 0 0 0 0 0 0 0 0], [0 0 1 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 1 0], [0 0 0 0 0 1 0 0 0 0]의 4개의 벡터 중 1번째로 생성된 벡터인, [0 1 0 0 0 0 0 0 0 0]의 변환으로 생성된 '1'은 제1 입력값의 첫 번째 자릿값에 해당한다.
도 7b를 참조하면, 프로세서(11)는 인공지능 기반의 생성 모델을 기초로, 노이즈 벡터를 4개의 원-핫 벡터로 인코딩 한 후, 상기 원-핫 벡터를 기초로 제2 입력값을 생성할 수 있다. 도 4를 참조하면, 프로세서(11)는 각각의 원-핫 벡터를 각각의 숫자로 변환하고, 변환된 숫자로 구성된 제2 입력값을 생성할 수 있다. 도 4를 참조하면, 4개의 이진형 벡터인 [0 0 0 0 0 1 0 0 0 0], [0 1 0 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 1 0], [0 0 0 0 0 0 0 1 0 0] 를 기초로, '5187'의 제2 입력값을 생성할 수 있다.
이때, 프로세서(11)는 노이즈 벡터의 입력 순서 또는 노이즈 벡터가 인코딩 되어 생성되는 원-핫 벡터의 생성 순서에 기초하여, 각각의 원-핫 벡터로부터 변환된 각각의 숫자로 제1 입력값을 생성할 수 있다. 예를 들어, [0 0 0 0 0 1 0 0 0 0], [0 1 0 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 1 0], [0 0 0 0 0 0 0 1 0 0]의 4개의 벡터 중 1번째로 생성된 벡터인, [0 0 0 0 0 1 0 0 0 0]의 변환으로 생성된 '5'는 제2 입력값의 첫 번째 자릿값에 해당한다.
다시 도 4를 참조하면, 프로세서(11)는 상기 환산식을 기반으로 상기 제1 입력값을 상기 제1 시그니처 코드로 변환할 수 있다(S123). 여기서, 상기 환산식은 기 설정된 시그니처 코드 변환 테이블을 포함할 수 있다.
보다 상세하게는, 프로세서(11)는 상기 시그니처 코드 변환 테이블을 기반으로 상기 제1 입력값에 상응하는 문자의 종류 및 상기 제1 암호문 데이터 내에서의 상기 문자의 교체 위치를 결정할 수 있다.
그리고, 프로세서(11)는 상기 제1 암호문 데이터 내의 암호화 문자 중에서 상기 결정된 교체 위치에 존재하는 기존 암호화 문자를 확인하고, 상기 확인된 기존 암호화 문자 및 상기 결정된 문자를 기 설정된 방식으로 연산한 제1 문자를 생성할 수 있다.
도 8a를 참조하면, 프로세서(11)는 제1 입력값과 상기 시그니처 코드 변환 테이블을 기초로 상기 제1 입력값에 상응하는 문자의 종류를 결정할 수 있다.
여기서, 시그니처 코드 변환 테이블을 구성하는 전체 문자의 개수가 30이라고 가정하면, 제1 입력값(1285)의 1번째 숫자인 1에 상응하는 문자는 다음과 같이 결정될 수 있다. 먼저 다음의 수학식 1을 통해 시그니처 코드 변환 테이블 내에서의 변환될 문자가 위치한 순서를 결정한다.
[수학식 1]
변환할 제1 입력값의 수/(제1 입력값을 구성하는 수의 합) X 시그니처 코드 변환 테이블을 구성하는 전체 문자의 개수 + 변환할 제1 입력값의 수의 이전 자리 값의 결과값
즉, 제1 입력값(1285)의 1번째 숫자인 1의 경우 시그니처 코드 변환 테이블 내 2번째(1/(1+2+8+5) x 30=2)의 문자인, "0"로 변환될 수 있다.
이와 같이 동일한 방법에 의하면, 제1 입력값(1285)의 2번째 숫자인 2는 시그니처 코드 변환 테이블 내 6번째의 문자인, "4"로, 제1 입력값(1285)의 3번째 숫자인 8은 시그니처 코드 변환 테이블 내 21번째 문자인, "J"로, 제1 입력값의 마지막 문자인 5는, 시그니처 코드 변환 테이블 내 30번째 문자인, "S"로 변환될 수 있다. 이와 같이, 제1 입력값을 구성하는 각각의 숫자는 각각의 문자, 숫자 또는 기호 등으로 변환될 수 있다.
여기서 시그니처 코드 변환 테이블이란, 사전에 정의된 중복되지 않는 순서 정보에 기초하여, 시그니처 코드를 구성하게 되는 문자, 숫자, 기호 등이 배치되어 구성된 변환 테이블을 의미할 수 있다.
그리고, 프로세서(11)는 상기 제1 암호문 데이터 내에서 상기 교체 위치에 존재하는 상기 기존 암호화 문자(2, D, 7, d) 및 상기 문자(0, 4, J, S)를 기 설정된 방식으로 연산하여 상기 제1 시그니처 코드를 구성하는 각각의 제1 문자(를 생성할 수 있다.
여기서, 도 10a와 도 10b를 참조하면, 교체 위치는 제1 암호문 데이터 내에서 2번째, 7번째, 24번째, 36번째로 결정될 수 있다. 이후, 도 10a와 도 10b에 대해 상세히 후술하도록 한다.
여기서, 상기 기 설정된 방식의 연산은, 상기 시그니처 코드 변환 테이블 내에서 결정된 문자의 순번 및 상기 제1 암호문 데이터 내에서의 상기 교체 위치에 존재하는 상기 기존 암호화 문자의 순번에 대해 수행되는 사칙연산 중 어느 하나의 연산을 포함할 수 있다.
이러한, 상기 제1 문자는, 상기 기존 암호화 문자의 순번 및 상기 결정된 문자의 순번에 대해 상기 어느 하나의 연산이 수행된 결과에 따른 순번을 가지는 문자일 수 있다.
일 예로, 프로세서(11)는 상기 기 설정된 방식의 연산을 통해 상기 시그니처 코드 변환 테이블 내에서 결정된 문자의 순번(2번째, 7번째, 24번째, 36번째) 및 상기 제1 암호문 데이터 내에서의 상기 교체 위치에 존재하는 상기 기존 암호화 문자의 순번(2번째, 13번째, 7번째, 39번째)에 대해 더하기 연산을 수행하여 상기 수행 결과에 해당하는 순번(4번째, 20번째, 31번째, 75번째)을 결정할 수 있다.
그리고, 프로세서(11)는 해당하는 순번에 대해 도 10b의 문자 종류 코드 표를 참조하여 상기 제1 시그니처 코드를 구성하는 각각의 제1 문자(4, R, V, D)를 확인할 수 있다.이때, 상기 해당하는 순번이 상기 문자 종류 코드 표의 개수를 넘어가면 표 처음으로 다시 돌아가서 순차적으로 셈하여 상기 제1 문자를 확인할 수 있다.
다시 도 4를 참조하면, 프로세서(11)는 상기 환산식을 기반으로 상기 제2 입력값을 상기 제2 시그니처 코드로 변환할 수 있다(S124).
구체적으로 도 8b를 참조하면, 프로세서(11)는 제2 입력값과 시그니처 코드 변환 테이블을 기초로 제2 입력값에 상응하는 상기 제2 시그니처 코드를 구성하는 각각의 문자를 결정할 수 있다. 프로세서(11)는 시그니처 코드 변환 테이블을 구성하는 전체 문자의 개수가 30이라고 가정하면, 제2 입력값(5187)의 1번째 숫자인 5에 상응하는 제2 시그니처 코드 문자는 다음과 같이 결정할 수 있다. 프로세서(11)는 위에 기재한 수학식 1을 통해 시그니처 코드 변환 테이블 내에서의 변환될 문자가 위치한 순서를 결정할 수 있다.
즉, 제2 입력값(5187)의 1번째 숫자인 5의 경우 시그니처 코드 변환 테이블 내 7번째(5/(5+1+8+7) x 30=7)의 문자인, "5"로 변환된다.
이와 같이 동일한 방법에 의하면, 제2 입력값(5187)의 2번째 숫자인 1은 시그니처 코드 변환 테이블 내 8번째의 문자인, "6"로, 제1 입력값(5187)의 3번째 숫자인 8은 시그니처 코드 변환 테이블 내 12번째 문자인, "A"로, 제1 입력값의 마지막 문자인 7은, 시그니처 코드 변환 테이블 내 22번째 문자인, "K"로 변환된다. 즉, 제2 시그니처 코드는 "56AK"로 생성될 것이다. 이와 같이, 제2 입력값을 구성하는 각각의 숫자는 제2 시그니처 코드를 구성하는 각각의 문자, 숫자 또는 기호 등으로 변환된다.
한편, 본 발명의 일 예로, 인공지능 기반의 생성 모델은 다봉 분포(multimodal-distribution)의 네트워크 내 노이즈 벡터를 기초로 사전 학습된 것일 수 있다. 즉, 일반적인 정규 분포를 가진 네트워크 내 노이즈 벡터가 아닌 다봉 분포의 네트워크 내 노이즈 벡터를 기초로 사전 학습함으로써, 인공지능 기반의 생성 모델의 결과값의 피처 스페이스(Feature Space)의 복잡성을 높일 수 있을 것이다.
이외에도, 사전 학습 과정에서, 인공지능 기반의 생성 모델의 일부 은닉층(Hidden State)의 Drop-Out이나, Distillation학습 기법을 사용하여 제3자의 인공지능 모델의 파라미터의 예측 가능성을 낮추고, 파라미터의 모방을 방지할 수도 있다.
또한, 사용자에 의해 기 설정된 인공지능 기반의 생성 모델의 가중치 값에 따라서 사전 학습을 수행할 수도 있을 것이다.
다시 도 2를 살펴보면, 프로세서(11)는 제1 시그니처 코드 및 제2 시그니처 코드를 생성하면, 상기 제1 시그니처 코드, 상기 제2 시그니처 코드 및 노이즈 벡터를 제1 암호문 데이터에 교체 또는 삽입하여 제2 암호문 데이터를 생성할 수 있다(S130).
이하에서는, 도 9 내지 도 11을 참조하면, 제2 암호문 데이터를 생성하는 구체적인 방법에 대하여 서술하도록 한다.
도 9는 본 발명에 따른, 제2 암호문 데이터를 생성하는 방법을 개략적으로 나타낸 순서도이고, 도 10a와 도 10c는 본 발명에 따른, 제1 시그니처 코드 및 제2 시그니처 코드를 구성하는 각각의 문자에 대한 제1 암호문 데이터 내의 교체 위치 및 삽입 위치를 각각 결정하는 것을 나타낸 예시도이고, 도 11은 노이즈 값과 제1 시그니처 코드 및 제2 시그니처 코드를 기초로, 제2 암호문 데이터를 생성하는 것을 나타낸 예시도이다.
먼저 도 9를 살펴보면, 본 발명의 일 예로, 노이즈 벡터를 제1 암호문 데이터의 제1 위치에 첨부한다(S131). 여기서 제1 위치는 제1 암호문 데이터의 어두 또는 어미에 해당할 수 있다. 바람직하게는, 제1 암호문 데이터의 종결부에 상기 노이즈 벡터를 첨부하는, Postfix방식에 의할 것이다.
보다 구체적으로 추출된 노이즈 벡터를 바이트(byte)로 변환하여, 제1 암호문 데이터의 종결부에 첨부할 수 있다. 4개의 노이즈 벡터가 추출되었다고 가정하면, 상기 4개의 노이즈 벡터를 각각 바이트 형식으로 변환하여, 각각의 노이즈 벡터가 추출된 순서에 따라서, 제1 암호문 데이터에 Postfix방식에 따라 첨부될 수 있을 것이다.
다시 도 9를 살펴보면, 프로세서(110)는 제1 입력값 및 제2 입력값과 제1 암호문 데이터의 길이 정보를 기초로 제1 암호문 데이터 내에서의 상기 각각의 문자의 교체 위치 또는 삽입 위치를 결정할 수 있다(S132).
구체적으로, 프로세서(11)는 제1 시그니처 코드 및 제2 시그니처 코드를 구성하는 각각의 문자, 숫자 또는 기호가 제1 암호문 내에서 교체 또는 삽입되게 될 교체 위치 및 삽입 위치를 생성할 수 있다.
본 발명의 일 예로, 시그니처 코드의 교체 위치 또는 삽입 위치는 상술한 비율 방식에 따라서 결정될 수 있다.
예를 들어, 도 10a를 참조하면, 먼저 제1 시그니처 코드의 첫 번째 문자인 4의 교체 위치는 다음의 수학식 2에 의해 결정된다.
[수학식 2]
교체 위치를 결정할 제1 입력값의 수/(제1 입력값을 구성하는 수의 합) X 제1 암호문 데이터의 길이 + 교체 위치를 결정할 제1 입력값의 수의 이전 자리 값의 결과값
즉, 4은 제1 암호문 데이터 내에서 2번째(1/(1+2+8+5) x 37=2) 위치에 교체되게 된다. 이와 같이 시그니처 코드를 구성하는 나머지 문자 R, V, D 의 각각의 교체 위치를 계산하면, R는 제1 암호문 데이터 내 7번째, V는 제1 암호문 데이터 내 24번째 그리고 D는 제1 암호문 데이터 내 36번째로 교체 위치가 결정된다.
도 10c를 참조하면, 먼저 제2 시그니처 코드의 첫 번째 문자인 5의 삽입 위치는 위에 기재한 수학식 2에 의해 결정된다.
즉, 5는 제1 암호문 데이터 내에서 9번째(5/(5+1+8+7) x 37=9) 위치에 삽입되게 된다. 이와 같이 시그니처 코드를 구성하는 나머지 문자 6, A, K의 각각의 삽입 위치를 계산하면, 6은 제1 암호문 데이터 내 11번째, A는 제1 암호문 데이터 내 25번째 그리고 K는 제1 암호문 데이터 내 37번째로 삽입 위치가 결정된다.
이때, 상기 수학식 1 및 수학식 2를 이용한 계산 과정에서, 프로세서(11)는 수학식 1 및 수학식 2를 통해 산출된 값 미만의 최대값으로 시그니처 코드 변환 테이블 내에서의 변환될 문자 위치 순서와 삽입 위치를 결정할 수 있다.
다시 도 9를 살펴보면, 제1 시그니처 코드와 제2 시그니처 코드를 구성하는 각각의 문자의 교체 위치 및 삽입 위치가 결정되면, 결정된 각각의 교체 위치와 삽입 위치에 상기 각각의 문자를 교체 또는 삽입할 수 있다(S133).
도 11을 참조하면, 먼저, 상술한 바와 같이, S131 단계에서, 프로세서(11)는 노이즈 벡터에 관한 값인, "0011001"을 제1 암호문 데이터에 Postfix 방식에 의하여 첨부할 수 있다. 구체적으로, 프로세서(11)는 기존의 제1 암호문 데이터의 종결부에 노이즈 벡터에 관한 값을 첨부할 수 있다.
그리고, S132 단계에서, 프로세서(11)는 상기 제1 시그니처 코드를 구성하는 '4', 'R', 'V', 'D'와 상기 제2 시그니처 코드를 구성하는 '5', '6', 'A', 'K'를 각각 결정된 교체 위치 및 삽입 위치에 따라 제1 암호문 데이터에 교체 또는 삽입할 수 있다. 이를 통해, 프로세서(11)는 제1 암호문 데이터인 " B2wDfsDfADSFBf4A4SF6DG77SsAdf8kjdGWdg"에 노이즈 벡터와 시그니처 코드가 교체 또는 삽입된, 제2 암호문 데이터인 " B4wDfsRfA5DS6FBf4A4SF6DG7VSAsAdf8kjdGWDgK011001"를 생성한다.
한편, 상술한 바와 같이, 동일한 주기 내의 평문 데이터는 동일한 노이즈 벡터를 이용하여, 동일한 시그니처 코드를 생성한다. 그러나, 제2 암호문 데이터를 생성하는 과정에서, 결정되는 제1 시그니처 코드 또는 제2 시그니처 코드를 구성하는 각각의 문자, 숫자, 기호의 교체 위치 또는 삽입 위치는, 제1 암호문 데이터의 길이에 기반한다. 그렇기 때문에, 동일한 제1 시그니처 코드 또는 제2 시그니처 코드를 이용하는 동일한 주기의 평문 데이터라 하더라도, 각각의 평문 데이터에 의해 생성된 제1 암호문 데이터에 따라서, 각각의 제1 암호문 데이터에 교체 또는 삽입되는 길이 정보는 상이할 수 밖에 없다.
도 12는 제1 암호문 데이터 길이 정보를 더 이용하여 제2 암호문 데이터를 생성하는 예시도이다.
본 발명의 일 예로, 상술한 S130 단계는, 제1 암호문 데이터의 길이에 관한 정보를 상기 제1 암호문 데이터의 제2 위치에 첨부하여 제2 암호문 데이터를 생성할 수도 있다. 구체적으로, 제2 암호문 데이터는, 제1 암호문 데이터의 길이 정보에 더 기초하여 생성될 수도 있다. 이때, 제1 암호문 데이터의 길이 정보가 첨부되는 제2 위치는 상술한 노이즈 벡터가 첨부되는 제1 위치와는 중복되지 않도록 결정된다. 즉, Postfix 방식에 의하여 노이즈 벡터에 관한 값이 제1 암호문 데이터에 첨부되었다면, 제1 암호문 데이터의 길이에 관한 정보는 Prefix 방식에 의하여 제1 암호문 데이터에 첨부될 수 있다.
즉, 상술한 바와 같이, 동일한 주기 내의 평문 데이터는 동일한 노이즈 벡터에 의하여 생성된 동일한 시그니처 코드를 기초로, 각각 제2 암호문 데이터로 생성된다. 따라서, 동일한 주기 내의 평문 데이터에 상응하는 각각의 제2 암호문 데이터의 경우에는 동일한 시그니처 코드 식별 키가 첨부될 것이다.
도 12를 참조하면, 노이즈 벡터가 첨부된 후, 제1 시그니처 코드 및 제2 시그니처 코드의 각각의 문자가 교체 또는 삽입된 데이터에 제1 암호문 데이터의 길이 정보가 더 첨부되는 것을 알 수 있다. 또한 상술한 바와 같이, 제1 암호문 데이터의 길이 정보는 노이즈 벡터에 관한 값과는 중복되는 않는 위치에 삽입되었다. 구체적으로, 제1 암호문 데이터의 길이 정보는 제1 암호문 데이터의 시작부에 노이즈 벡터에 관한 값은 제1 암호문 데이터의 종결부에 첨부된 것을 알 수 있다.
한편 본 발명의 일 예로, 도면에 명확히 도시되지는 않았으나, 평문 데이터 암호화 방법은 시그니처 코드의 길이 정보를 사전에 설정하는 단계를 더 포함할 수 있다. 이때, 제1 입력값과 제2 입력값을 생성하는 단계는(S120), 임의의 노이즈 벡터를 상기 길이 정보에 상응하는 개수만큼 노이즈 벡터를 추출하여 제1 입력값과 제2 입력값을 생성할 수 있다.
구체적으로, 상술한 바와 같이 하나의 노이즈 벡터는 인공지능 기반의 생성 모델에 의해 하나의 원-핫 벡터로 인코딩되는 것을 알 수 있다. 그리고, 도 5를 참조하면, 4개의 원-핫 벡터를 기초로 생성된 제1 입력값 및 제2 입력값은 4자리의 숫자로 구성된다. 또한, 제1 시그니처 코드는 제1 입력값의 자릿수에 상응하는 문자 개수로 구성되고, 제2 시그니처 코드는 제2 입력값의 자릿수에 상응하는 문자 개수로 구성된다. 따라서, 제1 시그니처 코드와 제2 시그니처 코드를 구성하는 문자 개수, 즉 제1 시그니처 코드의 길이는 결국, 제1 입력값의 자릿수와 대응되고, 제2 시그니처 코드의 길이는 제2 입력값의 자릿수에 대응된다. 따라서, 사용자는 제1 암호문 데이터에 교체 또는 삽입하고자 하는 제1 시그니처 코드 및 제2 시그니처 코드 각각의 길이 정보를 사전에 설정하면, 프로세서(11)는 설정된 길이 정보에 상응하는 개수만큼 노이즈 벡터를 추출하여 제1 입력값과 제2 입력값을 각각 생성한다.
예를 들어, 시그니처 코드의 길이 정보가 10이라고 설정되면, 프로세서(11)는 10개의 노이즈 벡터를 추출한 후, 각각의 노이즈 벡터를 인코딩하여, 10개의 원-핫 벡터를 생성한 후 10자리의 숫자로 구성된 제1 입력값과 제2 입력값을 각각 생성하게 된다.
이하, 도 13을 참조하여, 제2 암호화 데이터를 복호화 하여 평문 데이터를 복원하는 방법에 대하여 설명하도록 한다.
도 13은 본 발명에 따른, 제2 암호화 데이터를 복호화 하는 방법을 개략적으로 나타낸 순서도이다.
먼저, 도 13을 참조하면, 프로세서(11)는 제2 암호문 데이터로부터 노이즈 벡터를 추출한다(S150). 그리고 인공지능 기반의 생성 모델에 노이즈 벡터를 적용하여, 제1 시그니처 코드 및 제2 시그니처 코드를 생성할 수 있다(S160).
프로세서(11)는 제1 시그니처 코드 및 제2 시그니처 코드를 생성한 후에는 상기 제1 시그니처 코드 및 상기 제2 시그니처 코드를 기초로, 제2 암호문 데이터에 교체 또는 삽입되어 있는 각각의 문자를 제거하여 제1 암호문 데이터로 복원한(S170) 후, 제1 암호문 데이터를 상기 암호화 키를 기초로 복호화하여 상기 평문 데이터를 생성할 수 있다(S180).
이때, 제1 시그니처 코드 및 제2 시그니처 코드를 생성하는 단계(S160)에서, 프로세서(11)는 인공지능 기반의 생성 모델을 기반으로, 제2 암호문 데이터로부터 추출된 노이즈 벡터를 인코딩하여 제1 입력값 및 제2 입력값을 생성할 수 있다.
그리고, 프로세서(11)는 기 설정된 시그니처 코드 변환 테이블과 기 설정된 문자 종류 코드 표를 기초로 제1 입력값 및 제2 입력값을 제1 시그니처 코드 및 제2 시그니처 코드로 각각 변환할 수 있다.
상술한 바와 같이, 제2 암호문 데이터 내에는 제1 시그니처 코드 및 제2 시그니처 코드를 생성하는데 이용된 노이즈 벡터에 관한 정보가 포함될 수 있다.
따라서, 프로세서(11)는 상기 노이즈 벡터를 추출하고, 인공지능 기반의 생성 모델에 입력하여, 제2 암호문 데이터를 생성할 때, 교체 또는 삽입되었던 제1 시그니처 코드 및 제2 시그니처 코드와 동일한 제1 시그니처 코드 및 제2 시그니처 코드를 생성할 수 있는 것이다.
이를 위해, 본 발명의 일 예로는, 암호화 단계에서 이용된 제1 시그니처 코드 및 제2 시그니처 코드와 동일한 상기 제1 시그니처 코드 및 상기 제2 시그니처 코드를 생성할 수 있도록, 인공지능 기반의 생성 모델의 필터 정보를 메모리(13)에 저장한다.
한편, 생성된 제1 시그니처 코드 및 제2 시그니처 코드를 기초로, 상기 제2 암호문 데이터에 교체 또는 삽입되어 있는 상기 각각의 문자를 제거하여 제1 암호문 데이터로 복원한다.
도 11을 참조하면, 프로세서(11)는 제2 암호문 데이터, " B4wDfsRfA5DS6FBf4A4SF6DG7VSAsAdf8kjdGWDgK011001"에 교체 또는 삽입되어 있는 제1 시그니처 코드 "4RVD"와 제2 시그니처 코드 "56AK"의 각각의 문자를 제거하여 제1 암호문 데이터, " B2wDfsDfADSFBf4A4SF6DG77SsAdf8kjdGWdg"로 복원할 수 있다. 그리고 프로세서(11)는 제1 암호문 데이터로 복원한 후 메모리(13)로부터 상기 암호화 키 참조 값에 상응하는 상기 암호화 키를 추출할 수 있다. 그리고 프로세서(11)는 추출된 암호화 키를 이용하여 상기 제1 암호문 데이터를 복호화하여 상기 평문 데이터를 생성, 복호화가 완료할 수 있다.
또한, 본 발명의 일 예로는, 프로세서(11)는 상술한 제1 암호문 데이터의 길이 정보가 첨부되어 있는, 제2 암호문 데이터의 경우에는, 상기 제1 암호문 데이터의 길이 정보와 노이즈 벡터를 기초로, 제2 암호문 데이터에 교체 또는 삽입되어 있는, 제1 시그니처 코드 및 제2 시그니처 코드를 제거할 수 있다.
구체적으로, 프로세서(11)는 제2 암호문 데이터의 제1 위치, 예를 들어 종결부에 첨부되어 있는 노이즈 벡터를 추출하여, 인공지능 기반의 생성 모델에 적용하여 제1 입력값 및 제2 입력값을 산출할 수 있다.
프로세서(11)는 상기 제1 입력값 및 상기 제2 입력값과 기 저장된 시그니처 코드 변환 테이블을 기반으로, 제1 시그니처 코드 및 제2 시그니처 코드를 구성하는 각각의 문자를 생성할 수 있다. 또한, 프로세서(11)는 제2 암호문 데이터의 제2 위치, 예를 들어 시작부에 첨부되어 있는 제1 암호문 데이터의 길이 정보를 추출하여, 상기 제1 값과 상기 제1 암호문 데이터의 길이 정보를 기초로, 제2 암호문 데이터 내에 교체 또는 삽입되어 있는 제1 시그니처 코드 및 제2 시그니처 코드를 구성하는 각각의 문자의 교체 위치 또는 삽입 위치를 결정할 수 있다.
그리고, 프로세서(11)는 결정된 교체 위치 또는 삽입 위치로부터 각각의 문자를 교체 또는 제거함으로써, 제2 암호문 데이터를 제1 암호문 데이터로 복원할 수 있다.
한편, 본 발명의 다른 예로는, 프로세서(11)는 Caching 방식을 기반으로, 복호화를 수행할 수도 있다. 구체적으로, 프로세서(11)는 사전에 설정된 n개(단, n은 자연수)의 노이즈 벡터와 시그니처 코드를 맵핑하여 저장한 후, 제2 암호문 데이터로부터 노이즈 벡터를 추출하여, 상기 추출된 노이즈 벡터에 상응하는 제1 시그니처 코드 및 제2 시그니처 코드를 메모리로부터 추출할 수 있다.
그리고, 프로세서(11)는 상기 제1 시그니처 코드 및 제2 시그니처 코드를 이용하여, 제2 암호문 데이터에 포함되어 있는, 제1 시그니처 코드 및 제2 시그니처 코드를 구성하는, 각각의 문자를 제거할 수 있다. 이를 통해, 프로세서(11)는 보다 신속하게 복호화 과정을 수행할 수 있도록 한다.
한편, 사전에 설정된 n개의 노이즈 벡터는, 암호화 및 복호화 서비스를 제공하는 사용자 등에 의해, 노이즈 벡터의 빈도수 등에 따라 주기적으로 변경될 수 있다. 그러나 이에 제한되는 것은 아니다.
한편, 제2 암호문 데이터는 주기적으로 갱신함으로써, 제2 암호문 데이터의 해독 가능성을 없애고, 평문 데이터가 유출되는 것을 방지할 수 있다.
이하, 제2 암호문 데이터를 주기적으로 갱신하는 방법에 대하여 설명하도록 한다.
도 14는 본 발명에 따른, 시그니처 코드 변환 테이블 변경을 통한, 제2 암호문 데이터의 갱신 방법을 나타낸 예시도이다.
먼저, 프로세서(11)는 제2 암호문 데이터 내 교체 또는 삽입되어 있는 제1 시그니처 코드 및 제2 시그니처 코드를 주기적으로 변경함으로써, 궁극적으로 제2 암호문 데이터를 갱신할 수 있다.
도면에 명확히 도시되지는 않았으나, 본 발명의 일 예로, 상술한 인공지능 기반의 생성 모델을 이용한 암호화 방법 및 복호화 방법은, 시그니처 코드 변환 테이블을 기초로, 상기 제2 암호문 데이터를 주기적으로 갱신하는 단계를 더 포함할 수 있다. 이때, 상기 제2 암호문 데이터를 갱신하는 단계는, 상기 시그니처 코드 변화 테이블 내 문자 배열을 주기적으로 조정하고, 상기 조정된 시그니처 코드 변환 테이블 기초로, 상기 제2 암호문 데이터 내의 제1 시그니처 코드 및 제2 시그니처 코드를 변경하여 상기 제2 암호문 데이터를 갱신할 수 있다.
도 14를 참조하면, 동일한 제1 입력값인 1285 및 제2 입력값인 5187에 대한 제1 시그니처 코드 및 제2 시그니처 코드가 시그니처 코드 변환 테이블 내 문자 배열의 조정에 따라, 다르게 생성되는 것을 알 수 있다.
일 예로, 제1 시그니처 코드 변환 테이블에 기초하여 생성된 제2 시그니처 코드는 "56AK"인데 반해, 제2 시그니처 코드 변환 테이블에 기초하여 생성된 제2 시그니처 코드는 "orP9"이다.
그리고 각각의 재1 시그니처 코드 및 제2 시그니처 코드가 교체 또는 삽입되어 생성된 제2 암호문 데이터 또한 상이한 것을 알 수 있다. 이와 같이 제1 시그니처 코드 및 제2 시그니처 코드를 변경함으로써, 제2 암호문 데이터를 갱신할 수 있다.
각각의 제1 시그니처 코드 및 제2 시그니처 코드는 각각의 제1 입력값 및 제2 입력값과 상응한다. 그렇기 때문에 시그니처 코드 변환 테이블의 변경을 통한 제2 암호문 데이터를 갱신하기 위해서는 동일한 제1 입력값과 제2 입력값 각각에 의하여야만 한다. 따라서, 본 발명의 일 예로 프로세서(11)는 각각의 제2 암호문 데이터에 첨부된, 노이즈 벡터를 추출하여, 인공지능 기반의 생성 모델을 통해, 제1 입력값 및 제2 입력값을 생성할 수 있다. .
한편, 본 발명의 일 예로, 상술한 제2 암호문 데이터의 갱신 단계는, 동일한 주기에 속하는 제2 암호문 데이터에 대해서 일괄적으로 갱신할 수 있을 것이다.
한편, 본 발명의 다른 일 예로, 제2 암호화 데이터는 인공지능 기반의 생성모델의 재학습을 기초로, 갱신될 수도 있다.
구체적으로, 인공지능 기반의 생성 모델의 사전 학습과 관련하여, 노이즈 벡터의 분포 정보를 주기적으로 변경한 후 인공지능 기반의 생성 모델을 재학습 시켜, 생성 모델의 은닉층(Hidden State)의 가중치 값을 조정한다. 그리고, 조정된 가중치 값을 기초로, 새로운 제1 입력값(이하, "제1-1 입력값") 및 새로운 제2 입력값(이하, "제2-1 입력값")을 생성한다. 그리고 제1-1 입력값과 제2-1 입력값을 새로운 제1 시그니처 코드(이하, "제1-1 시그니처 코드") 및 새로운 제2 시그니처 코드(이하, "제2-1 시그니처 코드")로 변환한 후, 상기 제1-1 시그니처 코드 및 상기 2-1 시그니처 코드를 제1 암호문 데이터에 교체 또는 삽입하여 제2 암호문 데이터를 주기적으로 갱신한다.
즉, 상술한 시그니처 코드 변환 테이블의 조정을 통한, 제2 암호문 데이터의 갱신 방법은 동일한 제1 입력값 및 제2 입력값을 기초로 수행되었다면, 인공지능 기반의 생성 모델의 재학습을 통한, 갱신 방법은 암호문을 생성 당시에 사용되었던 제1 입력값과는 다른 제1 입력값, 그리고 제2 입력값과는 다른 제2 입력값을 기초로 수행될 수 있다. 한편, 재학습에 따른 인공지능 기반의 생성 모델의 필터 정보와 은닉층의 가중치 값에 대한 정보는 장치(10)의 메모리(13)에 저장된다.
한편, 본 발명의 일 예로, 상술한 제2 암호문 데이터의 갱신 단계는 제2 암호문 데이터의 복호화 단계 이후에 수행될 수 있다.
한편, 상술한 설명에서, 단계 S110 내지 S180은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 후술하는 도 1의 내용은 도 2 내지 도 11의 인공지능 기반의 암호화 및 복호화 방법에도 적용될 수 있다.
이상에서 전술한 본 발명에 따른 인공지능 기반의 암호화 및 복호화 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 컴퓨터 판독가능 기록 매체에 저장될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 장치
11 : 프로세서
12 : 획득부
13 : 메모리

Claims (10)

  1. 장치에 의해 수행되는 데이터 암호화 방법에 있어서,
    암호화 키를 기초로 평문 데이터를 암호화하여, 제1 암호문 데이터를 생성하는 단계;
    주기적으로 추출되는 노이즈 벡터를 인공지능 기반의 생성 모델에 적용하여, 제1 시그니처 코드 및 제2 시그니처 코드를 각각 생성하는 단계; 및
    제1 암호문 데이터에 제1 시그니처 코드 및 제2 시그니처 코드를 적용하여 제2 암호문 데이터를 생성하는 단계;를 포함하고,
    제1 시그니처 코드의 생성 단계는, 기 설정된 환산식을 통해 제1 시그니처 코드의 생성에 필요한 문자의 종류 및 교체 위치를 결정하고, 제1 암호문 데이터 내에서 교체 위치에 존재하는 기존 암호화 문자 및 상기 문자를 기 설정된 방식으로 연산한 제1 문자를 상기 제1 시그니처 코드로 생성하고,
    상기 제2 시그니처 코드의 생성 단계는, 상기 환산식을 통해 상기 제2 시그니처 코드로 사용될 제2 문자의 종류 및 삽입 위치를 결정하고,
    상기 제2 암호문 데이터의 생성 단계는, 상기 제1 암호문 데이터 내의 상기 교체 위치에 존재하는 상기 기존 암호화 문자를 상기 제1 문자로 교체하고, 상기 제1 암호문 데이터 내의 상기 삽입 위치에 상기 제2 문자를 삽입하여 생성하는 것을 특징으로 하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  2. 제1항에 있어서,
    상기 제1 시그니처 코드 및 제2 시그니처 코드 생성 단계는,
    m개의(단, m은 자연수) 평문 데이터를 암호화할 때마다 상기 노이즈 벡터를 주기적으로 추출하는 단계;
    상기 인공지능 기반의 생성 모델을 기반으로, 상기 주기적으로 추출된 노이즈 벡터를 인코딩하여 복수의 제1 입력값 및 제2 입력값을 생성하는 단계;
    상기 환산식을 기반으로 상기 제1 입력값을 상기 제1 시그니처 코드로 변환하는 단계; 및
    상기 환산식을 기반으로 상기 제2 입력값을 상기 제2 시그니처 코드로 변환하는 단계를 포함하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  3. 제2항에 있어서,
    상기 환산식은, 기 설정된 시그니처 코드 변환 테이블을 포함하고,
    상기 제1 시그니처 코드 변환 단계는,
    상기 시그니처 코드 변환 테이블을 기반으로 상기 제1 입력값에 상응하는 문자의 종류 및 상기 제1 암호문 데이터 내에서의 상기 문자의 교체 위치를 결정하는 단계;
    상기 제1 암호문 데이터 내의 암호화 문자 중에서 상기 결정된 교체 위치에 존재하는 기존 암호화 문자를 확인하는 단계; 및
    상기 확인된 기존 암호화 문자 및 상기 결정된 문자를 기 설정된 방식으로 연산한 제1 문자를 생성하는 단계;를 포함하고,
    상기 제2 암호문 데이터 생성 단계는,
    상기 생성된 제1 문자를 상기 제1 암호문 데이터 내의 상기 교체 위치에 교체하여 상기 제2 암호문 데이터를 생성하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  4. 제3항에 있어서,
    상기 교체 위치 결정 단계는,
    상기 노이즈 벡터를 상기 제1 암호문 데이터의 제1 위치에 첨부하는 단계; 및
    상기 제1 입력값 및 상기 제1 암호문 데이터의 길이 정보를 기반으로 상기 교체 위치를 결정하는 단계를 포함하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  5. 제3항에 있어서,
    상기 기 설정된 방식의 연산은, 상기 시그니처 코드 변환 테이블 내에서 결정된 문자의 순번 및 상기 제1 암호문 데이터 내에서의 상기 교체 위치에 존재하는 상기 기존 암호화 문자의 순번에 대해 수행되는 사칙연산 중 어느 하나의 연산을 포함하고,
    상기 제1 문자는, 상기 기존 암호화 문자의 순번 및 상기 결정된 문자의 순번에 대해 상기 어느 하나의 연산이 수행된 결과에 따른 순번을 가지는 문자인 것을 특징으로 하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  6. 제2항에 있어서,
    상기 환산식은, 기 설정된 시그니처 코드 변환 테이블을 포함하고,
    상기 제2 시그니처 코드 변환 단계는,
    상기 시그니처 코드 변환 테이블을 기반으로 상기 제2 입력값에 상응하는 제2 문자 및 상기 제1 암호문 데이터 내에서 상기 제2 문자의 삽입 위치를 결정하고,
    상기 제2 암호문 데이터 생성 단계는,
    상기 결정된 제2 문자를 상기 제1 암호문 데이터 내의 상기 결정된 삽입 위치에 삽입하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  7. 제1항에 있어서,
    상기 환산식은, 기 설정된 시그니처 코드 변환 테이블을 포함하고,
    상기 시그니처 코드 변환 테이블을 기초로, 상기 제2 암호문 데이터를 주기적으로 갱신하는 단계를 더 포함하고,
    상기 제2 암호문 데이터를 갱신하는 단계는,
    상기 시그니처 코드 변화 테이블 내 문자 배열을 주기적으로 변경하고,
    상기 문자 배열이 변경된 상기 시그니처 코드 변환 테이블을 기반으로, 상기 제2 암호문 데이터 내의 제1 시그니처 코드 또는 제2 시그니처 코드를 변경하여 상기 제2 암호문 데이터를 갱신하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  8. 제1항에 있어서,
    상기 인공지능 기반의 생성 모델은,
    상기 노이즈 벡터의 분포 정보가 주기적으로 변경되어 재학습되고,
    상기 제2 암호문 데이터는,
    상기 재학습된 인공지능 기반의 생성 모델을 기초로 주기적으로 갱신되는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법.
  9. 메모리;
    평문 데이터를 획득하는 획득부; 및
    암호화 키를 기초로 평문 데이터를 암호화하여, 제1 암호문 데이터를 생성하고, 주기적으로 추출되는 노이즈 벡터를 인공지능 기반의 생성 모델에 적용하여, 제1 시그니처 코드 및 제2 시그니처 코드를 각각 생성하고, 제1 암호문 데이터에 제1 시그니처 코드 및 제2 시그니처 코드를 적용하여 제2 암호문 데이터를 생성하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 제1 시그니처 코드를 생성 시에, 기 설정된 환산식을 통해 제1 시그니처 코드의 생성에 필요한 문자의 종류 및 교체 위치를 결정하고, 제1 암호문 데이터 내에서 교체 위치에 존재하는 기존 암호화 문자 및 상기 문자를 기 설정된 방식으로 연산한 제1 문자를 상기 제1 시그니처 코드로 생성하고,
    상기 제2 시그니처 코드를 생성 시에, 상기 환산식을 통해 상기 제2 시그니처 코드로 사용될 제2 문자의 종류 및 삽입 위치를 결정하며,
    상기 제2 암호문 데이터를 생성 시에, 상기 제1 암호문 데이터 내의 상기 교체 위치에 존재하는 상기 기존 암호화 문자를 상기 제1 문자로 교체하고, 상기 제1 암호문 데이터 내의 상기 삽입 위치에 상기 제2 문자를 삽입하여 생성하는 것을 특징으로 하는, 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 장치.
  10. 컴퓨터와 결합하여, 제1항 내지 제8항 중 어느 하나의 항의 클라우드 환경에서 인공지능 기반 양자내성암호를 이용한 데이터 암호화 방법을 실행시키기 위하여 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020210126203A 2021-09-24 2021-09-24 인공지능 양자내성 암호화 방법 및 장치 KR102525749B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210126203A KR102525749B1 (ko) 2021-09-24 2021-09-24 인공지능 양자내성 암호화 방법 및 장치
PCT/KR2021/019347 WO2023048344A1 (ko) 2021-09-24 2021-12-17 인공지능 양자내성 암호화 방법 및 장치
US18/180,906 US20230231705A1 (en) 2021-09-24 2023-03-09 Artificial intelligence post-quantum encryption method and artificial intelligence post-quantum encryption apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210126203A KR102525749B1 (ko) 2021-09-24 2021-09-24 인공지능 양자내성 암호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20230043393A KR20230043393A (ko) 2023-03-31
KR102525749B1 true KR102525749B1 (ko) 2023-04-26

Family

ID=85719517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210126203A KR102525749B1 (ko) 2021-09-24 2021-09-24 인공지능 양자내성 암호화 방법 및 장치

Country Status (3)

Country Link
US (1) US20230231705A1 (ko)
KR (1) KR102525749B1 (ko)
WO (1) WO2023048344A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002542523A (ja) 1999-04-20 2002-12-10 シグナファイ、 インコーポレイテッド デジタルデータにデジタル署名を挿入しデジタルデータ中のデジタル署名を認証するための方法及び装置
JP2005301464A (ja) 2004-04-08 2005-10-27 Hitachi Ltd バックアップ方法ならびにバックアップシステム
JP2020013561A (ja) 2018-07-17 2020-01-23 パロ アルト リサーチ センター インコーポレイテッド 予め選択されたシグネチャを使用して任意長の時系列を特徴付けるためのシステムおよび方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100679627B1 (ko) * 2005-03-26 2007-02-28 박영수 암복호화방법
KR101992739B1 (ko) 2017-10-30 2019-06-26 (주)한국플랫폼서비스기술 딥러닝을 이용한 암호화 방법
JP6871380B2 (ja) * 2018-12-29 2021-05-12 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 情報保護のシステム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002542523A (ja) 1999-04-20 2002-12-10 シグナファイ、 インコーポレイテッド デジタルデータにデジタル署名を挿入しデジタルデータ中のデジタル署名を認証するための方法及び装置
JP2005301464A (ja) 2004-04-08 2005-10-27 Hitachi Ltd バックアップ方法ならびにバックアップシステム
JP2020013561A (ja) 2018-07-17 2020-01-23 パロ アルト リサーチ センター インコーポレイテッド 予め選択されたシグネチャを使用して任意長の時系列を特徴付けるためのシステムおよび方法

Also Published As

Publication number Publication date
US20230231705A1 (en) 2023-07-20
WO2023048344A1 (ko) 2023-03-30
KR20230043393A (ko) 2023-03-31

Similar Documents

Publication Publication Date Title
TWI750223B (zh) 區塊鏈加密射頻晶片存儲設計方法
CN110677237B (zh) 一种具有似混沌特性的文件加密方法
JP7065888B6 (ja) 暗号装置及び方法
KR20070058370A (ko) 암호 처리 장치, 암호 처리 방법 및 컴퓨터 프로그램
CN106888080A (zh) 保护白盒feistel网络实施方案以防错误攻击
CN105024803A (zh) 白箱实现中的行为指纹
CN115694784B (zh) 一种数据安全存储方法
KR20000052458A (ko) 정보 처리 장치
CN108768617A (zh) 一种基于传统分组密码的保持格式加密方法
CN110084599A (zh) 密钥处理方法、装置、设备和存储介质
CA3082614A1 (en) A computer-implemented method of performing format-preserving encryption of a data object of variable size
CN103095449A (zh) 一种基于流密码的动态加密解密方法
CN109726565A (zh) 在抗泄漏原语中使用白盒
CN105184115A (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
CN111066077A (zh) 加密装置、加密方法、解密装置以及解密方法
JP2020038350A (ja) 多角的に暗号化されたデータを検索する方法、装置、及びコンピュータ読み取り可能な媒体
Saračević et al. Encryption based on Ballot, Stack permutations and Balanced Parentheses using Catalan-keys
KR102307363B1 (ko) 딥러닝 기반의 시그니처 코드를 이용한 암호화 및 복호화 방법 및 장치
KR102525749B1 (ko) 인공지능 양자내성 암호화 방법 및 장치
CN105678185B (zh) 一种数据安全保护方法以及智能终端管理系统
KR100411684B1 (ko) 이진 데이터 블록의 암호 변환 방법
EP3970399B1 (en) A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext
Adeniji et al. Text encryption with advanced encryption standard (AES) for near field communication (NFC) using Huffman compression
Saračević et al. A steganography method based on decomposition of the Catalan numbers
CN117057804B (zh) 基于哈希序列的金融交易数据安全存储方法及系统