KR101105384B1 - 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 - Google Patents

키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 Download PDF

Info

Publication number
KR101105384B1
KR101105384B1 KR1020100019470A KR20100019470A KR101105384B1 KR 101105384 B1 KR101105384 B1 KR 101105384B1 KR 1020100019470 A KR1020100019470 A KR 1020100019470A KR 20100019470 A KR20100019470 A KR 20100019470A KR 101105384 B1 KR101105384 B1 KR 101105384B1
Authority
KR
South Korea
Prior art keywords
key
shuffling
secret key
value
encryption
Prior art date
Application number
KR1020100019470A
Other languages
English (en)
Other versions
KR20110100454A (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 KR1020100019470A priority Critical patent/KR101105384B1/ko
Publication of KR20110100454A publication Critical patent/KR20110100454A/ko
Application granted granted Critical
Publication of KR101105384B1 publication Critical patent/KR101105384B1/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]
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 키 암호화 및 셔플링을 적용시킨 키 관리 방법을 통해서 공격자가 버스에 발생되는 비밀키와 관련된 의미 있는 해밍 거리 정보를 알 수 없도록 하여 센서노드의 물리적 공격에 대한 취약성을 강화하도록 하여 부채널 공격을 방어할 수 있는 키 관리방법을 제공하기 위한 것으로서, 센서노드 프로세서 내부 플래시 메모리에 저장된 비밀키 값을 부채널 공격으로부터 방어하는 키 관리방법에 있어서, (A) 상기 플래시 메모리에 저장되는 비밀키를 생성하고, 생성된 비밀키를 Goldwasser-Micali 암호체계를 기반으로 암호화하는 단계와, (B) 셔플링(shuffling)을 위한 맵(map) 생성과 맵에 기록된 순서에 맞게 플래시 메모리의 정해진 주소에 암호화된 비밀키 값을 셔플링하여 플래시 메모리에 저장하는 단계와, (C) 리-셔플링(re-shuffling)과 암호화된 비밀키 복호화를 통해 암호화된 비밀키 값을 암호화 연산에 사용하기 위해 복호화하여 출력하고, 출력된 비밀키를 상기 (A) 및 (B) 단계를 통해 암호화 및 셔플링하는 단계를 포함하는데 있다.

Description

