KR101646657B1 - 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법 - Google Patents

부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법 Download PDF

Info

Publication number
KR101646657B1
KR101646657B1 KR1020150062987A KR20150062987A KR101646657B1 KR 101646657 B1 KR101646657 B1 KR 101646657B1 KR 1020150062987 A KR1020150062987 A KR 1020150062987A KR 20150062987 A KR20150062987 A KR 20150062987A KR 101646657 B1 KR101646657 B1 KR 101646657B1
Authority
KR
South Korea
Prior art keywords
code
cis
matrix
encryption
generating
Prior art date
Application number
KR1020150062987A
Other languages
English (en)
Inventor
김종락
프라이버트 핀리
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020150062987A priority Critical patent/KR101646657B1/ko
Application granted granted Critical
Publication of KR101646657B1 publication Critical patent/KR101646657B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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]

Abstract

부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법에 관한 것으로, 이진 부호를 입력받는 입력부, 암호화 부호의 생성 장치는, 입력된 이진 부호가 t-CIS(complementary information set)(t는 자연수 차수) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 판별 명령을 저장하는 메모리(memory) 및 판별 명령을 수행하는 적어도 하나의 프로세서(processor)를 포함한다.

Description

부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법{Apparatus and method for constructing encryption code provided to cryptography circuit against side-channel attacks}
본 발명은 부채널 공격에 대응하여 이를 방지하는 암호화 회로에 관한 기술로서, 특히 고차의 부채널 공격 방지를 도모하는 암호화 회로에 암호화 부호를 생성하고 공급하는 장치, 방법 및 이를 기록한 기록매체에 관한 것이다.
1996년 Paul Kocher에 의해 소개된 부채널 공격(Side Channel Attack)은 기존의 수학적 분석 방법인 차분분석, 선형분석 등과는 달리 암호 알고리즘을 구현한 암호장치에서 발생하는 부채널 정보를 이용하는 공격방법이다. 이러한 부채널 분석 공격은 실제 암호 알고리즘이 구현된 장비에 큰 위협이 되고 있으며, 이에 따라 스마트카드 응용제품의 경우 부채널 분석 공격에 대한 안전성 시험을 수행하고 있다.
부채널 분석 공격은, 알고리즘의 수행 시간을 측정하여 통계적인 분석을 통해 키와 같은 중요 정보를 획득하는 시차 공격(Timing Analysis), 암호 알고리즘 연산 시 하드웨어의 장애나 오류를 발생시켜 해당 오류정보를 분석하는 오류주입공격(Fault Insertion Attack), 전자장치들이 연산을 수행할 때 방출하는 전자파를 분석하는 전자기분석공격(ElectroMagnetic Analysis Attack), 암호 알고리즘 연산 시 소요되는 전력소비량을 측정하여 분석하는 전력분석공격(Power Analysis Attack) 등으로 분류될 수 있다.
이 중 전력소모량을 이용하는 전력 분석 공격은 가장 강력한 부채널 분석 공격으로 알려져 있다. 이러한 전력 분석 공격은 암호 알고리즘이 동작할 때 비밀키와 관련된 데이터가 처리되는 시점에서 암호 모듈에서 측정된 소비전력의 특성을 분석하여 비밀키를 찾아내는 방법으로서, 크게 단순 전력 분석 공격(Simple Power Analysis Attack : SPA)과 차분 전력 분석 공격(Differntial Power Analysis Attack : DPA)으로 나뉜다.
이러한 부채널 공격에 의해 스마트카드와 같은 암호화 장치들이 큰 위험에 노출됨에 따라 보다 강력한 암호화 기법과 대응 기술이 요구되기에 이르렀다. 이러한 목적 하에서 현재 국내외에서 이루어지는 다양한 연구들은 마스크(mask)를 고도화하여 부채널 공격시 정보 누출을 최소화하고자 하는 시도들에 집중되어 있다. 이하에서 소개되는 선행기술문헌에는 고차의 전력 분석 공격에 대응한 ARIA 암호화 기법에서 다수의 마스크를 활용하는 기술이 제안되어 있다.
한국등록특허 10-0834096, 고차 전력분석공격에 대응하는 블록 암호 알고리즘 ARIA의 암호화 방법, 한국전자통신연구원, 2008.06.02.
본 발명이 해결하고자 하는 기술적 과제는, 부채널 공격에 의해 암호화 장치들로부터 암호화 정보가 누출되는 위험을 해소하고, 이러한 공격에 대응하여 마스크의 개수나 복잡도를 증가시킬 경우 연산에 따른 부하가 증가하고, 그에 따른 비용이 증가하는 한계를 극복하고자 한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치는, [tk, k] 이진 부호
Figure 112015043346415-pat00001
(t는 자연수 차수, k는 자연수 인덱스)를 입력받는 입력부; 상기 이진 부호
Figure 112015043346415-pat00002
가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 판별 명령을 저장하는 메모리(memory); 및 상기 판별 명령을 수행하는 적어도 하나의 프로세서(processor);를 포함하되, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬
Figure 112015043346415-pat00003
(
Figure 112015043346415-pat00004
Figure 112015043346415-pat00005
가역행렬,
Figure 112015043346415-pat00006
는 행렬
Figure 112015043346415-pat00007
Figure 112015043346415-pat00008
번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터
Figure 112015043346415-pat00009
및 제 2 벡터
Figure 112015043346415-pat00010
에 대하여 행렬
Figure 112015043346415-pat00011
은,
Figure 112015043346415-pat00012
, t-CIS [t(k+1), k+1] 부호
Figure 112015043346415-pat00013
을 생성한다.
일 실시예에 따른 암호화 부호의 생성 장치는, 각각의
Figure 112015043346415-pat00014
에 대하여,
Figure 112015043346415-pat00015
는 유일하게 결정된
Figure 112015043346415-pat00016
에 대하여
Figure 112015043346415-pat00017
를 만족시키고,
Figure 112015043346415-pat00018
Figure 112015043346415-pat00019
를 만족시킨다.
일 실시예에 따른 암호화 부호의 생성 장치는, 모든
Figure 112015043346415-pat00020
에 대하여, 상기 행렬
Figure 112015043346415-pat00021
의 행들
Figure 112015043346415-pat00022
을 갖는
Figure 112015043346415-pat00023
행렬의 역행렬이 존재하는 조건을 만족한다.
일 실시예에 따른 암호화 부호의 생성 장치는, 상기 이진 부호
Figure 112015043346415-pat00024
를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호
Figure 112015043346415-pat00025
과 동치이다.
일 실시예에 따른 암호화 부호의 생성 장치는, 판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 저장하는 레지스터;를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법은, [tk, k] 이진 부호
Figure 112015043346415-pat00026
(t는 자연수 차수, k는 자연수 인덱스)를 입력받는 단계; 및 적어도 하나의 프로세서(processor)를 이용하여 메모리(memory)에 저장된 판별 명령을 수행하여 상기 이진 부호
Figure 112015043346415-pat00027
가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 단계;를 포함하되, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬
Figure 112015043346415-pat00028
(
Figure 112015043346415-pat00029
Figure 112015043346415-pat00030
가역행렬,
Figure 112015043346415-pat00031
는 행렬
Figure 112015043346415-pat00032
Figure 112015043346415-pat00033
번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터
Figure 112015043346415-pat00034
및 제 2 벡터
Figure 112015043346415-pat00035
에 대하여 행렬
Figure 112015043346415-pat00036
은,
Figure 112015043346415-pat00037
, t-CIS [t(k+1), k+1] 부호
Figure 112015043346415-pat00038
을 생성한다.
일 실시예에 따른 암호화 부호의 생성 방법은, 각각의
Figure 112015043346415-pat00039
에 대하여,
Figure 112015043346415-pat00040
는 유일하게 결정된
Figure 112015043346415-pat00041
에 대하여
Figure 112015043346415-pat00042
를 만족시키고,
Figure 112015043346415-pat00043
Figure 112015043346415-pat00044
를 만족시킨다.
일 실시예에 따른 암호화 부호의 생성 방법은, 모든
Figure 112015043346415-pat00045
에 대하여, 상기 행렬
Figure 112015043346415-pat00046
의 행들
Figure 112015043346415-pat00047
을 갖는
Figure 112015043346415-pat00048
행렬의 역행렬이 존재하는 조건을 만족한다.
일 실시예에 따른 암호화 부호의 생성 방법은, 상기 이진 부호
Figure 112015043346415-pat00049
를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호
Figure 112015043346415-pat00050
과 동치이다.
일 실시예에 따른 암호화 부호의 생성 방법은, 판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 레지스터에 저장하는 단계;를 더 포함할 수 있다.
나아가, 이하에서는 상기 기재된 암호화 부호의 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명의 실시예들은, 입력된 이진 부호가 t-CIS 부호인지 여부를 판별하여 암호화 회로에 출력함으로써, 적어도 하나 또는 상대적으로 적은 수의 마스크만을 부호화하더라도 부채널 공격에 강인한 암호화 회로를 제공하는 것이 가능하며, 이로 인해 저렴하면서도 기밀성이 좋은 마스크를 제작할 수 있다.
도 1은 본 발명의 실시예들이 활용되는 암호화 회로에 대한 부채널 공격의 일례로서 차분 전력 분석 공격의 과정을 설명하기 위한 도면이다.
도 2a 및 도 2b는 CIS 부호를 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치를 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법을 도시한 흐름도이다.
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명의 실시예들이 구현되는 환경에서 대두되는 문제점을 기술하고, 이러한 문제점에 대한 해결 방안의 개요 혹은 기술적 사상의 핵심을 순차적으로 제시한다.
도 1은 본 발명의 실시예들이 활용되는 암호화 회로에 대한 부채널 공격의 일례로서 차분 전력 분석 공격의 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 공격자는 공격하고자 하는 암호화 장치(110)에 대해 통상적으로 얻을 수 있는 정보를 이용하여 추정 모델(120)을 정립한다. 추정 모델(120)을 정립한 후, 추정 모델(120)에 추측 키와 평문을 입력하여 암호 알고리즘의 중간값을 계산하고, 중간값에 따른 추정 전력 소모량을 결정한다.
또한, 추정 모델(120)에 입력한 평문과 동일한 평문을 공격 대상 암호화 장치(110)에 입력하고, 암호 알고리즘 수행중 암호화 장치(110)에서 소비한 전력소모량을 측정하여 측정된 전력 소모량을 앞서 추정된 전력 소모량과 함께 통계적 분석(130) 과정을 통해 키를 판별한다. 이러한 분석을 통해 결국 공격자는 암호 장치(110)의 비밀정보인 키를 획득할 수 있게 된다.
이상에서 예시된 차분 전력 분석 공격과 같은 부채널 공격에 대한 대응 기법으로는 크게 다음의 세 가지 대응이 가능하다.
● 신호 크기를 감소시키는 기법: 이 기법은 암호 알고리즘이 동작시에 발생되는 부채널정보의 신호 크기를 감소시키는 것으로서, 암호 알고리즘이 동작하는 프로그램을 개발시에 누출정보가 최소화되도록 유도하며, 해밍수나 해밍차가 균등하게 분포되도록 전체 프로세스를 구성한다.
● 무작위성을 증가시키는 기법: 이 기법은 랜덤한 값을 삽입하거나 주요 정보를 난수화시켜 무작위로 만드는 것으로서, 명령어 실행시간을 무작위로 변경하거나, 암호 알고리즘이 일정한 시간 내에 실행되도록 대기(wait) 값을 삽입하거나, 가짜 명령어를 삽입하거나 실행 명령어의 순서를 변경하거나, 랜덤한 하드웨어 클럭이나 전력 잡음을 생성하는 방법 등으로 구현될 수 있다.
● 중요 정보를 숨기는 기법: 이 기법은 메시지나 키와 같은 중요정보를 암호화 연산 과정에서 숨기는 것으로서, 암호 알고리즘에 별도의 연산인 블라인드 연산(blind operation)을 추가하여 중요 정보를 블라인딩 처리하거나, 연산의 시작 단계에서 중요 정보를 특정 마스크 값으로 변경(masking)하는 등의 방법으로 구현될 수 있다.
이하에서 제시되는 본 발명의 실시예들은 이러한 기법들 중, 특히 중요 정보를 숨기는 기법에 기초하여 저비용의 효율적이고 기밀성이 높은 마스크를 부호화하기 위한 암호화 부호를 생성하는 기술적 수단을 제안하고자 한다. 특히 본 발명의 실시예들은 이러한 암호화 부호로서 CIS(complementary information set) 부호를 채택하고 있으며, 구체적인 실시예를 설명하기에 앞서 기본적인 개념에 대한 정의를 미리 밝혀둔다.
유한체
Figure 112015043346415-pat00051
에 대한 길이 n(n은 자연수) 및 차수 k(k는 자연수)의 선형 부호(linear code)
Figure 112015043346415-pat00052
Figure 112015043346415-pat00053
의 k-차원 부공간(subspace)으로 정의한다. 이러한 부호
Figure 112015043346415-pat00054
Figure 112015043346415-pat00055
위에서의 [n,k] 선형 부호라고 한다. 선형 부호
Figure 112015043346415-pat00056
의 최소 거리 d를
Figure 112015043346415-pat00057
으로 정의한다. 일반적으로 이를 [n,k,d] 부호라고 하며, 주어진 n, k에 대해 최소 거리 d는 최대 (n-k+1)의 값을 가질 수 있다.
Figure 112015043346415-pat00058
내의 두 원소
Figure 112015043346415-pat00059
,
Figure 112015043346415-pat00060
에 대해 x와 y의 내적(dot product)을
Figure 112015043346415-pat00061
라고 정의하자.
Figure 112015043346415-pat00062
의 쌍대(dual)는
Figure 112015043346415-pat00063
로 나타내며
Figure 112015043346415-pat00064
와 같이 정의된다.
Figure 112015043346415-pat00065
을 [3,1,3] 이진 선형 부호라 하자. 이를 길이 3인 반복 부호(repetition code)라고 부른다.
Figure 112015043346415-pat00066
은 하나의 오류(error)를 수정할 수 있다. 예를 들어, (000)을 전송하고 (100)을 수신하였을 때, (100)과 가장 가까운 부호어(codeword)를 찾는다. 그러면 (000)이 가장 가까운 부호어가 되며, 따라서 하나의 오류를 수정할 수 있게 된다. 이러한
Figure 112015043346415-pat00067
은 생성 행렬(generator matrix)로서
Figure 112015043346415-pat00068
을 가진다(
Figure 112015043346415-pat00069
를 [n,k,d] 부호라고 할 때,
Figure 112015043346415-pat00070
를 k×n 생성 행렬이라고 하자.). 이제,
Figure 112015043346415-pat00071
를 생성 행렬
Figure 112015043346415-pat00072
로 갖는 [3,2,2] 이진 선형 부호라고 하자. 그러면
Figure 112015043346415-pat00073
와 같은 관계를 갖는다.
선형 부호를 부호화하기 위해
Figure 112015043346415-pat00074
와 같은 부호화 처리 맵(encoding processor map)을 고려할 수 있다. 이 과정에서 길이가 k인 열 벡터(row vector) x가 생성 행렬
Figure 112015043346415-pat00075
에 의해 길이가 n(n>k)인 벡터로 대응된다. 즉, 부호화는 원래의 메시지에 중복 비트(redundancy bit/digit)을 추가하는 과정에 해당한다. 예를 들어, 생성 행렬이
Figure 112015043346415-pat00076
Figure 112015043346415-pat00077
의 경우,
Figure 112015043346415-pat00078
,
Figure 112015043346415-pat00079
이 된다.
선형 [n,k] 부호의 생성 행렬에서 k개의 일차 독립(linearly independent)인 행(columns)을 정보 집합(information set)이라고 한다. 이진 선형 [2n, n] 부호의 행을 두 개의 정보 집합 L과 그의 여집합 R로 분해할 수 있다면, 이 부호를 분할(partition) L, R을 갖는 CIS(complementary information set)이라고 부른다. 이때, 분할 [1 ... n],|,[n+1 ... 2n]을 시스템(systematic) 분할이라고 한다. 시스템 자기 쌍대 부호도 CIS이고, CIS 부호의 쌍대 부호 역시 CIS이다. 따라서, CIS 부호는 자기 쌍대 부호의 자연스러운 일반화이다.
이제, 선형 또는 비선형 부호를 다음의 수학식 1과 같이 얻을 수 있다.
Figure 112015043346415-pat00080
그러면, 암호화 장치를 위한 치환 박스(s-box)는
Figure 112015043346415-pat00081
를 만족하도록 정의한다.
Figure 112015043346415-pat00082
가 CIS 부호이기 위한 필요충분 조건은
Figure 112015043346415-pat00083
가 일대일 대응 함수이다. 특히,
Figure 112015043346415-pat00084
가 선형 부호이고 생성 행렬이
Figure 112015043346415-pat00085
(
Figure 112015043346415-pat00086
는 단위 행렬)인 경우, CIS 조건은
Figure 112015043346415-pat00087
가 가역 행렬이라는 말과 동치이다.
앞서 스마트카드와 같은 암호화 장치에 암호 칩을 구비하도록 제작하더라도 정보가 누출될 우려가 존재함을 지적하였다. 이렇게 누출되는 정보는 차분 전력 분석이나 다른 종류의 부채널 공격에 사용될 수 있다. 따라서, 암호화 장치의 설계시에는 이러한 공격에 대비한 기술적 수단이 구비될 필요가 있다. 이를 위해 최근의 많은 연구들은 공격에 더욱 견고하게 대응하기 위해 새로운 마스크(mask)가 첨가되어야 한다는 주장이 많았다.
Figure 112015043346415-pat00088
를 변수라고 하고, 이를 랜덤한
Figure 112015043346415-pat00089
개의 마스크
Figure 112015043346415-pat00090
로 공유하되
Figure 112015043346415-pat00091
를 만족하도록 한다. 여기서, +는 XOR 연산을 의미한다. 차수 t의 공격(t+1 shares)을 수행하는 것은, t에 관하여 매우 급격하게 증가한다고 알려졌으므로 t를 크게 할 경우 안전하다는 인식이 존재하였다. 그러나 이 경우, 랜덤 넘버(random number)의 생성의 문제와 디바이스의 성능이 저하되는 단점이 지적되었으며, 이를 해결하기 위해 CIS 부호를 도입할 필요가 있다. 특히,
Figure 112015043346415-pat00092
인 경우, 마스크는
Figure 112015043346415-pat00093
이며, 이는 둘 중의 하나의 정보만 알아도
Figure 112015043346415-pat00094
가 쉽게 노출되는 단점이 있다.
따라서, 본 발명의 실시예들은 새로운 마스크로서
Figure 112015043346415-pat00095
(
Figure 112015043346415-pat00096
는 퍼뮤테이션(permutation) 함수이다.) 즉, 어느 하나를 알아도
Figure 112015043346415-pat00097
를 쉽게 찾지 못하게 된다. 본 발명을 도출하는 과정에서 이러한 퍼뮤테이션 함수
Figure 112015043346415-pat00098
를 찾는 방법이 CIS 부호를 찾는 방법과 동일하다는 사실을 발견하였다. 특히, CIS 부호를 이용하여 하나의 마스크를 부호함으로써 종래에 다수의 마스크를 덮어 쓴 것과 같은 효과를 얻을 수 있었으며, 이렇게 얻어진 마스크를 통해 저렴하면서도 기밀성이 향상된 결과를 얻을 수 있었다.
이하에서는 이론적 접근을 통해 본 발명의 실시예들을 보다 구체적으로 소개한다.
(1) t- CIS 분할 알고리즘
우선, 집합에 기반한 독립적 시스템을 묘사하는 매트로이드(matroid) 이론을 소개한다. 매트로이드는 순서쌍 (M, I)이며, M은 하나의 유한 집합이고 I는 M의 부분 집합들(이것들은 독립 집합이라고 불린다.)의 하나의 모임으로, 여기서 I는 공집합이 아니고 I에 속하는 집합의 부분 집합 역시 I에 속한다. 그리고 M의 부분 집합인 A에 포함되는 모든 극대의 독립적인 부분 집합들은 같은 크기를 지닌다. A안에 있는 이와 같은 극대의 독립적인 집합의 크기를 A의 랭크(rank)라 한다. 부가적으로, A의 스팬(span)은
Figure 112015043346415-pat00099
와 같은 집합이다.
정리 1.1:
매트로이드 M의 원소들이 t개의 독립 집합만큼 적도록 분할될 수 있는 사실은
Figure 112015043346415-pat00100
을 만족하는 M의 원소들의 부분집합 S가 존재하지 않는 것과 동치이다.
예제 1.2:
만일 M이 체(field) F 위에서, 일차 종속성에 의해 야기된, 행렬 A의 열들에 대한 매트로이드라면, rank(S)는 단순히 선형대수학의 관점에서 말하는 S의 통상적인 F-rank이다. 본 발명의 실시예들은 체 F를 유한체
Figure 112015043346415-pat00101
로 취한다. 그리고 A는 CIS 부호인지를 검사하는 부호의 k×n 생성 행렬이다.
명제 1.3:
좌표 집합의 k개의 정보 집합(information set)으로의 가능한 모든 분할에 대하여 검사하는 알고리즘은 지수 복잡성(exponential complexity)을 갖는다.
이제, 주어진 임의의 선형 [tk, k]부호가 t-CIS인지 아닌지를 결정하는 다음 알고리즘을 얻는다. 그것이 만일 t-CIS라면, 열의 분할이 출력이다. 만일 그렇지 않다면, 정리 1.1을 위반하는 생성 행렬의 열의 집합 S가 출력이다. 이하에서 제시되는 알고리즘에서는 다음의 용어를 사용할 것이다. 주어진 임의의 생성 행렬 G를 갖는 [tk, k]부호 C에 대하여, 집합 M은 열의 인덱스(1부터 tk까지의 정수)을 나타낼 것이다. 만일 M의 부분 집합 I에 대응하는 열들이 독립(종속)이라면 I가 독립(종속)이라고 부를 것이다. 유사하게, 대응하는 열들에 대하여 rank(I) 와 span(I)로 표기할 것이다. 특히, span(I)는 부분집합 I에 의하여 생성되는 M안에 인덱스들의 부분집합을 나타낸다.
t-CIS 분할 알고리즘:
주어진 임의의 선형 부호가 t-CIS인지 아닌지를 결정하는 알고리즘은 다음과 같다.
- 입력: 이진 [tk, k] 부호 C를 가지고 시작한다.
- 출력: (열의 분할을 따라) C가 t-CIS이면 응답으로서 "예"를 반환하고, (Edmonds의 정리에 위반하는 열들의 집합에 따라) C가 t-CIS이 아니면 응답으로서 "아니오"를 반환한다.
(ⅰ)
Figure 112015043346415-pat00102
을 M에서의 레이블(label)이 붙은 서로소인 독립 부분 집합들의 집합이라 하자. (각각의
Figure 112015043346415-pat00103
는 아무렇게나 차수(order) 1을 받도록 할당될 수 있거나, 또는 어떤 것도 표준 형태 행렬 G의 처음 k개의 인덱스들을 받을 수가 있음에 주목하자.)
(ⅱ)
Figure 112015043346415-pat00104
를 선택하라.
(ⅲ)
Figure 112015043346415-pat00105
인 동안(while loop) 다음의 a) 내지 f) 단계를 수행하라:
a)
Figure 112015043346415-pat00106
으로 초기화해라.
Figure 112015043346415-pat00107
에 대하여
Figure 112015043346415-pat00108
, 여기서
Figure 112015043346415-pat00109
을 반복적으로 정의하라. 모듈러스(modulus)는 독립 집합들의 인덱스들에 대하여 필요하다.
Figure 112015043346415-pat00110
으로 초기화하라.
b)
Figure 112015043346415-pat00111
의 현재 값에 대하여
Figure 112015043346415-pat00112
인지를 검사하라. 만약 부등식이 성립하지 않는다면(정리 1.1이 위반되는 것은 즉각적으로 분명하다.), while loop에서 나와서 응답 "아니오"를 가지고 집합
Figure 112015043346415-pat00113
를 출력하라.
c) 만약
Figure 112015043346415-pat00114
라면,
Figure 112015043346415-pat00115
로 설정하고 b) 단계로 돌아가라.
d) 만약
Figure 112015043346415-pat00116
라면
Figure 112015043346415-pat00117
이 독립인지를 검사하라. 만약 독립이라면,
Figure 112015043346415-pat00118
을 더 큰 독립 집합으로 교체하라. 그리고 새로운
Figure 112015043346415-pat00119
를 가지고 while loop를 반복하라.
e) 만약
Figure 112015043346415-pat00120
가 종속이라면, 유일한 극소의 종속 집합
Figure 112015043346415-pat00121
를 찾아라. (
Figure 112015043346415-pat00122
내에서 합하여
Figure 112015043346415-pat00123
가 되는 열들의 일차결합을 찾는 것과 관련된 행렬 방정식을 푸는 것으로 수행된다.)
f) 임의의
Figure 112015043346415-pat00124
을 선출하라. 그리고
Figure 112015043346415-pat00125
Figure 112015043346415-pat00126
으로 교체하라. 그 후에
Figure 112015043346415-pat00127
으로 설정하고 while loop를 반복하라.
(ⅳ) while loop를 종료하라. 만약 while loop가 이미 종료되지 않았다면, M의 분할
Figure 112015043346415-pat00128
을 출력하고 "예"로 응답하라.
(2) 수치적 예제들
컴퓨터 패키지 Magma로부터의 명령어 BKLC(GF(2), n, k)는 잘 알려진 이진 선형 [n, k]부호를 의미한다. 표의 기호들은 다음 의미와 같다.
● bk = Magma로부터 명령어 BKLC(GF(2), n, k)에 의하여 얻어진다.
● bk* = 차수(order) k의 단위 행렬의 연속하는 열들에 의하여 순서대로 교체된 생성행렬의 연속된 0 열들을 가진 bk와 같다. 자명하게, bk의 생성 행렬은 k개 미만의 0 열들을 갖는다.
● qc = 유사 순환(quasi-cyclic)
A. 3-CIS 부호
도 2a의 표는 차원 3부터 85까지의 모든 3-CIS 부호가 모든 선형 [n,k] 부호들 중에 가장 잘 알려진 최소 거리를 가지고 있다는 것을 보여준다. 그리고 사실,
Figure 112015043346415-pat00129
일 때, 가능한 가장 좋은 최소 거리이다. 이에 Magma Database(Magma Language Webpage, http://magma.maths.usyd.edu.au/magma/)에서 가장 잘 알려진 선형 [132, 44, 32]부호가 3-CIS가 아님을 검사하였다.
B. 4-CIS 부호
Figure 112015043346415-pat00130
인 경우를 제외하고
Figure 112015043346415-pat00131
에 대하여 bk이거나 혹은 반드시 bk*인 4-CIS [tk, k] 부호들이 존재함을 검사하였다. 이에 Magma database에서 가장 잘 알려진 선형 [148, 37,41]부호가 4-CIS가 아님을 검사하였다. 도 2b의 표를 참조하라.
C.
Figure 112015043346415-pat00132
인 t-CIS 부호
Figure 112015043346415-pat00133
Figure 112015043346415-pat00134
일 때, Magma database에서 가장 잘 알려진 모든 부호들을 조사하였다. 이에 bk 이거나 아니면 반드시 bk*인 t-CIS [tk, k]부호들이 존재한다고 결론지을 수 있었다.
(3) 구축 방법
이제 본 발명의 실시예들에 따라, 다수의 t-CIS 부호들을 빠르게 생성할 수 있고, 이로부터 쉽게 높은 최소 거리들을 갖는 t-CIS 부호들을 얻을 수 있는 t-CIS 부호의 구축 방법들을 제안한다.
명제 3.1 (유사-순환 부호):
C를 코인덱스(co-index) k의 유사 순환 [tk, k]부호라 하자. C가
Figure 112015043346415-pat00135
Figure 112015043346415-pat00136
을 갖는 다항식 서로소(polynomials coprime)인 생성행
Figure 112015043346415-pat00137
을 갖는 1-생성(generator) 유사-순환 부호라고 가정하자. 그러면, C는 t-CIS 부호이다.
증명:
첨부된 다항식
Figure 112015043346415-pat00138
의 순환 행렬의 판별식이 0 이라는 것은
Figure 112015043346415-pat00139
과 동치이다.
예제 3.2:
가장 잘 알려진 선형 [243, 9, 118]부호는 8진법으로 생성행 [175, 177, 63, 357, 253, 25, 73, 267, 113, 135, 377, 123, 337, 75, 37, 273, 51, 155, 153, 45, 35, 5, 65, 127, 133, 147]을 갖는 1-generator 유사-순환 부호이다. 이 27개의 숫자들에 대응하는
Figure 112015043346415-pat00140
의 다항식은
Figure 112015043346415-pat00141
을 갖는 all coprime이라는 것이 보여질 수 있다.
보조정리 3.3 (빼기 구축):
C가 생성행렬
Figure 112015043346415-pat00142
(여기서 각각의
Figure 112015043346415-pat00143
Figure 112015043346415-pat00144
가역 행렬)를 갖는 t-CIS [tk, k]부호라고 가정하자. 그러면, 생성 행렬
Figure 112015043346415-pat00145
(여기서
Figure 112015043346415-pat00146
Figure 112015043346415-pat00147
Figure 112015043346415-pat00148
가역 행렬)을 갖는 t-CIS [(k-1)t, k-1] 부호가 존재한다.
증명:
임의의
Figure 112015043346415-pat00149
를 선택하라. G의
Figure 112015043346415-pat00150
번째 행을 삭제해라. 그러면, 각각의
Figure 112015043346415-pat00151
는 rank가
Figure 112015043346415-pat00152
Figure 112015043346415-pat00153
행렬이 된다. 각각의
Figure 112015043346415-pat00154
에 대하여,
Figure 112015043346415-pat00155
의 나머지 열들의 일차 결합인
Figure 112015043346415-pat00156
의 열이 한 개 존재한다.
Figure 112015043346415-pat00157
을 얻기 위해서
Figure 112015043346415-pat00158
에서 그 열을 지워라. 여기서,
Figure 112015043346415-pat00159
이기 때문에 가역행렬이 된다.
명제 3.4 (Building up construction):
C가 생성행렬
Figure 112015043346415-pat00160
(여기서 각각의
Figure 112015043346415-pat00161
Figure 112015043346415-pat00162
가역행렬)를 갖는 t-CIS [tk, k]부호라고 가정하자.
Figure 112015043346415-pat00163
를 행렬
Figure 112015043346415-pat00164
Figure 112015043346415-pat00165
번째 행이라고 하자. 그러면 임의의 벡터
Figure 112015043346415-pat00166
Figure 112015043346415-pat00167
에 대하여, 다음 수학식 2의 행렬
Figure 112015043346415-pat00168
은 t-CIS [t(k+1), k+1] 부호
Figure 112015043346415-pat00169
을 생성한다.
Figure 112015043346415-pat00170
여기서, 각각의
Figure 112015043346415-pat00171
에 대하여,
Figure 112015043346415-pat00172
는 유일하게 결정된
Figure 112015043346415-pat00173
에 대하여
Figure 112015043346415-pat00174
를 만족시키고,
Figure 112015043346415-pat00175
Figure 112015043346415-pat00176
를 만족시킨다.
증명:
행들
Figure 112015043346415-pat00177
을 갖는
Figure 112015043346415-pat00178
행렬은 역행렬이 존재한다는 것을 알 수 있다. 같은 논리에 의하여, 모든
Figure 112015043346415-pat00179
에 대하여, 행들
Figure 112015043346415-pat00180
을 갖는 행렬에 역행렬이 존재한다는 것을 알 수 있다. 그러므로,
Figure 112015043346415-pat00181
은 [t(k+1), k+1] t-CIS 부호이다.
명제 3.5:
Figure 112015043346415-pat00182
를 t-CIS [tk, k] 부호
Figure 112015043346415-pat00183
라고 하자. 그러면 그것은 명제 3.4에 의하여 t-CIS [t(k-1), k-1] 부호로부터 구축된 t-CIS [tk, k] 부호
Figure 112015043346415-pat00184
과 동치이다.
증명:
기본적으로, 빼기 구축(보조정리 3.3)과 building up construction(명제 3.4)는 가역 연산들이다. 2-CIS 부호에 대한 mass formula와 유사하게, t-CIS 부호의 목록이 complete한지 아닌지를 결정하는 공식이 존재한다.
명제 3.6:
양의 정수
Figure 112015043346415-pat00185
Figure 112015043346415-pat00186
에 대하여,
Figure 112015043346415-pat00187
를 모든 t-CIS [tk, k] 부호들의 집합이라 하고,
Figure 112015043346415-pat00188
Figure 112015043346415-pat00189
의 원소들의 열들 위에서 작용(act)하는 차수(degree)
Figure 112015043346415-pat00190
의 대칭군이라 하자.
Figure 112015043346415-pat00191
Figure 112015043346415-pat00192
의 작용 하에서
Figure 112015043346415-pat00193
에서의 각각의 동치류로부터의 대표원이라고 하자.
Figure 112015043346415-pat00194
를 모든
Figure 112015043346415-pat00195
Figure 112015043346415-pat00196
의 형태를 취하는 생성 행렬들을 갖는 모든 t-CIS [tk, k] 부호들의 집합이라 하자. 각각의
Figure 112015043346415-pat00197
Figure 112015043346415-pat00198
에 속해 있다고 가정하자. 그러면 다음의 수학식 3이 성립한다.
Figure 112015043346415-pat00199
여기서,
Figure 112015043346415-pat00200
는 아래의
Figure 112015043346415-pat00201
의 orbit을 나타내고,
Figure 112015043346415-pat00202
Figure 112015043346415-pat00203
의 카디널리티(cardinality)를 나타낸다.
예제 3.7:
Figure 112015043346415-pat00204
를 3-CIS인 생 성행렬 (1 1 1)을 갖는 [3, 1, 3] 반복(repetition) 부호라고 하자.
Figure 112015043346415-pat00205
,
Figure 112015043346415-pat00206
,
Figure 112015043346415-pat00207
,
Figure 112015043346415-pat00208
,
Figure 112015043346415-pat00209
,
Figure 112015043346415-pat00210
이라고 하자. 그러면 명제 3.4에 의하여,
Figure 112015043346415-pat00211
,
Figure 112015043346415-pat00212
,
Figure 112015043346415-pat00213
이다. 따라서, 다음의 수학식 4의 행렬은 [6,2,4] 3-CIS 부호를 생성한다.
Figure 112015043346415-pat00214
(4) 부호들에 대한 분류
이하에서는 동치관계 아래 행렬의 동치류들에 관련된 t-CIS 부호에 대한 분류의 두 가지 방법을 설명한다.
A. 행렬의 동치류들을 이용한 분류 방법
첫 번째 방법으로서,
Figure 112015043346415-pat00215
위에서 다음 동치의 개념을 고려해본다.: 두 행렬
Figure 112015043346415-pat00216
는 어떤 치환행렬
Figure 112015043346415-pat00217
가 존재하여
Figure 112015043346415-pat00218
가 성립하면 동치이고
Figure 112015043346415-pat00219
로 표기한다.
Figure 112015043346415-pat00220
으로
Figure 112015043346415-pat00221
로부터의
Figure 112015043346415-pat00222
개의 원소들의 모든
Figure 112015043346415-pat00223
연결(concatenations)의 집합을 표기하기로 하자. 두 번째 방법으로서,
Figure 112015043346415-pat00224
위에서 하나의 동치의 개념을 고려해본다.: 두 행렬
Figure 112015043346415-pat00225
는 만일
Figure 112015043346415-pat00226
치환행렬
Figure 112015043346415-pat00227
Figure 112015043346415-pat00228
치환행렬
Figure 112015043346415-pat00229
이 존재하여
Figure 112015043346415-pat00230
이 성립하면, 동치이고
Figure 112015043346415-pat00231
로 나타낸다.
발언 4.1:
Figure 112015043346415-pat00232
Figure 112015043346415-pat00233
는 동치 관계들이다.
명제 4.2 ( 방법1 ):
주어진 차원
Figure 112015043346415-pat00234
의 비동치 (t-1)-CIS 부호들의 모든 대표원들의 집합
Figure 112015043346415-pat00235
에 대하여, 차원
Figure 112015043346415-pat00236
의 모든 비동치 t-CIS 부호들의 집합,
Figure 112015043346415-pat00237
는 다음에 의하여 구하여진다.
(ⅰ) t-CIS 부호들의 집합
Figure 112015043346415-pat00238
를 얻기 위하여 각 부호에게 관계
Figure 112015043346415-pat00239
에 대한 각 동치류의 행렬 대표원을 덧붙이는 것.
(ⅱ) 동치 부호들을 제거하기 위해
Figure 112015043346415-pat00240
위에서 동치 검사를 수행하는 것, 그 후에 각 동치류로부터 오직 하나의 대표원을 유지하는 것. 그 결과
Figure 112015043346415-pat00241
를 얻을 수 있다.
명제 4.3 ( 방법2 ):
Figure 112015043346415-pat00242
에서 관계
Figure 112015043346415-pat00243
아래의 비동치
Figure 112015043346415-pat00244
행렬들의 모든 대표원들의 주어진 집합
Figure 112015043346415-pat00245
에 대하여, 차원
Figure 112015043346415-pat00246
의 모든 비동치 t-CIS 부호들의 집합
Figure 112015043346415-pat00247
는 다음에 의하여 구하여진다.
(ⅰ) t-CIS 부호들의 집합
Figure 112015043346415-pat00248
를 형성하기 위하여 단위 행렬
Figure 112015043346415-pat00249
Figure 112015043346415-pat00250
에서 한 행렬 대표원을 덧붙이는 것.
(ⅱ) 동치부호들을 제거하기 위하여
Figure 112015043346415-pat00251
위에서 동치 검사를 수행하는 것, 그 후에 각 동치류로부터 오직 하나의 대표원을 유지하는 것. 그 결과
Figure 112015043346415-pat00252
를 얻을 수 있다.
Figure 112015043346415-pat00253
의 카디널리티가
Figure 112015043346415-pat00254
이고
Figure 112015043346415-pat00255
인 것에 대하여 주어진다. 다음 명제에서
Figure 112015043346415-pat00256
인 것에 대한 어떤 결과들로 확장한다. 그 가치들은 그래프 동형사상(isomorphism)을 이용하여 발견되고 모든 부호 동치들은 그래프 동형사상을 이용하여 역시 검사된다. 모든 분류들은 Magma에서 시행되었다.
명제 4.4:
Figure 112015043346415-pat00257
이고
Figure 112015043346415-pat00258
인 것에 대한
Figure 112015043346415-pat00259
의 카디널리티는 다음 표에서 주어진다.
Figure 112015043346415-pat00260
다음에서
Figure 112015043346415-pat00261
인 것에 대하여 3-CIS 부호들의 분류를 얻기 위하여 위에서 묘사된 방법들을 이용한다.
B. 짧은 t-CIS 부호들의 분류
발언 4.5:
임의의 t-CIS 부호는 t 이상의 최소 거리를 가짐에 주목한다. 그렇지 않으면, 대응하는 열 부분행렬에서 하나의 0(zero) 행을 갖는 적어도 하나의 정보 집합이 존재한다. (이것은 부분행렬의 rank가 반드시 full이기 때문에 모순이다.)
다음 표는 분류의 요약을 보여준다. 이 분류는 위에서 묘사된 방법1과 2를 이용하여 구하였다.
Figure 112015043346415-pat00262
번째 열(
Figure 112015043346415-pat00263
)은
Figure 112015043346415-pat00264
인 3-CIS 부호들의 개수를 주고 괄호 안에는 자기 직교인 것의 개수와 그리고 자기 직교가 아닌 것의 개수들이다. 마지막 열은 1 열에서 길이에 대응하는 3-CIS 부호들의 총합을 제공한다.
Figure 112015043346415-pat00265
이제, 다음과 같이 분류를 요약할 수 있다.
정리 3.6:
각각의
Figure 112015043346415-pat00266
에 대하여, 길이
Figure 112015043346415-pat00267
의 유일한 최적의 3-CIS 부호가 존재한다. 여덟 개의 최적의 3-CIS [9,3,4] 부호들이 존재한다.
이제 이상에서 기술한 이론에 기반하여 본 발명의 실시예들이 제안하는 암호화 부호를 생성하는 과정을 약술하도록 한다.
도 3은 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치를 도시한 블록도로서, 암호화 부호 생성 장치(10)를 통해 분류, 생성된 CIS 부호가 부채널 공격 방지를 위한 암호화 회로(20)에 공급되는 구조를 예시하였으나, 이러한 두 가지 장치는 응용상의 편의에 따라 하나의 장치 또는 분리된 장치로 구현될 수 있다. 이러한 암호화 부호 생성 장치(10)는 적어도 입력부(11), 메모리(12) 및 프로세서(13)를 포함한다.
입력부(11)는, [tk, k] 이진 부호
Figure 112015043346415-pat00268
(t는 자연수 차수, k는 자연수 인덱스)를 입력받는다.
메모리(memory)(12)는, 상기 이진 부호
Figure 112015043346415-pat00269
가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 판별 명령을 저장한다. 여기서, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬
Figure 112015043346415-pat00270
(
Figure 112015043346415-pat00271
Figure 112015043346415-pat00272
가역행렬,
Figure 112015043346415-pat00273
는 행렬
Figure 112015043346415-pat00274
Figure 112015043346415-pat00275
번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터
Figure 112015043346415-pat00276
및 제 2 벡터
Figure 112015043346415-pat00277
에 대하여 행렬
Figure 112015043346415-pat00278
은,
Figure 112015043346415-pat00279
, t-CIS [t(k+1), k+1] 부호
Figure 112015043346415-pat00280
을 생성한다.
보다 구체적으로, 판별 명령은, 각각의
Figure 112015043346415-pat00281
에 대하여,
Figure 112015043346415-pat00282
는 유일하게 결정된
Figure 112015043346415-pat00283
에 대하여
Figure 112015043346415-pat00284
를 만족시키고,
Figure 112015043346415-pat00285
Figure 112015043346415-pat00286
를 만족시키는 것이 바람직하다.
또한, 판별 명령은, 모든
Figure 112015043346415-pat00287
에 대하여, 상기 행렬
Figure 112015043346415-pat00288
의 행들
Figure 112015043346415-pat00289
을 갖는
Figure 112015043346415-pat00290
행렬의 역행렬이 존재하는 조건을 만족하는 것이 바람직하다.
나아가, 판별 명령에서, 상기 이진 부호
Figure 112015043346415-pat00291
를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호
Figure 112015043346415-pat00292
과 동치이다.
이제, 프로세서(processor)(13)는, 상기 메모리(12)에 저장된 판별 명령을 독출하여 이상에서 정의된 바와 같은 일련의 연산을 수행한다.
한편, 암호화 회로(20) 또는 암호화 부호 생성 장치(10)와 통합하여 구현되는 암호화 장치는 앞서 판별된 t-CIS 부호를 이용하여 부호화된 마스크를 저장하는 레지스터(21)를 더 포함할 수 있다. 그러면, 암호화 회로(20)는 입력된 평문과 키(22)를 이용하여 요구되는 암호화 연산을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법을 도시한 흐름도로서, 앞서 설명한 도 3의 각 구성요소들이 수행하는 기능을 시계열적 관점에서 기술한 것으로서, 여기서는 설명의 중복을 피하기 위해 그 개요만을 약술하도록 한다.
S310 단계에서, 암호화 부호의 생성 장치는, [tk, k] 이진 부호
Figure 112015043346415-pat00293
(t는 자연수 차수, k는 자연수 인덱스)를 입력받는다.
S320 단계에서, 상기 암호화 부호의 생성 장치는, 적어도 하나의 프로세서(processor)를 이용하여 메모리(memory)에 저장된 판별 명령을 수행하여 상기 이진 부호
Figure 112015043346415-pat00294
가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력한다. 여기서, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬
Figure 112015043346415-pat00295
(
Figure 112015043346415-pat00296
Figure 112015043346415-pat00297
가역행렬,
Figure 112015043346415-pat00298
는 행렬
Figure 112015043346415-pat00299
Figure 112015043346415-pat00300
번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터
Figure 112015043346415-pat00301
및 제 2 벡터
Figure 112015043346415-pat00302
에 대하여 행렬
Figure 112015043346415-pat00303
은,
Figure 112015043346415-pat00304
, t-CIS [t(k+1), k+1] 부호
Figure 112015043346415-pat00305
을 생성한다.
한편, 상기된 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법은, 선택적으로 구비될 수 있는 S330 단계를 통해 앞서 S320 단계를 통해 판별된 t-CIS 부호를 이용하여 부호화된 마스크를 레지스터에 저장할 수 있다.
상기된 본 발명의 실시예들에 따르면, 입력된 이진 부호가 t-CIS 부호인지 여부를 판별하여 암호화 회로에 출력함으로써, 적어도 하나 또는 상대적으로 적은 수의 마스크만을 부호화하더라도 부채널 공격에 강인한 암호화 회로를 제공하는 것이 가능하며, 이로 인해 저렴하면서도 기밀성이 좋은 마스크를 제작할 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장 장치 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
10: 암호화 부호 생성 장치
11: 입력부 12: 메모리
13: 프로세서
20: 암호화 회로
21: 레지스터 22: 키

Claims (11)

  1. 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치에 있어서,
    [tk, k] 이진 부호
    Figure 112016042589436-pat00306
    (t는 자연수 차수, k는 자연수 인덱스)를 입력받는 입력부;
    상기 이진 부호
    Figure 112016042589436-pat00307
    가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 판별 명령을 저장하는 메모리(memory);
    상기 판별 명령을 수행하는 적어도 하나의 프로세서(processor); 및
    판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 저장하는 레지스터를 포함하되,
    상기 판별 명령은,
    상기 이진 부호 C가 생성행렬
    Figure 112016042589436-pat00308
    (
    Figure 112016042589436-pat00309
    Figure 112016042589436-pat00310
    가역행렬,
    Figure 112016042589436-pat00311
    는 행렬
    Figure 112016042589436-pat00312
    Figure 112016042589436-pat00313
    번째 행)을 갖는 t-CIS 부호라고 설정하고,
    제 1 벡터
    Figure 112016042589436-pat00314
    및 제 2 벡터
    Figure 112016042589436-pat00315
    에 대하여 행렬
    Figure 112016042589436-pat00316
    은,
    Figure 112016042589436-pat00317
    ,
    t-CIS [t(k+1), k+1] 부호
    Figure 112016042589436-pat00318
    을 생성하는 것을 특징으로 하는 암호화 부호의 생성 장치.
  2. 제 1 항에 있어서,
    각각의
    Figure 112015043346415-pat00319
    에 대하여,
    Figure 112015043346415-pat00320
    는 유일하게 결정된
    Figure 112015043346415-pat00321
    에 대하여
    Figure 112015043346415-pat00322
    를 만족시키고,
    Figure 112015043346415-pat00323
    Figure 112015043346415-pat00324
    를 만족시키는 것을 특징으로 하는 암호화 부호의 생성 장치.
  3. 제 1 항에 있어서,
    모든
    Figure 112015043346415-pat00325
    에 대하여, 상기 행렬
    Figure 112015043346415-pat00326
    의 행들
    Figure 112015043346415-pat00327
    을 갖는
    Figure 112015043346415-pat00328
    행렬의 역행렬이 존재하는 조건을 만족하는 것을 특징으로 하는 암호화 부호의 생성 장치.
  4. 제 1 항에 있어서,
    상기 이진 부호
    Figure 112015043346415-pat00329
    를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호
    Figure 112015043346415-pat00330
    과 동치인 것을 특징으로 하는 암호화 부호의 생성 장치.
  5. 삭제
  6. 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법에 있어서,
    [tk, k] 이진 부호
    Figure 112016042589436-pat00331
    (t는 자연수 차수, k는 자연수 인덱스)를 입력받는 단계;
    적어도 하나의 프로세서(processor)를 이용하여 메모리(memory)에 저장된 판별 명령을 수행하여 상기 이진 부호
    Figure 112016042589436-pat00332
    가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 단계; 및
    판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 레지스터에 저장하는 단계를 포함하되,
    상기 판별 명령은,
    상기 이진 부호 C가 생성행렬
    Figure 112016042589436-pat00333
    (
    Figure 112016042589436-pat00334
    Figure 112016042589436-pat00335
    가역행렬,
    Figure 112016042589436-pat00336
    는 행렬
    Figure 112016042589436-pat00337
    Figure 112016042589436-pat00338
    번째 행)을 갖는 t-CIS 부호라고 설정하고,
    제 1 벡터
    Figure 112016042589436-pat00339
    및 제 2 벡터
    Figure 112016042589436-pat00340
    에 대하여 행렬
    Figure 112016042589436-pat00341
    은,
    Figure 112016042589436-pat00342
    ,
    t-CIS [t(k+1), k+1] 부호
    Figure 112016042589436-pat00343
    을 생성하는 것을 특징으로 하는 암호화 부호의 생성 방법.
  7. 제 6 항에 있어서,
    각각의
    Figure 112015043346415-pat00344
    에 대하여,
    Figure 112015043346415-pat00345
    는 유일하게 결정된
    Figure 112015043346415-pat00346
    에 대하여
    Figure 112015043346415-pat00347
    를 만족시키고,
    Figure 112015043346415-pat00348
    Figure 112015043346415-pat00349
    를 만족시키는 것을 특징으로 하는 암호화 부호의 생성 방법.
  8. 제 6 항에 있어서,
    모든
    Figure 112015043346415-pat00350
    에 대하여, 상기 행렬
    Figure 112015043346415-pat00351
    의 행들
    Figure 112015043346415-pat00352
    을 갖는
    Figure 112015043346415-pat00353
    행렬의 역행렬이 존재하는 조건을 만족하는 것을 특징으로 하는 암호화 부호의 생성 방법.
  9. 제 6 항에 있어서,
    상기 이진 부호
    Figure 112015043346415-pat00354
    를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호
    Figure 112015043346415-pat00355
    과 동치인 것을 특징으로 하는 암호화 부호의 생성 방법.
  10. 삭제
  11. 제 6 항 내지 제 9 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020150062987A 2015-05-06 2015-05-06 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법 KR101646657B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150062987A KR101646657B1 (ko) 2015-05-06 2015-05-06 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150062987A KR101646657B1 (ko) 2015-05-06 2015-05-06 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101646657B1 true KR101646657B1 (ko) 2016-08-08

Family

ID=56712099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150062987A KR101646657B1 (ko) 2015-05-06 2015-05-06 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101646657B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252824A (ja) * 2003-02-21 2004-09-09 Hitachi Information Technology Co Ltd 回路検証方法、回路シミュレータ、回路検証プログラム
KR100834096B1 (ko) 2007-05-11 2008-06-02 한국전자통신연구원 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252824A (ja) * 2003-02-21 2004-09-09 Hitachi Information Technology Co Ltd 回路検証方法、回路シミュレータ、回路検証プログラム
KR100834096B1 (ko) 2007-05-11 2008-06-02 한국전자통신연구원 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KIM JON-LARK "Complementary information set codes from SRG, DRT, and matroids", 2015 Mathematics of Communications: Sequences, Codes and Designs (BIRS), (2015.01.29. 공개) *

Similar Documents

Publication Publication Date Title
Chen et al. An efficient image encryption scheme using gray code based permutation approach
Li et al. Conditional cube attack on round-reduced ASCON
Zhang et al. Image encryption algorithm based on DNA encoding and chaotic maps
Alhadawi et al. Designing a pseudorandom bit generator based on LFSRs and a discrete chaotic map
US9886597B2 (en) Method for encoding data on a chip card by means of constant-weight codes
Folifack Signing et al. Chaotic jerk system with hump structure for text and image encryption using DNA coding
EP3091470A1 (en) Apparatus and method for processing digital value
Kar et al. Image encryption using DNA coding and hyperchaotic system
Zhang et al. Fast correlation attacks on Grain-like small state stream ciphers
Zaibi et al. Efficient and secure chaotic S‐Box for wireless sensor network
Xue et al. Medical image protection algorithm based on deoxyribonucleic acid chain of dynamic length
Hiller et al. Hiding secrecy leakage in leaky helper data
Zhang et al. Novel multiple images encryption algorithm using CML system and DNA encoding
Kiayias et al. Non-malleable codes for partial functions with manipulation detection
Shaltout et al. Applicable Image Security Based on Computational Genetic Approach and Self-Adaptive Substitution
Gammel et al. On the duality of probing and fault attacks
KR101646657B1 (ko) 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법
Azarderakhsh et al. Common subexpression algorithms for space-complexity reduction of Gaussian normal basis multiplication
Knellwolf Cryptanalysis of hardware-oriented ciphers the Knapsack generator, and SHA-1
Gorbenko et al. Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form
RU2708439C1 (ru) Вычислительное устройство и способ
Peng et al. Research on a novel image encryption algorithm based on the hybrid of chaotic maps and DNA encoding
Mishra et al. A Chaotic encryption algorithm: Robustness against Brute-force attack
Li et al. Automatic preimage attack framework on Ascon using a linearize-and-guess approach
Arabnezhad‐Khanoki et al. S‐boxes representation and efficiency of algebraic attack

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 4