KR102674639B1 - 신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법 - Google Patents

신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법 Download PDF

Info

Publication number
KR102674639B1
KR102674639B1 KR1020210068517A KR20210068517A KR102674639B1 KR 102674639 B1 KR102674639 B1 KR 102674639B1 KR 1020210068517 A KR1020210068517 A KR 1020210068517A KR 20210068517 A KR20210068517 A KR 20210068517A KR 102674639 B1 KR102674639 B1 KR 102674639B1
Authority
KR
South Korea
Prior art keywords
neural network
hidden state
attention
decoder
sequence
Prior art date
Application number
KR1020210068517A
Other languages
English (en)
Other versions
KR20220160373A (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 KR1020210068517A priority Critical patent/KR102674639B1/ko
Publication of KR20220160373A publication Critical patent/KR20220160373A/ko
Application granted granted Critical
Publication of KR102674639B1 publication Critical patent/KR102674639B1/ko

Links

Classifications

    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

전자 장치 및 전자 장치의 제어 방법이 개시된다. 본 개시에 따른 전자 장치는 임베딩 모듈(embedding module), 인코더(encoder), 어텐션 모듈(attention module) 및 디코더(decoder)를 포함하는 신경망 모델에 대한 정보를 저장하는 메모리 및 신경망 모델에 암호문 시퀀스를 입력하여, 암호문 시퀀스가 복호화된 평문 시퀀스를 획득하는 프로세서를 포함한다. 그리고, 프로세서는 암호문 시퀀스를 임베딩 모듈에 입력하여, 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하고, 임베딩 벡터를 인코더에 입력하여, 인코더에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하며, 어텐션 모듈을 통해, 디코더에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하고, 디코더를 통해, 복수의 제2 은닉 상태 값 및 복수의 어텐션 값을 바탕으로 평문 시퀀스를 획득한다.

Description

신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법{ELECTRONIC DEVICE FOR DECRYPTING CIPHERTEXT USING NEURAL NETWORK MODEL AND CONTROLLING METHOD THEREOF}
본 개시는 신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법에 관한 것으로서, 구체적으로는 신경망 모델을 이용하여 암호문을 해독할 수 있는 전자 장치 및 전자 장치의 제어 방법에 관한 것이다.
근래 인터넷을 통한 데이터 통신 분야의 급속한 발전으로 말미암아 정보의 보안성은 데이터 통신의 본질적인 부분 중 하나가 되었다. 데이터 통신의 보안성을 확보하기 위해서는 데이터의 암호화를 위한 알고리즘의 보안 수준을 보장하는 것이 중요하며, 따라서 암호화 알고리즘의 특성과 약점을 분석하고 그 암호화 알고리즘의 보안 수준을 평가하기 위한 암호 해독 기술에 대한 중요성도 나날이 강조되고 있다.
과거의 암호 해독 기술은 주로 수학적인 논리에 크게 의존하고 있었으나, 근래에는 인공 지능(artificial intelligence, AI)와 딥 러닝(deep learning)을 기반으로 기술 개발이 이루어지고 있다. 그러나, 아직까지는 인공 지능과 딥 러닝을 이용한 암호 해독 및 분석 기술에 대해 성능 및 기술적 측면에서 여러 문제점을 지니고 있다.
구체적으로, 근래에는 신경망 모델을 이용하여 이산 데이터(discrete data) 및 순차 데이터(sequential data)를 모델링함으로써, 암호문에 대한 알파벳 암호문 빈도 등의 어떠한 사전 정보 없이도 수학적 논리에 기반한 종래의 암호 해독 기술과 유사한 정도의 성능을 갖는 신경망 기반 암호문 완전 자동분석 기술이 개발되었다. 그러나, 이러한 종래 기술의 경우 모든 암호문 데이터가 특정 크기로만 고정되어 있어야 하며, 일반적인 암호문 생성 상황에서 가변 길이를 갖는 동적 데이터(dynamic data)의 특성을 갖는 암호 데이터를 해독할 수 없는 문제점이 있다.
본 개시는 상술한 바와 같은 종래 기술의 문제점을 극복하기 위한 것으로서, 본 개시의 목적은 암호문 시퀀스의 길이에 관계 없이 효과적으로 암호문 시퀀스를 해독할 수 있는 전자 장치 및 전자 장치의 제어 방법을 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 임베딩 모듈(embedding module), 인코더(encoder), 어텐션 모듈(attention module) 및 디코더(decoder)를 포함하는 신경망 모델에 대한 정보를 저장하는 메모리 및 상기 신경망 모델에 암호문 시퀀스를 입력하여, 상기 암호문 시퀀스가 복호화된 평문 시퀀스를 획득하는 프로세서를 포함하고, 상기 프로세서는 상기 암호문 시퀀스를 상기 임베딩 모듈에 입력하여, 상기 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하고, 상기 임베딩 벡터를 상기 인코더에 입력하여, 상기 인코더에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하며, 상기 어텐션 모듈을 통해, 상기 디코더에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하고, 상기 디코더를 통해, 상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 바탕으로 상기 평문 시퀀스를 획득하는 프로세서를 포함한다.
여기서, 상기 프로세서는 상기 복수의 제2 은닉 상태 값 별로 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어를 획득하고, 상기 복수의 어텐션 스코어를 정규화하여 복수의 어텐션 가중치를 획득하며, 상기 복수의 어텐션 가중치와 상기 복수의 제1 은닉 상태 값을 가중합하여 상기 복수의 어텐션 값을 획득할 수 있다.
한편, 상기 프로세서는 상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 연결(concatenate)하여 중간 벡터를 획득하고, 상기 중간 벡터를 상기 디코더에 입력하여 상기 평문 시퀀스를 획득할 수 있다.
한편, 상기 복수의 제1 신경망 셀은 상기 인코더 내에서 순차적으로 배치된 LSTM(long short-term memory) 신경망을 포함하고, 상기 복수의 제2 신경망 셀은 상기 디코더 내에서 순차적으로 배치된 LSTM 신경망을 포함할 수 있다.
한편, 상기 프로세서는 상기 암호문 시퀀스에서 구두점(punctuation) 및 공백을 제외하고, 상기 암호문 시퀀스에 포함된 띄어쓰기를 기준으로, 상기 구두점이 제외된 암호문 시퀀스를 복수의 토큰으로 분할하며, 상기 복수의 토큰을 상기 임베딩 모듈에 입력하여 상기 임베딩 벡터를 획득할 수 있다.
한편, 상기 프로세서는 Word2Vec 기법을 바탕으로 전처리를 수행하여 상기 임베딩 벡터를 획득할 수 있다.
한편, 상기 프로세서는 continuous relaxation 기법을 바탕으로 전처리를 수행하여 상기 임베딩 벡터를 획득할 수 있다.
한편, 상기 신경망 모델은 상기 암호문 시퀀스 및 상기 평문 시퀀스 사이의 차이에 따른 교차 엔트로피 손실 함수(cross-entropy loss function)를 바탕으로 학습될 수 있다.
한편, 상기 신경망 모델은 서로 다른 평문 시퀀스들 각각에 포함된 단어들이 동일하더라도 상기 단어들의 위치가 상이하면 서로 다른 암호문 시퀀스에 대응되는 암호학적 특성을 바탕으로 상기 입력된 암호문 시퀀스를 복호화함으로써 상기 평문 시퀀스를 출력할 수 있다.
여기서, 상기 디코더는 완전 연결 레이어(fully connected layer)를 더 포함하고, 상기 어텐션 모듈은 상기 디코더에서 평문 시퀀스를 예측하는 모든 시점(time step)마다 상기 입력된 암호문 시퀀스 전체를 다시 한번 참고하여 상기 복수의 어텐션 값을 출력하며, 상기 신경망 모델은 상기 완전 연결 레이어를 통해 상기 단어들 간의 상관관계를 참조하여, 상기 입력된 암호문 시퀀스를 복호화함으로써 상기 평문 시퀀스를 출력할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 임베딩 모듈(embedding module), 인코더(encoder), 어텐션 모듈(attention module) 및 디코더(decoder)를 포함하는 신경망 모델을 이용하여 암호문 시퀀스를 해독하기 위한 전자 장치의 제어 방법은 상기 암호문 시퀀스를 상기 임베딩 모듈에 입력하여, 상기 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하는 단계, 상기 임베딩 벡터를 상기 인코더에 입력하여, 상기 인코더에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하는 단계, 상기 어텐션 모듈을 통해, 상기 디코더에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하는 단계 및 상기 디코더를 통해, 상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 바탕으로 상기 평문 시퀀스를 획득하는 단계를 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 상기 전자 장치는 임베딩 모듈(embedding module), 인코더(encoder), 어텐션 모듈(attention module) 및 디코더(decoder)를 포함하는 신경망 모델을 이용하여 암호문 시퀀스를 해독하며, 상기 전자 장치의 제어 방법은 상기 암호문 시퀀스를 상기 임베딩 모듈에 입력하여, 상기 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하는 단계, 상기 임베딩 벡터를 상기 인코더에 입력하여, 상기 인코더에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하는 단계, 상기 어텐션 모듈을 통해, 상기 디코더에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하는 단계 및 상기 디코더를 통해, 상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 바탕으로 상기 평문 시퀀스를 획득하는 단계를 포함한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 간략하게 나타내는 블록도,
도 2는 본 개시의 일 실시 예에 따른 신경망 모델의 구성을 나타내는 블록도,
도 3은 본 개시에 따른 암호문 시퀀스가 인코더에 입력되기에 앞서 수행되는 전처리 과정에 대해 상세하게 설명하기 위한 도면,
도 4a 및 도 4b는 본 개시에 따른 신경망 모델의 구조를 상세하게 설명하기 위한 도면,
도 5는 본 개시에 따른 신경망 모델의 성능을 입증하기 위한 테스트 결과를 나타내는 도면, 그리고,
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 나타내는 흐름도이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
실시 예에 있어서 ‘모듈’ 혹은 ‘부’는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 ‘모듈’ 혹은 복수의 ‘부’는 특정한 하드웨어로 구현될 필요가 있는 ‘모듈’ 혹은 ‘부’를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 간략하게 나타내는 블록도이고, 도 2는 본 개시의 일 실시 예에 따른 신경망 모델의 구성을 나타내는 블록도이다.
본 개시에 따른 전자 장치(100)는 학습된 신경망 모델을 이용하여 암호문을 해독할 수 있는 장치를 말한다. 구체적으로, 전자 장치(100)는 신경망 모델에 포함된 복수의 모듈을 이용하여, 입력된 암호문 시퀀스(ciphertext sequence)를 복호화함으로써 평문 시퀀스(plaintext sequence)를 획득할 수 있다.
본 개시에 따른 신경망 모델은 신경망(neural network)을 포함하는 모델을 말하며, 딥러닝(deep learning)에 의해 학습될 수 있다. 예를 들어, 신경망 모델은 RNN(recurrent neural network,), 게이트 순환 유닛(gated recurrent units, GRU) 및 장단기 메모리(110)(long short-term memory, LSTM)와 같은 신경망을 포함할 수 있다. 다만, 본 개시에 따른 신경망 모델에 포함되는 신경망의 유형이 상술한 예에 국한되는 것은 아니다. 한편, 본 개시에 있어서, 신경망 모델이라는 용어는 인공 지능 모델(artificial intelligence model)이라는 용어로 대체될 수 있다.
도 1을 참조하면, 본 개시에 따른 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 그리고, 도 2에 도시된 바와 같이, 본 개시에 따른 신경망 모델은 임베딩 모듈(1100)(embedding module), 인코더(1200)(encoder), 어텐션 모듈(1300)(attention module) 및 디코더(1400)(decoder)를 포함할 수 있다.
본 개시에 따른 신경망 모델은 온 디바이스(on-device)로 구현될 수 있다. 즉, 신경망 모델은 전자 장치(100)의 메모리(110)에 저장될 수 있으며, 이 경우 프로세서(120)는 메모리(110)에 엑세스하여 메모리(110)에 저장된 신경망 모델을 로딩한 후, 신경망 모델을 이용하여 본 개시에 따른 다양한 동작을 수행할 수 있다. 한편, 신경망 모델은 클라우드 서버와 같은 외부 장치에 저장될 수도 있으며, 이 경우 전자 장치(100)는 외부 장치와의 통신 연결을 통해 외부 장치에 저장된 신경망 모델을 이용할 수 있다.
이하에서는 도 1과 도 2를 함께 참조하여, 본 개시에 따른 다양한 실시 예에 대해 상술한다.
메모리(110)에는 전자 장치(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(110)에는 전자 장치(100)를 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(110)에는 본 개시의 다양한 실시 예들에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(110)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.
구체적으로, 메모리(110)에는 본 개시의 다양한 실시 예에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(120)는 메모리(110)에 저장된 각종 소프트웨어 모듈을 실행하여 전자 장치(100)의 동작을 제어할 수 있다. 즉, 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
한편, 본 개시에서 메모리(110)라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 메모리(110)에는 본 개시에 따른 신경망 모델에 관련된 정보, 즉 임베딩 모듈(1100), 인코더(1200), 어텐션 모듈(1300) 및 디코더(1400)에 관련된 정보가 저장될 수 있다. 또한, 메모리(110)에는 본 개시에 따라 획득된 입력 시퀀스, 평문 시퀀스, 임베딩 벡터(embedding vector), 인코더(1200) 및 디코더(1400)의 은닉 상태 값들, 어텐션 스코어, 어텐션 가중치 및 어텐션 값에 대한 정보가 저장될 수 있다.
그 밖에도 본 개시의 목적을 달성하기 위한 범위 내에서 필요한 다양한 정보가 메모리(110)에 저장될 수 있으며, 메모리(110)에 저장된 정보는 외부 장치로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.
프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(120)는 메모리(110)를 포함하는 전자 장치(100)의 구성과 연결되며, 상술한 바와 같은 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 전자 장치(100)의 동작을 전반적으로 제어할 수 있다.
프로세서(120)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(120)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다. 한편, 본 개시에서 프로세서(120)라는 용어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 MPU(Main Processing Unit)등을 포함하는 의미로 사용될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(120)는 암호문 시퀀스를 임베딩 모듈(1100)에 입력하여, 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득할 수 있다. 여기서, 임베딩 모듈(1100)은 입력된 암호문 시퀀스를 수치화하여 암호문 시퀀스에 대응되는 임베딩 벡터 내지는 밀집 벡터(dense vector)를 출력할 수 있는 모듈을 말한다. 다시 말해, 임베딩 모듈(1100)은 암호문 시퀀스를 전자 장치(100)가 이해할 수 있는 형태로 변환하기 위한 모듈이라고 할 수 있다. 임베딩 모듈을 통해 수행되는 구체적인 과정에 대해서는 도 3을 참조하여 상술한다.
임베딩 벡터가 획득되면, 프로세서(120)는 임베딩 벡터를 인코더(1200)에 입력하여, 인코더(1200)에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득할 수 있다. 여기서, 인코더(1200)는 임베딩 벡터를 바탕으로 암호문 시퀀스에 대응되는 은닉 상태 값을 획득할 수 있는 모듈을 말한다. 인코더(1200)는 복수의 신경망 셀을 포함할 수 있으며, 복수의 신경망 셀은 인코더(1200) 내에서 순차적으로 배치될 수 있다.
복수의 신경망 셀 각각은 인코더(1200)에 순차적으로 입력되는 암호문 시퀀스의 특징을 차례대로 분석하여 암호문 시퀀스에 포함된 정보가 압축된 벡터인 은닉 상태 값을 출력할 수 있다. 구체적으로, 암호문 시퀀스는 기 정의된 단위의 토큰으로 분할되어 각각의 토큰 별로 복수의 신경망 셀 각각에 입력될 수 있으며, 복수의 신경망 셀 각각은 입력된 토큰에 대응되는 은닉 상태 값을 출력할 수 있다. 이하에서는 인코더(1200)에 포함된 신경망 셀을 제1 신경망 셀이라고 지칭하고, 제1 신경망 셀을 통해 획득된 은닉 상태 값을 제1 은닉 상태 값이라고 지칭한다.
특히, 암호문 시퀀스가 복수의 제1 신경망 셀 각각에 순차적으로 입력되면, 복수의 제1 신경망 셀 각각은 입력된 암호문에 대응되는 제1 은닉 상태 값을 출력할 수 있다. 그리고, 복수의 제1 신경망 셀 중 가장 마지막에 배치된 제1 신경망 셀을 통해 획득된 제1 은닉 상태 값은 인코더(1200)에 입력된 암호문 시퀀스의 모든 정보가 압축된 벡터라고 할 수 있으며, 후술하는 바와 같은 디코더(1400)에서 첫번째로 배치된 신경망 셀에 입력될 수 있다.
복수의 제1 은닉 상태 값이 획득되면, 프로세서(120)는 어텐션 모듈(1300)을 통해, 디코더(1400)에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득할 수 있다. 본 개시를 설명함에 있어서는, 인코더(1200)에 포함된 제1 신경망 셀과 제1 신경망 셀을 통해 획득된 제1 은닉 상태 값과 구별하기 위해, 디코더(1400)에 포함된 신경망 셀을 제2 신경망 셀이라고 지칭하고, 제2 신경망 셀을 통해 획득된 은닉 상태 값을 제2 은닉 상태 값이라고 지칭한다.
어텐션 모듈(1300)은 평문 시퀀스를 예측하기 위해 암호문 시퀀스에서 어떠한 부분을 더 중요하게 고려할 것인지에 관련된 어텐션 값을 획득할 수 있는 모듈을 말한다. 즉, 어텐션 모듈(1300)은 디코더(1400)에서 평문 시퀀스를 예측하는 모든 시점(time step)마다 인코더(1200)에 입력된 암호문 시퀀스 전체를 다시 한번 참고하는 역할을 수행할 수 있다.
구체적으로, 프로세서(120)는 복수의 제2 은닉 상태 값 별로 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어(attention score)를 획득할 수 있다. 구체적으로, 프로세서(120)는 디코더(1400)에서 첫번째로 배치된 신경망 셀의 제2 은닉 상태 값과 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어를 획득할 수 있으며, 디코더(1400)에서 두번째로 배치된 신경망 셀의 제2 은닉 상태 값과 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어를 획득할 수 있으며, 마찬가지 방식으로 나아가, 디코더(1400)에서 마지막에 배치된 신경망 셀의 제2 은닉 상태 값과 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어를 획득할 수 있다. 일 예로서, 어텐션 스코어는 해당 시점의 제2 은닉 상태 값을 전치(transpose)하고 복수의 제1 은닉 상태 값 각각과의 내적(dot product)를 수행함으로써 획득될 수 있다.
복수의 제2 은닉 상태 값 별로 복수의 어텐션 스코어가 획득되면, 프로세서(120)는 복수의 어텐션 스코어를 정규화하여 복수의 어텐션 가중치(attention weight)를 획득할 수 있다. 구체적으로, 프로세서(120)는 소프트맥스(softmax) 함수를 이용하여 복수의 어텐션 스코어를 정규화함으로써, 복수의 어텐션 값을 모두 합하면 1이 되는 확률 분포를 획득할 수 있으며, 이 확률 분포를 이루는 각각의 값인 어텐션 가중치를 획득할 수 있다.
복수의 어텐션 가중치가 획득되면, 프로세서(120)는 복수의 어텐션 가중치와 복수의 제1 은닉 상태 값을 가중합(weighted sum)하여 복수의 어텐션 값을 획득할 수 있다. 결국, 복수의 어텐션 값은 디코더(1400)에 포함된 제2 신경망 셀 각각의 시점에서 인코더(1200)에 입력된 암호문 시퀀스에서 중요한 부분에 집중(attention)하기 위한 정보를 포함한다고 할 수 있다.
복수의 어텐션 값이 획득되면, 프로세서(120)는 디코더(1400)를 통해, 복수의 제2 은닉 상태 값 및 복수의 어텐션 값을 바탕으로 평문 시퀀스를 획득할 수 있다. 여기서, 디코더(1400)는 인코더(1200) 및 어텐션 모듈(1300)의 출력을 바탕으로 암호문 시퀀스에 대응되는 평문 시퀀스 (즉, 복호문 시퀀스(decrypted sequence))를 획득할 수 있는 모듈을 말한다.
구체적으로, 프로세서(120)는 복수의 제2 은닉 상태 값 및 복수의 어텐션 값을 연결(concatenate)하여 중간 벡터를 획득할 수 있다. 보다 구체적으로, 프로세서(120)는 디코더(1400)의 복수의 제2 은닉 상태 값 별로 그에 대응되는 복수의 어텐션 값을 결합하여 하나의 벡터인 중간 벡터를 획득할 수 있다. 그리고, 프로세서(120)는 획득된 중간 벡터를 디코더(1400)에 입력하여 평문 시퀀스를 획득할 수 있다. 다시 말해, 디코더(1400)는 제2 신경망 셀 마다, 암호문 시퀀스에서 중점을 두어야 할 부분에 대한 정보를 포함하는 어텐션 값을 이용하여 암호문 시퀀스에 대응되는 평문 시퀀스를 출력할 수 있다.
한편, 이상에서는 본 개시에 다른 신경망 모델이 임베딩 모듈(1100), 인코더(1200), 어텐션 모듈(1300) 및 디코더(1400)를 포함하는 것을 전제로 설명하였으나, 이는 본 개시에 다른 신경망 모델의 동작들을 구별하여 명확하게 설명하기 위한 것일 뿐, 본 개시가 이에 국한되는 것은 아니다. 예를 들어, 임베딩 모듈(1100)은 인코더(1200)에 포함된 형태로 구현될 수 있으며, 어텐션 모듈(1300)은 디코더(1400)에 포함된 형태로 구현될 수도 있음은 물론이다. 본 개시에 따른 신경망 모델의 구체적인 구조에 대해서는 도 4a 및 도 4b를 참조하여 상술한다.
한편, 본 개시에 따른 신경망 모델은 암호문 시퀀스와 그에 대응되는 평문 시퀀스의 쌍으로 이루어진 학습 데이터를 바탕으로 학습될 수 있으며, 구체적인 학습 과정에 특별한 제한이 따르는 것은 아니다. 일 예로서, 신경망 모델의 학습 과정은 암호문 시퀀스 및 평문 시퀀스 사이의 차이에 따른 교차 엔트로피 손실 함수(cross-entropy loss function)를 획득하고, 획득된 손실 함수를 바탕으로 역전파(back propagation) 과정을 수행함으로써 이루어질 수 있다.
이상에서 상술한 바와 같은 실시 예에 따르면, 전자 장치(100)는 인코더(1200) 및 디코더(1400)를 포함하는 시퀀스 투 시퀀스(sequence to sequence) 모델에 어텐션 모듈(1300)이 결합된 구조를 갖는 신경망 모델을 이용한다. 따라서, 데이터 길이가 길수록 올바른 학습이 수행되지 않는 기존의 순환 신경망을 이용하는 종래 기술에 비해, 본 개시에 따른 전자 장치(100)는 암호문 시퀀스의 길이가 긴 경우에도 효과적으로 암호문 시퀀스에 대응되는 평문 시퀀스를 획득할 수 있다. 다시 말해, 본 개시에 따른 전자 장치(100)는 암호문의 길이에 상관 없이 정확도가 높은 해독이 가능하다는 특장점을 지니고 있다.
도 3은 본 개시에 따른 암호문 시퀀스가 인코더(1200)에 입력되기에 앞서 수행되는 전처리 과정에 대해 상세하게 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 프로세서(120)는 암호문 데이터(31)(ciphertext data)에서 암호문 시퀀스(32) 내지는 암호문 문장(ciphertext sentence)를 추출할 수 있다. 여기서, 암호문 데이터(31)는 메모리(110)에 기 저장되어 있을 수 있으며, 외부 장치로부터 수신되어 업데이트될 수도 있다.
암호문 시퀀스(32)가 추출되면, 프로세서(120)는 암호문 시퀀스(32)에 대한 토큰화(tokenization)를 수행할 수 있다. 여기서, 토큰화란 암호문 시퀀스(32)를 기 정의된 단위의 토큰으로 분할하는 과정을 말한다. 이하에서는 토큰이 단어 단위의 데이터인 경우를 전제할 것이지만, 토큰은 단어구 또는 문자열과 같은 단위의 데이터일 수도 있다.
일 예로서, 프로세서(120)는 암호문 시퀀스(32)에 포함된 띄어쓰기를 기준으로 암호문 시퀀스(32)에 포함된 단어들을 추출하여 암호문 시퀀스(32)를 복수의 단어로 분할할 수 있다. 또한, 프로세서(120)는 구두점 (punctuation)과 공백을 삭제하는 정제(cleaning) 과정을 수행할 수도 있다. 한편, 암호문 시퀀스(32)에서 분할된 토큰 각각은 인코더(1200)에 포함된 복수의 제1 신경망 셀 각각에 순차적으로 입력될 수 있다.
토큰화 과정이 수행된 후, 프로세서(120)는 암호문 시퀀스(32)에 대한 워드 임베딩(word embedding) 과정을 수행하여, 각각의 암호문 시퀀스(32)에 대응되는 수치화된 벡터(numerical vectors), 즉 임베딩 벡터(34)를 획득할 수 있다. 예를 들어, 도 3의 복수의 암호문 시퀀스(33) 중 첫번째 암호문 시퀀스(1)는 첫번째 임베딩 벡터(1)에 대응되고, 도 3의 복수의 암호문 시퀀스(33) 중 두번째 암호문 시퀀스(2)는 두번째 임베딩 벡터(2)에 대응되며, 도 3의 복수의 암호문 시퀀스(33) 중 N번째 암호문 시퀀스(N)는 N번째 임베딩 벡터(N)에 대응된다.
구체적으로, 워드 임베딩 과정에 있어서, n 개의 단어 (x1, x2, x3, ... , xn-2, xn-1, xn)로 구성된 암호문 시퀀스(32)가 주어지면 모든 단어 xi는 실수 값 벡터 ei로 변환될 수 있다. 이 때, 입력 레이어는 하기의 수학식 1과 같이 표현될 수 있다. 여기서, w는 단어이고 d는 워드 임베딩의 크기를 나타낸다.
Figure 112021061409131-pat00001
워드 임베딩 과정은 이산 분포(discrete distribution)의 특성을 갖는 암호문 도메인에 대해 올바른 학습을 수행할 수 있게 하는 데이터 전처리 기술이라고 할 수 있다. 특히, 본 개시의 일 실시 예에 따르면, 프로세서(120)는 암호 데이터 분석에 알맞은 워드 임베딩 기술 중 하나인 continuous relaxation 기법을 바탕으로 워드 임베딩 과정을 수행할 수 있으며, 기계번역(machine translation) 분야에서 주로 사용하는 Word2Vec 기법을 바탕으로 워드 임베딩 과정을 수행할 수도 있다. 다만, 이에 국한되는 것은 아니며, 워드 임베딩 과정은 LSA(latent semantic analysis), FastText 또는 Glove 등과 같은 워드 임베딩 기법을 바탕으로 수행될 수도 있다.
한편, 워드 임베딩 과정을 수행하기 위한 임베딩 모듈(1100)은 인코더(1200), 어텐션 모듈(1300) 및 디코더(1400)와는 달리, 입력층과 출력층 사이에 하나의 은닉층(hidden Layer)만이 존재하는 얕은 신경망(Shallow Neural Network)으로 구현될 수 있다.
도 4a 및 도 4b는 본 개시에 따른 신경망 모델의 구조를 상세하게 설명하기 위한 도면이다.
도 4a에 도시된 바와 같이, 본 개시에 따른 신경망 모델은 인코더(1200) 및 디코더(1400)를 포함할 수 있다. 그리고, 인코더(1200)에 포함된 복수의 제1 신경망 셀(1210, 1220, 1230, 1240)은 LSTM 신경망으로 구현될 수 있으며, 디코더(1400)에 포함된 복수의 제2 신경망 셀(1410, 1420, 1430, 1440) 또한 LSTM 신경망으로 구현될 수 있다. 도 4a에서는 인코더(1200)와 디코더(1400)가 각각 4 개의 신경망 셀을 포함하는 것으로 나타내었으나, 인코더(1200)와 디코더(1400)에 포함된 신경망 셀의 개수에 특별한 제한이 있는 것은 아니다. 한편, 도 4a에서는 어텐션 레이어(attention layer)가 디코더(1400)에 포함된 형태로 구현되는 것을 전제로 디코더(1400)를 어텐션 디코더(1400)(attention decoder)로 지칭하였다.
도 3을 참조하여 상술한 바와 같이, 본 개시에 따른 신경망 모델을 통해, 암호문 시퀀스는 그에 대응되는 임베딩 벡터로 변환될 수 있다. 구체적으로, 도 4a에 도시된 바와 같이, 암호문 시퀀스는 복수의 단어(y(1), y(2), ..., , y(n-1), y(n))로 분할될 수 있으며, 복수의 단어 각각에 대응되는 임베딩 벡터로 변환될 수 있다.
복수의 단어 각각에 대응되는 임베딩 벡터가 획득되면, 프로세서(120)는 복수의 단어 각각에 대응되는 임베딩 벡터를 인코더(1200)의 복수의 제1 신경망 셀(1210, 1220, 1230, 1240) 각각에 순차적으로 입력하여, 복수의 단어 각각에 대응되는 제1 은닉 상태 값(h(1), h(2), ... , h(n-1), h(n))을 획득할 수 있다. 도 4a에 도시된 바와 같이, 인코더에 서 마지막에 배치된 제1 신경망 셀(1240)을 통해 획득된 제1 은닉 상태 값(h(n)은 디코더에서 첫번째로 배치된 제2 신경망 셀(1410)에 입력될 수 있다.
복수의 제1 은닉 상태 값(h(1), h(2), ... , h(n-1), h(n))이 획득되면, 프로세서(120)는 어텐션 레이어를 통해, 복수의 제2 은닉 상태 값 별로 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어를 획득할 수 있으며, 나아가 복수의 어텐션 스코어를 정규화하여 복수의 어텐션 가중치(a(1), a(2), ... , a(n-1), a(n))를 획득할 수 있다.
복수의 어텐션 가중치(a(1), a(2), ... , a(n-1), a(n))가 획득되면, 프로세서(120)는 복수의 어텐션 가중치와 복수의 제1 은닉 상태 값을 가중합하여 복수의 어텐션 값(c(1), c(2), ... , c(n-1), c(n))을 획득할 수 있다. 이러한 어텐션 값은 인코더(1200)의 문맥을 포함하고 있다는 이유에서 컨텍스트 벡터(context vector)라고 지칭될 수도 있다. 복수의 어텐션 가중치(a(1), a(2), ... , a(n-1), a(n))와 복수의 제1 은닉 상태 값(h(1), h(2), ... , h(n-1), h(n))을 가중합하는 과정을 수식으로 나타내면 하기 수학식 2와 같다.
Figure 112021061409131-pat00002
특히, 본 개시에 따른 어텐션 레이어의 동작은 디코더(1400)의 제2 은닉 상태 값을 전치(transpose)하고 인코더(1200)의 제1 은닉 상태 값들 각각과의 내적(dot product)를 수행함으로써 획득되는 닷 프로덕트 어텐션(dot product attention)을 이용하여 수행될 수 있으며, 다만 본 개시가 이에 국한되는 것은 아니며, 본 개시에 따른 어텐션 메커니즘은 스케일 닷 어텐션(scaled dot attention)을 비롯한 다양한 기법을 바탕으로 수행될 수도 있다.
복수의 어텐션 값(c(1), c(2), ... , c(n-1), c(n))이 획득되면, 프로세서(120)는 디코더(1400)를 통해, 복수의 제2 은닉 상태 값 및 복수의 어텐션 값(c(1), c(2), ... , c(n-1), c(n))을 바탕으로 평문 시퀀스( (1),
Figure 112021061409131-pat00004
(2), ... ,
Figure 112021061409131-pat00005
(n-1),
Figure 112021061409131-pat00006
(n))를 획득할 수 있다. 구체적으로, 프로세서(120)는 복수의 제2 은닉 상태 값 및 복수의 어텐션 값 복수의 어텐션 값(c(1), c(2), ... , c(n-1), c(n))에 대한 연결(concatenation) 과정을 수행한 후 그에 따라 획득된 벡터를 디코더(1400)에 입력하여 평문 시퀀스(
Figure 112021061409131-pat00007
(1),
Figure 112021061409131-pat00008
(2) , ... ,
Figure 112021061409131-pat00009
(n-1),
Figure 112021061409131-pat00010
(n))를 획득할 수 있다.
이상에서 상술한 바와 같은 실시 예에 따르면, 본 개시에 따른 신경망 모델은 Attention 메커니즘 기반의 LSTM 신경망을 이용함에 따라, 디코더(1400)에서 예측하는 단어를 순차적으로 출력할 때 인코더(1200)에 입력된 암호문 시퀀스 전체를 다시 한번 참고하게 된다. 이러한 특성은 암호 데이터에 강력하게 작용된다.
암호 데이터는, 기계번역(machine translation) 등에서 사용되는 일반적인 언어 데이터(language data)와는 다르게, 동일한 평문 단어에 대해서도 단어의 위치가 다르다면 완전히 서로 다른 암호문을 갖는 특성을 지니고 있다. 따라서, 기존의 LSTM 신경망 기술만으로는 이러한 암호 데이터를 올바르게 분석할 수 없게 된다.
반면, 본 개시에 따른 신경망 모델은 상술한 바와 같은 암호학적 특성의 분석을 위해 암호문 시퀀스 전체를 다시 한번 참고하여 학습하는 어텐션 모듈을 포함하기 때문에, 입력된 암호문 시퀀스를 올바르게 분석할 수 있다. 추가적으로, 본 개시에 따른 신경망 모델의 디코더(1400)는 단어(word)들 간의 상관관계를 더욱 깊이 이해하기 위한 완전 연결 레이어(Fully connected layer, 1450)를 포함할 수 있다. 도 4b는 완전 연결 레이어(1450)가 삽입되어 있는 본 개시에 따른 디코더(1400)의 일부 구조를 나타낸다.
다시 말해, 본 개시에 따른 신경망 모델은 서로 다른 평문 시퀀스들 각각에 포함된 단어들이 동일하더라도 그 단어들의 위치가 상이하면 서로 다른 암호문 시퀀스에 대응되는 암호학적 특성을 바탕으로, 입력된 암호문 시퀀스를 복호화함으로써 그에 대응되는 평문 시퀀스를 출력할 수 있다. 또한, 신경망 모델은 디코더(1400)에 포함된 완전 연결 레이어(1450)를 통해 단어들 간의 상관관계를 참조하여, 입력된 암호문 시퀀스를 복호화함으로써 평문 시퀀스를 출력할 수 있다.
도 6은 본 개시에 따른 신경망 모델의 성능을 입증하기 위한 테스트 결과를 나타내는 도면이다.
본 개시에 따른 신경망 모델의 성능을 평가하기 위한 테스트에서는 교차 엔트로피 손실 함수(cross-entropy loss function)가 이용되었다. 교차 엔트로피 손실 함수는 다음과 같은 수학식 3으로 정의될 수 있다. 여기서, loss는 교차 엔트로피 손실함수이고, i는 문장의 색인 번호이며, y는 암호문 시퀀스이고,
Figure 112021061409131-pat00011
는 암호문 시퀀스에 대응되는 평문 시퀀스를 나타낸다.
Figure 112021061409131-pat00012
한편, 본 개시에 따른 신경망 모델의 성능을 평가하기 위한 테스트에서는 공지된 데이터세트 중 짧은 문장 길이를 갖는 “company report dataset”와 상대적으로 긴 문장 길이를 갖는 “Brown dataset”이 이용되었다. 여기서, “company report dataset”의 총 문장 수는 480 개이고 훈련 데이터(training data)와 테스트 데이터(test data)의 비중은 8:2이다. 그리고, “Brown dataset”의 총 문장 수는 57340 개이고, 훈련 데이터와 테스트 데이터의 비중은 8:2이다. 도 5의 각 그래프에서는 “company report dataset”를 이용한 테스트 결과를 그래프(51)로 나타내었으며, “Brown dataset”을 이용한 테스트 결과를 그래프(52)로 나타내었다.
한편, 도 5의 그래프들 중 상단의 그래프 3 개는 각각 Caesar 암호(a), Vigenere 암호(b) 및 Substitution 암호(c)의 경우 신경망 모델의 정확성을 측정한 결과이고, 도 5의 그래프들 중 하단의 그래프 3 개는 각각 Caesar 암호(a), Vigenere 암호(b) 및 (c) Substitution 암호의 경우 신경망 모델의 교차 엔트로피 손실 함수 값을 나타낸다.
한편, 신경망 모델에 암호문의 문자 빈도나 암호 키에 대한 사전 정보는 주어지지 않았다.
도 5를 참조하면, 본 개시에 따른 신경망 모델의 정확도 및 손실 함수 값은 대상이 되는 암호문의 종류에 데이터세트의 종류에 관계 없이 적은 반복 횟수(iteration) 만에 빠른 속도로 수렴한다는 것을 확인할 수 있다. 그리고, 짧은 문장 길이를 갖는 “company report dataset”를 이용한 경우가 상대적으로 긴 문장 길이를 갖는 “Brown dataset”을 이용한 경우에 비해 더 빠른 수렴 속도를 나타내기는 하지만, 상대적으로 긴 문장 길이를 갖는 “Brown dataset”을 이용한 경우에도 “company report dataset”를 이용한 경우와 큰 차이 없이 빠른 수렴 속도를 나타낸다는 것을 확인할 수 있다.
다시 말해, 도 5의 테스트 결과에 따르면, 본 개시에 따른 신경망 모델은 암호문의 유형에 대한 사전 정보가 주어지지 않는 경우에도, 다양한 유형의 고전적인 암호문을 그 암호문의 길이와 유형, 그리고 복잡성 등에 관계 없이 거의 완벽한 정확도로 해독할 수 있다는 것을 확인할 수 있다. 따라서, 본 개시에 따른 신경망 모델은 새롭게 등장하는 최신 암호의 특성을 효과적으로 파악할 수 있다.
또한, 상술한 바와 같은 본 개시에 따른 암호 해독 기술의 특징과 그에 따른 기술적 효과에 비추어 볼 때, 본 개시에 따른 신경망 모델은 특정 단어에 대해서는 무조건 동일한 단어로 쌍이 이루어지는 기계 번역 분야의 신경망 모델과는 달리, 동일한 평문 단어에 대해서도 단어의 위치가 다를 시 완전히 서로 다른 암호문을 갖는 암호문의 특성을 고려하여 효과적으로 암호문을 해독할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치(100)의 제어 방법을 나타내는 흐름도이다.
도 6을 참조하면, 본 개시에 따른 전자 장치(100)는 암호문 시퀀스를 임베딩 모듈(1100)에 입력하여, 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득할 수 있다(S610). 한편, 임베딩 벡터를 획득하기에 앞서 암호문 시퀀스는 기 정의된 단위의 토큰으로 분할될 수 있다.
임베딩 벡터가 획득되면, 전자 장치(100)는 임베딩 벡터를 인코더(1200)에 입력하여, 인코더(1200)에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득할 수 있다(S620). 여기서, 복수의 제1 신경망 셀은 상기 인코더(1200) 내에서 순차적으로 배치된 LSTM(long short-term memory) 신경망을 포함할 수 있다.
복수의 제1 은닉 상태 값이 획득되면, 전자 장치(100)는 어텐션 모듈(1300)을 통해, 디코더(1400)에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득할 수 있다(S630).
구체적으로, 전자 장치(100)는 복수의 제2 은닉 상태 값 별로 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어(attention score)를 획득할 수 있다. 복수의 제2 은닉 상태 값 별로 복수의 어텐션 스코어가 획득되면, 전자 장치(100)는 복수의 어텐션 스코어를 정규화하여 복수의 어텐션 가중치(attention weight)를 획득할 수 있다. 그리고, 복수의 어텐션 가중치가 획득되면, 전자 장치(100)는 복수의 어텐션 가중치와 복수의 제1 은닉 상태 값을 가중합(weighted sum)하여 복수의 어텐션 값을 획득할 수 있다. 결국, 복수의 어텐션 값은 디코더(1400)에 포함된 제2 신경망 셀 각각의 시점에서 인코더(1200)에 입력된 암호문 시퀀스에서 중요한 부분에 집중(attention)하기 위한 정보를 포함한다고 할 수 있다.
복수의 어텐션 값이 획득되면, 전자 장치(100)는 디코더(1400)를 통해, 복수의 제2 은닉 상태 값 및 복수의 어텐션 값을 바탕으로 평문 시퀀스 획득할 수 있다(S640). 다시 말해, 디코더(1400)는 제2 신경망 셀 마다, 암호문 시퀀스에서 중점을 두어야 할 부분에 대한 정보를 포함하는 어텐션 값을 이용하여 암호문 시퀀스에 대응되는 평문 시퀀스를 출력할 수 있다.
한편, 상술한 실시 예에 따른 전자 장치(100)의 제어 방법은 프로그램으로 구현되어 전자 장치(100)에 제공될 수 있다. 특히, 전자 장치(100)의 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
구체적으로, 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 전자 장치(100)는 임베딩 모듈(1100)(embedding module), 인코더(1200)(encoder), 어텐션 모듈(1300)(attention module) 및 디코더(1400)(decoder)를 포함하는 신경망 모델을 이용하여 암호문 시퀀스를 해독하며, 전자 장치(100)의 제어 방법은 암호문 시퀀스를 임베딩 모듈(1100)에 입력하여, 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하는 단계, 임베딩 벡터를 인코더(1200)에 입력하여, 인코더(1200)에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하는 단계, 어텐션 모듈(1300)을 통해, 디코더(1400)에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하는 단계 및 디코더(1400)를 통해, 복수의 제2 은닉 상태 값 및 복수의 어텐션 값을 바탕으로 평문 시퀀스를 획득하는 단계를 포함할 수 있다.
이상에서 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해 간략하게 설명하였으나, 이는 중복 설명을 생략하기 위한 것일 뿐이며, 전자 장치(100)에 대한 다양한 실시 예는 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해서도 적용될 수 있음은 물론이다.
한편, 이상에서 상술한 바와 같은 신경망 모델에 관련된 기능은 메모리(110) 및 프로세서(120)를 통해 수행될 수 있다.
프로세서(120)는 하나 또는 복수의 프로세서(120)로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서(120)는 CPU, AP 등과 같은 범용 프로세서, GPU. VPU 등과 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공 지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서(120)는, 비휘발성 메모리(110) 및 휘발성 메모리(110)에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기 정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
인공 지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 각 레이어는 복수의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), LSTM(Long Short-Term Memory), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network), GAN(Generative Adversarial Networks) 및 심층 Q-네트워크 (Deep Q-Networks) 등이 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇)을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리(110)와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다.
다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다.
상기 명령이 프로세서(120)에 의해 실행될 경우, 프로세서(120)가 직접 또는 상기 프로세서(120)의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100: 전자 장치 110: 메모리
120: 프로세서 1000: 신경망 모델
1100: 임베딩 모듈 1200: 인코더
1300: 어텐션 모듈 1400: 디코더

