I. 서론
지정된 검증자 서명은 1996년, M. Jakobsson 등에 의해 처음으로 소개되었다[1]. 지정된 검증자 서명은 서명자가 검증자를 지정하여 서명을 생성하며, 이렇게 생성된 서명은 지정된 검증자만이 서명자로부터 생성되었는지를 확신할 수 있다. 서명자와 지정된 검증자 이외의 어떤 누구도 이렇게 생성된 서명이 서명자에 의해 생성되었는지를 확신할 수 없으며, 단지 서명자와 지정된 검증자 중의 1명이 생성했다는 것만을 확인할 수 있다. 이러한 성질은 지정된 검증자 서명이 기본적으로 만족해야 하는 비전이성(non-transferability), 즉, 서명자뿐만 아니라 지정된 검증자도 서명자가 생성한 서명과 동일한 형태의 시뮬레이션된 서명을 생성할 수 있다는 것에 기인한다[1-3].
하지만 지정된 검증자 서명은 서명자와 지정된 검증자 사이의 익명성만을 제공한다. 다시 말하면, 서명자가 서명을 생성해서 지정된 검증자에게 보내는 도중에 악의적인 사용자가 이것을 가로챈다면, 그리고 악의적인 사용자가 이 서명이 지정된 검증자로부터 생성되지 않았다는 확신을 가지게 된다면, 악의적인 사용자는 이 서명이 서명자로부터 생성되었다는 것을 확신할 수 있게 된다. 따라서 지정된 검증자 서명에 추가적인 안전성을 제공하는 강한 지정된 검증자 서명이 연구되었다. 강한 지정된 검증자 서명은 지정된 검증자 서명과 마찬가지로 서명자가 검증자를 지정하여 서명을 생성하며, 이렇게 생성된 서명은 지정된 검증자만이 서명자로부터 생성되었는지를 확신할 수 있다. 추가적으로, 강한 지정된 검증자 서명으로부터 생성된 서명은 지정된 검증자 이외의 어떤 누구도 이 서명이 어떤 서명자에 의해 생성된 서명인지를 알아낼 수 없어야 한다는 서명자의 프라이버시(privacy of signer’s identity)를 만족해야 한다. 최근에는 지정된 검증자 서명에 대한 연구보다는 강한 지정된 검증자 서명에 대한 연구가 보다 활발히 진행되고 있다[1,4-8].
공개키 기반의 강한 지정된 검증자 서명 기법이 S. Saeednia 등에 의해 제안된 후[4], 공개키 기반의 기법에서 공개키 분배 문제를 해결한 ID 기반의 강한 지정된 검증자 서명 기법을 설계하는 일반적인 방법 (generic construction)이 W. Susilo 등에 의해 제안되었다[9]. ID 기반의 암호시스템에 대한 개념은 A. Shamir에 의해 처음으로 정립되었으며[10], 공개키 기반의 기법에서 발생하는 키 관리 문제를 해결함과 동시에 이메일 주소나 전화번호 등과 같은 정보를 공개키로 그대로 사용할 수 있다는 장점을 가진다.
2012년, F. Wang 등은 래티스 기반의 강한 지정된 검증자 서명 기법을 제안하였다[8]. 래티스에서 설계된 암호 및 서명 기법은 양자 컴퓨팅 환경에서도 높은 안전성을 가지며, 행렬 및 벡터들의 선형 연산들로만 구성되기 때문에 연산 효율성도 매우 높다는 장점을 가진다. 하지만 이것은 공개키에 기반을 둔 기법으로, ID 기반의 기법들이 가지는 다양한 장점들을 포함하지 못한다.
본 논문에서 우리는 래티스에서 ID 기반의 강한 지정된 검증자 서명 기법을 제안한다. 제안하는 기법은 최초로 래티스에서 설계되었으며, 래티스에서 설계된 기법이 가지는 장점들과 ID 기반의 기법들이 가지는 장점들을 모두 포함하는 최초의 기법이다. 즉, 사용자의 공개키로 임의의 난수가 아닌 자신의 이메일 주소나 전화 번호 등의 ID를 사용할 수 있고, 행렬에서의 선형 연산들로만 구성되기 때문에 겹선형 맵에서 설계된 기법들과는 달리 연산 효율성이 매우 높다. 또한 제안하는 기법은 래티스에서의 어려운 문제들인 SIS(Short Integer Solution) 문제와 LWE(Learning With Errors) 문제의 어려움에 안전성의 기반을 두고 설계되었기 때문에 양자 컴퓨팅 환경에서도 안전한 기법이다.
ID 기반의 강한 지정된 검증자 서명 기법을 설계하는 일반적인 방법이 W. Susilo 등에 의해 이미 제안되었음에도 불구하고 제안하는 기법이 의미가 있는 이유는 일반적인 설계 방법에서 반드시 필요한 ID 기반의 카멜레온 해시 함수가 래티스에서는 아직 알려지지 않았기 때문이다. 지금까지 제안된 ID 기반의 카멜레온 해시 함수는 겹선형 맵에서 설계되거나[11], RSA 서명 기법에 기반을 두고 설계되었다[12]. 비록 래티스에서 공개키 기반의 카멜레온 해시 함수는 존재하지만[13], 래티스에서 ID 기반의 카멜레온 해시 함수는 아직까지 존재하지 않는다. 따라서 W. Susilo 등이 제안한 일반적인 방법을 사용하여 래티스에서 강한 지정된 검증자 서명 기법을 설계하는 것은 아직까지는 불가능하다. 따라서 본 논문에서 제안하는 기법은 일반적인 방법을 따라 제안하는 기법이 아니며, 향후 래티스에서 ID 기반의 카멜레온 해시 함수가 제안되어진다 하더라도 일반적인 방법으로 설계하기 위해서는 반드시 ID 기반의 카멜레온 해시 함수와 ID 기반의 암호화 기법 등이 필요하며, 본 논문에서 제안하는 기법은 이러한 것들을 전혀 사용하지 않기 때문에 보다 효율적이다.
1.1 응용 환경
제안하는 강한 지정된 검증자 서명은 광범위한 분야에 적용될 수 있으며, 가격 경쟁 입찰, 전자 투표, 전자 경매 등에 유용하게 사용될 수 있다. 어떤 기관에서 물품 구매를 위한 가격 경쟁 입찰 시 지정된 검증자 서명 기법을 사용한다면, 입찰 참가자들은 다른 경쟁사들이 제시하는 금액을 볼 수 있을 것이다. 만약 지정된 검증자 서명 기법이 아닌 일반적인 서명 기법을 사용한다면, 다른 경쟁사가 제안한 금액보다 낮은 금액을 제시함으로써 낙찰 받으려고 할 것이기 때문에 이러한 상황에서는 지정된 검증자 서명 기법이 적합하다. 지정된 검증자 서명 기법을 사용하면 그 금액이 다른 경쟁사가 제시한 금액인지 아니면 낙찰가를 낮추기 위해 전략적으로 물품 구매 기관에서 제시한 금액인지에 대한 판단이 불가능하기 때문에 물품 구매 기관 입장에서는 적정 가격에 낙찰되도록 하기 위한 적절한 시도가 가능하다.
하지만 강한 지정된 검증자 서명 기법이 아니라 지정된 검증자 서명 기법을 사용하였을 경우에는 서명자가 생성한 서명을 지정된 검증자가 받기 전에 가로채고, 지정된 검증자가 서명을 시뮬레이션하지 않는다는 확신을 가지게 된다면, 누구나 어떤 서명자가 이 서명을 생성했는지에 대한 정보를 얻을 수 있다는 문제점이 존재한다. 따라서 지정된 검증자 서명 기법을 사용하는 것보다 강한 지정된 검증자 서명 기법을 사용하는 것이 서명자의 프라이버시 측면에서 볼 때 보다 안전하다.
또한, 위와 같은 경우에 ID 기반의 강한 지정된 검증자 서명 기법을 사용한다면 공개키 기반의 기법에서 발생하는 키 관리 문제를 해결함과 동시에 이메일 주소나 전화번호 등과 같은 정보를 사용자의 공개키로 사용한다는 장점을 가지게 된다.
1.2 접근
2012년, F. Wang 등에 의해 래티스에서 공개키 기반으로 설계된 강한 지정된 검증자 서명 기법[8]과는 달리 ID 기반으로 설계하기 위해서는 ID를 기반으로 한 키 추출 기법에 대한 추가적인 설계가 필요하다. 즉, KGC(Key Generation Center)의 마스터 비밀키로부터 사용자의 비밀키를 위임(delegation) 할 수 있도록 기법을 구성해야 한다. 따라서 KGC의 마스터 비밀키로부터 사용자의 비밀키를 위임할 수 있도록 하기 위해 우리는 2010년, D. Cash 등이 설계한 트랩도어 확장 알고리즘을 활용한다[13]. 트랩도어 확장 알고리즘을 사용하면 KGC의 마스터 비밀키를 기저(basis)로 가지는 래티스의 행렬과 사용자의 ID 정보를 접합시켜 확장된 래티스의 기저를 생성할 수 있으며, 이를 사용자의 비밀키로 활용할 수 있게 된다.
제안하는 기법에서는 ID 기반의 강한 지정된 검증자 서명 기법의 설계를 위해 먼저 KGC가 트랩도어 생성 알고리즘을 수행하여 래티스를 생성하는 행렬과 이것의 트랩도어를 생성한다. 래티스를 생성하는 행렬은 임의의 길이를 가지는 문자열을 행렬 형태로 출력해주는 해시 함수와 함께 공개 파라미터로 두고, 래티스의 트랩도어를 마스터 비밀키로 둔다. KGC는 사용자의 개인정보, 즉 ID에 대한 비밀키를 위임하기 위해서 공개 파라미터에 포함된 래티스를 생성하는 행렬과 ID를 해시한 값을 접합하고, 이렇게 접합된 행렬을 통해서 생성된 기저를 사용자(즉, 서명자와 지정된 검증자)의 비밀키로 위임한다. 비밀키를 알고 있는 정당한 서명자는 자신의 ID, 지정된 검증자의 ID, 그리고 난수를 포함하는 래티스를 구성할 수 있으며, 비밀 키를 활용하여 래티스에서의 짧은 벡터를 샘플링하고, 난수는 LWE 문제의 어려움에 기반을 두어 지정된 검증자만이 난수 정보를 얻어낼 수 있도록 구성한다. 이렇게 생성된 서명은 난수를 얻어낼 수 있는 지정된 검증자만이 자신의 ID, 서명자의 ID, 그리고 난수를 포함하는 래티스를 구성할 수 있으며, 따라서 지정된 검증자만이 서명에 대한 검증이 가능하게 된다.
1.3 구성
본 논문의 구성은 다음과 같다. 2장에서는 본 논문과 관련된 배경 지식에 대해서 살펴본다. 3장에서 우리는 래티스에서 ID 기반의 강한 지정된 검증자 서명 기법을 제안하고, 4장에서 이를 분석한다. 마지막으로 5장에서 결론을 맺는다.
II. 배경 지식
2.1 표기법
본 논문에서 사용할 표기법은 다음과 같다: n은 시큐리티 파라미터이다. 행렬 A의 그램-슈미트 직교화 (Gram-Schmidt orthogonalization)는 Ã로 표시한다. 두 벡터 a와 b, 또는 두 행렬 A와 B의 접합은 a||b, 또는 A||B로 표기한다. 벡터 a의 유클리디안 거리는 ||a||로 표시하고, 행렬 A의 유클리디안 거리는||A||로 표시한다. 빅오 표기법(big-O notation)을 사용한다. β = poly(n)은 어떤 양의 정수 c에 대해 β∈(nc )를 의미한다. 충분히 큰 n과 어떤 c > 0에 대해 |negl(n)|<1/nc 면, negl(n)는 무시할만하고(negligible), 1-negl(n)은 극단적이다(overwhelming). 모듈러 연산 x (mod q)는 정수 x를 (-q/2,q/2]로 매핑한다.
2.2 래티스
본 논문에서 우리는 m차원의 풀-랭크(full-rank) 정수 래티스 A ⊆ Zm를 사용하며, 이것은 다음과 같이 m개의 선형 독립인 기저 벡터 B = {b1,⋯ bm} ⊂ Zm의 선형 결합으로 정의된다:
\(A=\left\{B c=\sum_{i \in\{1, \cdots, m\}} c_{i} b_{i}: c \in Z^{m}\right\}\) (1)
본 논문에서 우리는 m차원 풀-랭크 정수 래티스의 특정한 형태를 사용한다. 이것은 패리티 검사 행렬(parity check matrix) A∈Zqn×m로부터 생성되며, 다음과 같이 정의된다:
\(\Lambda^{\perp}(A)=\left\{A x=\sum_{i \in\{1, \cdots, m\}} x_{i} a_{i}=0 \in Z_{q}^{n}: x \in Z^{m}\right\}\) (2)
여기서 n≥1과 q≥2는 정수이다. 그리고 m = O(n log q)에 대해 균일하게 랜덤한 행렬 A∈Zqn×m의 열벡터들은 선형 결합을 통해 극단적인 확률로 Zqn를 모두 표현할 수 있다[14].
2.2.1 가우시안 분포
차원 m≥1과 어떤 s >0에 대해서 가우시안 함수(Gaussian function) ρs : Rm→(0,1]는 다음과 같이 정의된다:
ρs(x) = exp(-π∥x∥2/s2) (3)
어떤 래티스 A에 대해 이산 가우시안 분포(descrete Gaussian distribution) DA,s는 각각의 x∈A에서 ρs(x)에 비례하는 확률을 가진다[13,15-17].
어떤 래티스 A와 양의 실수 ε에 대해, 가우시안 파라미터(Gaussian parameter) ηε(A)는 ρ1/s(A*\{0})≤ ε를 만족하는 가장 작은 s이다. 여기서 A* 는 A의 듀얼 래티스이다[16].
래티스에서의 가우시안 분포는 다음과 같은 성질을 가진다:
\(\operatorname{Pr}\left[\|x\|>s \sqrt{m}: x \leftarrow D_{\Lambda^{\perp}(A), s}\right] \leq n e g l(n)\) (4)
PΓ [x = 0 : x←DA⊥(A),s]≤ negl(n) (5)
여기서 T∈Zm×m는 A⊥(A)의 기저이며, A∈Zqn×m이고, \(s \geq\|\widetilde{T}\| \cdot \omega(\sqrt{\log n})\)이다.
2.2.2 SIS 문제
본 항에서 우리는 SIS 문제를 살펴본다. 이것은 평균적인 경우에 어려운 문제(average-case hard ness problem)로 알려져 있으며, M. Ajtai에 의해 최악의 경우에 어려운 문제(worst-case hardness problem)로 리덕션(reduction)되었다[18,19].
SISn,m,q,β 문제는 어떤 m = poly(n)과 q≥2에 대해 균일하게 랜덤한 행렬 A∈Zqn×m를 입력으로 받아서∥v∥≤ β를 만족하는 래티스 A⊥(A)의 0이 아닌 벡터 v∈Zm를 찾는 것이다. 즉, Av = 0∈Zqn이다.
2.2.3 LWE 문제
본 항에서 우리는 LWE 문제를 살펴본다. 이것은 평균적인 경우에 어려운 문제로 알려져 있으며, O. Regev에 의해 최악의 경우에 어려운 문제로 리덕션되었다[14].
LWEn,m,q,α 문제는 어떤 m = poly(n)과 q≥2에 대해 (A0,r0 = A0T s0 +x0)의 분포와 (A1,r1)의 분포를 구별하는 문제이다. 여기서 A0∈Zqn×m와 A1∈Zqn×m은 균일하게 랜덤한 행렬이고, s0∈Zqn와 r1∈Zqm은 균일하게 랜덤한 벡터이며, x0∈Zqm는 가우시안 에러 분포 \(\Psi_{q, \alpha}^{m}\)로부터 샘플링된 벡터이다.
2.2.4 기본 알고리즘
본 논문에서 우리는 트랩도어 생성 알고리즘 TrapGen(1n,1m,q), 가우시안 샘플링 알고리즘 SampleD(A,TA,y,s), 트랩도어 확장 알고리즘 ExtBasis(TA,A||A′)을 사용한다. 따라서 우리는 본 항에서 이러한 기본 알고리즘들을 살펴본다.
∙ 트랩도어 생성 알고리즘: 트랩도어 생성 알고리즘 TrapGen(1n,1m,q)은 시큐리티 파라미터 n, 래티스의 차원 m = O(n log q), 양의 정수 q를 입력으로 받아서 균일하게 랜덤한 행렬 A∈Zqn×m와 래티스 A⊥(A)의 기저 TA∈Zm×m를 생성한다. 여기서 TA는 \(\left\|\widetilde{T}_{A}\right\|=O(\sqrt{n \log q})\)와 ATA = 0 (mod q)를 만족하며, 역행렬이 존재한다[20].
∙ 가우시안 샘플링 알고리즘: 가우시안 샘플링 알고리즘 SampleD(A,TA,y,s)는 균일하게 랜덤한 행렬 A∈Zqn×m, 래티스 A⊥(A)의 기저 TA∈Zm×m , 신드롬(syndrome) y∈Zqn, 가우시안 파라미터 s를 입력으로 받아서 벡터 v∈Zm를 가우시안 샘플링한다. 여기서 v는 Av = y (mod q)와 \(\|v\| \leq s \sqrt{m}\)를 만족한다. 추가적으로, 가우시안 샘플링 알고리즘 SampleD(A,TA,y,s)의 정의역을 가우시안 분포로 부터 샘플링할 수 있는 SampleDom 알고리즘도 존재한다. SampleDom 알고리즘으로부터 샘플링된 벡터 x∈Zm는 \(\|x\| \leq s \sqrt{m}\)를 만족한다[17].
∙ 트랩도어 확장 알고리즘: 트랩도어 확장 알고리즘 ExtBasis(TA,A||A′)는 균일하게 랜덤한 행렬 A∈Zqn×m, 래티스 A⊥(A)의 기저 TA∈Zm×m, 균일하게 랜덤한 행렬 A′∈Zqqn×m′을 입력으로 받아서 래티스 A⊥(A||A′)의 기저 TA||A′∈Z(m + m′) × (m + m′) 를 생성한다. 여기서 TA||A′는 \(\left\|\widetilde{T_{A}}\right\|=\left\|\widetilde{T_{A} \| A^{\prime}},\right\|\)를 만족하며, 역행렬이 존재하고, A′의 위치가 반드시 A의 뒤에 올 필요는 없다[13].
2.3 ID 기반의 강한 지정된 검증자 서명
먼저, 서명자를 S라 하고, 지정된 검증자를 V라 하자. 그러면 ID 기반의 강한 지정된 검증자 서명은 다음의 5가지 알고리즘으로 구성된다:
∙ Setup: KGC는 공개 파라미터 params와 마스터 비밀키 msk를 생성한다.
∙ Extract(msk,IDS,IDV): KGC는 마스터 비밀키 msk, 서명자 S의 ID IDS, 지정된 검증자 V의 ID IDV를 입력으로 받아서 서명자 S의 비밀키 skS와 지정된 검증자 V의 비밀키 skV를 생성한다.
∙ Sign(IDS,skS,IDV,params,b): 서명자 S는 자신의 ID IDS, 자신의 비밀키 skS, 지정된 검증자 V 의 ID IDV, 공개 파라미터 params, 그리고 서명할 메시지 b를 입력으로 받아서 서명 σ를 생성한다.
∙ Vrfy(IDV,skV,IDS,params,b,σ): 지정된 검증자 V는 자신의 ID IDV, 자신의 비밀키 skV, 서명자의 ID IDS, 공개 파라미터 params, 서명된 메시지 b, 그리고 서명 σ를 입력으로 받아서 서명을 검증한다.
∙ Simul(IDV,skV,IDS,params,b): 지정된 검증자 V 는 자신의 ID IDV, 자신의 비밀키 skV, 서명자 S의 ID IDS, 공개 파라미터 params, 그리고 서명할 메시지 b를 입력으로 받아서 시뮬레이션된 서명 σ를 생성한다.
ID 기반의 강한 지정된 검증자 서명은 다음의 4가지 성질을 만족해야 한다:
∙ 정확성(correctness): 서명자 S가 Sign (IDS,skS,IDV,params,b) 알고리즘을 사용하여 정당하게 서명 σ를 생성하였다면, 이 서명 σ 는 Vrfy(IDV,skV,IDS ,params,b,σ) 알고리즘으로 검증되어야 한다.
∙ 위조 불가능성(unforgeability): 서명자 S와 지정된 검증자 V를 제외한 어느 누구도 정당한 서명 σ를 생성하는 것이 불가능해야 한다.
∙ 비전이성(non-transferability): 서명자 S가 Sign(IDS,skS,IDV,params,b) 알고리즘을 사용하여 생성한 서명 σ와 지정된 검증자 V가 Simul(IDV,skV,IDS,params,b) 알고리즘을 사용하여 생성한 시뮬레이션된 서명 σ가 서로 구별 불가능해야 한다.
∙ 서명자의 프라이버시(pravacy of signer’s identity): 서명자 S와 지정된 검증자 V 사이의 서명 σ에 대해, 지정된 검증자 V를 제외한 어떤 누구도 어떤 서명자에 의해 생성된 서명인지를 알아낼 수 없어야 한다.
위의 4가지 성질 중에서 위조 불가능성은 챌린저와 공격자 사이의 게임으로 나타낼 수 있다. 먼저, Setup 단계에서 챌린저는 공격자에게 공개 파라미터 params를 제공한다. 그러면 공격자는 다음의 3가지 오라클에 대한 접근이 가능하다.
∙ Extract(msk,∙): 공격자는 자신이 원하는 ID IDi에 대한 비밀키 ski를 얻을 수 있다.
∙ Sign(∙,skSi,∙,params,∙): 공격자는 자신이 원하는 서명자의 ID IDSi , 자신이 원하는 지정된 검증자의 ID IDVi , 자신이 서명하고자 하는 메시지 bi에 대한 서명 σi를 얻을 수 있다.
∙ Vrfy(∙,skVi,∙,params,∙,∙): 공격자는 자신이 원하는 서명자의 ID IDSi , 자신이 원하는 지정된 검증자의 ID IDVi , 자신이 원하는 메시지 bi , 자신이 원하는 서명 σi에 대해 검증해볼 수 있다.
마지막으로, 공격자는 (IDS*,IDV*,b*,σ*)를 챌린저에게 보낸다. Vrfy(IDV*, skV*, IDS* , params, b*,σ*) 알고리즘을 통해 검증이 되고, 공격자가 IDS* 와 IDV* 를 Extract(msk,∙) 오라클에 질의하지 않았으며, (IDS*,IDV* ,m*)를 Sign(∙,ski,∙,params,∙) 오라클에 질의하지 않았다면, 공격자는 위조 불가능성 게임에서 승리한다.
III. 제안하는 기법
본 장에서 우리는 래티스에서 ID 기반의 강한 지정된 검증자 서명 기법을 처음으로 제안한다. 우리가 제안하는 기법은 SIS 문제와 LWE 문제에 기반을 두어 설계되었으며, 랜덤 오라클 모델에서 안전하다.
먼저, 우리는 제안하는 기법에 사용될 파라미터들을 정의한다. 여기서 n은 시큐리티 파라미터이다. 그러면, 제안하는 기법에서 사용될 파라미터들은 다음과 같다:
- m = O(n log q)
- q > β∙ω(log n)
- β = poly(n)
- \(s=O(\sqrt{n \log q}) \cdot \omega(\sqrt{\log n})\)
제안하는 기법에서 서명자를 S라 하고, 지정된 검증자를 V라 하자. 위에서 정의한 파라미터들을 사용하여, 제안하는 기법은 아래와 같이 구성된다:
∙ Setup: KGC는 다음과 같이 공개 파라미터 params와 마스터 비밀키 msk를 생성한다.
1) 트랩도어 생성 알고리즘 TrapGen(1n,1m,q)을 수행하여 (A0,T0)를 생성한다. 여기서 A0∈Zqn×m이고, T0∈Zm×m이다.
2) 세 개의 해시함수 \(H_{0}:\{0,1\}^{*} \rightarrow Z_{q}^{n \times m}\), \(H_{1}:\{0,1\}^{*} \times Z_{q}^{n} \rightarrow Z_{q}^{n}\), 그리고 \(H_{2}:\{0,1\}^{*} \times Z_{q}^{n} \rightarrow Z_{q}^{3 m}\)를 선택한다.
3) 공개 파라미터는 params ={A0,H0,H1,H2}이고, 마스터 비밀키는 msk = T0이다.
∙ Extract(msk,IDS ,IDV): KGC는 마스터 비밀키 msk, 서명자 S의 ID IDS, 지정된 검증자 V의 ID IDV를 입력으로 받아서 서명자 S의 비밀키 skS와 지정된 검증자 V의 비밀키 skV를 다음과 같이 생성한다.
1) 트랩도어 확장 알고리즘 ExtBasis (T0,A0||H0(IDS))와 ExtBasis (T0,A0||H0(IDV))를 수행하여 TS∈Z2m × 2m와 TV∈Z2m × 2m를 각각 생성한다.
2) 서명자 S의 비밀키는 skS = TS이고, 지정된 검증자 V의 비밀키는 skV = TV이다.
∙ Sign(IDS,skS,IDV,params,b): 서명자 S는 자신의 ID IDS, 자신의 비밀키 skS, 지정된 검증자 V의 ID IDV, 공개 파라미터 params, 그리고 서명할 메시지 b∈{0,1}*를 입력으로 받아서 서명σ를 다음과 같이 생성한다.
1) 난수 t∈Zqn와 r'∈Zqn를 랜덤하게 선택한다.
2) 가우시안 에러 분포 \(\Psi_{q, \alpha}^{2 m}\)를 따르는 벡터 x∈Zq2m를 샘플링 한다.
3) 트랩도어 확장 알고리즘 ExtBasis (TS ,A0||H0(IDS)||H0(IDV))를 수행하여 TS,V∈Z3m × 3m를 생성한다.
4) 가우시안 샘플링 알고리즘 SampleD (A0||H0(IDS)||H0(IDV),TS,V,H1(b,t),s)를 사용하여 벡터 vS,V∈Z3m를 샘플링한다. 샘플링된 벡터 vS,V는 극단적인 확률로 \(\left\|v_{S}\right\| \leq s \sqrt{3 m}\)를 만족한다. 만약 이를 만족하지 않는다면, 다시 샘플링한다.
5) Θ = vS,V+H2(b,r′) (mod q)를 계산한다.
6) r = (A0||H0(IDV))T ∙r′+x (mod q)를 계산한다.
7) 서명은 σ = {Θ,r,t}이다.
∙ Vrfy(IDV,skV,IDS ,params,b,σ): 지정된 검증자 V 는 자신의 ID IDV, 자신의 비밀키 skV, 서명자의 ID IDS, 공개 파라미터 params, 서명된 메시지 b, 그리고 서명 σ를 입력으로 받아서 서명을 다음과 같이 검증한다.
1)TVT ∙r(mod q)= TVT∙x (mod q)= TVT∙x를 계산한다.
2) TV-T∙TVT∙x = x를 계산하여 x를 얻는다.
3) r = (A0||H0(IDV))T ∙r′+x (mod q), x, 그리고 (A0||H0(IDV))를 사용하여 r′을 얻는다.
4) Θ-H2(b,r′)= vS,V (mod q)를 계산하여 vS,V를 얻는다.
5) (A0||H0(IDS)||H0(IDV))∙vS,V = H1(b,t)(mod q) 와 \(\left\|v_{S, V}\right\| \leq s \sqrt{3 m}\)를 만족하는지 확인한다. 만약 모두 참이면 서명 σ는 정당하고, 그렇지 않다면 서명 σ는 정당하지 않다.
∙ Simul(IDV,skV,IDS ,params,b): 지정된 검증자 V 는 자신의 ID IDV, 자신의 비밀키 skV, 서명자 S의 ID IDS, 공개 파라미터 params, 그리고 서명할 메시지 b∈{0,1}*를 입력으로 받아서 시뮬레이션된 서명 σ를 다음과 같이 생성한다.
1) 난수 t∈Zqn와 r'∈Zqn를 랜덤하게 선택한다.
2) 가우시안 에러 분포 \(\Psi_{q, \alpha}^{2 m}\)를 따르는 벡터 x∈Zq2m를 샘플링한다.
3) 트랩도어 확장 알고리즘 ExtBasis (TV,A0||H0(IDS)||H0(IDV))를 수행하여 TS,V∈Z3m × 3m를 생성한다.
4) 가우시안 샘플링 알고리즘 SampleD (A0||H0(IDS)||H0(IDV),TS,V,H1(b,t),s)를 사용하여 벡터 vS,V∈Z3m를 샘플링한다. 샘플링된 벡터 vS,V는 극단적인 확률로 \(\left\|v_{s}\right\| \leq s \sqrt{3 m}\)를 만족한다. 만약 이를 만족하지 않는다면, 다시 샘플링한다.
5) Θ = vS,V+H2(b,r′) (mod q)를 계산한다.
6) r = (A0||H0(IDV))T∙r′+x (mod q)를 계산한다.
7) 시뮬레이션된 서명은 σ = {Θ,r,t}이다.
IV. 분석
우리가 제안하는 기법은 정확성, 위조 불가능성, 비전이성, 서명자의 프라이버시를 만족한다. 본 장에서 우리는 제안하는 기법이 정확성, 위조 불가능성, 비전이성, 서명자의 프라이버시를 만족하는지에 대해 분석한다.
먼저, 제안하는 기법이 정확성을 만족하는지를 분석한다.
정리 1. [정확성] 제안하는 기법은 정확성을 만족한다.
증명. 먼저, 서명자 S가 Sign (IDS ,skS ,IDV,params,b) 알고리즘을 사용하여 서명σ = {Θ,r,t}를 생성하였다고 가정하자. 그러면 지정된 검증자 V는 TVT∙r (mod q)= TVT∙x (mod q)= TVT∙ x 와 TV-T∙TVT∙x = x를 계산하여 x를 구할 수 있다. 이것은 TV가 기저이고, 역행렬이 존재하며, TV와 x가 충분히 작은 값들로 구성되어있기 때문에 타당하다. 따라서 지정된 검증자 V는 r, x, (A0||H0(IDV)) 를 모두 알 수 있으며, 이들과 r = (A0||H0(IDV))T∙r′+x (mod q)를 사용하여 r′을 구할 수 있다. 그러면 지정된 검증자 V는 Θ, b, r′을 알기 때문에 Θ-H2(b,r′)= vS,V (mod q)를 계산하여 vS,V를 구할 수 있다. 만약 서명자 S가 서명 σ = {Θ,r,t}를 정당하게 생성하였다면,
vS,V는 (A0||H0(IDS)||H0(IDV))∙vS,V = H1(b,t) (mod q)와 \(\left\|v_{S,V}\right\| \leq s \sqrt{3 m}\)를 모두 만족하며, 따라서 지정된 검증자 V는 Vrfy(IDV, skV, IDS, params, b, σ) 알고리즘을 사용하여 정당하게 생성된 서명 σ = {Θ,r,t}를 검증할 수 있다.
그 다음으로, 제안하는 기법이 위조 불가능성을 만족하는지를 분석한다.
정리 2. [위조 불가능성] SIS 문제가 어렵다면, 제안하는 기법은 위조 불가능성을 만족한다.
증명. 우리는 여기서 챌린저와 공격자 사이의 게임을 통해 제안하는 기법이 위조 불가능성을 만족하는지를 증명한다. 챌린저는 SIS 문제를 풀고자 하고, 공격자는 제안하는 기법의 위조 불가능성을 공격하고자 한다. 제안하는 기법에서 사용되는 세 개의 해시함수 \(H_{0}:\{0,1\}^{*} \rightarrow Z_{q}^{n \times m}\), \(H_{1}:\{0,1\}^{*} \times Z_{q}^{n} \rightarrow Z_{q}^{n}\), 그리고 \(H_2 :\{0,1\}^{*} \times Z_{q}^{n} \rightarrow Z_{q}^{3 m}\)는 모두 랜덤 오라클로 사용된다. Setup 단계에서 챌린저는 SISn,3m,q,β 문제의 입력으로 행렬 A∈Zqn×3m를 받아온다. 챌린저는 행렬 A를 A = (A0||A1||A2)로 분해한다. 즉, \(A_{0} \in Z_{q}^{n \times m}\), \(A_{1} \in Z_{q}^{n \times m}\), \(A_{2} \in Z_{q}^{n \times m}\)이다. 챌린저는 공격자에게 공개 파라미터 params = {A0}를 제공한다. 그러면 공격자는 H0, H1, H2에 대한 해시 오라클과 Extract, Sign, Vrfy 오라클에 대한 접근이 가능하다.
H0(∙): 공격자는 자신이 선택한 ID IDi를 최대 qH0번까지 질의할 수 있다. 만약 공격자가 예전에 H0오라클에 IDi를 질의한 적이 있다면, 챌린저는 저장된 정보들을 사용하여 예전과 동일한 반환값으로 공격자에게 돌려준다. 챌린저는 qH0번 중의 2번에 한해서 IDi에 대한 반환값으로 A1과 A2를 각각 공격자에게 돌려준다. 그리고 챌린저는 그 이외의 경우(최대 qH0-2번)에 대해 트랩도어 생성 알고리즘 TrapGen(1n, 1m, q)을 수행하여 (Ai, Ti)를 생성하고, IDi 에 대한 반환값으로 Ai를 공격자에게 돌려준다. 여기서 Ai∈Zqn×m이고, Ti∈Zm×m이다. 챌린저는 이때 생성한 정보들을 모두 저장한다. H0 오라클은 Extract 오라클과 Sign 오라클을 통해서도 호출될 수 있으며, 이러한 경우에는 A1 또는 A2를 반환하지 않는다.
∙ H1(∙,∙): 공격자는 자신이 선택한 (bi,ti)를 질의할 수 있다. 만약 공격자가 예전에 (bi,ti)를 질의한 적이 있다면, 챌린저는 저장된 정보들을 사용하여 예전과 동일한 반환값으로 공격자에게 돌려준다. 챌린저는 SampleDom 알고리즘을 수행하여 vi ∈Z3m를 샘플링하고, Avi = ui (mod q) 를 계산하여 (bi,ti)에 대한 반환값으로 ui를 공격자에게 돌려준다. 여기서 ui∈Zqn이다. 챌린저는 이때 생성한 정보들을 모두 저장한다.
∙ H2(∙,∙): 공격자는 자신이 선택한 (bi,r′i)를 질의할 수 있다. 만약 공격자가 예전에 (bi,r′i)를질의한 적이 있다면, 챌린저는 저장된 정보들을 사용하여 예전과 동일한 반환값으로 공격자에게 돌려준다. 챌린저는 랜덤하게 hi∈Zq3m를 선택하고, (bi ,r′i)에 대한 반환값으로 hi를 공격자에게 돌려준다. 챌린저는 이때 생성한 정보들을 모두 저장한다.
∙ Extract(msk,∙): 공격자는 자신이 선택한 ID IDi를 질의할 수 있다. 만약 공격자가 질의한 IDi가 예전에 H0 오라클에 질의했었고, 그것에 대한 반환값으로 A1 또는 A2를 공격자에게 돌려줬었다면, 챌린저는 여기서 게임을 종료한다. 만약 공격자가 예전에 H0 오라클에 IDi를 질의 했었지만 위와 같은 경우가 없었다면, 챌린저는 H0 오라클에 저장된 정보들을 사용하여 트랩도어 확장 알고리즘 ExtBasis(Ti, A0||Ai)를 수행하고, 이것에 대한 결과값인 T0,i를 공격자에게 돌려준다. 만약 공격자가 선택한 IDi가 Extract 오라클 또는 H0 오라클에 질의된 적이 없다면, 챌린저는 이 IDi를 H0 오라클에 질의하여 IDi에 대응되는 (Ai, Ti)를 검색해오고, 트랩도어 확장 알고리즘 ExtBasis(Ti, A0||Ai)를 수행하여 이것에 대한 결과값인 T0,i를 공격자에게 돌려준다. 챌린저는 이때 생성한 정보들을 모두 저장한다.
∙ Sign(∙,skSi ,∙,params,∙): 공격자는 자신이 선택한 (IDSi ,IDVi ,bi)를 질의할 수 있다. 만약 공격자가 \(I D_{S_{i}}\) 와 \(I D_{V_{i}}\) 둘 다 H0 오라클에 질의했었고 (Extract 오라클에 질의하여 H0 오라클을 호출한 경우도 포함된다), 그것에 대한 결과값으로 (대응되는 순서와는 무관하게) A1과 A2를 반환 했었다면, 챌린저는 여기서 게임을 종료한다. 그렇지 않다면, 챌린저는 \(I D_{S_{i}}\)와 \(I D_{V_{i}}\)를 모두 H0오라클에 질의하거나 저장된 정보들을 사용하여 \(A_{S_{i}}\)와 AVi 를 얻고, 최소한 \(T_{S_{i}}\) 또는 \(T_{V_{i}}\) 중의 하나를 얻는다(위에서 A1과 A2 중에서 하나를 반환했던 경우라면 TSi 또는 TVi 중에서 하나만을 얻을 수 있고, 그렇지 않다면 \(T_{S_{i}}\) 와 \(T_{V_{i}}\) 둘 다 얻을 수 있다). 그리고 챌린저는 트랩도어 확장 알고리즘 ExtBasis(TSi ,A0||ASi ) 또는 ExtBasis(\(T_{V_{i}}, A_{0} \| A_{V_{i}}\))를 수행하여 \(T_{0, S_{i}}\) 또는 \(T_{0, V_{i}}\)를 얻을 수 있다. 그러면 챌린저는 Sign(IDSi, \(T_{0, V_{i}}\) , \(I D_{S_{i}}\), params, bi) 알고리즘 또는 Simul(\(I D_{V_{i}}\), \(T_{0, V_{i}}\), \(I D_{S_{i}}\), params, bi) 알고리즘을 수행할 수 있고, 서명 또는 시뮬레이션된 서명 σi를 생성하여 공격자에게 반환한다.
∙ Vrfy(∙,skVi ,∙,params,∙,∙): 공격자는 자신이 선택한 (IDSi ,IDVi ,bi ,σi)를 질의할 수 있다. 만약 공격자가 예전에 Extract 오라클에 IDVi를 질의한 적이 있다면, 챌린저는 Extract 오라클에 저장된 정보들을 사용하여 IDVi에 대응되는 \(T_{0, V_{i}}\)를 얻는다. 그렇지 않다면, 챌린저는 Extract 오라클에 IDVi를 질의하여 \(T_{0, V_{i}}\)를 얻는다. 그러면 챌린저는 Vrfy(IDVi , IDVi, \(I D_{S_{i}}\), params, bi, σi) 알고리즘을 수행하여 서명 σi가 정당한지를 검증하고, 이 결과를 공격자에게 반환한다.
마지막으로, 공격자는 (IDS*,IDV*,b*,σ* = (Θ*,r*,t*))를 챌린저에게 보낸다. 제안하는 기법의 위조 불가능성에 대한 공격을 성공한 공격자라면, Vrfy (IDV*,skV *,IDS*,params,b*,σ*) 알고리즘을 통해 검증이 되고, 공격자가 IDS*와 IDV* 를 Extract(msk,∙) 오라클에 질의하지 않았으며, (IDS*,IDV*,m*)를 Sign(∙,ski ,∙,params,∙) 오라클에 질의하지 않았다. IDS*와 IDV*의 H0 오라클에 대한 반환값이 (대응되는 순서와는 무관하게) A1과 A2가 아니라면, 챌린저는 여기서 게임을 종료한다. 그렇지 않다면 챌린저는 H2 오라클에 저장된 모든 정보들을 확인하여 bi = b*인 경우의 모든 hi들을 검색해오고, 이렇게 검색된 모든 hi에 대해서 Θ*-hi = vSi ,Vi (mod q)를 계산하고, 이렇게 계산된 vSi ,Vi중에서 (A0||A1||A2)∙vSi ,Vi= H1(b*,t*) (mod q) 또는 (A0||A2||A1)∙vSi ,Vi= H1(b* ,t*) (mod q)와 \(\left\|v_{S_{v}, V_{i}}\right\| \leq s \sqrt{3 m}\)를 만족하는 것을 찾은 후, 이것을 v*라고 둔다. 랜덤 오라클의 특성상 이것을 만족하는 것은 반드시 존재한다. 그러고 난 후, 챌린저는 H1 오라클에 저장된 모든 정보들을 확인하여 bi = b*이고 ti = t *인 경우의 vi를 검색해온다. 역시 랜덤 오라클의 특성상 이것을 만족하는 것은 반드시 존재한다. 위에서 (A0||A1||A2)∙v* = H1(b* ,t* ) (mod q)인 경우 (A0||A1||A2)∙v*= (A0||A1||A2)∙vi (mod q)를 만족하며, 따라서 (A0||A1||A2)∙(v* -vi)= 0 (mod q)을 만족한다. 위에서 (A0||A2||A1)∙v* = H1(b* ,t* )(mod q)인 경우도 간단한 치환만으로 동일한 결과를 얻을 수 있다. 그러면 챌린저는 SIS n,3m,q,β 문제의 입력 A = (A0||A1||A2)에 대한 출력으로 (v* -vi)를 출력한다.
위의 게임에서 게임이 중간에 종료되는 경우는 Extract 오라클, Sign 오라클, 그리고 마지막 단계에서 존재한다. 마지막 단계에서 IDS*와 IDV*의 H0 오라클에 대한 반환값이 (대응되는 순서와는 무관하게) A1과 A2라면, Extract 오라클과 Sign 오라클에서 게임이 중간에 종료되는 경우는 발생하지 않는다. 따라서 우리는 마지막 단계에서 발생할 확률만을 고려한다. 마지막 단계에서 게임이 종료되지 않고 진행될 확률은 최소한 \(\frac{2}{q_{H_{0}}^{2}-q_{H_{0}}}-\operatorname{negl}(n)\)이며, 제안하는 기법의 위조 불가능성에 대한 공격자의 공격 성공 확률을 ε라고 할 때, 챌린저는 최소한 \(\frac{2 \epsilon}{q_{H_{0}}^{2}-q_{H_{0}}}-\operatorname{negl}(n)\)의 확률로 SISn,3m,q,β 문제를 풀 수 있다.
세 번째로, 제안하는 기법이 비전이성을 만족하는 지를 분석한다.
정리 3. [비전이성] 제안하는 기법은 비전이성을 만족한다.
증명. 제안하는 기법에서 서명자 S가 서명 σ를 생성하는 Sign(IDS,skS ,IDV,params,b) 알고리즘과 지정된 검증자 V가 시뮬레이션된 서명 σ를 생성하는 Simul(IDV,skV,IDS,params,b) 알고리즘의 차이는 오직 3번째 단계에서만 존재한다. 3번째 단계에서 두 알고리즘들 모두 TS,V∈Z3m × 3m를 생성하기 위해 트랩도어 확장 알고리즘 ExtBasis (TS,A0||H0(IDS)||H0(IDV))와 ExtBasis (TV,A0||H0(IDS)||H0(IDV))를 각각 수행한다. ExtBasis(TS ,A0||H0(IDS)||H0(IDV)) 알고리즘을 수행하여 생성된 TS,V는 ||T̃S,V|| = ||T̃S || = ||T̃0||를 만족하며, ExtBasis(TV,A0||H0(IDS)||H0(IDV)) 알고리즘을 수행하여 생성된 TS,V는 ||T̃S,V|| = ||T̃V|| = ||T̃0||를 만족한다. 각각의 알고리즘들을 통해 생성된 TS,V는 모두 A⊥(A0||H0(IDS)||H0(IDV))의 기저이며, 각각의 알고리즘을 통해 생성된 TS,V는 모두 ||T̃S,V|| = ||T̃0||를 만족하기 때문에 두 알고리즘들 모두 4번째 단계에서 가우시안 샘플링 알고리즘 SampleD (A0||H0(IDS)||H0(IDV),TS,V,H1(b,t),s)를 사용하여 동일한 분포로부터 vS,V∈Z3m를 샘플링할 수 있다. vS,V 를 샘플링하는 과정을 제외하고는 Sign (IDS ,skS,IDV,params,b) 알고리즘과 Simul (IDV,skV,IDS,params,b) 알고리즘이 완전히 동일하며, 따라서 서명자 S가 Sign(IDS ,skS ,IDV,params,b) 알고리즘을 사용하여 생성한 서명 σ와 지정된 검증자 V 가 Simul(IDV,skV,IDS,params,b) 알고리즘을 사용하여 생성한 시뮬레이션된 서명 σ를 서로 구별하는 것은 불가능하다.
마지막으로, 제안하는 기법이 서명자의 프라이버시를 만족하는지를 분석한다.
정리 4. [서명자의 프라이버시] LWE 문제가 어렵다면, 제안하는 기법은 서명자의 프라이버시를 만족한다.
증명. 제안하는 기법에서 서명 σ = {Θ,r,t}을 생성하기 위해 Sign(IDS ,skS ,IDV,params,b) 알고리즘에서 사용되는 r = (A0||H0(IDV))T∙r′+x (mod q)은 LWE 문제의 입력 형태와 동일하다. 다시 말하면, r은 LWE 문제의 어려움에 기반을 두고 있는 형태이기 때문에 지정된 검증자 V의 비밀키 skV = TV를 모르는 어떤 누구도 r로부터 r′을 계산해낼 수 없다. r로부터 r′을 계산해내지 못한다면, 당연히 vΘ-H2(b,r′)= vS,V (mod q) 로부터 vS,V를 계산해낼 수 없게 된다. 따라서 r로부터 r′을 계산해낼 수 있는 지정된 검증자 V를 제외하고는 어떤 누구도 서명 σ = {Θ,r,t}가 어떤 서명자에 의해 생성된 서명인지를 알아낼 수 없다.
V. 결론
본 논문에서 우리는 래티스에서 ID 기반의 강한 지정된 검증자 서명 기법을 최초로 제안하였다. 우리가 제안한 기법은 래티스에서 정의된 SIS 문제와 LWE 문제에 기반을 두어 설계되었으며, 랜덤 오라클 모델에서 안전성이 증명되었다.
* 이 논문은 2012년도 정부(교육과학기술부)의 재원으로 한 국연구재단의 기초연구사업 지원을 받아 수행된 것임 (2012R1A1A3005550)
References
- M. Jakobsson, K. Sako, and R. Impagliazzo, "Designated verifier proofs and their applications," Advances in Cryptology, EUROCRYPT '96, LNCS 1070, pp. 143-154, May 1996.
- H. Lipmaa, G. Wang, and F. Bao, "Designated verifier signature schemes: attacks, new security notions and a new construction," Proceedings of the 32nd International Colloquium on Automata, Languages and Programming, LNCS 3580, pp. 459-471, Jul. 2005.
- Y. Li, W. Susilo, Y. Mu, and D. Pei, "Designated verifier signature: definition, framework and new constructions," Proceedings of the 4th International Conference on Ubiquitous Intelligence and Computing, LNCS 4611, pp. 1191-1200, Jul. 2007.
- S. Saeednia, S. Kremer, and O. Markowitch, "An efficient strong designated verifier signature scheme," Proceedings of the 6th Annual International Conference on Information Security and Cryptology, LNCS 2971, pp. 40-54, Nov. 2003.
- 구영주, 천지영, 최규영, 이동훈, "인증서가 없는 강한 지정된 검증자 서명기법," 정보보호학회 논문지, 18(6(A)), pp. 27-37, 2008년 12월.
- Q. Huang, G. Yang, D.S. Wong, and W. Susilo, "Efficient strong designated verifier signature schemes without random oracle or with non-delegatability," The International Journal of Information Security, vol. 10, no. 6, pp. 373-385, Aug. 2011. https://doi.org/10.1007/s10207-011-0146-1
- H. Tian, X. Chen, Z. Jiang, and Y. Du, "Non-delegatable strong designated verifier signature on elliptic curves," Proceedings of the 14th Annual International Conference on Information Security and Cryptology, LNCS 7259, pp. 219-234, Dec. 2012.
- F. Wang, Y. Hu, and B. Wang, "Lattice- based strong designate verifier signature and its applications," Malaysian Journal of Computer Science, vol. 25, no. 1, pp. 11-22, Jan. 2012.
- W. Susilo, F. Zhang, and Y. Mu, "Identity-based strong designated verifier signature schemes," Proceedings of the 9th Australasian Conference on Information Security and Privacy, LNCS 3108, pp. 313-324, Jul. 2004.
- A. Shamir, "Identity-base cryptosystems and signature schemes," Advances in Cryptology, CRYPTO '84, LNCS 196, pp. 47-53, Aug. 1984.
- F. Zhang, R. Safavi-Naini, W. Susilo, "ID-based chameleon hashes from bilinear pairings," IACR ePrint 2003-208, Sep. 2003.
- G. Ateniese and B. Medeiros, "Identity- based chameleon hash and applications," Proceedings of the 8th International Conference on Financial Cryptography, LNCS 3110, pp. 164-180, Feb. 2004.
- D. Cash, D. Hofheinz, E. Kiltz, and C. Peikert, "Bonsai trees, or how to delegate a lattice basis," Advances in Cryptology, EUROCRYPT '10, LNCS 6110, pp. 523-552, Jun. 2010.
- O. Regev, "On lattices, learning with errors, random linear codes, and cryptography," Journal of the ACM, vol. 56, no. 6, pp. 34:1-34:40, Sep. 2009.
- C. Peikert and A. Rosen, "Efficient collision-resistant hashing from worst-case assumptions on cyclic lattices," Proceedings of the 3rd Theory of Cryptography Conference, LNCS 3876, pp. 145-166, Mar. 2006.
- D. Micciancio and O. Regev, "Worst-case to average-case reductions based on Gaussian measures," SIAM Journal on Computing, vol. 37, no. 1, pp. 267-302, Apr. 2007. https://doi.org/10.1137/S0097539705447360
- C. Gentry, C. Peikert, and V. Vaikuntanathan, "Trapdoors for hard lattices and new cryptographic constructions," Proceedings of the 40th Annual ACM Symposium on Theory of Computing, pp. 197-206, May 2008.
- M. Ajtai, "Generating hard instances of lattice problems," Proceedings of the 28th Annual ACM Symposium on the Theory of Computing, pp. 99-108, May 1996.
- M. Ajtai, "Generating hard instances of the short basis problem," Proceedings of the 26th International Colloquium on Automata, Languages and Programming, LNCS 1644, pp. 1-9, Jul. 1999.
- J. Alwen and C. Peikert, "Generating shorter bases for hard random lattice," Proceedings of the 26th International Symposium on Theoretical Aspects of Computer Science, pp. 75-86, Feb. 2009.