KR101646657B1 - 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법 - Google Patents
부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures 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
본 발명은 부채널 공격에 대응하여 이를 방지하는 암호화 회로에 관한 기술로서, 특히 고차의 부채널 공격 방지를 도모하는 암호화 회로에 암호화 부호를 생성하고 공급하는 장치, 방법 및 이를 기록한 기록매체에 관한 것이다.
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 암호화 기법에서 다수의 마스크를 활용하는 기술이 제안되어 있다.
본 발명이 해결하고자 하는 기술적 과제는, 부채널 공격에 의해 암호화 장치들로부터 암호화 정보가 누출되는 위험을 해소하고, 이러한 공격에 대응하여 마스크의 개수나 복잡도를 증가시킬 경우 연산에 따른 부하가 증가하고, 그에 따른 비용이 증가하는 한계를 극복하고자 한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치는, [tk, k] 이진 부호 (t는 자연수 차수, k는 자연수 인덱스)를 입력받는 입력부; 상기 이진 부호 가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 판별 명령을 저장하는 메모리(memory); 및 상기 판별 명령을 수행하는 적어도 하나의 프로세서(processor);를 포함하되, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬 (는 가역행렬, 는 행렬 의 번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터 및 제 2 벡터 에 대하여 행렬 은, , t-CIS [t(k+1), k+1] 부호 을 생성한다.
일 실시예에 따른 암호화 부호의 생성 장치는, 상기 이진 부호 를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호 과 동치이다.
일 실시예에 따른 암호화 부호의 생성 장치는, 판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 저장하는 레지스터;를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법은, [tk, k] 이진 부호 (t는 자연수 차수, k는 자연수 인덱스)를 입력받는 단계; 및 적어도 하나의 프로세서(processor)를 이용하여 메모리(memory)에 저장된 판별 명령을 수행하여 상기 이진 부호 가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 단계;를 포함하되, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬 (는 가역행렬, 는 행렬 의 번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터 및 제 2 벡터 에 대하여 행렬 은, , t-CIS [t(k+1), k+1] 부호 을 생성한다.
일 실시예에 따른 암호화 부호의 생성 방법은, 상기 이진 부호 를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호 과 동치이다.
일 실시예에 따른 암호화 부호의 생성 방법은, 판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 레지스터에 저장하는 단계;를 더 포함할 수 있다.
나아가, 이하에서는 상기 기재된 암호화 부호의 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명의 실시예들은, 입력된 이진 부호가 t-CIS 부호인지 여부를 판별하여 암호화 회로에 출력함으로써, 적어도 하나 또는 상대적으로 적은 수의 마스크만을 부호화하더라도 부채널 공격에 강인한 암호화 회로를 제공하는 것이 가능하며, 이로 인해 저렴하면서도 기밀성이 좋은 마스크를 제작할 수 있다.
도 1은 본 발명의 실시예들이 활용되는 암호화 회로에 대한 부채널 공격의 일례로서 차분 전력 분석 공격의 과정을 설명하기 위한 도면이다.
도 2a 및 도 2b는 CIS 부호를 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치를 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법을 도시한 흐름도이다.
도 2a 및 도 2b는 CIS 부호를 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치를 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법을 도시한 흐름도이다.
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명의 실시예들이 구현되는 환경에서 대두되는 문제점을 기술하고, 이러한 문제점에 대한 해결 방안의 개요 혹은 기술적 사상의 핵심을 순차적으로 제시한다.
도 1은 본 발명의 실시예들이 활용되는 암호화 회로에 대한 부채널 공격의 일례로서 차분 전력 분석 공격의 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 공격자는 공격하고자 하는 암호화 장치(110)에 대해 통상적으로 얻을 수 있는 정보를 이용하여 추정 모델(120)을 정립한다. 추정 모델(120)을 정립한 후, 추정 모델(120)에 추측 키와 평문을 입력하여 암호 알고리즘의 중간값을 계산하고, 중간값에 따른 추정 전력 소모량을 결정한다.
또한, 추정 모델(120)에 입력한 평문과 동일한 평문을 공격 대상 암호화 장치(110)에 입력하고, 암호 알고리즘 수행중 암호화 장치(110)에서 소비한 전력소모량을 측정하여 측정된 전력 소모량을 앞서 추정된 전력 소모량과 함께 통계적 분석(130) 과정을 통해 키를 판별한다. 이러한 분석을 통해 결국 공격자는 암호 장치(110)의 비밀정보인 키를 획득할 수 있게 된다.
이상에서 예시된 차분 전력 분석 공격과 같은 부채널 공격에 대한 대응 기법으로는 크게 다음의 세 가지 대응이 가능하다.
● 신호 크기를 감소시키는 기법: 이 기법은 암호 알고리즘이 동작시에 발생되는 부채널정보의 신호 크기를 감소시키는 것으로서, 암호 알고리즘이 동작하는 프로그램을 개발시에 누출정보가 최소화되도록 유도하며, 해밍수나 해밍차가 균등하게 분포되도록 전체 프로세스를 구성한다.
● 무작위성을 증가시키는 기법: 이 기법은 랜덤한 값을 삽입하거나 주요 정보를 난수화시켜 무작위로 만드는 것으로서, 명령어 실행시간을 무작위로 변경하거나, 암호 알고리즘이 일정한 시간 내에 실행되도록 대기(wait) 값을 삽입하거나, 가짜 명령어를 삽입하거나 실행 명령어의 순서를 변경하거나, 랜덤한 하드웨어 클럭이나 전력 잡음을 생성하는 방법 등으로 구현될 수 있다.
● 중요 정보를 숨기는 기법: 이 기법은 메시지나 키와 같은 중요정보를 암호화 연산 과정에서 숨기는 것으로서, 암호 알고리즘에 별도의 연산인 블라인드 연산(blind operation)을 추가하여 중요 정보를 블라인딩 처리하거나, 연산의 시작 단계에서 중요 정보를 특정 마스크 값으로 변경(masking)하는 등의 방법으로 구현될 수 있다.
이하에서 제시되는 본 발명의 실시예들은 이러한 기법들 중, 특히 중요 정보를 숨기는 기법에 기초하여 저비용의 효율적이고 기밀성이 높은 마스크를 부호화하기 위한 암호화 부호를 생성하는 기술적 수단을 제안하고자 한다. 특히 본 발명의 실시예들은 이러한 암호화 부호로서 CIS(complementary information set) 부호를 채택하고 있으며, 구체적인 실시예를 설명하기에 앞서 기본적인 개념에 대한 정의를 미리 밝혀둔다.
유한체 에 대한 길이 n(n은 자연수) 및 차수 k(k는 자연수)의 선형 부호(linear code) 를 의 k-차원 부공간(subspace)으로 정의한다. 이러한 부호 를 위에서의 [n,k] 선형 부호라고 한다. 선형 부호 의 최소 거리 d를 으로 정의한다. 일반적으로 이를 [n,k,d] 부호라고 하며, 주어진 n, k에 대해 최소 거리 d는 최대 (n-k+1)의 값을 가질 수 있다.
을 [3,1,3] 이진 선형 부호라 하자. 이를 길이 3인 반복 부호(repetition code)라고 부른다. 은 하나의 오류(error)를 수정할 수 있다. 예를 들어, (000)을 전송하고 (100)을 수신하였을 때, (100)과 가장 가까운 부호어(codeword)를 찾는다. 그러면 (000)이 가장 가까운 부호어가 되며, 따라서 하나의 오류를 수정할 수 있게 된다. 이러한 은 생성 행렬(generator matrix)로서 을 가진다(를 [n,k,d] 부호라고 할 때, 를 k×n 생성 행렬이라고 하자.). 이제, 를 생성 행렬 로 갖는 [3,2,2] 이진 선형 부호라고 하자. 그러면 와 같은 관계를 갖는다.
선형 부호를 부호화하기 위해 와 같은 부호화 처리 맵(encoding processor map)을 고려할 수 있다. 이 과정에서 길이가 k인 열 벡터(row vector) x가 생성 행렬 에 의해 길이가 n(n>k)인 벡터로 대응된다. 즉, 부호화는 원래의 메시지에 중복 비트(redundancy bit/digit)을 추가하는 과정에 해당한다. 예를 들어, 생성 행렬이 인 의 경우, , 이 된다.
선형 [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과 같이 얻을 수 있다.
그러면, 암호화 장치를 위한 치환 박스(s-box)는 를 만족하도록 정의한다. 가 CIS 부호이기 위한 필요충분 조건은 가 일대일 대응 함수이다. 특히, 가 선형 부호이고 생성 행렬이 (는 단위 행렬)인 경우, CIS 조건은 가 가역 행렬이라는 말과 동치이다.
앞서 스마트카드와 같은 암호화 장치에 암호 칩을 구비하도록 제작하더라도 정보가 누출될 우려가 존재함을 지적하였다. 이렇게 누출되는 정보는 차분 전력 분석이나 다른 종류의 부채널 공격에 사용될 수 있다. 따라서, 암호화 장치의 설계시에는 이러한 공격에 대비한 기술적 수단이 구비될 필요가 있다. 이를 위해 최근의 많은 연구들은 공격에 더욱 견고하게 대응하기 위해 새로운 마스크(mask)가 첨가되어야 한다는 주장이 많았다.
를 변수라고 하고, 이를 랜덤한 개의 마스크 로 공유하되 를 만족하도록 한다. 여기서, +는 XOR 연산을 의미한다. 차수 t의 공격(t+1 shares)을 수행하는 것은, t에 관하여 매우 급격하게 증가한다고 알려졌으므로 t를 크게 할 경우 안전하다는 인식이 존재하였다. 그러나 이 경우, 랜덤 넘버(random number)의 생성의 문제와 디바이스의 성능이 저하되는 단점이 지적되었으며, 이를 해결하기 위해 CIS 부호를 도입할 필요가 있다. 특히, 인 경우, 마스크는 이며, 이는 둘 중의 하나의 정보만 알아도 가 쉽게 노출되는 단점이 있다.
따라서, 본 발명의 실시예들은 새로운 마스크로서 (는 퍼뮤테이션(permutation) 함수이다.) 즉, 어느 하나를 알아도 를 쉽게 찾지 못하게 된다. 본 발명을 도출하는 과정에서 이러한 퍼뮤테이션 함수 를 찾는 방법이 CIS 부호를 찾는 방법과 동일하다는 사실을 발견하였다. 특히, CIS 부호를 이용하여 하나의 마스크를 부호함으로써 종래에 다수의 마스크를 덮어 쓴 것과 같은 효과를 얻을 수 있었으며, 이렇게 얻어진 마스크를 통해 저렴하면서도 기밀성이 향상된 결과를 얻을 수 있었다.
이하에서는 이론적 접근을 통해 본 발명의 실시예들을 보다 구체적으로 소개한다.
(1) t- CIS 분할 알고리즘
우선, 집합에 기반한 독립적 시스템을 묘사하는 매트로이드(matroid) 이론을 소개한다. 매트로이드는 순서쌍 (M, I)이며, M은 하나의 유한 집합이고 I는 M의 부분 집합들(이것들은 독립 집합이라고 불린다.)의 하나의 모임으로, 여기서 I는 공집합이 아니고 I에 속하는 집합의 부분 집합 역시 I에 속한다. 그리고 M의 부분 집합인 A에 포함되는 모든 극대의 독립적인 부분 집합들은 같은 크기를 지닌다. A안에 있는 이와 같은 극대의 독립적인 집합의 크기를 A의 랭크(rank)라 한다. 부가적으로, A의 스팬(span)은 와 같은 집합이다.
정리 1.1:
예제 1.2:
만일 M이 체(field) F 위에서, 일차 종속성에 의해 야기된, 행렬 A의 열들에 대한 매트로이드라면, rank(S)는 단순히 선형대수학의 관점에서 말하는 S의 통상적인 F-rank이다. 본 발명의 실시예들은 체 F를 유한체 로 취한다. 그리고 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이 아니면 응답으로서 "아니오"를 반환한다.
(ⅰ) 을 M에서의 레이블(label)이 붙은 서로소인 독립 부분 집합들의 집합이라 하자. (각각의 는 아무렇게나 차수(order) 1을 받도록 할당될 수 있거나, 또는 어떤 것도 표준 형태 행렬 G의 처음 k개의 인덱스들을 받을 수가 있음에 주목하자.)
b) 의 현재 값에 대하여 인지를 검사하라. 만약 부등식이 성립하지 않는다면(정리 1.1이 위반되는 것은 즉각적으로 분명하다.), while loop에서 나와서 응답 "아니오"를 가지고 집합 를 출력하라.
(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] 부호들 중에 가장 잘 알려진 최소 거리를 가지고 있다는 것을 보여준다. 그리고 사실, 일 때, 가능한 가장 좋은 최소 거리이다. 이에 Magma Database(Magma Language Webpage, http://magma.maths.usyd.edu.au/magma/)에서 가장 잘 알려진 선형 [132, 44, 32]부호가 3-CIS가 아님을 검사하였다.
B. 4-CIS 부호
인 경우를 제외하고 에 대하여 bk이거나 혹은 반드시 bk*인 4-CIS [tk, k] 부호들이 존재함을 검사하였다. 이에 Magma database에서 가장 잘 알려진 선형 [148, 37,41]부호가 4-CIS가 아님을 검사하였다. 도 2b의 표를 참조하라.
와 일 때, Magma database에서 가장 잘 알려진 모든 부호들을 조사하였다. 이에 bk 이거나 아니면 반드시 bk*인 t-CIS [tk, k]부호들이 존재한다고 결론지을 수 있었다.
(3) 구축 방법
이제 본 발명의 실시예들에 따라, 다수의 t-CIS 부호들을 빠르게 생성할 수 있고, 이로부터 쉽게 높은 최소 거리들을 갖는 t-CIS 부호들을 얻을 수 있는 t-CIS 부호의 구축 방법들을 제안한다.
명제 3.1 (유사-순환 부호):
C를 코인덱스(co-index) k의 유사 순환 [tk, k]부호라 하자. C가 는 을 갖는 다항식 서로소(polynomials coprime)인 생성행 을 갖는 1-생성(generator) 유사-순환 부호라고 가정하자. 그러면, C는 t-CIS 부호이다.
증명:
예제 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개의 숫자들에 대응하는 의 다항식은 을 갖는 all coprime이라는 것이 보여질 수 있다.
보조정리 3.3 (빼기 구축):
C가 생성행렬 (여기서 각각의 는 가역 행렬)를 갖는 t-CIS [tk, k]부호라고 가정하자. 그러면, 생성 행렬 (여기서 은 가역 행렬)을 갖는 t-CIS [(k-1)t, k-1] 부호가 존재한다.
증명:
임의의 를 선택하라. G의 번째 행을 삭제해라. 그러면, 각각의 는 rank가 인 행렬이 된다. 각각의 에 대하여, 의 나머지 열들의 일차 결합인 의 열이 한 개 존재한다. 을 얻기 위해서 에서 그 열을 지워라. 여기서, 이기 때문에 가역행렬이 된다.
명제 3.4 (Building up construction):
C가 생성행렬 (여기서 각각의 가 가역행렬)를 갖는 t-CIS [tk, k]부호라고 가정하자. 를 행렬 의 번째 행이라고 하자. 그러면 임의의 벡터 와 에 대하여, 다음 수학식 2의 행렬 은 t-CIS [t(k+1), k+1] 부호 을 생성한다.
증명:
행들 을 갖는 행렬은 역행렬이 존재한다는 것을 알 수 있다. 같은 논리에 의하여, 모든 에 대하여, 행들 을 갖는 행렬에 역행렬이 존재한다는 것을 알 수 있다. 그러므로, 은 [t(k+1), k+1] t-CIS 부호이다.
명제 3.5:
를 t-CIS [tk, k] 부호 라고 하자. 그러면 그것은 명제 3.4에 의하여 t-CIS [t(k-1), k-1] 부호로부터 구축된 t-CIS [tk, k] 부호 과 동치이다.
증명:
기본적으로, 빼기 구축(보조정리 3.3)과 building up construction(명제 3.4)는 가역 연산들이다. 2-CIS 부호에 대한 mass formula와 유사하게, t-CIS 부호의 목록이 complete한지 아닌지를 결정하는 공식이 존재한다.
명제 3.6:
양의 정수 와 에 대하여, 를 모든 t-CIS [tk, k] 부호들의 집합이라 하고, 를 의 원소들의 열들 위에서 작용(act)하는 차수(degree) 의 대칭군이라 하자. 가 의 작용 하에서 에서의 각각의 동치류로부터의 대표원이라고 하자. 를 모든 인 의 형태를 취하는 생성 행렬들을 갖는 모든 t-CIS [tk, k] 부호들의 집합이라 하자. 각각의 는 에 속해 있다고 가정하자. 그러면 다음의 수학식 3이 성립한다.
예제 3.7:
를 3-CIS인 생 성행렬 (1 1 1)을 갖는 [3, 1, 3] 반복(repetition) 부호라고 하자. , , , , , 이라고 하자. 그러면 명제 3.4에 의하여, , , 이다. 따라서, 다음의 수학식 4의 행렬은 [6,2,4] 3-CIS 부호를 생성한다.
(4) 부호들에 대한 분류
이하에서는 동치관계 아래 행렬의 동치류들에 관련된 t-CIS 부호에 대한 분류의 두 가지 방법을 설명한다.
A. 행렬의
동치류들을
이용한 분류 방법
첫 번째 방법으로서, 위에서 다음 동치의 개념을 고려해본다.: 두 행렬 는 어떤 치환행렬 가 존재하여 가 성립하면 동치이고 로 표기한다. 으로 로부터의 개의 원소들의 모든 연결(concatenations)의 집합을 표기하기로 하자. 두 번째 방법으로서, 위에서 하나의 동치의 개념을 고려해본다.: 두 행렬 는 만일 치환행렬 와 치환행렬 이 존재하여 이 성립하면, 동치이고 로 나타낸다.
발언 4.1:
명제 4.2 (
방법1
):
명제 4.3 (
방법2
):
의 카디널리티가 이고 인 것에 대하여 주어진다. 다음 명제에서 인 것에 대한 어떤 결과들로 확장한다. 그 가치들은 그래프 동형사상(isomorphism)을 이용하여 발견되고 모든 부호 동치들은 그래프 동형사상을 이용하여 역시 검사된다. 모든 분류들은 Magma에서 시행되었다.
명제 4.4:
B. 짧은 t-CIS 부호들의 분류
발언 4.5:
임의의 t-CIS 부호는 t 이상의 최소 거리를 가짐에 주목한다. 그렇지 않으면, 대응하는 열 부분행렬에서 하나의 0(zero) 행을 갖는 적어도 하나의 정보 집합이 존재한다. (이것은 부분행렬의 rank가 반드시 full이기 때문에 모순이다.)
다음 표는 분류의 요약을 보여준다. 이 분류는 위에서 묘사된 방법1과 2를 이용하여 구하였다. 번째 열()은 인 3-CIS 부호들의 개수를 주고 괄호 안에는 자기 직교인 것의 개수와 그리고 자기 직교가 아닌 것의 개수들이다. 마지막 열은 1 열에서 길이에 대응하는 3-CIS 부호들의 총합을 제공한다.
이제, 다음과 같이 분류를 요약할 수 있다.
정리 3.6:
이제 이상에서 기술한 이론에 기반하여 본 발명의 실시예들이 제안하는 암호화 부호를 생성하는 과정을 약술하도록 한다.
도 3은 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치를 도시한 블록도로서, 암호화 부호 생성 장치(10)를 통해 분류, 생성된 CIS 부호가 부채널 공격 방지를 위한 암호화 회로(20)에 공급되는 구조를 예시하였으나, 이러한 두 가지 장치는 응용상의 편의에 따라 하나의 장치 또는 분리된 장치로 구현될 수 있다. 이러한 암호화 부호 생성 장치(10)는 적어도 입력부(11), 메모리(12) 및 프로세서(13)를 포함한다.
메모리(memory)(12)는, 상기 이진 부호 가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 판별 명령을 저장한다. 여기서, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬 (는 가역행렬, 는 행렬 의 번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터 및 제 2 벡터 에 대하여 행렬 은, , t-CIS [t(k+1), k+1] 부호 을 생성한다.
나아가, 판별 명령에서, 상기 이진 부호 를 t-CIS [tk, k] 부호라고 설정하면, t-CIS [t(k-1), k-1] 부호로부터 산출된 t-CIS [tk, k] 부호 과 동치이다.
이제, 프로세서(processor)(13)는, 상기 메모리(12)에 저장된 판별 명령을 독출하여 이상에서 정의된 바와 같은 일련의 연산을 수행한다.
한편, 암호화 회로(20) 또는 암호화 부호 생성 장치(10)와 통합하여 구현되는 암호화 장치는 앞서 판별된 t-CIS 부호를 이용하여 부호화된 마스크를 저장하는 레지스터(21)를 더 포함할 수 있다. 그러면, 암호화 회로(20)는 입력된 평문과 키(22)를 이용하여 요구되는 암호화 연산을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법을 도시한 흐름도로서, 앞서 설명한 도 3의 각 구성요소들이 수행하는 기능을 시계열적 관점에서 기술한 것으로서, 여기서는 설명의 중복을 피하기 위해 그 개요만을 약술하도록 한다.
S320 단계에서, 상기 암호화 부호의 생성 장치는, 적어도 하나의 프로세서(processor)를 이용하여 메모리(memory)에 저장된 판별 명령을 수행하여 상기 이진 부호 가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력한다. 여기서, 상기 판별 명령은, 상기 이진 부호 C가 생성행렬 (는 가역행렬, 는 행렬 의 번째 행)을 갖는 t-CIS 부호라고 설정하고, 제 1 벡터 및 제 2 벡터 에 대하여 행렬 은, , t-CIS [t(k+1), k+1] 부호 을 생성한다.
한편, 상기된 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법은, 선택적으로 구비될 수 있는 S330 단계를 통해 앞서 S320 단계를 통해 판별된 t-CIS 부호를 이용하여 부호화된 마스크를 레지스터에 저장할 수 있다.
상기된 본 발명의 실시예들에 따르면, 입력된 이진 부호가 t-CIS 부호인지 여부를 판별하여 암호화 회로에 출력함으로써, 적어도 하나 또는 상대적으로 적은 수의 마스크만을 부호화하더라도 부채널 공격에 강인한 암호화 회로를 제공하는 것이 가능하며, 이로 인해 저렴하면서도 기밀성이 좋은 마스크를 제작할 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장 장치 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
10: 암호화 부호 생성 장치
11: 입력부 12: 메모리
13: 프로세서
20: 암호화 회로
21: 레지스터 22: 키
11: 입력부 12: 메모리
13: 프로세서
20: 암호화 회로
21: 레지스터 22: 키
Claims (11)
- 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 장치에 있어서,
[tk, k] 이진 부호 (t는 자연수 차수, k는 자연수 인덱스)를 입력받는 입력부;
상기 이진 부호 가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 판별 명령을 저장하는 메모리(memory);
상기 판별 명령을 수행하는 적어도 하나의 프로세서(processor); 및
판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 저장하는 레지스터를 포함하되,
상기 판별 명령은,
상기 이진 부호 C가 생성행렬 (는 가역행렬, 는 행렬 의 번째 행)을 갖는 t-CIS 부호라고 설정하고,
제 1 벡터 및 제 2 벡터 에 대하여 행렬 은,
,
t-CIS [t(k+1), k+1] 부호 을 생성하는 것을 특징으로 하는 암호화 부호의 생성 장치. - 삭제
- 부채널 공격 방지를 위한 암호화 회로에 공급되는 암호화 부호를 생성하는 방법에 있어서,
[tk, k] 이진 부호 (t는 자연수 차수, k는 자연수 인덱스)를 입력받는 단계;
적어도 하나의 프로세서(processor)를 이용하여 메모리(memory)에 저장된 판별 명령을 수행하여 상기 이진 부호 가 t차의 t-CIS(complementary information set) 부호인지 여부를 판별하여 판별된 t-CIS 부호를 암호화 회로에 출력하는 단계; 및
판별된 상기 t-CIS 부호를 이용하여 부호화된 마스크를 레지스터에 저장하는 단계를 포함하되,
상기 판별 명령은,
상기 이진 부호 C가 생성행렬 (는 가역행렬, 는 행렬 의 번째 행)을 갖는 t-CIS 부호라고 설정하고,
제 1 벡터 및 제 2 벡터 에 대하여 행렬 은,
,
t-CIS [t(k+1), k+1] 부호 을 생성하는 것을 특징으로 하는 암호화 부호의 생성 방법. - 삭제
- 제 6 항 내지 제 9 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
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)
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의 암호화 방법 |
-
2015
- 2015-05-06 KR KR1020150062987A patent/KR101646657B1/ko active IP Right Grant
Patent Citations (2)
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)
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 |