Ⅰ. 서론
타원곡선 암호시스템은 RSA 암호 시스템에 비하여 키 사이즈가 작기 때문에 스마트카드와 같이 계산능력이나 메모리가 제한된 환경에서 구현하기 적합하다. 그렇지만 타원곡선암호시스템의 구현에 주의를 기울이지 않으면 공격자는 알고리즘 실행 시간. 전력 소모량 같은 부채널 정보를 이용하여 비밀정보를 찾아낼 수 있다. [5, 8-9] 이러한 공격을 부 채널 공격 (Side Channel Attack, SCA)이라 한다.
계산능력이나 메모리 같은 자원이 제한된 환경에서 타원곡선암호시스템을 구현하기 위하여 효율성을 증대시키기 위한 많은 방법들이 제안되었다. 만약 추가적인 메모리를 이용할 수 있다면 윈도우 기반의 방법들은 타원곡선암호시스템의 속도를 향상시킬 수 있다. 그러나 대부분의 윈도 우기 반의 방법들은〔12〕에서 Okeya-Sakurai 에 의해서 제안된 Second-Order DPA에 의해서 분석되기 때문에 Second-Order DPA 공격을 효율적으로 막는 문제가 현재 가장 큰 쟁점이 되고 있다. 지금까지 제안된 Second-Order DPA 를 막는 대응방법들의 단점은 연산의 효율성을 떨어뜨린다는 것이다.
부채널 공격에 대한 여러 가지 윈도우 기반의 대응 방법이 제안되었다. Okeya-Takagi는 윈도우 기반의 대응방법을 두 가지 형태로 분류하였다. [13]첫 번째 형태는 고정된 윈도우를 활용하는 방법이다. 이 방법은 MiJller에 의해서 처음 제안되었고 Okeya-Takag는 附-NAF 방법을 이용하여 저장공간을 줄이는 방법을 제안하였다. ‘虬(3) 두 번째 방법은 윈도우 기반의 덧셈체인 (addition chains)을 랜덤하게 변화 시킴으로써 부 채널 공격에 안전하게 하는 것이다. 이 방법은 Liardet-Smart에 의해〔10〕에서 처음 제안되었고〔7〕 에서 Itoh 외 3인에 의해서 더욱 개선된 방법들이 제안되었다.
Ⅱ. 윈도우 기반의 대응방법
본장에서는 부채널 공격에 대한 윈도우 기반의 대응 방법으로 Moller 방법, Okeya-Takagi 방법 그리고 Overlapping window 방법에 대하여 살펴본다. [7'n'13]
Moller [11] 방법과 Okeya-Takagi 1131 방법은 모두 고정된 형태로 비밀키를 재구성함으로써 SPA에 안전하게 된다. 특히 〔13〕에서 제안된 Okeya-Takagi 방법은 vv-NAF 방법을 이용하여 저장공간을 줄이는 데 중점을 두고 있다. 마지막으로 Itoh 외 3인은〔7〕에서 Overlapping window 방법을 포함한 윈도우 기반의 DPA 대응 방법을 제안하였다.
2.1 Mõller의 대응방법
비밀키를 *=如 2 如‘+ . . . +知 2 也+如), 尾点0, 1, 라 하면 일반적인 타원곡선 스칼라 곱
셈연산에서 幻=0인 경우 덧셈 연산을 수행하지 않게 되며 이러한 성질로 인하여 SPA에 의해서 비밀키가 노출된다. 따라서 MOller는 知.=0인 경우가 발생하지 않도록 비밀키를 다음과 같은 새로운 표현으로 변환하는 방법을 제안하였다
#
여기서 房니-2*, 1, ・", 2 ”T} 레코딩 방법은 0Mc, M2와 0^声2 如 + 1을 만족하는 임시변수 Ci 와 //를 이용하여 다음과 같이 표현할 수 있다.
#
라 하자. 그리고/=0, …, e+1에 대하여
#
라 하면
#
여기서 항상식 c;+i . 2" + 0 = tt 을 만족하고 출력 정수의 길이는 많아야 한 자리 증가한다.
2.2 Okeya-Takagi의 대응방법
스마트카드와 같이 메모리가 제한된 환경에서 암호학적인 알고리즘은 적은 저장공간을 이용하면서 효율적이어야 한다. Miller에 의하여 제안된 SPA에 안전한 대응방법은 2u'-ary 방법에 기반을 하고 있기 때문에 2 저장공간을 필요로 한다. 적은 저장공간을 이용하는 윈도우 방법은『NAF 방법이다. 附-NAF 방법에서 요구되는 저장공간의 수는 2이다 Okeya-Takagi 는 iv-NAF 방법을 이용하여 부채널 공격에 안전한 방법을 제안하였다.
Okeya-Takagi 방법은 iv-NAF 방법을 SPA 에 안전한 덧셈체인(addition chain)으로 변형하는 것이다. 이 덧셈체인은 다음과 같은 고정된 형식으로 스칼라를 생성한다.
#
여기서, z < 2"'는 홀수 인 정수이다. Okeya- Takagi 의 방법에서 요구되는 저장공간의 수는 이다. 그러므로 Moller 방법보다 적은 저장공간을 요구한다.1)Okeya-Takagi 방법은 모든 짝수 자리를 흘수 자리로 변환함으로써 저장 공간의 수를 줄인다. 예를 들어 u, = 4인 경우에 홀수 자리는 0001, 0011, 0101, 0111, 1001, 1011, 1101 그리고 1111이다. 그러면 짝수 자리|010이 을 홀수 자리로 변환하는 방법은 다음과 같다.
#
그러면 looo이을 제외한 나머지 짝수 자리는 위와 같이 과정으로 변환시킬 수 있고 1000이을 변환하는 방법은 다음과 같다.
#
위의 변형을 이용하여 모든 짝수 자리는 다음과 같이 모든 홀수 자리로 변환할 수 있다.
#
위의 성질을 이용하여 홀수인스칼라에 대하여 w-NAF로 변환하는 알고리즘은 다음과 같다. 마지막으로 스칼라가 짝수인 경우를 고려호].자. 만일 스칼라가 짝수이면 d=k+l으로 변환하고 홀수이면 4 = 处+2으로 변환한다. 그러면 d는 항상 흘수이다. 그러므로 d를 위의 알고리즘에 적용하여 스칼라곱 셈을 수행한 후에 dP-P 또는 dP-2P을 계산함으로써 kP가 계산된다.
#
2.3 Overlapping window 방법
Itoh 외 3인은 DPA에 안전한 세 가지 알고리즘을 제안하였다. 본절에서는 세 가지 알고리즘 중에 하나인 중첩 윈도우 (overlapping win dow. O-WM) 방법에 대하여 살펴본다. ⑺
먼저 대응방법을 설명하기에 앞서 표기법을 기술한다.
. d=ed, .T 는 비밀키값이다. 7은 윈도우의크기이고 绥는 사전 계산된 테이블에 대한 인덱스 값이다. 즉 2샤는 윈도우이다. (느 z源/=0, 1, …, q—1)의 개수이다. h느 叫.와 硏+1사이의 중첩된 비트의 길이를 나타낸다. 즉 0<加。.
, biKa, X, …, W는 a의 이진표 표현에서 %번 째 비트부터 园째 비트까지의 비트열을 나타낸다.( x=0, 1, …; y=0, 1, …; %>丿). 최상위 비트보다 큰 비트는 0으로 간주한다. 예를 들어 «=6=(110) 2이면 敬么0) =0, biea, 1) = 1이고 狱a, 4, 3, 2, 1)=(0011)2=3이다
. ECADD와 ECDBLe 각각 타원곡 선 덧셈 연산과 두배 연산을 나타낸다.
중첩 윈도우 방법의 특징은 윈도우 使와 旳+1 의 겹침을 허용하는 것이다.고정된 비밀키값 d 로부터 생성되는 ㈣, …, 糾t는 스칼라곱 셈을 할 때마다 랜덤하게 변하게 된다. 그러므로 공격자가 중간 결과 값을 예상하는 것은 매우 어렵기 때문에 DPA에 안전하게 된다.
#
중첩 윈도우 방법은 위의식을 항상 만족하고 중첩 윈도우 방법으로부터 표현되어지는 비밀 키는 다음과 같다.
#
Remark 1.중첩 윈도우 방법이 SPA에 안전하기 위해서는 庵를 고정된 값 儿으로 사용해야 한다.
중첩 윈도우 방법은 Kary 방법과 비교하여
#
테이블을 만드는 연산량은 같지만 테이블을 참조하는 연산 수가 더 많다. 즉 ECADD 연산을 더 많이 수행하게 된다.
Ⅲ. 제안방법 (w-NAF를 이용한 Overlapping window 방법)
본장에서는 w-NAF를 이용하여 중첩 원도우 방법의 저장공간을 줄이는 방법을 제안한다. 제안하는 방법은 Second-Order DPA 뿐만 아니라 기존의 공격에 안전하고 효율적임을 보일 것이다.
우선 제안하는 방법을 설명하기 위하여 사용할 표기법을 간단히 살펴보자. 윈도우의 크기가 切일 때, SPA 에 안전하기 위하여 윈도우의 중첩된 길이는 고정된 값 曜를 이용한다. 그러면 윈도우개수 s는 「(径-力)/(四-力) ] 이 고 비밀키의 길이는 t — s * (w — /z) + h로 조정된다.
Example 1. 7-비트 비밀키 ^(1001101)2 에대하여 犯=4이고 物=2이면 s=3 이고 $=3 .(4—2)+2=8이다 그러므로 비밀키는 8-비트 정수 d= (01001101)2으로 나타낼 수 있다. 또 d 로부터 생성된 수열의 예는
비밀키는 다음과 같이 표현된다.
#
제안하는 대응방법은 SPA를 막기 위하여 고정된 /z를 이용하기 때문에 다음과 같은 형식으로 스칼라 곱셈을 수행한다.
#
여기서, X는 闵<"인 흘수이다. 그러면 사전계산되는 점의 수는 2"'T이고 0이 아닌 비트의조밀도는 1/(如-奶이다.
#
위의 알고리즘의 step 3.1에서 “Ml가 될 수 있는 경우의 수는 일반적으로 2”이다. 그러므로 각각의 스칼라곱셈에서 서로 다른 “言]가 선택되기 때문에 DPA에 안전하게 된다. 제안하는 알고리즘과 기존의 중첩 윈도우 알고리즘의 차이는 step 3.1이다. 기존의 방법은 양의 정수를 선택했지만 제안하는 방법은 홀수 인 정수를 선택한다. 그러므로 테이블에 흘수인 점들만 저장하면 되기 때문에 저장공간이 반으로 줄어든다. 만약 짝수 정수가 위의 알고리즘에 입력된다면 문제가 되는 부분은 최하위 자리이다. 즉 step 4에서 d"0] 는짝수가 된다. 이제 짝수스칼라를 흘 수로 바꿀 수 있는 두 가지 방법을 설명한다.
첫 번째 방법은〔13〕에서 Okeya-Takagi가 설명한 방법이다.만약 d가 짝수이면 d'=d+l으로, 홀수이면 d'=d+2으로 변환한다. 그러면 d'은 항상 홀수이고 스칼라곱셈 후에 d'P-P 또는 d'P—2P을 계산함으로써 dP는 복원된다.
두 번째 방법은 Assumption 1에서부터 시작한다.
Assumption 1. 타원 곡선 스칼라곱셈에 입력되는 점은 위수는 큰 소수라고 가정하자. 다시 말해서 위수가 작은 점은 스칼라곱 셈이 수행되기 전에 제거된다고 가정한다.
ECIES, single-pass ECDH와 single-pass ECMQV 등의 프로토콜에 대한 여러 가지 표준문서에는 작은 위수 공격 (small subgroup att- acks) 을 막기 위하여 스칼라곱 셈이 수행되기 전에 작은 위수(cofactor)를 사용하여 위수가 작은 점을 알아낼 수 있다. 114'그러므로 위의 가정은 정당하다.
위수가 큰 소수(Z> : large prime) 인 점 P는 pP=O이다. 만약가 짝수이면 d' = d+p, 흘수이면 d' = d로 변환한다. 그러면 江'은 항상 홀수이고 이다.
Ⅳ. 안전성과 효율성 분석
본장에서는 제안하는 대응방법에 대한 안전성과 효율성을 분석하고 2장에서 설명한 세 가지 대응 방법과 안전성, 연산량 그리고 저장공간을 비교한다.
4.1 안전성 분석
본절에서는 제안하는 대응방법의 안전성을 분석한다. SPA, DPA, Second-Order DPA 및 Address-DPA 에 대하여 고려하고 AR (Attenua tion Ratio)을 이용하여 안전성을 분석한다.2) ARe 대응방법이 있는 경우와 없는 경우에 발생하는 피크의 비율에 의해서 평가된다. 0과 1 사이의 값을 갖는 ARe 작을수록 안전하다. 만약 AR = 0이면 공격자는 피크를 확인할 수 없고 대응 방법은 안전하다. 만약 AR=1 이면 공격자는 항상 피크를 확인할 수 있고 대응 방법은 안전하지 못하다. SPA, DPA, Second-Order DPA와 Address-DPA에 대한 ARe 각각 ARs, ARd, ARs-d와 ARa-d로 표기한다.
4.1.1 SPA
제안하는 알고리즘은 %丰0에 대하여 고정된 형식으로 스칼라곱 셈을 계산한다. 공격자는 전력소모량의 측정을 통해서 EC ADD 와 ECDBL 을 구별할 수 있다. 그러나 모든 스칼라에 대하여 나타나는 AD 수열은 모두 다음과 같은 고정된 형태로 발생한다.
#
여기서 a와。는 각각 ECADD와 ECDBL을의미한다.
비밀키에 관계없이 항상 汐-/!번의 ECDBL과 1번의 ECADD 연산을 수행하게 되므로 공격자가 SPA에 의해서 얻을 수 있는 정보는 없다. 그러므로 ARS = O. 즉, 제안 알고리즘은 SPA에 안전하다.
4.1.2 DPA
제안하는 대응방법은 각각의 스칼라 곱셈에서 서로 다른 수열을 사용하기 때문에 공격자는 스칼라 곱셈이 수행되는 동안에 나타나는 중간값을 예상하는 것이 매우 어렵다.
Remark 2.사 영 좌표계에서 같은 점에 대한 데이터 표현은 다르다. 예를 들면 A=(XKZ) 에 대한7A7卜 (X】, 匕Z)=2((11)2(X, 匕勿+ ((01)2(X, 匕 Z)) 또는 区, 丫2, 為=2((10)爲 KZ))+((U)2(X 匕勿에 의해서 계산될 때이 두 표현은 아핀 좌표계에서는 같지만 사영 좌표계에서는 다르다. 즉, 높은 확률로 XeX2, 匕丰丫2, Zi 耘舟'다.
제안 알고리즘 OW-Method_using_Width_ w-NAF_with_Odd_Scalar에서 认z]가 될 수 있는 경우의 수는 2方이고 0이 아닌 윈도우의 개수는 冋므로
#
예를 들어, 160비트스 칼라에 대하여 m = 4이고 脂1인 경우에 ARd = 2「53이다. ⑺에서 Itoh 외 3인은 대응방법이 적용된 장치에서 발생하는 피크의 크기가 대응방법 없이 구현된 장치에서 발생하는 피크의 크기보다 100배 정도 줄어들면 충분한 안전성을 줄 수 있음을 언급하였다. 그러므로 이 수치는 충분히 DPA에 안전함을 보여준다.
4.1.3 Second-Order DPA (SO-DPA)
Okeya-Sakurai는〔12〕에서 Mollere] 윈도우 방법에 대한 Second-Order DPA 공격을 제안하였다. Second-Order DPA 공격은 비밀키의 자리가 같을 경우 같은 테이블 값을 참조하는 성질을 이용한다. 그러므로 Second-Order DPA 를 막기 위해 테이블을 참조할 때마다 테이블을 랜덤화하는 방법을 사용해야 한다.
그러나 제안 대응 방법은 각각의 스칼라 곱셈에서 서로 다른 수열을 사용하기 때문에 매번 테이블을 참조하는 값이 달라진다. 그러므로 Second-Order DPA에 의해서 비밀키를 찾는 것이 어렵다. 더욱이 제안 대응방법은 Second-Order DPA를 막기 위하여 추가적인 연산이 필요하지 않으므로 연산의 효율성을 높일 수 있는 장점이 있다.
4.1.4 Address-DPA (A-DPA)
ItohTzu-Takenaka는〔6〕에서 비밀키를 랜덤화하는 형태의 대응책은 A-DPA에 안전하다고 언급하였다. 비밀키를 랜덤화하는 방법은 스칼라 곱셈을 할 때마다 비밀키의 표현을 랜덤하게 변화시키기 때문에 레지스터의 주소 또한 랜덤하게 변하게 된다. 그러므로 제안 대응 방법은 A-DPA에 안전하다.
표 1은 윈도우 기반의 대응방법에 대하여 SPA, DPA, Second-Order DPA 및 Address-DPA 에 대한안전성을 보여준다.
표 1. 원도우기반의 대응방법에 대한 안전성 비교
4.2 효율성 분석
스칼라곱 셈의 연산량은 각각 ECDBL과 EC- ADD의 수에 의해서 평가된다. 그리고 저장 공간의 수는 테이블에 저장되는 점의 개수로 평가한다.
표 2에서의 ECDBL과 ECADD의 수는 테이블을 만들 때 요구되는 연산량은 포함되어 있지 않고 스칼라 곱셈을 수행할 때 필요한 연산량을 나타낸다. 세안하는 방법은 Moller 방법과 Okeya- Takagi 방법보다 더 많은 ECADD 연산을 요구함을 표 2에서 보여주기 때문에 제안하는 방법의 연산속도가 Moller 방법과 Okeya-Takagi 방법의 연산속도보다 더 느린 것처럼 보인다. 그러나 실제로 Second-Order DPA를 막기 위하여 대응 방법을 추가되면 제안하는 방법이 더 효율적임을 보일 것이다.
표 2. 원도우기반의 대응방법에 대한 효율성과 저장공간 비교
Moller의 대응방법과 Okeya-Takagi의 대응 방법은 모두 SPA를 막기 위해서 제안된 알고리즘이기 때문에 DPA와 Second-Order DPA에 안전하지 못하다. 그러므로 이 대응방법들은 DPA 를 막기 위하여 랜덤사영좌표계 또는 랜덤 타원곡선 동형사상 등의 DPA 대응 방법을 함께 사용해야 하고 Second-Order DPA를 막기 위하여 ECADD 연산을 수행할 때마다 테이블을 랜덤화하는 방법을 사용해야 한다. 예를 들면 Jaco bian 좌표계에서 테이블을 랜덤화하기 위하여 ECADD 과정마다 (戸云 尹匕勿 연산을 수행해야 한다. 즉 ECADD을 수행할 때마다 4번의 유한체 곱셈과 1번의 유한 체 제 곱 연산이 추가적으로 요구된다. 표 3은 모든 대응방법들이 SPA, DPA 및 Second-Order DPA에 모두 안전하게 구성되었을 때, 160비트 스칼라와 윈도우가 4이고 제안 알고리즘에서 九=1인 경우에 대한 연산량과 저장공간을 보여준다. 표 3에서 Additional Mui.은 Jacobian 좌표계에서 ECADD 연산 전에 勿을 수행할 때 필요한 연산량이다. Address-DPA는〔6〕에서 제안된 레지스터의 주소를 랜덤화하는 방법에 의해서 추가적인 연산 없이 쉽게 막을 수 있다.
표 3. 기존의 부채널 공격에 안전한 대응방법들의 안전성.효율성과 저장공간 비교 (160-bit key. w=4, h = 1)
표 4는 SPA, DPA 및 Second-Order DPA 를 모두 막는 대응방법에 대하여 160비트 스칼라와 윈도우가 4이고 h = l 인 경우에 GF3)에서 정의되는 여러 좌표계에서의 연산량을 보여준다. GF3) 에서 제곱연산량은 일반적으로 곱셈 연산량의 80% 정도 소비된다(S = 0.8M). 제안하는 알고리즘은 ECADD-t 계산할 때 Z=1로 놓고 계산할 수 있어 연산이 효율적임을 알 수 있다. 더욱이 제안하는 알고리즘은 좌표계의 선택이 자유롭지만 Moller 방법과 Okeya-Takagi 방법은 그렇지 못하다. Moller 방법과 Okeya-Ta kagi 방법이 Jacobian Chundonovsky 좌표계에서 ECADD 연산을 수행한다면 Second- Order DPA를 막기 위하여 다섯 개의 좌표를 랜덤화해야 하므로 연산량이 늘어나게 된다. 그러므로 제안 알고리즘은 ECADD와 ECDBL 연산에 대하여 각각의 연산이 효율적인 좌표를 자유롭게 선택하여 연산의 효율성을 높일 수 있다.
표 4. 사영 좌표계(projective coordinate)(P), Jacobian 좌표계(J), Chudnovsky Jacobian 좌표계(J) 그리고 변형된 Jacobian 좌표계(J01)에서 대응 방법들의 연산량 비교 (160-bit key. w=4, h = 1)
Ⅴ. 결론
본 논문에서는 SPA, DPA, A-DPA 및 Sed- cond-Order DPA에 안전한 대응방법을 제안하였다. 제안하는 대응방법은 중첩 윈도우 방법에 w-NAF 방법을 적용함으로써 기존의 부채널 공격에 안전하면서 저장공간을 줄이고 연산의 효율성을 높이는 데 중점을 두었다. 다른 대응 방법과의 단순한 효율성 비교는 제안하는 대응방법과 기존의 방법들과 차이점이 없어 보이지만 효율성을 높이기 위하여 혼합좌표계를 이용하면 기존의 대응 방법들은 좌표계에 따라서 추가적인 연산이 요구되지만 제안하는 방법은 추가적인 연산 없이 자유롭게 좌표계를 선택함으로써 효율성을 높일 수 있다. 그러므로 제안하는 대응방법은 기존의 부 채널 공격에 안전하면서 적은 저장공간을 이용하여 효율적 인연산을 할 수 있다.
References
- 안만기, 하재철, 이훈재, 문상재, '타원곡선 암호시스템에서 랜덤 m-ary 방법을 사용한 전력분석 공격의 대응방법,' 정보보호학회논문지, 13권 3호, 35-43, 2003
- 장상운, 정석원, 박영호, '전력분석공격을 효율적으로 방어하는 타원곡선 비밀키의 랜덤화,' 정보보호학회논문지, 13권 5호, pp. 169-177, 2003
- 하재철, 곽동진, 문상재, 'Folding 기법을 이용한 전력분석 공격에 대응하는 고속 스칼라곱셈,' 정보보호학회논문지, 13권 3호, pp. 57-64, 2003
- 한동국, 장남수, 장상운, 임종인, '랜덤한 덧셈-뺄셈 체인에 대한 부채널 공격,' 정보보호학회논문지, 14권 5호, pp. 121-133, 2004
- J. S. Caron, 'Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems.' CHES 1999, LNCS 1717, pp. 292-302. Springer-Verlag, 1999
- K. Itoh, T. Izu, M. Takenaka, 'A Practical Countermeasure against Address-bit Differential Power Analysis,' CHES 2003, LNCS 2779, pp. 382-396, Springer-Verlag, 2003
- K. Itoh, J. Yajima. M. Takenaka, N. Torrii, 'DPA Countermeasures by Improving the Window Method,' CHES 2002, LNCS 2523, pp. 303-317, Springer-Verlag, 2003
- P. Kocher, 'Timing attacks on impImentation of Diffie-Hellman, RSA, DSS, and other systems,' CRYPTO 1996, LNCS 1109, pp.104-113, Springer-Verlag, 1996
- P. Kocher, J. Jaffe, B. Jun, 'Differential Power Analysis,' CRYPTO 1999, LNCS 1666, pp.388-397, Springer-Verlag, 1999
- P. Y. Liardet, N. P. Smart, 'Preventing SPA/DPA in ECC systems using the Jacobi form,' CHES 2001, LNCS 2162, pp. 391-401, Springer-Verlag, 2001
- B. Moller. 'Securing Elliptic Curve Point Multiplication against Side-Channel Attacks,' ISC 2001, LNCS 2200, pp. 324-334, Springer-Verlag, 2001
- K. Okeya, K. Sakurai, 'A Second-Order DPA Attack Breaks a Window-Method Based Counterm- easure against Side Channel Attack,' ISC 2002, LNCS 2433, pp. 389-401, Springer-Verlag, 2002
-
K. Okeya, T. Takagi, 'The Width-
$\omega$ NAF Method Provides Small Memory and Fast Elliptic Scalar Multiplications Secure against Side Channel Attacks.' CT-RSA 2003, LNCS 2612, pp.328-342, Springer-Verlag, 2003 - Standards for Efficient Cryptography Group (SECG). Specification of Standards for Efficient Cryptography