Claims (12)

  1. 전자 장치에 있어서,
    임베딩 모듈(embedding module), 인코더(encoder), 어텐션 모듈(attention module) 및 디코더(decoder)를 포함하는 신경망 모델에 대한 정보를 저장하는 메모리; 및
    상기 신경망 모델에 암호문 시퀀스를 입력하여, 상기 암호문 시퀀스가 복호화된 평문 시퀀스를 획득하는 프로세서; 를 포함하고,
    상기 프로세서는,
    상기 암호문 시퀀스를 상기 임베딩 모듈에 입력하여, 상기 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하고,
    상기 임베딩 벡터를 상기 인코더에 입력하여, 상기 인코더에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하며,
    상기 어텐션 모듈을 통해, 상기 디코더에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하고,
    상기 디코더를 통해, 상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 바탕으로 상기 평문 시퀀스를 획득하는 프로세서; 를 포함하고,
    상기 복수의 제2 은닉 상태 값은,
    상기 복수의 제1 신경망 셀 중 가장 마지막에 배치된 제1 신경망 셀을 통해 획득된 제1 은닉 상태 값을 상기 디코더에 입력하여 획득되는 것인, 전자 장치.
  2. 제1 항에 있어서,
    상기 프로세서는,
    상기 복수의 제2 은닉 상태 값 별로 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 복수의 어텐션 스코어를 획득하고,
    상기 복수의 어텐션 스코어를 정규화하여 복수의 어텐션 가중치를 획득하며,
    상기 복수의 어텐션 가중치와 상기 복수의 제1 은닉 상태 값을 가중합하여 상기 복수의 어텐션 값을 획득하는 전자 장치.
  3. 제1 항에 있어서,
    상기 프로세서는,
    상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 연결(concatenate)하여 중간 벡터를 획득하고,
    상기 중간 벡터를 상기 디코더에 입력하여 상기 평문 시퀀스를 획득하는 전자 장치.
  4. 제1 항에 있어서,
    상기 복수의 제1 신경망 셀은 상기 인코더 내에서 순차적으로 배치된 LSTM(long short-term memory) 신경망을 포함하고,
    상기 복수의 제2 신경망 셀은 상기 디코더 내에서 순차적으로 배치된 LSTM 신경망을 포함하는 전자 장치.
  5. 제1 항에 있어서,
    상기 프로세서는,
    상기 암호문 시퀀스에서 구두점(punctuation) 및 공백을 제외하고,
    상기 암호문 시퀀스에 포함된 띄어쓰기를 기준으로 상기 구두점이 제외된 암호문 시퀀스를 복수의 토큰으로 분할하며,
    상기 복수의 토큰을 상기 임베딩 모듈에 입력하여 상기 임베딩 벡터를 획득하는 전자 장치.
  6. 제1 항에 있어서,
    상기 프로세서는,
    Word2Vec 기법을 바탕으로 전처리를 수행하여 상기 임베딩 벡터를 획득하는 전자 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 제1 항에 있어서,
    상기 디코더는 완전 연결 레이어(fully connected layer)를 더 포함하고,
    상기 어텐션 모듈은 상기 디코더에서 평문 시퀀스를 예측하는 모든 시점(time step)마다 상기 입력된 암호문 시퀀스 전체를 다시 한번 참고하여 상기 복수의 어텐션 값을 출력하는, 전자 장치.
  11. 임베딩 모듈(embedding module), 인코더(encoder), 어텐션 모듈(attention module) 및 디코더(decoder)를 포함하는 신경망 모델을 이용하여 암호문 시퀀스를 해독하기 위한 전자 장치의 제어 방법에 있어서,
    상기 암호문 시퀀스를 상기 임베딩 모듈에 입력하여, 상기 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하는 단계;
    상기 임베딩 벡터를 상기 인코더에 입력하여, 상기 인코더에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하는 단계;
    상기 어텐션 모듈을 통해, 상기 디코더에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하는 단계; 및
    상기 디코더를 통해, 상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 바탕으로 평문 시퀀스를 획득하는 단계; 를 포함하고,
    상기 복수의 제2 은닉 상태 값은,
    상기 복수의 제1 신경망 셀 중 가장 마지막에 배치된 제1 신경망 셀을 통해 획득된 제1 은닉 상태 값을 상기 디코더에 입력하여 획득되는 것인, 전자 장치의 제어 방법.
  12. 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서,
    상기 전자 장치는,
    임베딩 모듈(embedding module), 인코더(encoder), 어텐션 모듈(attention module) 및 디코더(decoder)를 포함하는 신경망 모델을 이용하여 암호문 시퀀스를 해독하며,
    상기 전자 장치의 제어 방법은,
    상기 암호문 시퀀스를 상기 임베딩 모듈에 입력하여, 상기 암호문 시퀀스가 수치화된 임베딩 벡터(embedding vector)를 획득하는 단계;
    상기 임베딩 벡터를 상기 인코더에 입력하여, 상기 인코더에 포함된 복수의 제1 신경망 셀 각각에 대응되는 복수의 제1 은닉 상태 값(first hidden state value)을 획득하는 단계;
    상기 어텐션 모듈을 통해, 상기 디코더에 포함된 복수의 제2 신경망 셀 각각에 대응되는 복수의 제2 은닉 상태 값(second hidden state value) 별로, 상기 복수의 제1 은닉 상태 값 각각과의 유사도에 관련된 정보를 포함하는 복수의 어텐션 값(attention value)을 획득하는 단계; 및
    상기 디코더를 통해, 상기 복수의 제2 은닉 상태 값 및 상기 복수의 어텐션 값을 바탕으로 평문 시퀀스를 획득하는 단계; 를 포함하고,
    상기 복수의 제2 은닉 상태 값은,
    상기 복수의 제1 신경망 셀 중 가장 마지막에 배치된 제1 신경망 셀을 통해 획득된 제1 은닉 상태 값을 상기 디코더에 입력하여 획득되는 것인, 컴퓨터 판독 가능 기록매체.