키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법{Side channel attack resistant key management method based on the key encryption and shuffling method}
본 발명은 유비쿼터스 센서 네트워크(USN) 환경에 사용되는 센서노드들의 물리적 공격에 대한 취약성을 강화하는 방법에 관한 것으로, 특히 물리적 공격 중에서 가장 강력한 공격인 부채널 공격(side channel attack)을 방어하는 키 관리방법에 관한 것이다.
부채널 공격(side channel attack)이란 물리적으로 구현된 암호화 시스템에서 누설되는 타이밍 정보, 전력소모, 전자파 신호들을 이용하여 암호화 연산에 사용된 키를 찾는 공격으로 그 중에서도 전력 소모를 통한 공격은 기존에 가장 연구가 활발한 분야이며, SPA (simple power analysis), DPA(differential power analysis), CPA(correlation power analysis) 등이 있다.
특히, 상기 DPA 공격은 비밀키에 의존하여 처리되는 데이터와 소비되는 전력사이의 상관관계를 통해서 키 값을 추출 할 수 있으며 이러한 DPA 공격은 센서노드 내부에 암호화 알고리즘을 위해 이용되는 비밀키를 추출하기 위한 물리적 공격으로 많이 이용되고 있다.
센서노드에 대한 여러 가지 부채널 공격 중에서도 센서노드 프로세서의 내부 플래시(flash) 메모리에 대한 부채널 공격은 SPA 공격을 통해서 암호화가 수행되는 동안 플래시 메모리로부터 저장되어 있던 비밀키를 읽어 오는 순간이 언제인지 알 수 있다는 가정과 공격 하려는 그 순간에 측정한 모든 신호는 여러 가지 재정렬 기법을 통해서 시간 축 상에서 매우 잘 정렬된 신호들로 만들 수 있다는 가정 하에 수행된다. 또한 암호 알고리즘에 이용되게 되는 비밀키 데이터의 경우에는 한번 저장된 이후에 더 이상 전원이 공급되지 않더라도 내용이 계속해서 유지가 되어야 하기 때문에 SRAM보다는 플래시 메모리에 비밀키가 저장되어 있을 가능성이 높으며, 플래시 메모리의 경우에는 SRAM보다는 소비되는 전력이 조금 더 크기 때문에 DPA 공격에 더욱 취약하다는 문제점이 있다.
도 1 은 일반적인 센서노드 프로세서의 내부 플래시 메모리에 대한 부채널 공격 구성에 대한 구성도이다.
도 1을 참조하면, 먼저 제 1 단계로 센서노드 프로세서(101)의 내부 플래시(flash) 메모리(102)와 레지스터(Reg)(103) 사이에 버스(BUS)(104)를 통해서 전달되는 데이터 값이 있을 것이고, 이 값의 변화에 따른 해밍거리(Hamming Distance) 모델을 이용하면 버스(104)의 전력 소모를 알 수가 있게 된다. 예를 들어 이러한 해밍거리 값을 얻기 위해 0xFFFF값을 플래시 메모리(102)에 저장하고 다시 이 값을 레지스터(103)에 저장함으로 버스(104)에 0xFFFF값이 실리도록 할 수 있다.
이어 제 2 단계로서 상기 제 1 단계에서 사용한 플래시 메모리(102)의 주소와 같은 주소 영역에 비밀키(105) 값을 저장하고, 저장한 비밀키(105) 값을 상기 제 1 단계의 레지스터(103)에 저장되어 있던 0xFFFF값과 XOR 연산을 한 후 그 결과 값을 다시 같은 주소 영역의 플래시 메모리(102)에 저장한다. 이렇게 하면 버스(104)의 값이 0xFFFF에서 키 값으로 변환함으로써 발생하는 전력 소모량 해밍 무게(Hamming Weight)(0xFFFF
Figure 112010014001416-pat00001
Key)가 해밍 거리(Hamming Distance)(0xFFFF, Key)와 같아지기 때문에 공격자가 원하는 해밍 거리에 의한 소비전력 값을 구할 수 있게 된다.
위의 두 단계를 통해서 각각의 추정하는 키 마다 발생하는 서로 다른 소비 전력을 측정하고 그렇게 해서 도출한 전력 트레이스 값과 실제로 알기 원하는 정확한 비밀키에 의해 측정된 전력 트레이스 값 사이의 상관계수를 구한다. 최종적으로 각각의 상관계수를 비교하여 가장 큰 상관계수 값을 나타내는 전력 트레이스가 어떤 키에 의해서 발생했는지 확인함으로써 비밀키 값을 추출할 수 있게 된다.
결국 암호 알고리즘 동작이 시작 될 때 연산에 필요한 비밀키(105)를 플래시 메모리(102)에서 레지스터(103)로 로드(load)함으로써 버스(104)에 발생되는 해밍 거리 정보는 공격자에게 비밀키(105)가 무엇인지 알 수 있도록 중요한 정보가 되기 때문에 이러한 문제를 해결할 수 있는 방법이 필요하다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 키 암호화 및 셔플링을 적용시킨 키 관리 방법을 통해서 공격자가 버스에 발생되는 비밀키와 관련된 의미 있는 해밍 거리 정보를 알 수 없도록 하여 센서노드의 물리적 공격에 대한 취약성을 강화하도록 하여 부채널 공격을 방어할 수 있는 키 관리방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 암호화 알고리즘에 대한 공격이 아닌 그 앞 단계에 비밀키를 로드하는 과정에서부터 부채널 공격을 막고, 어떠한 데이터에 대한 일정한 해밍 거리 값이 아닌 비밀키를 암호화함으로써, 암호화된 해밍 거리 정보를 발생시켜 공격자에게 무의미한 정보를 제공하여 부채널 공격을 방어할 수 있는 키 관리방법을 제공하는데 있다.
본 발명의 또 다른 목적은 암호화 알고리즘을 공격하기 이전에 내부 메모리에 저장되어 있는 비밀키 정보에 대한 해밍 거리 정보 유출을 막으며, 또한 암호화된 비밀키가 저장되어 있는 위치를 알 수 없게 함으로써 부채널 공격을 막는 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법의 특징은 센서노드 프로세서 내부 플래시 메모리에 저장된 비밀키 값을 부채널 공격으로부터 방어하는 키 관리방법에 있어서, (A) 상기 플래시 메모리에 저장되는 비밀키를 생성하고, 생성된 비밀키를 Goldwasser-Micali 암호체계를 기반으로 암호화하는 단계와, (B) 셔플링(shuffling)을 위한 맵(map) 생성과 맵에 기록된 순서에 맞게 플래시 메모리의 정해진 주소에 암호화된 비밀키 값을 셔플링하여 플래시 메모리에 저장하는 단계와, (C) 리-셔플링(re-shuffling)과 암호화된 비밀키 복호화를 통해 암호화된 비밀키 값을 암호화 연산에 사용하기 위해 복호화하여 출력하고, 출력된 비밀키를 상기 (A) 및 (B) 단계를 통해 다시 암호화 및 셔플링하는 단계를 포함하는데 있다.
바람직하게 상기 (A) 단계에서 비밀키는 개인키, 공개키 및 마스터 키를 포함하고, 상기 개인키, 공개키 및 마스터 키의 생성은 Goldwasser-Micali 암호체계에서의 개인키, 공개키 생성방식을 암호화 알고리즘에 적용하여 동일한 사이즈의 큰 소수 p, q를 랜덤(Random)하게 생성하는 단계와, 상기 생성한 p와 q를 곱하여 n을 산출하고, mod n으로 도출 한 나머지들로 이루어진 집합인
Figure 112010014001416-pat00002
중에서
Figure 112010014001416-pat00003
=1을 만족하고, y는 QNR(quadratic non-residue)인 y를 랜덤하게 선택하는 단계와, 상기 생성된 p, q는 개인키 값으로, n, y는 공개키 값으로 설정하고, 상기 p를 마스터 키로 두고, 마스터 키를 포함한 개인키(p, q), 공개키(n, y) 값 모두는 센서노드가 물리적으로 생성되는 공정 단계에서 센서노드 프로세서의 지정된 레지스터에 저장하는 단계를 포함하여 이루어지는데 있다.
바람직하게 상기 (A) 단계에서 비밀키의 암호화는 공개키인 y와 n을 이용하며, 한 비트씩 암호화를 할 때마다
Figure 112010014001416-pat00004
중에서 n과 서로소인 x값을 매번 랜덤하게 선택하는 단계와, 암호화 하려는 비밀키의 비트 값이 1이면
Figure 112010014001416-pat00005
을 암호문의 출력 값으로 넣고, 비밀키의 비트 값이 0이면
Figure 112010014001416-pat00006
을 암호문의 출력 값으로 넣는 단계를 포함하는 것을 특징으로 하는데 있다.
바람직하게 상기 (B) 단계는 암호화된 비밀키 출력 값들을 내림차순으로 재정렬하는 단계와, 셔플링되어 순서가 바뀐 순서 정보(인덱스 정보)를 셔플링 맵 테이블(shuffling map table)에 저장하고, 뒤섞인 암호화된 비밀키 값을 순차적으로 플래시 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는데 있다.
바람직하게 상기 (C) 단계는 (C1) 암호화되고 셔플링된 비밀키를 셔플링 맵 테이블에 저장된 인덱스 정보를 기반으로 원래의 순서로 재정렬하는 단계와, (C2) Goldwasser-Micali 암호체계를 기반으로 마스터 키를 이용하여 암호화된 비밀키를 복호화하여 출력하는 단계와, (C3) 출력된 비밀키를 제 1 항의 (A) 및 (B) 단계로 다시 암호화 및 셔플링하여 상기 셔플링 맵 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는데 있다.
바람직하게 상기 (C2) 단계에서 암호화된 비밀키 값에 마스터 키 값으로 설정한 p로 mod p를 취한 후의 르장드르 기호 계산결과가 1이면 복호화 출력 값으로 0을 넣고, 르장드르 기호 계산결과가 1이 아니면 복호화 출력 값으로 1을 넣는 것을 특징으로 하는데 있다.
이상에서 설명한 바와 같은 본 발명에 따른 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법은 플래시 메모리로부터 키 값을 읽어 오는 과정에서 발생할 수 있는 부채널 공격에 안전하고, 또한 공개키 암호화를 사용하기 때문에 필요하다면 내부 모듈끼리의 인증기능도 추가 할 수 있으며, 내부 플래시 메모리를 포함하는 센서노드의 프로세서에 대한 물리적인 공격으로부터 안전성을 강화하는 기능을 제공할 수 있다.
[도 1] 일반적인 센서노드 프로세서의 내부 플래시 메모리에 대한 부채널 공격 구성에 대한 구성도
[도 2] 본 발명의 실시예에 따른 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법을 설명하기 위한 흐름도
[도 3] 도 2의 암호화 단계 및 셔플링 단계를 좀 더 상세히 설명하기 위한 흐름도
[도 4] 도 2의 비밀키 값을 얻기 위한 리-셔플링(Re-Shuffling) 방법과 Goldwasser-Micali 암호체계를 이용한 비밀키 복호화의 세부적인 과정을 나타내는 흐름도
본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
참고로 본 발명은 이러한 센서노드 프로세서의 내부 플래시 메모리에 대한 부채널 공격을 방어하는 방법으로, 본 발명을 보다 쉽게 설명하기 위해 ‘센서노드 프로세서의 내부 플래시 메모리에 대한 부채널 공격’의 예를 들어 설명한다.
도 2 는 본 발명의 실시예에 따른 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법을 설명하기 위한 흐름도이다.
도 2를 참조하여 설명하면, 먼저 플래시 메모리에 저장하려는 비밀키를 암호화시키는 암호화 단계(201)와, 셔플링(shuffling)을 위한 맵(map) 생성과 맵에 기록된 순서에 맞게 플래시 메모리의 정해진 주소에 암호화된 비밀키 값을 셔플링하여 저장하는 셔플링 단계(201)와, 리-셔플링(re-shuffling)과 암호화된 비밀키 복호화를 통해 암호화된 비밀키 값을 실질적인 암호화 연산에 사용하기 위해 복호화하는 복호화 단계(202)(203)로 구성된다. 이때, 상기 암호화 단계(201)에서 비밀키를 암호화시키기 위한 암호화 알고리즘에는 Goldwasser-Micali 암호체계의 특징들을 응용하여 적용한다.
또한, 암호화 된 비밀키를 복호화하기 위한 또 다른 키인 마스터 키가 필요하기 때문에 이 과정에서 마스터 키를 함께 생성한다.
도 3 은 도 2의 암호화 단계 및 셔플링 단계를 좀 더 상세히 설명하기 위한 흐름도이다.
도 3을 참조하여 암호화 단계(201)를 설명하면, 먼저 비밀키를 암호화 하는 암호 알고리즘에 Goldwasser-Micali 암호체계의 특성들을 응용하고 마스터 키 생성을 위해 Goldwasser-Micali 암호체계에서의 개인키, 공개키 생성방식을 암호화 알고리즘에 적용하여 동일한 사이즈의 큰 소수 p, q를 랜덤(Random)하게 생성한다(301)(302).
그리고 상기 생성한 p와 q를 곱하여 n을 구한다(303).
그 다음 mod n으로 도출 한 나머지들로 이루어진 집합인
Figure 112010014001416-pat00007
중에서
Figure 112010014001416-pat00008
=1을 만족하고, y는 QNR(quadratic non-residue)인 y를 랜덤하게 선택한다(304)(305).
그러면
Figure 112010014001416-pat00009
=
Figure 112010014001416-pat00010
=> 1*1 이거나 (-1)*(-1)이 되게 되지만 위에 조건에 y는 QNR(quadratic non-residue)라고 했기 때문에
Figure 112010014001416-pat00011
Figure 112010014001416-pat00012
는 각각 -1이 되게 된다(305).
이러한 과정을 거쳐서 개인키 값 p, q와 공개키 값 n, y를 생성한다. 여기서 생성된 p를 마스터 키로 두고, 마스터 키를 포함한 개인키, 공개키 값 모두는 센서노드가 물리적으로 생성되는 공정 단계에서 센서노드 프로세서의 지정된 레지스터에 저장한다. 이 마스터 키를 포함한 모든 키는 추가적으로 발생할 수 있는 다른 공격기법을 미리 방어하는 차원에서 개인키, 공개키라는 용어를 떠나서 모든 키들을 다 비밀로 유지한다.
다음은 비밀키(306)를 암호화 하는 암호화 단계이다.
예를 들어 비밀키가 AES 알고리즘에 사용되는 비밀키(306)라고 한다면 비밀키(306)의 크기는 128 비트(bit)가 될 것이다. 이때 128 비트 중 첫 번째 비트부터 하나의 비트씩 암호화를 한다(307)(313)(314).
이때, 암호화를 수행하기 위해서 공개키로 생성했던 y와 n을 이용하여 메시지 m을 암호화해서 보내는데, 먼저 암호화할 평문인 2진수 t비트(메시지의 사이즈)를 입력한다. 그리고 한 비트씩 암호화를 할 때마다 x를 선택하는데,
Figure 112010014001416-pat00013
중에서 n과 서로소인 x값을 매번 랜덤하게 선택한다(308)(309). 그리고 암호화 하려는 비밀키의 비트 값이 1이면
Figure 112010014001416-pat00014
을 암호문의 출력 값으로 넣고(310)(311) 비밀키의 비트 값이 0이면
Figure 112010014001416-pat00015
을 암호문의 출력 값으로 넣는다(312).
여기서 특징은 평문의 역할을 하는 비밀키(306) 값과 비밀키를 암호화하는데 사용되는 공개키 y(304), n(303)이 고정 된 값이라도 매번 x(308)를 랜덤하게 선택하기 때문에 암호화되는 값들은 항상 서로 다른 값이 만들어 진다는 것이고, 또한 암호화 후 출력 값인
Figure 112010014001416-pat00016
값과
Figure 112010014001416-pat00017
값은 복호화 때 이용하는 르장드르 기호(Legendre symbol)를 취해도 둘 다 1값이 도출되어 암호화하기 이전의 값이 1이였는지 0이였는지 알 수 없다는 특징을 가진다. 그리고 비밀키 값이 암호화되었기 때문에 이것을 플래시 메모리에 저장 후 로드(load)하는 과정에서 공격자가 버스에 실리는 해밍 거리(Hamming Distance) 값을 읽더라도 그 값은 비밀키의 해밍 거리 값이 아닌 암호화된 의미 없는 해밍 거리 값이 되므로 DPA 공격을 막을 수 있게 된다.
이처럼, 비밀키를 암호화하는 과정이 끝나고 암호화 된 비밀키(315)를 그냥 플래시 메모리에 저장하면 DPA 상관계수 공격 기법을 통해서 복호화 과정에서 사용되는 마스터 키가 추출될 가능성도 있기 때문에 암호화된 비밀키(315) 값을 나누어서 분산하여 저장을 한다.
그래서 이 단계에서 셔플링(shuffling) 기법을 사용하는데 상기 암호화 단계에서 비밀키(306) 값과 비밀키(306)를 암호화 하는데 사용되는 공개키 y, n이 고정 된 값이라도 매번 x를 랜덤하게 선택(308)하기 때문에 암호화되는 값들은 항상 서로 다른 값이 만들어 진다는 성질을 이용하여 구해진 암호화 값들(316)을 내림차순 정렬(317)을 한다. 그러면 암호화된 결과 값들이 서로 순서가 뒤 섞이게 될 것이다(318).
그리고 이렇게 뒤 섞인 순서 정보(인덱스 정보)를 셔플링 맵 테이블(shuffling map table)에 저장을 한다(319). 이런 과정이 필요한 이유는 복호화 과정에서 셔플링 맵 테이블을 사용하여 다시 원래의 순서로 암호화 값들을 맞추기 위해서 이다.
예를 들어 p와 q를 각각 120 비트의 소수로 랜덤하게 선택을 하고 위에서 설명한 키 생성 알고리즘과 암호화, 복호화 과정을 거치면 다음과 같은 결과를 확인 할 수 있다.
Figure 112010014001416-pat00018
여기서 m1은 20 비트의 비밀키 값이고, c는 공개키 n과 y로 암호화한 후의 값이다. 그리고 m2는 개인키인 p로 복호화한 후의 값이다. 여기서 암호화 결과인 c의 값들을 대소비교를 하여 내림차순으로 재정렬(317)하고 그러면 재정렬로 인해서 재정렬 이전 배열의 인덱스 정보 또한 바뀌게 될 것이다.
이처럼 순서가 바뀐 암호화 값들(318)은 바뀐 순서 그대로 메모리에 순차적으로 저장하고 바뀐 인덱스 정보는 셔플링 맵 테이블에 저장한다(319).
도 4 는 도 2의 비밀키 값을 얻기 위한 리-셔플링(Re-Shuffling) 방법과 Goldwasser-Micali 암호체계를 이용한 비밀키 복호화의 세부적인 과정을 나타내는 흐름도이다.
도 4를 참조하여 복호화 과정을 설명하면, 먼저 셔플링 맵 테이블에 저장된 인덱스 정보 순서대로 암호화 결과 값들을 불러오면(402), 상기 플래시 메모리에서 로드(load)된 [암호화, 셔플링]이 적용된 비밀키(401) 값을 인덱스 정보를 통해서 다시 원래의 순서로 재정렬(리-셔플링(Re-Shuffling)) 한다(403). 이에 따라, 셔플링 이전의 원래 암호화 값들을 구할 수 있게 된다(404).
상기 구해진 셔플링 이전의 암호화 된 출력 값(404)은
Figure 112010014001416-pat00019
값과
Figure 112010014001416-pat00020
로 구성된 값들이 존재하게 된다. 이때 복호화 과정에서는 이 값들(405)에 르장드르 기호(Legendre symbol)를 취해서 키 복호화를 하게 되는데(406)(407)(410)(411), mod n에 대해서는 르장드르 기호를 취해도 둘 다 1값이 도출되어 암호화하기 이전의 값이 1이였는지 0이였는지 알 수 없다.
하지만, 마스터 키 값으로 설정한 p로 mod p를 취하게 되면
Figure 112010014001416-pat00021
의 경우에는
Figure 112010014001416-pat00022
가 되고, y는 QNR이기 때문에
Figure 112010014001416-pat00023
이 되어 결과적으로 -1이 된다. 그리고
Figure 112010014001416-pat00024
경우에는
Figure 112010014001416-pat00025
이 된다(407).
결국 암호화된 비밀키 값에 mod p를 취한 후의 르장드르 기호 계산결과가 1이면 복호화 출력 값으로 0을 넣고(408), 르장드르 기호 계산결과가 1이 아니면 복호화 출력 값으로 1을 넣는다(409).
암호화와 복호화 과정만 최종적으로 정리해보면 다음과 같다.
<비밀키 값 = 0인 경우>
=>
Figure 112010014001416-pat00026
으로 암호화(312)
=> => 복호화 과정에서 mod p에 대한 르장드르 기호(Legendre symbol) 결과가 1(407)
=> if 르장드르 기호 결과 = 1, 비밀키 값은 0으로(408)
<비밀키 값 = 1인 경우>
=>
Figure 112010014001416-pat00027
으로 암호화(311)
=> 복호화 과정에서 mod p에 대한 르장드르 기호 결과가 -1(407)
=> if 르장드르 기호 결과 != 1, 비밀키 값은 1로(409)
이러한 모든 단계들을 통해서 출력된 복호화 결과(412)값은 암호화되기 이전의 비밀키(306) 값이고, 이러한 비밀키(412) 값은 암호화가 수행되는 암호 알고리즘에 비밀키 입력으로 바로 들어가게 된다(204).
그리고 마지막으로 이 비밀키(412)(203) 값은 마스터 키(301)를 이용해서 새롭게 또 암호화를 하고 그렇게 되면 또 다시 새로운 암호화 결과 값들이 발생 할 것이며 이것을 재정렬 하면 셔플링 맵 테이블(shuffling map table)을 새롭게 갱신 할 수 있게 된다(201).
따라서 셔플링 맵 테이블 정보를 알아내려는 공격과 비밀키가 분산되어 플래시 메모리의 어느 위치에 저장되어 있는지를 알아내려는 공격을 막을 수 있게 된다.
결국, 플래시 메모리에 저장 되어있는 [암호화, 셔플링]이 적용된 비밀키(318) 값을 읽어 오는 과정에서 공격자는 비밀키(306) 값을 알기 위한 해밍 거리 정보도 알 수 없고, 셔플링이 되어 있어 DPA 상관계수 공격을 이용한 마스터 키(301) 값을 추출하려는 공격도 실패하게 되는 효과를 얻게 된다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (6)

  1. 센서노드 프로세서 내부 플래시 메모리에 저장된 비밀키 값을 부채널 공격으로부터 방어하는 키 관리방법에 있어서,
    (A) 상기 플래시 메모리에 저장되는 비밀키를 생성하고, 생성된 비밀키를 Goldwasser-Micali 암호체계를 기반으로 암호화하는 단계와,
    (B) 셔플링(shuffling)을 위한 맵(map) 생성과 맵에 기록된 순서에 맞게 플래시 메모리의 정해진 주소에 암호화된 비밀키 값을 셔플링하여 플래시 메모리에 저장하는 단계와,
    (C) 리-셔플링(re-shuffling)과 암호화된 비밀키 복호화를 통해 암호화된 비밀키 값을 암호화 연산에 사용하기 위해 복호화하여 출력하고, 출력된 비밀키를 상기 (A) 및 (B) 단계를 통해 다시 암호화 및 셔플링하는 단계를 포함하고,
    이때, 상기 (A) 단계에서 비밀키는 개인키, 공개키 및 마스터 키를 포함하고, 상기 개인키, 공개키 및 마스터 키의 생성은
    Goldwasser-Micali 암호체계에서의 개인키, 공개키 생성방식을 암호화 알고리즘에 적용하여 동일한 사이즈의 큰 소수 p, q를 랜덤(Random)하게 생성하는 단계와,
    상기 생성한 p와 q를 곱하여 n을 산출하고, mod n으로 도출 한 나머지들로 이루어진 집합인
    Figure 112011047636989-pat00037
    중에서
    Figure 112011047636989-pat00038
    =1을 만족하고, y는 QNR(quadratic non-residue)인 y를 랜덤하게 선택하는 단계와,
    상기 생성된 p, q는 개인키 값으로, n, y는 공개키 값으로 설정하고, 상기 p를 마스터 키로 두고, 마스터 키를 포함한 개인키(p, q), 공개키(n, y) 값 모두는 센서노드가 물리적으로 생성되는 공정 단계에서 센서노드 프로세서의 지정된 레지스터에 저장하는 단계를 포함하여 이루어지는 것을 특징으로 하는 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법.
  2. 삭제
  3. 제 1 항에 있어서, 상기 (A) 단계에서 비밀키의 암호화는
    공개키인 y와 n을 이용하며, 한 비트씩 암호화를 할 때마다
    Figure 112011047636989-pat00030
    중에서 n과 서로소인 x값을 매번 랜덤하게 선택하는 단계와,
    암호화 하려는 비밀키의 비트 값이 1이면
    Figure 112011047636989-pat00031
    을 암호문의 출력 값으로 넣고, 비밀키의 비트 값이 0이면
    Figure 112011047636989-pat00032
    을 암호문의 출력 값으로 넣는 단계를 포함하는 것을 특징으로 하는 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법.
  4. 제 1 항에 있어서, 상기 (B) 단계는
    암호화된 비밀키 출력 값들을 내림차순으로 재정렬하는 단계와,
    셔플링되어 순서가 바뀐 순서 정보(인덱스 정보)를 셔플링 맵 테이블(shuffling map table)에 저장하고, 뒤섞인 암호화된 비밀키 값을 순차적으로 플래시 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법.
  5. 제 4 항에 있어서, 상기 (C) 단계는
    (C1) 암호화되고 셔플링된 비밀키를 셔플링 맵 테이블에 저장된 인덱스 정보를 기반으로 원래의 순서로 재정렬하는 단계와,
    (C2) Goldwasser-Micali 암호체계를 기반으로 마스터 키를 이용하여 암호화된 비밀키를 복호화하여 출력하는 단계와,
    (C3) 출력된 비밀키를 제 1 항의 (A) 및 (B) 단계로 다시 암호화 및 셔플링하여 상기 셔플링 맵 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법.
  6. 제 5 항에 있어서,
    상기 (C2) 단계에서 암호화된 비밀키 값에 마스터 키 값으로 설정한 p로 mod p를 취한 후의 르장드르 기호 계산결과가 1이면 복호화 출력 값으로 0을 넣고, 르장드르 기호 계산결과가 1이 아니면 복호화 출력 값으로 1을 넣는 것을 특징으로 하는 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법.
