전력분석 공격이 소개되면서 다양한 대응법들이 제안되었고 그러한 대응법들 중 블록 암호의 경우, 암/복호화의 연산 도중 중간 값이 전력 측정에 의해 드러나지 않도록 하는 마스킹 기법이 잘 알려져 있다. SEED는 비선형 연산으로 32 비트 덧셈 연산과 S-box 연산을 동시에 사용하고 각 연산에 대한 마스킹 방법이 조화를 이룰 수 있도록 마스킹 형태 변환 과정이 필요하다. 본 논문에서는 SEED의 구조적 특성을 고려하여, 연산 시간이 많이 필요한 마스킹 형태 변환 횟수를 최소화 하도록 새로운 마스킹 S-box 설계법을 제안한다. 또한 마스킹 S-box 테이블을 하나만 생성하고 이것으로 나머지 마스킹 S-box 연산을 대체할 수 있는 연산식을 만들어 기존 마스킹 기법에 비해 마스킹 S-box로 인한 RAM 사용량을 절반으로 줄여 메모리 크기면에서도 효율적이도록 구성하였다.
전력분석 공격이 소개되면서 다양한 대응법들이 제안되었고 그러한 대응법들 중 블록 암호의 경우, 암/복호화의 연산 도중 중간 값이 전력 측정에 의해 드러나지 않도록 하는 마스킹 기법이 잘 알려져 있다. SEED는 비선형 연산으로 32 비트 덧셈 연산과 S-box 연산을 동시에 사용하고 각 연산에 대한 마스킹 방법이 조화를 이룰 수 있도록 마스킹 형태 변환 과정이 필요하다. 본 논문에서는 SEED의 구조적 특성을 고려하여, 연산 시간이 많이 필요한 마스킹 형태 변환 횟수를 최소화 하도록 새로운 마스킹 S-box 설계법을 제안한다. 또한 마스킹 S-box 테이블을 하나만 생성하고 이것으로 나머지 마스킹 S-box 연산을 대체할 수 있는 연산식을 만들어 기존 마스킹 기법에 비해 마스킹 S-box로 인한 RAM 사용량을 절반으로 줄여 메모리 크기면에서도 효율적이도록 구성하였다.
In the recent years, power attacks were widely investigated, and so various countermeasures have been proposed. In the case of block ciphers, masking methods that blind the intermediate results in the algorithm computations(encryption, decryption) are well-known. In case of SEED block cipher, it use...
In the recent years, power attacks were widely investigated, and so various countermeasures have been proposed. In the case of block ciphers, masking methods that blind the intermediate results in the algorithm computations(encryption, decryption) are well-known. In case of SEED block cipher, it uses 32 bit arithmetic addition and S-box operations as non-linear operations. Therefore the masking type conversion operations, which require some operating time and memory, are required to satisfy the masking method of all non-linear operations. In this paper, we propose a new masked S-boxes that can minimize the number of the masking type conversion operation. Moreover we construct just one masked S-box table and propose a new formula that can compute the other masked S-box's output by using this S-box table. Therefore the memory requirements for masked S-boxes are reduced to half of the existing masking method's one.
In the recent years, power attacks were widely investigated, and so various countermeasures have been proposed. In the case of block ciphers, masking methods that blind the intermediate results in the algorithm computations(encryption, decryption) are well-known. In case of SEED block cipher, it uses 32 bit arithmetic addition and S-box operations as non-linear operations. Therefore the masking type conversion operations, which require some operating time and memory, are required to satisfy the masking method of all non-linear operations. In this paper, we propose a new masked S-boxes that can minimize the number of the masking type conversion operation. Moreover we construct just one masked S-box table and propose a new formula that can compute the other masked S-box's output by using this S-box table. Therefore the memory requirements for masked S-boxes are reduced to half of the existing masking method's one.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
이러한 Arithmetic 마스킹에서 Boolean 마스킹으로 변환하는 함수의 호출 횟수를 줄일 수 있는 근본적인 이유는 새로운 마스킹 S-box의 설계에 의해 가능하다. 다음 소절에서는 이 새로운 마스킹 S-box를 설계하는 방법과 마스킹 S-box의 RAM 사이즈를 줄이기 위한 연산 방법에 대해 논한다. 또한 32 비트 단위의 Arithmetic 마스킹을 8 비트 단위의 Arithmetic 마스킹으로 변환하기 위한 캐리 조절 (Regulation of Carry) 알고리즘을 소개한다.
또한 마스킹 S-box 테이블 두 개 중 하나만 생성하여 이것으로 나머지 마스킹 S-box 연산도 수행할 수 있는 연산식을 만들어 마스킹 S-box 테이블에 소요되는 메모리를 기존 SEED 대응법에서의 절반만 사용하였다. 따라서 본 논문에서는 기존 SEED 대응법보다 메모리 효율성과 연산 속도 측면에서 모두 뛰어난 새로운 SEED 마스킹 기법을 제안한다.
하지만, 이 연산을 직접 수행하는 것은 xi′ -m, 즉 xi가 그대로 노출되고 이는 차분 전력 분석에 취약함을 의미한다. 따라서 본 논문에서는 이 캐리에 대한 부분을 안전하게 구성하기 위해 캐리에 대한 테이블을 암호 연산 전 생성해 RAM에 저장하는 방식을 사용한다. 이러한 방식을 사용할 경우 일반적으로 256 바이트의 RAM이 요구되지만 본 논문에서는 이 소요 RAM을 최소화하기 위해 4 비트 테이블 두 개(32 바이트 RAM 소요)를 사용해 캐리를 연산한다.
본 논문에서는 RAM 사이즈를 최소화하기 위해 MS2의 하나의 마스킹 S-box만을 다음 알고리즘에 의해 암호 연산 전 생성하며 MS2로부터 MS1의 출력 값을 연산한다.
본 논문에서는 SEED 알고리즘의 구조에 최적화된 새로운 마스킹 대응법을 제안하였다. 제안하는 마스킹 기법에서는 SEED의 마스킹 기법 설계에 있어 연산량이 가장 큰 Arithmetic에서 Boolean 마스킹으로의 변환 함수 호출 횟수를 완전히 제거하거나 최소화할 수 있는 마스킹 S-box를 설계하였다.
기존 SEED 대응법에서 소요 비용의 대분을 차지하는 연산은 Arithmetic 마스킹에서 Boolean 마스킹으로 변환하는 함수의 호출 부분이었으며, 두 개의 마스킹 S-box 생성으로 인한 512 바이트의 RAM 또한 무시할 수 없는 부분이었다. 본 논문에서는 이러한 기존 SEED 대응법의 문제점을 보완하기 위해 Arithmetic 마스킹에서 Boolean 마스킹으로 변환하는 함수의 호출 횟수를 줄일 수 있는 새로운 마스킹 S-box를 설계하며 소요 RAM 사이즈를 줄일 수 있는 마스킹 S-box 사이의 연산 식을 세운다.
따라서 Arithmetic 마스킹된 중간 연산 값이 마스킹 S-box로 입력되기 위해선 반드시 Arithmetic에서 Boolean 마스킹으로 마스킹 변환을 수행해야만 했다. 본 논문에서는 이러한 연산을 줄이기 위해 마스킹 변환과 S-box의 연산을 동시에 수행하는 마스킹 S-box를 설계한다. 즉, Arithmetic 마스킹된 입력 값에 대해 Boolean 마스킹된 값을 출력하는 마스킹 S-box를 생성한다.
본 소절에서는 MS2 테이블로부터 MS1(x′)의 출력 값을 얻기 위한 연산식을 소개한다.
마스킹 기법 설계 시 대부분의 비용을 차지하는 것은 비선형 연산에 대한 것이다. 본 절에는 대칭키 암호 시스템에 널리 사용되는 마스킹 기법이 그대로 적용된 기존 SEED 대응법의 비선형 연산에 대한 구조를 살펴본다. Arithmetic 마스크에서 Boolean 마스크로 변환하는 연산을 AtoB, Boolean 마스크에서 Arithmetic 마스크로 변환하는 연산을 BtoA이라 한다.
제안 방법
다음 소절에서는 이 새로운 마스킹 S-box를 설계하는 방법과 마스킹 S-box의 RAM 사이즈를 줄이기 위한 연산 방법에 대해 논한다. 또한 32 비트 단위의 Arithmetic 마스킹을 8 비트 단위의 Arithmetic 마스킹으로 변환하기 위한 캐리 조절 (Regulation of Carry) 알고리즘을 소개한다.
제안하는 마스킹 기법에서는 SEED의 마스킹 기법 설계에 있어 연산량이 가장 큰 Arithmetic에서 Boolean 마스킹으로의 변환 함수 호출 횟수를 완전히 제거하거나 최소화할 수 있는 마스킹 S-box를 설계하였다. 또한 RAM 사이즈를 줄이기 위해 두 S-box에 대한 마스킹 S-box 테이블을 하나만 생성해 사용할 수 있는 연산식을 제안하였다. 다음 <표 1>은 마스킹 기법이 적용되지 않은 SEED, 기존 SEED 대응법 그리고 제안하는 마스킹 기법이 적용된 SEED를 8 비트용으로 구현했을 때 메모리 크기와 연산 속도를 나타낸 표이다.
이러한 문제점을 해결하기위해 제안하는 SEED 마스킹 기법에서는 Arithmetic 마스크에서 Boolean 마스크로의 마스킹 형태 변환 과정을 최소화할 수 있도록 마스킹 S-Box를 새롭게 설계하였다. 또한 마스킹 S-box 테이블 두 개 중 하나만 생성하여 이것으로 나머지 마스킹 S-box 연산도 수행할 수 있는 연산식을 만들어 마스킹 S-box 테이블에 소요되는 메모리를 기존 SEED 대응법에서의 절반만 사용하였다. 따라서 본 논문에서는 기존 SEED 대응법보다 메모리 효율성과 연산 속도 측면에서 모두 뛰어난 새로운 SEED 마스킹 기법을 제안한다.
본 논문에서 제안하는 마스킹 기법은 4절에서 소개한다. 마지막으로 5절에서는 기존 SEED 대응법과 제안하는 마스킹 기법의 효율성과 안전성을 비교, 분석한다.
물론, 16 라운드인 SEED의 앞뒤 8 라운드를 마스킹할 경우, Full 라운드 마스킹이 되므로 제안하는 마스킹 기법을 확장할 경우 기존 SEED 대응법과 같이 알고리즘의 모든 중간 연산 값을 마스킹할 수 있다. 본 논문에서는 앞뒤 한 라운드(1, 16 라운드) 마스킹(대응법 1) 또는 앞뒤 두 라운드(1, 2, 15, 16 라운드) 마스킹(대응법 2)에 초점을 두고 설명을 하도록 한다. 다음 장에서는 이러한 축소 라운드 마스킹에 대한 안전성 논의와 기존 SEED 대응법과 동등한 조건에서의 연산 속도를 비교하도록 한다.
앞에서 설명한 바와 같이 제안하는 마스킹 기법은 MS1((x +m) mod28) = S1(x)⊕m′에 해당하는 MS1(x′)을 얻기 위해 MS2 테이블을 사용한다.
즉, 기존 SEED 대응법에서는 G 함수내의 마스킹 S-box를 Boolean 마스킹된 값을 입력으로 받아 다시 Boolean 마스킹된 S-box의 출력 값을 출력할 때 32비트 덧셈 연산 이후 G 함수의 S-box에 값이 입력되기 위해서는 32비트 덧셈 연산의 출력값이 Boolean 마스킹된 상태여야 하고, 이를 위해 연산 시간이 많이 소요되는 Arithmetic 마스크에서 Boolean 마스크로의 마스킹 형태 변환 과정이 필요하게 된다. 이러한 문제점을 해결하기위해 제안하는 SEED 마스킹 기법에서는 Arithmetic 마스크에서 Boolean 마스크로의 마스킹 형태 변환 과정을 최소화할 수 있도록 마스킹 S-Box를 새롭게 설계하였다. 또한 마스킹 S-box 테이블 두 개 중 하나만 생성하여 이것으로 나머지 마스킹 S-box 연산도 수행할 수 있는 연산식을 만들어 마스킹 S-box 테이블에 소요되는 메모리를 기존 SEED 대응법에서의 절반만 사용하였다.
따라서 본 논문에서는 이 캐리에 대한 부분을 안전하게 구성하기 위해 캐리에 대한 테이블을 암호 연산 전 생성해 RAM에 저장하는 방식을 사용한다. 이러한 방식을 사용할 경우 일반적으로 256 바이트의 RAM이 요구되지만 본 논문에서는 이 소요 RAM을 최소화하기 위해 4 비트 테이블 두 개(32 바이트 RAM 소요)를 사용해 캐리를 연산한다. 즉, 8비트 캐리 조절을 위해 상·하위 4 비트로 나누어 캐리 테이블을 생성한다.
본 논문에서는 SEED 알고리즘의 구조에 최적화된 새로운 마스킹 대응법을 제안하였다. 제안하는 마스킹 기법에서는 SEED의 마스킹 기법 설계에 있어 연산량이 가장 큰 Arithmetic에서 Boolean 마스킹으로의 변환 함수 호출 횟수를 완전히 제거하거나 최소화할 수 있는 마스킹 S-box를 설계하였다. 또한 RAM 사이즈를 줄이기 위해 두 S-box에 대한 마스킹 S-box 테이블을 하나만 생성해 사용할 수 있는 연산식을 제안하였다.
제안하는 마스킹 기법은 편중되지 않은 난수로 암호 연산의 1, 16 라운드(대응법 1) 혹은 1, 2, 15, 16 라운드(대응법 2)의 모든 중간 값을 가린다. 일반적인 차분 전력 분석을 수행하기 위해서는 대응법 1에 대해서는 1 라운드 키 혹은 16라운드 키 64 비트를 추측해야 차분 전력 분석을 수행할 수 있으며 대응법 2에 대해서는 1, 2 라운드 키 혹은 15, 16 라운드 키 128 비트를 추측해야 분석을 수행할 수 있다.
제안하는 마스킹 기법이 적용된 F 함수 구조에서는 모두 세 번의 32 비트 덧셈 연산을 수행한다. 32 비트 덧셈 연산이 끝난 후에는 결과 값이 바이트 단위로 나뉘어 수정된 G 함수에 입력되는데 이 때, 입력 값은 법 232에 대한 32 비트 Arithmetic 마스킹된 값이고 이 값이 마스킹 S-box에 해당하는 테이블을 호출 또는 연산을 수행하기 위해서는 32 비트의 각 바이트가 법 28에 대해 8 비트 Arithmetic 마스킹된 값으로 변환되어져야만 한다.
제안하는 마스킹 대응법은 차분 전력 분석에 안전하도록 구성하기 위해 앞뒤 적당한 라운드에 마스킹을 수행하는 축소 라운드 마스킹을 적용한다. 물론, 16 라운드인 SEED의 앞뒤 8 라운드를 마스킹할 경우, Full 라운드 마스킹이 되므로 제안하는 마스킹 기법을 확장할 경우 기존 SEED 대응법과 같이 알고리즘의 모든 중간 연산 값을 마스킹할 수 있다.
즉, 암호화 과정에서 64비트 블록(C,D)와 64비트 라운드 키 Ki = (Ki,0 ; Ki,1)를 F 함수의 입력으로 처리하여 64비트 블록 (C ′,D′)을 출력한다.
하지만 제안하는 대응 방법은 Full 라운드 마스킹이 아닌 축소 라운드 마스킹을 적용하였기 때문에 마스킹 되지 않은 중간 라운드 연산의 안전성을 고려해야 한다. 먼저 덧셈 연산이 없는 대칭키 암호(AES, DES)에 대해서는 축소 라운드 마스킹 기법에 대한 이론적인 분석 방법[13]이 존재하지만 SEED와 같이 덧셈 연산이 존재하는 대칭키 암호의 축소 라운드 마스킹에 대한 분석법은 존재하지 않는다.
이론/모형
을 출력하도록 한다. MA의 출력 값이 G 함수에 입력될 때, 마스킹 S-box의 Boolean 마스크에 적합하도록 설계된 것으로 이 때, Boolean 마스크과 Arithmetic 마스크 사이에 형태 변환이 필요하며 BtoA는 [9]에서, AtoB는 [14]에서 제안한 방법을 이용한다. (그림 4)는 기존 SEED 대응법이 적용된 F 함수이며 이로부터 MA의 출력값이 G 함수에 입력될 때마다 AtoB 연산을 수행해야 함을 알 수 있고 이는 많은 연산량이 소요된다.
따라서 2 라운드 시작 전 키 에디션 연산을 위해 1 라운드의 Arithmetic 마스킹 된 출력 값을 반드시 (그림 8)에서 보는 바와 같이 Boolean 마스킹 변환해야만 한다. 본 논문에서는 이 변환 기법으로 [15]의 방법을 참고하였다. 하지만이 변환은 1, 16 라운드 축소 라운드 마스킹 적용했을 때, AtoB 연산이 한 라운드당 3번에서 1번으로 줄었으므로 3*2회 필요하던 연산을 단지 1*2회의 연산으로 수행하도록 한 것으로 상당한 연산량이 감소된다.
캐리 테이블 생성 알고리즘에서 캐리 생성 여부를 감추기 위해 랜덤 상수 λ를 사용하였다.
성능/효과
본 논문에서는 SEED 알고리즘을 위한 마스킹 기법이 현재 존재하지 않으므로 일반적으로 널리 사용되는 대칭키 마스킹 기법을 그대로 적용하여 설계한 마스킹 기법을 기존 SEED 대응법이라 한다.1) 제안하는 SEED 마스킹 기법은 SEED 알고리즘의 특성을 충분히 고려하여, 기존 SEED 대응법의 메모리 효율성 및 연산 속도측면에서 생길 수 있는 문제를 개선하도록 하였다. 즉, 기존 SEED 대응법에서는 G 함수내의 마스킹 S-box를 Boolean 마스킹된 값을 입력으로 받아 다시 Boolean 마스킹된 S-box의 출력 값을 출력할 때 32비트 덧셈 연산 이후 G 함수의 S-box에 값이 입력되기 위해서는 32비트 덧셈 연산의 출력값이 Boolean 마스킹된 상태여야 하고, 이를 위해 연산 시간이 많이 소요되는 Arithmetic 마스크에서 Boolean 마스크로의 마스킹 형태 변환 과정이 필요하게 된다.
제안하는 마스킹 대응법은 차분 전력 분석에 안전하도록 구성하기 위해 앞뒤 적당한 라운드에 마스킹을 수행하는 축소 라운드 마스킹을 적용한다. 물론, 16 라운드인 SEED의 앞뒤 8 라운드를 마스킹할 경우, Full 라운드 마스킹이 되므로 제안하는 마스킹 기법을 확장할 경우 기존 SEED 대응법과 같이 알고리즘의 모든 중간 연산 값을 마스킹할 수 있다. 본 논문에서는 앞뒤 한 라운드(1, 16 라운드) 마스킹(대응법 1) 또는 앞뒤 두 라운드(1, 2, 15, 16 라운드) 마스킹(대응법 2)에 초점을 두고 설명을 하도록 한다.
다음 <표 1>은 마스킹 기법이 적용되지 않은 SEED, 기존 SEED 대응법 그리고 제안하는 마스킹 기법이 적용된 SEED를 8 비트용으로 구현했을 때 메모리 크기와 연산 속도를 나타낸 표이다. <표 1>에서와 같이 제안하는 마스킹 기법은 기존의 마스킹 기법과 동일한 안전성을 제공하면서도 메모리 크기뿐만 아니라 속도 면에서도 모두 효율적이다.
일반적인 차분 전력 분석을 수행하기 위해서는 대응법 1에 대해서는 1 라운드 키 혹은 16라운드 키 64 비트를 추측해야 차분 전력 분석을 수행할 수 있으며 대응법 2에 대해서는 1, 2 라운드 키 혹은 15, 16 라운드 키 128 비트를 추측해야 분석을 수행할 수 있다. 하지만 64 비트 혹은 128 비트 키를 추측해 차분 전력 분석을 수행하는 것은 실질적으로 불가능하며 따라서 제안하는 마스킹 기법은 기존의 일차 차분 전력 분석 방법에 충분한 안전성을 보장한다.
질의응답
핵심어
질문
논문에서 추출한 답변
부채널 공격이란 무엇인가?
그리고 스마트카드 수요의 증가와 더불어 이에 대한 공격 방법으로 부채널 공격(Side Channel Attack)이 소개되었다[1]. 부채널 공격이란 수학적으로 안전한 것으로 알려진 알고리즘이 구현 단계에서 부가적인 정보를 누출함으로써 이로부터 비밀 키의 값을 알아낼 수 있는 방법이다. 이러한 부채널 공격이 소개되면서 많은 암호시스템 설계자들은 효율적인 대응법들을 연구하기 시작했고, 부채널 공격 중 가장 강력한 공격인 차분 전력 분석(Differential Power Analysis, DPA)[2-4]에 대한 대응법으로는 마스킹 기법(masking method)이 활발히 연구되고 있다[3, 5-7].
일반적으로 마스킹 기법은 무엇에서 가장 선호하여 사용되는가?
마스킹 기법은 알고리즘의 변형을 통해 고차 및 일차 차분 전력 분석을 방어하는 방법으로 노이즈 삽입(Random Noise Insertion)[10], 임의의 지연(Random Delay)[11], 임의의 클록(Unstable Clock)[12]과 같은 하드웨어적인 대응법에 비해 그 비용이 저렴하다. 따라서 단가가 저렴한 스마트 카드와 같은 장비에서는 일반적으로 가장 선호하여 사용된다.
마스킹 기법이란 무엇인가?
이러한 부채널 공격이 소개되면서 많은 암호시스템 설계자들은 효율적인 대응법들을 연구하기 시작했고, 부채널 공격 중 가장 강력한 공격인 차분 전력 분석(Differential Power Analysis, DPA)[2-4]에 대한 대응법으로는 마스킹 기법(masking method)이 활발히 연구되고 있다[3, 5-7]. 마스킹 기법은 알고리즘의 변형을 통해 고차 및 일차 차분 전력 분석을 방어하는 방법으로 노이즈 삽입(Random Noise Insertion)[10], 임의의 지연(Random Delay)[11], 임의의 클록(Unstable Clock)[12]과 같은 하드웨어적인 대응법에 비해 그 비용이 저렴하다. 따라서 단가가 저렴한 스마트 카드와 같은 장비에서는 일반적으로 가장 선호하여 사용된다.
참고문헌 (15)
P. Kocher, J. Jaffe, and B. Jun, “Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Others Systems” CRYPTO’6, LNCS 1109, pp.104-113, Springer-Verlag, 1996.
P. Kocher, J. Jaffe, and B. Jun, “Differential power analysis,”CRYPTO’9, pp.388-397, Springer-Verlag, 1999.
P. Kocher, J. Jaffe, and B. Jun, “Introduction to differential power analysis and related attacks,” http://www.cryptography. com/dpa/technical, 1998.
T. S. Messerges, E. A. Dabbish, and R. H. Sloan, “Power analysis attacks on modular exponentiation in Smart cards,” Proc. of Workshop on Cryptographic Hardware and Embedded Systems, pp.144-157, Springer-Verlag, 1999.
E. Oswald nd K. Schramm. “An Efficient Masking Scheme for AES Software Implementations,” $^{TM}$ WISA 2005, LNCS 3786, pp.292-305, Springer, 2006.
E. Oswald, S. Mangard, N. Pramstaller, and V. Rijmen., “A Side-Channel Analysis Resistant Description of the AES S-box,” FSE 2005, LNCS 3557, pp. 413-423, Springer, 2005.
J. Bl¨omer, J. Guajardo, and V. Krummel. “Provably Secure Masking of AES,” SAC 2004, LNCS 3357, pp.69-83, Springer, 2005.
한국정보보호진흥원, “SEED 알고리즘 상세 명세서”
J. Coron and Louis Goubin “On Boolean and Arithmetic Masking against Differential Power Analysis”, CHES'00, LNCS 1965, pp.231-237, 2000.
S. Chari, C. Jutla, J. Rao, P. Rohatgi, “Towards Sound Approaches to Counteract Power-Analysis Attacks,” CRYPTO99, Springer-Verlag, pp.398-412, 1999.
C. Clavier, J. Coron, and N. Dabbous, “Differential power analysis in the presence of hardware countermeasures,” CHES 2000, Lecture Notes in Computer Science, Vol.1965, pp.252-263, August. 2000.
O. Kommerling and M. G. Kuhn, “Design principles for tamper-resistant smartcard processors,” Proc. of the USENIX Workshop on Smartcard Technology, Chicago, pp.9-20, May, 1999.
H. Handschuh and B. Preneel, “Blind Differential Cryptanalysis for Enhanced Power Attacks,” Proc.SAC2006, LNCS, Vol.4356, pp.163-173, 2007.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.