KR1020210068517A 2021-05-27 2021-05-27 신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법 KR102674639B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210068517A KR102674639B1 (ko) 2021-05-27 2021-05-27 신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210068517A KR102674639B1 (ko) 2021-05-27 2021-05-27 신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법

Publications (2)

Publication Number Publication Date
KR20220160373A KR20220160373A (ko) 2022-12-06
KR102674639B1 true KR102674639B1 (ko) 2024-06-14

Family

ID=84406975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210068517A KR102674639B1 (ko) 2021-05-27 2021-05-27 신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법

Country Status (1)

Country Link
KR (1) KR102674639B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116595566B (zh) * 2023-07-17 2023-10-20 山东云天安全技术有限公司 数据加密系统及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6695595B2 (ja) 2017-08-30 2020-05-20 株式会社アクセル 推論装置、及び推論方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6695595B2 (ja) 2017-08-30 2020-05-20 株式会社アクセル 推論装置、及び推論方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
N. Kambhatla 등. "Decipherment of Substitution Ciphers with Neural Language Models". Association for Computational Linguistics
S. Greydanus. "Learning the Enigma with Recurrent Neural Networks". arXiv:1708.07576v2

Also Published As

Publication number Publication date
KR20220160373A (ko) 2022-12-06

Similar Documents