KR1020100019470A 2010-03-04 2010-03-04 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 KR101105384B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100019470A KR101105384B1 (ko) 2010-03-04 2010-03-04 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100019470A KR101105384B1 (ko) 2010-03-04 2010-03-04 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법

Publications (2)

Publication Number Publication Date
KR20110100454A KR20110100454A (ko) 2011-09-14
KR101105384B1 true KR101105384B1 (ko) 2012-01-16

Family

ID=44952875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100019470A KR101105384B1 (ko) 2010-03-04 2010-03-04 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법

Country Status (1)

Country Link
KR (1) KR101105384B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101934445B1 (ko) * 2018-04-12 2019-03-25 대한민국 음성신호의 비식별화를 위한 암호화 시스템
US11675504B2 (en) 2020-08-12 2023-06-13 Samsung Electronics Co., Ltd. Memory controller, memory system including the same, and method of operating the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003208097A (ja) 2002-01-15 2003-07-25 Fujitsu Ltd サイドチャネルアタック耐性を有する暗号演算装置及び方法
KR100551630B1 (ko) * 2005-07-20 2006-02-13 박명희 휴대폰을 이용한 개인키 보안 처리방법
KR20060068006A (ko) * 2004-12-15 2006-06-20 삼성전자주식회사 전력분석에 의한 데이터 버스 공격을 막기 위한 랜덤 버스스크램블 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003208097A (ja) 2002-01-15 2003-07-25 Fujitsu Ltd サイドチャネルアタック耐性を有する暗号演算装置及び方法
KR20060068006A (ko) * 2004-12-15 2006-06-20 삼성전자주식회사 전력분석에 의한 데이터 버스 공격을 막기 위한 랜덤 버스스크램블 장치
KR100551630B1 (ko) * 2005-07-20 2006-02-13 박명희 휴대폰을 이용한 개인키 보안 처리방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(IEEE-HIGH ASSURANCE SYSTEMS ENGINEERING SYMPOSIUM2008, 2008)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101934445B1 (ko) * 2018-04-12 2019-03-25 대한민국 음성신호의 비식별화를 위한 암호화 시스템
US11675504B2 (en) 2020-08-12 2023-06-13 Samsung Electronics Co., Ltd. Memory controller, memory system including the same, and method of operating the same

