KR102554852B1 - 인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치 - Google Patents

인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치 Download PDF

Info

Publication number
KR102554852B1
KR102554852B1 KR1020200136290A KR20200136290A KR102554852B1 KR 102554852 B1 KR102554852 B1 KR 102554852B1 KR 1020200136290 A KR1020200136290 A KR 1020200136290A KR 20200136290 A KR20200136290 A KR 20200136290A KR 102554852 B1 KR102554852 B1 KR 102554852B1
Authority
KR
South Korea
Prior art keywords
computing device
waveform
decimal
neural network
word
Prior art date
Application number
KR1020200136290A
Other languages
English (en)
Other versions
KR20220052207A (ko
KR102554852B9 (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 KR1020200136290A priority Critical patent/KR102554852B1/ko
Publication of KR20220052207A publication Critical patent/KR20220052207A/ko
Application granted granted Critical
Publication of KR102554852B1 publication Critical patent/KR102554852B1/ko
Publication of KR102554852B9 publication Critical patent/KR102554852B9/ko

Links

Images

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
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

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

Abstract

컴퓨팅 장치에 의해 수행되는 RSA 암호의 부채널 분석을 위한 인공신경망의 학습 방법이 개시된다. 개시된 방법은 상기 컴퓨팅 장치가, 소정의 연산 장치에서 RSA 암호의 비밀키 생성 연산을 수행하는 동안 소수 워드가 로드되는 시간 구간들을 추출하는 단계; 상기 컴퓨팅 장치가, 상기 소정의 연산 장치에 대해 획득된 학습 파형에서 상기 소수 워드가 로드되는 시간 구간들을 연접시키는 단계; 및 상기 컴퓨팅 장치가, 상기 학습 파형으로부터 연접된 파형 및 라벨링 데이터를 이용하여 상기 인공신경망을 학습시키는 단계를 포함한다.

Description

인공신경망을 이용한 RSA 암호에 대한 부채널 분석 방법 및 장치{METHOD AND APPARATUS FOR SIDE CHANNEL ANALYSIS FOR RSA ENCRYPTION USING ARTIFICAL NEURAL NETWORK}
인공신경망을 이용한 RSA 암호에 대한 부채널 분석 방법 및 장치{METHOD AND APPARATUS FOR SIDE CHANNEL ANALYSIS FOR RSA ENCRYPTION USING ARTIFICAL NEURAL NETWORK}
정보 기술의 발전에 따라 암호화 기술은 경제, 군사, 행정 등에 광범위하게 적용되고 있다. 공개 키 암호화 알고리즘의 하나인 RSA 암호화 방법은 전자 서명, 신원 인증, 전자상거래, 메시지 인증 등 다양한 분야에 광범위하게 이용되고 있다. RSA 암호는 수학적으로 파훼가 어려운 소수의 곱셈 연산에 의해 비밀키가 생성되므로 수학적인 안정성이 어느정도 담보되고 있다.
RSA 암호에 대해 수학적인 안전성이 어느정도 증명되었지만 암호 알고리즘이 작동할 때에 부채널(side channel) 정보를 이용하여 비밀키에 대한 정보를 획득할 수 있다는 것이 알려졌다. 부채널 정보를 이용한 공격을 부채널 공격이라고 하며 부채널 정보에는 빛, 소비 전력, 전자파, 소리 등이 포함되어 있다.
RSA 암호 알고리즘은 소수들 사이의 곱셈에 기반하여 비밀키를 생성하는 과정 및 비밀키에 기반하여 암호화를 수행하는 과정을 포함한다. 이 중 암호화 연산 부분에 대해서 부채널 공격을 수행하는 방법 및 부채널 공격에 대응하여 암호화 알고리즘을 개선하는 방식에 대해서는 어느정도 연구가 진척된 바 있다. 하지만, RSA 암호화 알고리즘에서 비밀 키를 생성하기 위한 소수(prime number)의 곱셈 연산이 수행되는 부분에 대한 취약점에 대한 연구는 아직 이루어지지 않은 상황이다.
암호화 알고리즘이 적용된 제품들은 부채널 공격에 대해 어느정도 안전성을 가지도록 요구되고 있다. 이런 상용화 제품들은 부채널 공격에 대한 저항성을 가져야 하며, 제품을 생산하는 기업은 상용화 제품이 부채널 공격에 대해 어느정도 저항성을 가지는 지를 테스트하여야 한다.
RSA 암호 알고리즘이 적용되는 제품에 대해서도 부채널 공격에 대한 저항성 테스트가 필요하다. 하지만, RSA 암호의 비밀키 생성 과정 중 소수의 곱셈 연산이 수행되는 부분에 대한 부채널 분석 방법이 부재한 상태이다.
이하에서 개시되는 적어도 하나의 실시 예는 RSA 암호에 대한 부채널 분석을 위해 인공신경망을 학습시키는 방법을 제공하는 것을 목적으로 한다. 적어도 하나의 실시예는 학습된 인공신경망을 이용하여 소수의 곱셈 연산 부분에 대한 부채널 분석 방법을 제공하는 것을 목적으로 한다.
일 측면에 따르면, 컴퓨팅 장치에 의해 수행되는 RSA 암호의 부채널 분석을 위한 인공신경망의 학습 방법이 개시된다. 개시된 방법은 상기 컴퓨팅 장치가, 소정의 연산 장치에서 RSA 암호의 비밀키 생성 연산을 수행하는 동안 소수 워드가 로드되는 시간 구간들을 추출하는 단계; 상기 컴퓨팅 장치가, 상기 소정의 연산 장치에 대해 획득된 학습 파형에서 상기 소수 워드가 로드되는 시간 구간들을 연접시키는 단계; 및 상기 컴퓨팅 장치가, 상기 학습 파형으로부터 연접된 파형 및 라벨링 데이터를 이용하여 상기 인공신경망을 학습시키는 단계를 포함한다.
상기 라벨링 데이터는 상기 학습 파형을 발생시키기 위해 실제로 사용된 소수 워드에 대한 정보를 포함할 수 있다.
상기 소수 워드의 크기는 상기 연산 장치의 연산 단위에 따라 결정될 수 있다.
상기 인공신경망은 입력 레이어, 중간 레이어 및 출력 레이어를 포함하며, 상기 입력 레이어는 상기 연접된 파형에 대한 정보를 입력 받기 위한 적어도 하나의 입력 노드를 포함하고, 상기 출력 레이어는 상기 입력 레이어에 입력된 연접된 파형에 대응하는 소수 워드에 대한 정보를 출력하기 위한 적어도 하나의 출력 노드를 포함할 수 있다.
상기 소수 워드가 로드되는 시간 구간들을 추출하는 단계는, 상기 소정의 연산 장치의 소비 전력 파형과 상기 소수 워드 사이의 상관계수를 분석하는 단계; 및 상기 상관계수에 기초하여 상기 소수 워드가 로드되는 시간 구간들을 추출하는 단계를 포함할 수 있다.
상기 소수 워드가 로드되는 시간 구간들을 연접시키는 단계는, 상기 소정의 연산 장치에 대한 학습 파형을 획득하는 단계; 상기 학습 파형에서 소수 워드의 로드 시간 구간들을 추출하는 단계; 및 상기 학습 파형으로부터 소수 워드의 로드 시간 구간들에서 추출된 파형들을 연접시키는 단계를 포함할 수 있다.
다른 측면에 있어서 컴퓨팅 장치에 의해 수행되는 인공신경망을 이용한 RSA 암호의 부채널 분석 방법이 개시된다. 개시된 방법은 상기 컴퓨팅 장치가, 소정의 연산 장치로부터 분석대상 파형을 획득하는 단계; 상기 컴퓨팅 장치가, 상기 분석대상 파형에서 소수 워드의 로드 시간 구간들을 추출하여 연접시키는 단계; 상기 컴퓨팅 장치가, 연접된 파형을 미리 학습된 인공 신경망에 입력하여 상기 분석대상 파형에 대응하는 소수 워드 정보를 출력하는 단계; 및 상기 소수 워드 정보를 이용하여 상기 RSA 암호의 비밀정보를 획득하는 단계를 포함할 수 있다.
상기 인공신경망은 입력 레이어, 중간 레이어 및 출력 레이어를 포함하며, 상기 입력 레이어는 상기 연접된 파형에 대한 정보를 입력 받기 위한 적어도 하나의 입력 노드를 포함하고, 상기 출력 레이어는 상기 입력 레이어에 입력된 연접된 파형에 대응하는 소수 워드에 대한 정보를 출력하기 위한 적어도 하나의 출력 노드를 포함할 수 있다.
상기 소수 워드 정보는 공개 키를 생성하기 위한 제1 소수 및 제2 소수 중 어느 하나를 구성하는 복수의 워드 정보를 포함할 수 있다.
상기 RSA 암호의 비밀정보를 획득하는 단계는, 상기 소수 워드 정보를 이용하여 상기 제1 소수 및 제2 소수 중 어느 하나의 값을 결정하는 단계 및 상기 공개 키에 대한 정보 및 상기 제1 소수 및 제2 소수 중 어느 하나의 값에 기초하여 다른 하나의 값을 결정하는 단계를 포함할 수 있다.
다른 측면에 있어서, 인공신경망을 이용한 RSA 암호의 부채널 분석을 수행하는 컴퓨팅 장치가 개시된다. 개시된 장치는 소비 전력 측정부; 및 프로세서를 포함하며, 상기 프로세서는 소정의 연산 장치로부터 분석대상 파형을 획득하는 프로세스; 상기 분석대상 파형에서 소수 워드의 로드 시간 구간들을 추출하여 연접시키는 프로세스; 연접된 파형을 미리 학습된 인공 신경망에 입력하여 상기 분석대상 파형에 대응하는 소수 워드 정보를 출력하는 프로세스; 및 상기 소수 워드 정보를 이용하여 상기 RSA 암호의 비밀정보를 획득하는 프로세스를 수행할 수 있다.
적어도 하나의 실시예에 따르면 학습 파형에서 소수 워드가 로드되는 시간 구간들을 연접시킨 파형 및 라벨링 데이터를 이용하여 인공신경망이 소수 워드들을 추측하도록 학습시킬 수 있다. 적어도 하나의 실시예에 따르면 연접된 파형과 라벨링 데이터를 이용함으로써 인공신경망의 학습 성능이 높아질 수 있다. 적어도 하나의 실시예에 따르면 컴퓨팅 장치가 연산 장치에서 소수의 곱셈에서 소수 워드를 로드 하는 동안 발생하는 취약점을 인공신경망을 이용하여 분석할 수 있다. 적어도 하나의 실시예에 따르면 컴퓨팅 장치가 연산 장치의 RSA 암호의 키 생성 과정에서 발생하는 취약점을 분석함으로써 연산 장치의 설계 또는 RSA 암호 알고리즘 설계의 개선에 기여할 수 있다.
본 발명의 실시 예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시 예들 중 단지 일부일 뿐이며, 본 발명의 기술분야에서 통상의 지식을 가진 사람(이하 "통상의 기술자"라 함)에게 있어서는 발명에 이르는 추가 노력 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.
도 1은 예시적인 실시예에 따른 컴퓨팅 장치를 나타낸 개념도이다.
도 2는 예시적인 실시예에 따른 인공신경망의 학습 방법을 나타낸 순서도이다.
도 3은 8 비트 단위로 연산을 수행하는 연산 장치가 32 비트 크기의 소수 p, q 사이의 곱셈 연산을 수행하는 것을 예시적으로 도식화한 개념도이다.
도 4는 도 2의 S110 단계가 수행되는 과정을 예시적으로 나타낸 순서도이다.
도 5는 소수 워드가 로드되는 시간 구간들이 설정되는 것을 예시적으로 나타낸 개념도이다.
도 6은 도 2의 S120 단계가 수행되는 과정을 예시적으로 나타낸 순서도이다.
도 7은 컴퓨팅 장치에 의해 학습되는 인공신경망을 예시적으로 나타낸 개념도이다.
도 8은 예시적인 실시예에 따른 컴퓨팅 장치의 부채널 분석 방법을 나타낸 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명의 목적들, 기술적 해법들 및 장점들을 분명하게 하기 위하여 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시 예는 통상의 기술자가 본 발명을 실시할 수 있도록 상세히 설명된다.
본 발명의 상세한 설명 및 청구항들에 걸쳐, '포함하다'라는 단어 및 그 변형은 다른 기술적 특징들, 부가물들, 구성요소들 또는 단계들을 제외하는 것으로 의도된 것이 아니다. 또한, '하나' 또는 '한'은 하나 이상의 의미로 쓰인 것이며, '또 다른'은 적어도 두 번째 이상으로 한정된다.
또한, 본 발명의 '제1', '제2' 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로서, 순서를 나타내는 것으로 이해되지 않는 한 이들 용어들에 의하여 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 이와 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는 그 다른 구성요소에 직접 연결될 수도 있지만 중간에 다른 구성요소가 개재할 수도 있다고 이해되어야 할 것이다. 반면에 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉, "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
각 단계들에 있어서 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용된 것으로 식별부호는 논리상 필연적으로 귀결되지 않는 한 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며, 반대의 순서로 수행될 수도 있다.
통상의 기술자에게 본 발명의 다른 목적들, 장점들 및 특성들이 일부는 본 설명서로부터, 그리고 일부는 본 발명의 실시로부터 드러날 것이다. 아래의 예시 및 도면은 실례로서 제공되며, 본 발명을 한정하는 것으로 의도된 것이 아니다. 따라서, 특정 구조나 기능에 관하여 본 명세서에 개시된 상세 사항들은 한정하는 의미로 해석되어서는 아니되고, 단지 통상의 기술자가 실질적으로 적합한 임의의 상세 구조들로써 본 발명을 다양하게 실시하도록 지침을 제공하는 대표적인 기초 자료로 해석되어야 할 것이다.
더욱이 본 발명은 본 명세서에 표시된 실시 예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. 또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 명세서에서 달리 표시되거나 분명히 문맥에 모순되지 않는 한, 단수로 지칭된 항목은, 그 문맥에서 달리 요구되지 않는 한, 복수의 것을 아우른다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하, 통상의 기술자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 예시적인 실시예에 따른 컴퓨팅 장치를 나타낸 개념도이다. 도 1을 참조하면, 컴퓨팅 장치(100)는 프로세서(110) 및 소비 전력 측정부(120)를 포함할 수 있다. 컴퓨팅 장치(100)는 소정의 연산 프로세스 및 전력 측정 프로세스를 수행할 수 있는 컴퓨팅 장치일 수 있다. 예시적으로, 컴퓨팅 장치(100)는 전형적인 컴퓨터 하드웨어(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS; network-attached storage) 및 스토리지 영역 네트워크(SAN; storage area network)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 명령어들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
프로세서(110)는 메모리 및/또는 저장 장치에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(110)는 중앙 처리 장치(central processing unit; CPU), 그래픽 처리 장치(graphics processing unit; GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리와 저장 장치는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리는 읽기 전용 메모리(read only memory; ROM) 및/또는 랜덤 액세스 메모리(random access memory; RAM)로 구성될 수 있다.
소비 전력 측정부(120)는 분석 대상이 되는 암호문을 전송하는 연산 장치(10)의 소비 전력을 분석할 수 있다. 소비 전력 측정부(120)는 연산 장치(10)의 소비 전력의 파형에 대한 정보를 프로세서(110)에게 전달할 수 있다. 프로세서(110)는 소비 전력의 파형에 대한 정보를 분석함으로써 암호의 비밀 정보(예컨데, 비밀키 정보)를 도출해낼 수 있다.
도 2는 예시적인 실시예에 따른 인공신경망의 학습 방법을 나타낸 순서도이다.
도 2를 참조하면, S110 단계에서 컴퓨팅 장치(100)는 연산 장치(10)의 소비 전력 파형에서 소수 워드가 로드되는 시간 구간들을 결정할 수 있다. 여기서, 소수 워드(prime number word)는 RSA 암호의 비밀키 생성에서 사용되는 소수 데이터를 연산 장치(10)의 연산 단위에 따라 분할한 데이터일 수 있다. 예를 들어, 연산 장치(10)가 512 비트 크기를 가지는 소수들 사이의 연산을 8 비트 단위로 수행할 경우, 각각의 소수는 64개의 소수 워드들로 구성될 수 있다. 다른 예로, 연산 장치(10)가 32 비트 크기를 가지는 소수들 사이의 연산을 8 비트 단위로 수행할 경우, 각각의 소수는 4개의 소수 워드들로 구성될 수 있다. 소수를 나타내는 데이터를 구성하는 소수 워드들의 개수는 소수를 나타내는 데이터의 크기와 연산 장치(10)의 연산 단위에 따라 결정될 수 있다.
상술한 바와 같이 수를 나타내는 데이터의 크기가 연산 장치(10)의 연산 단위보다 큰 경우 곱 스캐닝 곱셈(product scanning multiplication) 연산에 의해 두 수 사이의 곱셈 결과를 계산할 수 있다.
임의의 정수 A, B 사이의 곱 스캐닝 곱셈 알고리즘을 표 1과 같이 나타낼 수 있다.
Figure 112020111134322-pat00001
표 1에서 A, B는 곱셈 대상이 되는 두 정수를 나타낸다. A[i]는 정수 A의 i번째 워드를 나타내고, B[j]는 정수 B의 j번째 워드를 나타낸다.
표 1의 2 내지 10번 줄에 해당하는 반복문 알고리즘을 참조하면, 곱셈 연산에서, 각각의 A[i]는 0≤j≤t-1 범위의 모든 B[j]와 곱해지는 연산이 수행될 수 있다. 즉, A, B 사이의 곱 스캐닝 곱셈 연산에서 각각의 A[i]는 인덱스 j의 개수, 즉 t 번 로드 될 수 있다.
연산 장치(10)가 크기가 큰 두 소수의 곱을 계산하는 과정에서도 유사한 원리가 적용될 수 있다.
도 3은 8 비트 단위로 연산을 수행하는 연산 장치(10)가 32 비트 크기의 소수 p, q 사이의 곱셈 연산을 수행하는 것을 예시적으로 도식화한 개념도이다.
도 3을 참조하면, 8 비트 단위로 연산을 수행하는 연산 장치(10)가 32 비트 크기의 소수 p, q에 대해서 곱 스캐닝 곱셈 연산을 수행할 경우, p는 p[i] (0≤i≤3)으로 구성되고, q는 q[j] (0≤j≤3)으로 구성될 수 있다. 또한, 곱 스캐닝 곱셈 연산에서 각각의 p[i]는 q[0], q[1], q[2], q[3] 각각과 곱해질 수 있다. 따라서, 곱 스캐닝 곱셈 연산 과정에서 p[i]는 4번 로드 될 수 있다.
도 3에서는 연산 단위가 8 비트이고 소수 데이터의 크기가 32 비트인 경우를 나타냈지만 실시예가 이에 제한되는 것은 아니다. 소수 데이터의 크기 및 연산 단위는 달라질 수도 있다. 예를 들어, 연산 단위가 8 비트이고 소수 p, q 가 각각 512 비트인 경우, p는 p[i] (0≤i≤63)으로 구성되고, q는 q[j] (0≤j≤63)으로 구성될 수 있다. 또한, 각각의 p[i]는 곱 스캐닝 곱셈 연산 과정에서 64번 로드될 수 있다.
도 4는 도 2의 S110 단계가 수행되는 과정을 예시적으로 나타낸 순서도이다.
도 4를 참조하면, S112 단계에서 컴퓨팅 장치(100)는 연산 장치(10)의 소비 전력 파형과 미리 알고 있는 소수 워드 사이의 상관 계수를 분석할 수 있다. 이 과정에서 컴퓨팅 장치(100)는 연산 장치(10)가 취급하는 두 소수 p, q를 이미 알고 있다고 가정할 수 있다. 컴퓨팅 장치(100)는 연산 장치(10)의 소비 전력 파형에 대한 정보를 획득할 수 있다. 컴퓨팅 장치(100)는 소비 전력 측정부(120)를 이용하여 연산 장치(10)의 소비 전력 파형을 측정함으로써 소비 전력 파형에 대한 정보를 획득할 수 있다. 다른 예로 컴퓨팅 장치(100)는 다른 장치가 측정한 연산 장치(10)의 소비 전력 파형 정보를 수신함으로써 해당 정보를 획득할 수도 있다.
컴퓨팅 장치(100)는 연산 장치(10)의 소비 전력 파형과 소수 워드 사이의 상관계수를 분석할 수 있다. 이 과정에서 컴퓨팅 장치(100)는 상관전력 분석을 수행함으로써 상관계수를 분석할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 피어슨 상관관계(Pearson correlation)에 따른 분석 방법을 이용하여 피어슨 상관계수를 분석할 수 있다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 상관계수 분석은 통상의 기술자가 상관전력 분석을 위해 이용할 수 있는 다른 기법에 의해 수행될 수도 있다.
S114 단계에서 컴퓨팅 장치(100)는 상관계수 분석 결과에 기초하여 연산 장치(10)의 소비 전력 파형에서 소수 워드가 로드되는 시간 구간들을 결정할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 상관계수(예를 들어, 피어슨 상관계수)가 피크 값을 가지는 시점들을 기준으로 소정의 시간 구간들을 설정함으로써 소수 워드가 로드되는 시간 구간들을 설정할 수 있다. 시간 구간들의 크기는 사용자의 설정에 따라 달라질 수 있다. 다른 예로, 시간 구간들의 크기는 상관계수 그래프의 모양에 따라 유동적으로 변경될 수도 있다. 또 다른 예로 컴퓨팅 장치(100)는 상관계수 그래프에서 상관계수가 기준값 이상인 시간 구간들을 소수 워드가 로드되는 시간 구간들로 설정할 수도 있다.
도 5는 소수 워드가 로드되는 시간 구간들이 설정되는 것을 예시적으로 나타낸 개념도이다.
도 5의 (a)는 연산 장치(10)의 소비전력 파형을 나타낸 그래프이다. 도 5의 (a)에서 가로축은 시간을 나타내고 세로축은 소비전력을 나타낸다. 도 5의 (b)는 컴퓨팅 장치(100)가 분석한 소비전력 파형과 소수 워드 사이의 상관계수의 변화를 나타낸 그래프이다. 도 5의 (b)에서 가로축은 시간을 나타내고 세로축은 상관계수의 절대값의 크기를 나타낸다. 도 5의 (b)에서 파란색 그래프는 제1 소수 워드 p[0]와 소비전력 파형 사이의 상관계수의 변화를 나타내고, 붉은색 그래프는 제2 소수 워드 p[1]과 소비전력 파형 사이의 상관계수의 변화를 나타내고, 노란색 그래프는 제3 소수 워드 p[2]와 소비전력 파형 사이의 상관계수의 변화를 나타내고, 보라색 그래프는 제4 소수 워드 p[3]와 소비전력 파형 사이의 상관계수의 변화를 나타낸다. 도 5에서 나타낸 그래프들은 연산 장치(10)가 8 비트 단위로 연산을 수행하고, 소수 p, q가 각각 32 비트 크기를 가지는 경우에서 측정된 실험결과들을 나타낸다.
도 5를 참조하면, 소수 워드 p[i] (0≤i≤3) 각각이 로드되는 4개의 시간구간들이 추출될 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1 소수 워드 p[0]에 대한 상관계수가 상대적으로 높아지는 t00, t01, t02, t03 시간구간들을 추출할 수 있다. 컴퓨팅 장치(100)는 t00, t01, t02, t03 시간구간들을 제1 소수 워드가 p[0]가 로드되는 4개의 시간구간들로 결정할 수 있다. 마찬가지로 컴퓨팅 장치(100)는 제2 소수 워드 p[1]에 대한 상관계수가 상대적으로 높아지는 t10, t11, t12, t13 시간구간들을 제2 소수 워드 p[1]이 로드되는 4개의 시간구간들로 결정할 수 있다.
상술한 방식에 의해 컴퓨팅 장치(100)는 연산 장치(10)의 소비전력 파형에서 소수 워드가 로드되는 시간구간들을 프로파일링 할 수 있다. 컴퓨팅 장치(100)는 연산 장치(10)의 소비전력 파형에서 t00, t01, t02, t03 시간구간들이 제1 소수 워드 p[0]가 로드되는 시간구간들이라고 결정하여 연산 장치(10)를 프로파일링 할 수 있다. 컴퓨팅 장치(100)는 연산 장치(10)의 소비전력 파형에서 t10, t11, t12, t13 시간구간들이 제2 소수 워드 p[1]이 로드되는 시간구간들이라고 결정하여 연산 장치(10)를 프로파일링 할 수 있다. 컴퓨팅 장치(100)는 연산 장치(10)의 소비전력 파형에서 t20, t21, t22, t23 시간구간들이 제3 소수 워드 p[2]가 로드되는 시간구간들이라고 결정하여 연산 장치(10)를 프로파일링 할 수 있다. 컴퓨팅 장치(100)는 연산 장치(10)의 소비전력 파형에서 t30, t31, t32, t33 시간구간들이 제4 소수 워드 p[3]가 로드되는 시간구간들이라고 결정하여 연산 장치(10)를 프로파일링 할 수 있다. 컴퓨팅 장치(100)는 연산 장치(10)의 다른 소비전력 파형을 분석할 때에도 프로파일링에 의해 결정된 시간구간들에서 소수 워드가 로드되는 시간 구간들의 파형들을 추출할 수 있다.
다시 도 2를 참조하면, S120 단계에서 컴퓨팅 장치(100)는 인공신경망의 학습을 위해 준비된 학습 파형에서 소수 워드가 로드되는 시간 구간들을 연접시킬 수 있다.
도 6은 도 2의 S120 단계가 수행되는 과정을 예시적으로 나타낸 순서도이다.
도 6을 참조하면, S122 단계에서 컴퓨팅 장치(100)는 인공신경망의 학습을 위한 학습 파형을 획득할 수 있다. 컴퓨팅 장치(100)는 복수의 학습 파형들을 획득할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 직접 연산 장치(10)의 소비전력 파형을 복수 회 측정함으로써 학습 파형들을 획득할 수 있다. 다른 예로 컴퓨팅 장치(100)는 다른 장치에 의해 측정된 학습 파형들에 대한 정보를 수신함으로써 학습 파형들을 획득할 수 있다.
S124 단계에서 컴퓨팅 장치(100)는 학습 파형에서 소수 워드의 로드 시간구간들을 추출할 수 있다. 컴퓨팅 장치(100)는 학습 파형에서 상술한 S114 단계의 수행에 의해 결정된 소수 워드의 로드 시간구간들을 추출할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 학습 파형에서 t00, t01, t02, t03 시간구간들을 제1 소수 워드 p[0]의 로드 시간구간들로 추출할 수 있다.
S126 단계에서 컴퓨팅 장치(100)는 학습파형으로부터 소수 워드의 로드 시간구간들에서 추출된 파형들을 연접시킬 수 있다. 컴퓨팅 장치(100)는 학습파형의 전체 시간 구간 가운데 t00, t01, t02, t03 시간구간들에 있는 파형들을 추출하여 연접시킬 수 있다. 컴퓨팅 장치(100)는 t00, t01, t02, t03 시간구간들에 있는 파형들을 연접시켜 하나의 연접된 파형을 구성할 수 있다. 컴퓨팅 장치(100)는 연접된 파형을 인공신경망의 학습을 위한 학습데이터로 활용할 수 있다. 컴퓨팅 장치(100)는 t00, t01, t02, t03 시간구간들 뿐만 아니라 t10, 11, t12, t13 시간구간들에 있는 파형들을 연접함으로써 소수 워드 p[1]에 대한 학습데이터를 구성할 수도 있다.
다시 도 2를 참조하면, S130 단계에서 컴퓨팅 장치(100)는 연접된 파형과 라벨링 데이터를 이용하여 인공신경망을 학습시킬 수 있다. 라벨링 데이터는 학습 파형을 발생시키기 위해 연산 장치(10)가 실제로 사용한 소수 워드에 대한 정보를 포함할 수 있다.
컴퓨팅 장치(100)가 사용하는 학습데이터는 연접된 파형과 그에 대응하는 소수 워드의 참값에 대한 정보를 포함할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 학습 파형의 t00, t01, t02, t03 시간구간들에 있는 파형들을 연접시킨 파형을 인공신경망의 입력데이터로 활용하고, 학습 파형을 생성하기 위해 연산 장치(10)가 사용한 p[0]의 실제값을 라벨링으로 활용하여 인공신경망을 학습시킬 수 있다. 컴퓨팅 장치(100)는 오류 역전파 방식 등을 이용하여 인공신경망의 노드들 사이의 가중치를 변경해 감으로써 인공신경망을 학습시킬 수 있다.
도 7은 컴퓨팅 장치(100)에 의해 학습되는 인공신경망을 예시적으로 나타낸 개념도이다.
도 7을 참조하면, 인공신경망은 입력 레이어(20), 중간 레이어(30) 및 출력 레이어(40)를 포함할 수 있다.
입력 레이어(20)는 입력 노드들이 포함된 레이어(22)와 입력 노드들에 입력된 데이터를 배치 정규화 하기 위한 배치 정규화 레이어(24)를 포함할 수 있다. 중간 레이어(30)는 이전 층의 모든 노드들과 전결합(fully connected)된 밀집 레이어(dense layer, 32), 활성화 함수 레이어(ELU, exponential linear unit, 34), 배치 정규화 레이어(36) 및 신경망 구조의 단순화를 위한 드롭아웃(38)을 포함할 수 있따. 상술한 인공신경망의 구조는 하나의 예시에 불과하며 입력 레이어(20) 및 중간 레이어(30) 각각의 구체적인 구조는 통상의 기술자가 용이하게 변경할 수 있는 범위에서 변경될 수 있다.
입력 레이어(20)는 적어도 하나의 입력 노드를 포함할 수 있다. 입력 레이어(20)는 적어도 하나의 입력 노드를 통해 연접된 파형을 입력받을 수 있다. 예를 들어, 상술한 바와 같이 4개의 시간구간들의 파형을 연접시켜 학습데이터를 구성하고, 각각의 시간구간에 포함된 파형을 위한 입력 노드의 개수가 188개인 경우, 입력 레이어(20)는 188*4=752개의 노드들을 포함할 수 있다. 이는 설명을 위한 예시일 뿐 실시예를 제한하는 것은 아니다. 입력 노드의 개수는 파형에 대한 정보를 입력 받기 위해 설정된 노드 개수에 따라 달라질 수 있다.
출력 레이어(40)는 인공신경망에 입력된 연접된 파형에 대응하는 소수 워드에 대한 정보를 출력하기 위한 적어도 하나의 출력 노드를 포함할 수 있다. 출력 레이어(40)에 포함된 출력 노드의 개수는 출력 레이어(40)가 소수 워드에 대한 정보를 출력하는 방식에 따라 달라질 수 있다. 예를 들어, 인공신경망이 t00, t01, t02, t03 시간구간들에 있는 파형들을 연접시킨 파형을 입력 받은 경우, 출력 레이어(40)는 p[0]의 후보들 중 가장 높은 확률로 연접된 파형에 매칭되는 후보를 출력할 수 있다. 다른 예로, 출력 레이어(40)는 p[0]의 후보들 각각이 연접된 파형에 매칭되는 확률을 출력할 수도 있다.
이상에서 컴퓨팅 장치(100)가 인공신경망을 학습시키는 방법에 관하여 설명하였다. 상술한 실시예에 따르면, 학습 파형에서 소수 워드가 로드되는 시간 구간들을 연접시킨 파형 및 라벨링 데이터를 이용하여 인공신경망이 소수 워드들을 추측하도록 학습시킬 수 있다. 연접된 파형과 라벨링 데이터를 이용함으로써 인공신경망의 학습 성능이 높아질 수 있다. 상술한 실시예에 따르면 컴퓨팅 장치(100)가 연산 장치(10)에서 소수의 곱셈에서 소수 워드를 로드 하는 동안 발생하는 취약점을 인공신경망을 이용하여 분석할 수 있다.
이하에서는 컴퓨팅 장치(100)가 학습된 인공신경망을 이용하여 RSA 암호에 대한 부채널 분석을 수행하는 방법에 관하여 설명한다.
도 8은 예시적인 실시예에 따른 컴퓨팅 장치(100)의 부채널 분석 방법을 나타낸 순서도이다.
도 8을 참조하면, S210 단계에서 컴퓨팅 장치(100)는 분석 대상 파형을 획득할 수 있다. 분석 대상 파형은 RSA 암호 분석을 위해 연산 장치(10)로부터 획득되는 소비전력 파형에 대한 정보를 포함할 수 있다. 컴퓨팅 장치(100)는 소비전력 측정부(120)를 이용하여 연산 장치(10)의 소비전력을 측정할 수 있다. 다른 예로 컴퓨팅 장치(100)는 다른 장치가 측정한 결과를 수신함으로써 연산 장치(10)의 소비전력에 대한 정보를 획득할 수 있다.
연산 장치(10)는 RSA 암호의 비밀키 생성 과정에서 제1 소수 p와 제2 소수 q 사이의 곱셈 연산을 수행할 수 있다. 연산 장치(10)의 RSA 암호의 비밀키 생성 알고리즘을 간략히 표 2와 같이 나타낼 수 있다.
Figure 112020111134322-pat00002
표 2를 참조하면, 연산 장치(10)는 비밀키를 생성하는 과정(2번 줄)에서 제1 소수 p와 제2 소수 q 사이의 곱을 계산할 수 있다. 연산 장치(10)는 제1 소수 p의 소수 워드 p[i]와 제2 소수 q의 소수 워드 q[j] 사이의 곱 스캐닝 곱셈 연산을 수행할 수 있다.
S220 단계에서 컴퓨팅 장치(100)는 미리 알고 있는 연산 장치(10)의 프로파일링 정보를 이용하여 분석대상 파형에서 소수 워드의 로드 시간 구간들을 추출하여 연접된 파형을 생성할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 분석대상 파형에서 t00, t01, t02, t03 시간구간들을 추출하여 p[0]의 로드 시간 구간들을 연접시킬 수 있다. 컴퓨팅 장치(100)가 추출하는 소수 워드의 로드 시간 구간들의 개수는 연산 장치(10)에서 소수 워드가 로드되는 횟수에 따라 달라질 수 있다. 또한, 연산 장치(10)에서 소수 워드가 로드 되는 횟수는 소수 데이터의 크기 및 연산 장치(10)의 연산단위의 크기에 따라 달라질 수 있다.
S230 단계에서 컴퓨팅 장치(100)는 연접된 파형을 미리 학습된 인공신경망에 입력할 수 있다. 인공신경망은 도 2의 방법의 수행에 의해 미리 학습되어 있을 수 있다. 인공신경망은 연접된 파형을 입력 받아 분석대상 파형을 생성하는데 사용된 소수 워드에 대한 정보를 출력할 수 있다. 예를 들어, 인공신경망이 t00, t01, t02, t03 시간 구간들이 연접된 파형을 입력 받으면 p[0]에 대응하는 정보를 출력할 수 있다.
S240 단계에서 컴퓨팅 장치(100)는 소수 워드 정보를 이용하여 RSA 암호의 비밀키 정보를 획득할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 인공신경망에서 출력된 p[i]에 대한 정보들을 이용하여 표 2의 2번 줄에서 사용되는 2개의 소수 p, q 중 어느 하나인 p에 대한 정보를 획득할 수 있다. 컴퓨팅 장치(100)는 공개키 정보로부터 N 값을 알 수 있다. 따라서, 컴퓨팅 장치는 q=N/p 관계를 이용하여 다른 하나의 소수 q에 대한 정보를 획득할 수 있다. 컴퓨팅 장치(100)는 RSA 암호의 비밀키 생성 과정에서 사용된 두 비밀 소수 p, q 에 대한 정보를 이용하여 RSA 암호의 비밀 정보(예컨데, 비밀키 정보)를 획득할 수 있다.
이상 도 1 내지 도 8을 참조하여 예시적인 실시예들에 따른 인공신경망의 학습 방법 및 장치, 인공신경망을 이용한 RSA 암호의 부채널 분석 방법 및 장치에 관하여 설명하였다.
적어도 하나의 실시예에 따르면 학습 파형에서 소수 워드가 로드되는 시간 구간들을 연접시킨 파형 및 라벨링 데이터를 이용하여 인공신경망이 소수 워드들을 추측하도록 학습시킬 수 있다. 적어도 하나의 실시예에 따르면 연접된 파형과 라벨링 데이터를 이용함으로써 인공신경망의 학습 성능이 높아질 수 있다. 적어도 하나의 실시예에 따르면 컴퓨팅 장치(100)가 연산 장치(10)에서 소수의 곱셈에서 소수 워드를 로드 하는 동안 발생하는 취약점을 인공신경망을 이용하여 분석할 수 있다. 적어도 하나의 실시예에 따르면 컴퓨팅 장치(100)가 연산 장치(10)의 RSA 암호의 키 생성 과정에서 발생하는 취약점을 분석함으로써 연산 장치(10)의 설계 또는 RSA 암호 알고리즘 설계의 개선에 기여할 수 있다.
위 실시 예의 설명에 기초하여 해당 기술분야의 통상의 기술자는, 본 발명의 방법 및/또는 프로세스들, 그리고 그 단계들이 하드웨어, 소프트웨어 또는 특정 용례에 적합한 하드웨어 및 소프트웨어의 임의의 조합으로 실현될 수 있다는 점을 명확하게 이해할 수 있다. 더욱이 본 발명의 기술적 해법의 대상물 또는 선행 기술들에 기여하는 부분들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 기계 판독 가능한 기록 매체에 기록될 수 있다. 상기 기계 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 기계 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 기계 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD, Blu-ray와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 전술한 장치들 중 어느 하나뿐만 아니라 프로세서, 프로세서 아키텍처 또는 상이한 하드웨어 및 소프트웨어의 조합들의 이종 조합, 또는 다른 어떤 프로그램 명령어들을 실행할 수 있는 기계 상에서 실행되기 위하여 저장 및 컴파일 또는 인터프리트될 수 있는, C와 같은 구조적 프로그래밍 언어, C++ 같은 객체지향적 프로그래밍 언어 또는 고급 또는 저급 프로그래밍 언어(어셈블리어, 하드웨어 기술 언어들 및 데이터베이스 프로그래밍 언어 및 기술들)를 사용하여 만들어질 수 있는바, 기계어 코드, 바이트코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 이에 포함된다.
따라서 본 발명에 따른 일 태양에서는, 앞서 설명된 방법 및 그 조합들이 하나 이상의 연산 장치들에 의하여 수행될 때, 그 방법 및 방법의 조합들이 각 단계들을 수행하는 실행 가능한 코드로서 실시될 수 있다. 다른 일 태양에서는, 상기 방법은 상기 단계들을 수행하는 시스템들로서 실시될 수 있고, 방법들은 장치들에 걸쳐 여러 가지 방법으로 분산되거나 모든 기능들이 하나의 전용, 독립형 장치 또는 다른 하드웨어에 통합될 수 있다. 또 다른 일 태양에서는, 위에서 설명한 프로세스들과 연관된 단계들을 수행하는 수단들은 앞서 설명한 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 그러한 모든 순차 결합 및 조합들은 본 개시서의 범위 내에 속하도록 의도된 것이다.
예를 들어, 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 상기 하드웨어 장치는, 프로그램 명령어를 저장하기 위한 ROM/RAM 등과 같은 메모리와 결합되고 상기 메모리에 저장된 명령어들을 실행하도록 구성되는 MPU, CPU, GPU, TPU와 같은 프로세서를 포함할 수 있으며, 외부 장치와 신호를 주고받을 수 있는 입출력부를 포함할 수 있다. 덧붙여, 상기 하드웨어 장치는 개발자들에 의하여 작성된 명령어들을 전달받기 위한 키보드, 마우스, 기타 외부 입력장치를 포함할 수 있다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시 예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 사람이라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
그와 같이 균등하게 또는 등가적으로 변형된 것에는, 예컨대 본 발명에 따른 방법을 실시한 것과 동일한 결과를 낼 수 있는, 논리적으로 동치(logically equivalent)인 방법이 포함될 것인바, 본 발명의 진의 및 범위는 전술한 예시들에 의하여 제한되어서는 아니되며, 법률에 의하여 허용 가능한 가장 넓은 의미로 이해되어야 한다.

Claims (11)

  1. 컴퓨팅 장치에 의해 수행되는 RSA 암호의 부채널 분석을 위한 인공신경망의 학습 방법에 있어서,
    상기 컴퓨팅 장치가, 소정의 연산 장치에서 RSA 암호의 비밀키 생성 연산을 수행하는 동안 상기 비밀키 생성을 위한 소수 데이터를 상기 소정의 연산 장치의 연산 단위에 따라 분할한 소수 워드가 로드되는 시간 구간들을 추출하는 단계;
    상기 컴퓨팅 장치가, 상기 소정의 연산 장치에 대해 획득된 학습 파형에서 소수 워드 별로 해당 소수 워드가 로드되는 시간 구간들을 연접시키는 단계; 및
    상기 컴퓨팅 장치가, 상기 학습 파형으로부터 연접된 파형 및 라벨링 데이터를 이용하여 상기 인공신경망을 학습시키는 단계를 포함하는 인공신경망의 학습 방법.
  2. 제 1 항에 있어서,
    상기 라벨링 데이터는 상기 학습 파형을 발생시키기 위해 실제로 사용된 소수 워드에 대한 정보를 포함하는 인공신경망의 학습 방법.
  3. 제 1 항에 있어서,
    상기 소수 워드의 크기는 상기 연산 장치의 연산 단위에 따라 결정되는 인공신경망의 학습 방법.
  4. 제 1 항에 있어서,
    상기 인공신경망은 입력 레이어, 중간 레이어 및 출력 레이어를 포함하며,
    상기 입력 레이어는 상기 연접된 파형에 대한 정보를 입력 받기 위한 적어도 하나의 입력 노드를 포함하고,
    상기 출력 레이어는 상기 입력 레이어에 입력된 연접된 파형에 대응하는 소수 워드에 대한 정보를 출력하기 위한 적어도 하나의 출력 노드를 포함하는 인공신경망의 학습 방법.
  5. 제 1 항에 있어서,
    상기 소수 워드가 로드되는 시간 구간들을 추출하는 단계는,
    상기 소정의 연산 장치의 소비 전력 파형과 상기 소수 워드 사이의 상관계수를 분석하는 단계; 및
    상기 상관계수에 기초하여 상기 소수 워드가 로드되는 시간 구간들을 추출하는 단계를 포함하는 인공신경망의 학습 방법.
  6. 제 1 항에 있어서,
    상기 소수 워드가 로드되는 시간 구간들을 연접시키는 단계는,
    상기 소정의 연산 장치에 대한 학습 파형을 획득하는 단계;
    상기 학습 파형에서 소수 워드의 로드 시간 구간들을 추출하는 단계; 및
    상기 학습 파형으로부터 소수 워드의 로드 시간 구간들에서 추출된 파형들을 연접시키는 단계를 포함하는 인공신경망의 학습 방법.
  7. 컴퓨팅 장치에 의해 수행되는 인공신경망을 이용한 RSA 암호의 부채널 분석 방법에 있어서,
    상기 컴퓨팅 장치가, 소정의 연산 장치로부터 분석대상 파형을 획득하는 단계;
    상기 컴퓨팅 장치가, 상기 분석대상 파형에서 상기 RSA 암호의 비밀키 생성을 위한 소수 데이터를 상기 소정의 연산 장치의 연산 단위에 따라 분할한 소수 워드 각각의 로드 시간 구간들을 추출하여 연접시키는 단계;
    상기 컴퓨팅 장치가, 연접된 파형을 미리 학습된 인공 신경망에 입력하여 상기 분석대상 파형에 대응하는 소수 워드 정보를 출력하는 단계; 및
    상기 소수 워드 정보를 이용하여 상기 RSA 암호의 비밀정보를 획득하는 단계를 포함하는 RSA 암호의 부채널 분석 방법.
  8. 제 7 항에 있어서,
    상기 인공신경망은 입력 레이어, 중간 레이어 및 출력 레이어를 포함하며,
    상기 입력 레이어는 상기 연접된 파형에 대한 정보를 입력 받기 위한 적어도 하나의 입력 노드를 포함하고,
    상기 출력 레이어는 상기 입력 레이어에 입력된 연접된 파형에 대응하는 소수 워드에 대한 정보를 출력하기 위한 적어도 하나의 출력 노드를 포함하는 RSA 암호의 부채널 분석 방법.
  9. 제 7 항에 있어서,
    상기 소수 워드 정보는 공개 키를 생성하기 위한 제1 소수 및 제2 소수 중 어느 하나를 구성하는 복수의 워드 정보를 포함하는 RSA 암호의 부채널 분석 방법.
  10. 제 9 항에 있어서,
    상기 RSA 암호의 비밀정보를 획득하는 단계는,
    상기 소수 워드 정보를 이용하여 상기 제1 소수 및 제2 소수 중 어느 하나의 값을 결정하는 단계 및
    상기 공개 키에 대한 정보 및 상기 제1 소수 및 제2 소수 중 어느 하나의 값에 기초하여 다른 하나의 값을 결정하는 단계를 포함하는 RSA 암호의 부채널 분석 방법.
  11. 인공신경망을 이용한 RSA 암호의 부채널 분석을 수행하는 컴퓨팅 장치에 있어서,
    소비 전력 측정부; 및
    프로세서를 포함하며,
    상기 프로세서는 소정의 연산 장치로부터 분석대상 파형을 획득하는 프로세스; 상기 분석대상 파형에서 상기 RSA 암호의 비밀키 생성을 위한 소수 데이터를 상기 소정의 연산 장치의 연산 단위에 따라 분할한 소수 워드 각각의 로드 시간 구간들을 추출하여 연접시키는 프로세스; 연접된 파형을 미리 학습된 인공 신경망에 입력하여 상기 분석대상 파형에 대응하는 소수 워드 정보를 출력하는 프로세스; 및 상기 소수 워드 정보를 이용하여 상기 RSA 암호의 비밀정보를 획득하는 프로세스를 수행하는 컴퓨팅 장치.
KR1020200136290A 2020-10-20 2020-10-20 인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치 KR102554852B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200136290A KR102554852B1 (ko) 2020-10-20 2020-10-20 인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200136290A KR102554852B1 (ko) 2020-10-20 2020-10-20 인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치

Publications (3)

Publication Number Publication Date
KR20220052207A KR20220052207A (ko) 2022-04-27
KR102554852B1 true KR102554852B1 (ko) 2023-07-11
KR102554852B9 KR102554852B9 (ko) 2023-10-12

Family

ID=81390929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200136290A KR102554852B1 (ko) 2020-10-20 2020-10-20 인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102554852B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240059225A (ko) 2022-10-27 2024-05-07 국민대학교산학협력단 비지도 도메인 적응을 이용한 프로파일링 부채널 분석 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011059690A (ja) 2009-09-09 2011-03-24 Proton World Internatl Nv サイドチャネル攻撃に対する素数生成の保護

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050102291A (ko) * 2004-04-21 2005-10-26 삼성전자주식회사 부가채널 공격들로부터 공개키 암호 시스템을 보호하기위한 방법과 장치, 및 상기 방법을 기록한 컴퓨터로 읽을수 있는 기록매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011059690A (ja) 2009-09-09 2011-03-24 Proton World Internatl Nv サイドチャネル攻撃に対する素数生成の保護

Also Published As

Publication number Publication date
KR20220052207A (ko) 2022-04-27
KR102554852B9 (ko) 2023-10-12

Similar Documents

Publication Publication Date Title
Glowacz et al. Simpler and more efficient rank estimation for side-channel security assessment
Masure et al. Gradient visualization for general characterization in profiling attacks
Hashemi et al. Visual malware detection using local malicious pattern
Choudary et al. Efficient stochastic methods: Profiled attacks beyond 8 bits
CN104751055A (zh) 一种基于纹理的分布式恶意代码检测方法、装置及系统
Durvaux et al. Efficient selection of time samples for higher-order DPA with projection pursuits
KR101623493B1 (ko) 금융 ic 카드 암호문 데이터 생성 절차에 적합한 부채널 분석 대응 방법
Jap et al. Support vector regression: exploiting machine learning techniques for leakage modeling
KR102554852B1 (ko) 인공신경망을 이용한 rsa 암호에 대한 부채널 분석 방법 및 장치
Nikam et al. Performance evaluation of machine learning classifiers in malware detection
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
US20190372757A1 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
US10103890B2 (en) Membership query method
CN112116018A (zh) 样本分类方法、装置、计算机设备、介质和程序产品
KR102308517B1 (ko) 블록암호에 대한 상관전력 분석 방법 및 장치
JPWO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
Ahmed et al. Design of Convolutional Neural Networks Architecture for Non-Profiled Side-Channel Attack Detection
WO2016056503A1 (ja) 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム
KR101589185B1 (ko) 중간값 평균기법을 이용한 부 채널 분석 성능 향상방법
CN106936561A (zh) 一种侧信道攻击防护能力评估方法和系统
US11515995B2 (en) Efficient computation of univariate statistical moments for side channel vulnerability evaluation
Valois et al. Performance of password guessing enumerators under cracking conditions
KR101135062B1 (ko) 전력 분석 공격을 위한 신호 압축 장치 및 방법
Yao et al. Augmenting leakage detection using bootstrapping
KR102444276B1 (ko) 전력 분석 장치, 방법, 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
G170 Re-publication after modification of scope of protection [patent]