Publication Publication Date Title
JP6955580B2 (ja) 文書要約自動抽出方法、装置、コンピュータ機器及び記憶媒体
WO2020088330A1 (en) Latent space and text-based generative adversarial networks (latext-gans) for text generation
US11693854B2 (en) Question responding apparatus, question responding method and program
CN108460028B (zh) 将句子权重融入神经机器翻译的领域适应方法
US11397892B2 (en) Method of and system for training machine learning algorithm to generate text summary
KR20190101567A (ko) 기계 독해에 기초한 질의 응답 장치 및 이를 이용한 질의 응답 방법
JP7343566B2 (ja) 言語モデルを利用したデータ生成方法、コンピュータ装置、およびコンピュータプログラム
JP6649536B1 (ja) 対話処理装置、学習装置、対話処理方法、学習方法及びプログラム
Nagaraj et al. Kannada to English Machine Translation Using Deep Neural Network.
KR102258906B1 (ko) 구어에서 수어로의 주의 기반 인공신경망 기계 번역 방법 및 그 장치
Kwon et al. Ensemble transfer attack targeting text classification systems
Luo et al. EmotionX-DLC: self-attentive BiLSTM for detecting sequential emotions in dialogue
KR102674639B1 (ko) 신경망 모델 기반 암호문을 복호화하기 위한 전자 장치 및 전자 장치의 제어 방법
US20190228310A1 (en) Generation of neural network containing middle layer background
KR20210044559A (ko) 출력 토큰 결정 방법 및 장치
Ouyang et al. Gated pos-level language model for authorship verification
KR102439165B1 (ko) 상식 지식과 언어학적 패턴을 이용한 서술문 신뢰도 평가 시스템 및 그 방법
KR20230093797A (ko) 분류 모델에 기반하여 바꿔 쓰기 모델을 학습하는 방법, 바꿔 쓰기 모델을 이용한 텍스트 데이터의 증강 방법 및 이를 이용한 텍스트 처리 장치
Sharma et al. Language identification for hindi language transliterated text in roman script using generative adversarial networks
JP2018081294A (ja) 音響モデル学習装置、音声認識装置、音響モデル学習方法、音声認識方法、およびプログラム
WO2021234610A1 (en) Method of and system for training machine learning algorithm to generate text summary
Im et al. Cross-active connection for image-text multimodal feature fusion
KR20210044003A (ko) 단어 임베딩 방법 및 장치와 단어 검색 방법
JP7411149B2 (ja) 学習装置、推定装置、学習方法、推定方法及びプログラム
US20220383096A1 (en) Explaining Neural Models by Interpretable Sample-Based Explanations

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)