Also Published As

Publication number Publication date
KR20110100454A (ko) 2011-09-14

Similar Documents

Publication Publication Date Title
CA2831367C (en) Method and system for protecting execution of cryptographic hash functions
ES2717999T3 (es) Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método
JP5621907B2 (ja) 共通鍵暗号を用いた認証システム
EP2290872B1 (en) Device for generating a message authentication code for authenticating a message
US20080084996A1 (en) Authenticated encryption method and apparatus
CN111586076B (zh) 基于混合密码的遥控遥测信息防篡改加解密方法和系统
US20140037089A1 (en) Encryption processing device and method
US11258579B2 (en) Method and circuit for implementing a substitution table
Koko et al. Comparison of Various Encryption Algorithms and Techniques for improving secured data Communication
EP3477889A1 (en) Using white-box in a leakage-resilient primitive
US9391770B2 (en) Method of cryption
CN210955077U (zh) 一种基于国密算法和puf的总线加解密装置
EP3832945B1 (en) System and method for protecting memory encryption against template attacks
KR101105384B1 (ko) 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법
Pandey et al. Data security using various cryptography Techniques: A Recent Survey
CN110287708B (zh) 一次性可编程加密装置与其加密方法
CN107766725B (zh) 抗模板攻击的数据传输方法及系统
Abbas et al. Dictionary Attack on TRUECRYPT with RIVYERA S3-5000
Geetha et al. Survey on security mechanisms for public cloud data
Averin et al. Mathematical Model of Symmetric Cryptoalgorithm Based on Representing Mumbers as Sums of Special Code Elements
Padmavathi et al. Securing Files Using Hybrid Cryptography.
Reddy et al. Secure Encryption Framework for Multi-Cloud Environments: Leveraging Symmetric and Asymmetric Encryption
Hafsa et al. Hardware Implementation of an Improved Hybrid Cryptosystem for Numerical Image Encryption and Authenticity
Singh et al. Parallel Chunk Encryption in Public Cloud Storage: Validating Data Privacy
Taalaibekova et al. A Novel Method to Improve Security and Imperceptibility of Image Steganography

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160105

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee