Ⅰ. 서론
1.1 배경
전자 서명은 현대암호의 가장 근본적이고 유용한창조 가운데 하나이다. Diffie-Hellman 논문"에서 트랩도어 (trap-door) 함수 모델에 근거한 공개키암호 시스템을 통하여 전자서명이 가능함이 알려진 이후로 다양한 서명 스킴들이 제안되어져 왔다. 전자서명 스킴은 이전에 생성했던 비밀키와 공개키를 가진 사용자가 주어진 메시지에 대해 전자서명을 생성하도록 허락해 준다. 사용자의 공개키를 알고 있는 어느 누구도 서명을 확인할 수 있는 반면 비밀키에 대한 지식 없이 사용자의 서명을 위조하는 것(즉, 이 사용자에 의해 이전에 서명되지 않은 메시지에서 명을 생성하는 것)은 계산적으로 불가능하다.
일반적으로 전자서명은 사용자의 서명 능력에 따라 두 가지 형태로 분류되어진다. 첫 번째 형태의 스킴에서 사용자는 서명 능력에 어떤 제한도 없다. RSA시스템(2)이 최초로 그런 형태로 구현되어진 스킴이다. 두 번째 형태는 생성될 서명의 횟수에 제한이 있는 경우이다. 이런 형태의 서명 스킴에서는 일단 서명의 스킴이 설정되어진 후 서명자는 단지 정해진 횟수인 c번의 서명만 할 수 있다. 이런 형태의 전자서명 스킴의 예로는 일회용 전자서명(新)의 일반화된 스킴을 들 수 있다. 일회용 전자서명은 최대 하나의 메시지만 서명할 수 있는 전자서명 스킴이다. 만일 그렇지 않다면 서명은 위조될 수 있다. 일회용 전자서명의 예로는 Merkle의 일회용 전자서명과 Goldwasser, Micali, 그리고 Riv est 등이 제안한 일회용 전자서명⑻등이 있다. 전자는 충돌 회피 해쉬 함수에 기반하고 있으며 후자는 claw-free permutation의 쌍에 기반하고 있다. 이 일회용 전자서명 스킴들은 인증 트리(authentication tree) 와 결합되어 다중 서명을 할 수 있는 서명 스킴으로 구성될 수 있다.
1.1 연구의 동기
여기서 우리는 서명 능력에 제한이 있는 전자서명스킴들을 c-times 전자서명이라 부르기로 한다. ctimes 전자서명은 서명자의 서명 능력이 제한되어져야 하는 상황에 이용되어 진다. 예를「들어 그룹 서명 스킴⑸에서 그룹의 구성원은 그룹 내의 그의 직위 또는 위치에 따라 어떤 정해진 횟수의 서명만 생성하도록 허락되어진다. 이것은 매우 자연스러운 제한이다. 그룹은 계층적인 구조로 구성되어지며 높은 위치의 구성원은 그룹에 대해 낮은 위치의 구성원보다 더 많은 대표성을 가지기 때문이다. 다른 예로는 대리 서명 스킴⑹을 생각해 볼 수 있다. 대리 서명이란 본래의 서명자가 그의 서명 능력을 어떤 대리 서명자에게 위임하는 전자서명 스킴이다. 대리 서명자는 본래의 서명자를 대신하여 서명을 생성한다. 이 경우 본래의 서명자는 제한된 서명 능력을 위임함으로서 대리 서명자를 통제하고 싶을 것이다. c-times 전자서명 스킴은 일상적인 전자서명 시스템을 유지시키면서 서명 능력의 일시적인 제한을 위해서도 사용 가능하다. 이사회나 법원이 불법적인 행동으로 의심받는 일반 서명자의 서명 능력을 제한시킬 필요가 있는 경우 일상적인 전자서명 스킴을 임시적으로 c-times 전자서명 스킴으로 변환시킬 것이다. 만일 사용자가 무죄인 것이 증명되어지면 그 사용자는 제한이 철회됨으로써 예전의 서명 시스템을 다시 사용하도록 허락되어 진다. c-times 전자서명 스킴은 희소성 또는 제한의 가치가 필요한 다양한 상황에 응용되어진다.
본 논문에서는 일반적인 일 방향 함수에 근거한 유한 번 사용 가능한 전자서명 스킴 이외에 DSA 시스템과 같은 트랩도어 일 방향 함수에 근거한 스킴들을 살펴본다. 더욱 폭넓은 응용을 위해 다양한 안전성의 가정(인수분해 문제(2) 또는 이산 대수 문제⑺)에 기반하는 스킴의 연구가 필요할 것이다.
1.3 논문에서 제시한 결과
본 논문의 목적은 유한 번 사용가능한 전자서명스킴의 개념에 대해 이야기하는 것이다. 본 논문은 우선 일회용 전자서명의 일반화된 경우를 포함하는 c-times 전자서명의 형식적인 정의들과 새로운 안전성 모델에 관해 기술한다. c-times 전자서명의 안전성 모델에서 새로운 형태의 공격모델, CATK7\ 요구되어진다. 이 스킴에서 공격자는 단지 c 또는 그 이하의 유효한 서명 값들만 이용하도록 허락되어진다. 이것은 보통의 공격 모델과는 매우 다른 형태이다. 즉, 주어진 스킴의 보안 상수 々에 관해 다항식 (polynomial)번의 질문을 허용하는 일반적인 모델에서와는 다르게 미리 정해진 고정된 상수 c번의 질문만을 허용하므로 질문 횟수에 상수번의 제한이 있는 제한된 공격자 모델이 필요하게 된다.
또한, 본 논문에서는 보통의 전자서명을 c-times 전자서명으로 변환시키는 일반적인 방법을 제시한다. 이 방법은 보통의 전자서명과 증명 가능한 (c + 1. c+1)-비밀 분산 기법의 합성이다. 이 방법은 제 3 의 신뢰기관을 요구하지 않는다. 다시 말해, 서명자가 c + 1 번 또는 그 이상의 서명을 생성하면 서명자의 비밀키가 노출되어 매우 큰 잠재적 손실에 직면하게 되는 자체적으로 강화된(self-enforcing) 서명 스킴이므로 서명자는 c+1 번 또는 그 이상의 서명을 하지 못하게 된다.
마지막으로, 본 논문에서는 c-times 전자서명 스킴의 특정한 예로 DSA(Digital signature standard) 와 Feldman의 증명 가능한 (""-비밀 분산기법에 기반한 를 제시한다.
1.4 논문의 구성
본 논문의 구성은 다음과 같다. 2장에서는 c-times 전자서명을 정의하고 안전성에 관한 새로운 공격모델을 기술한다. 3장에서는 증명 가능한 (£, *)-비밀분산 기법을 형식적으로 기술한다. 4장에서는 c-times 전자서명에 관한 일반적인 구성을 제시하고 이의 안전성을 제시한다. 5장에서는 DSA와 Feldman의 증명 7]능한 0, 如)-비밀분산 기법에 기반한 c-times 전자서명의 특정한 예를 제시한다. 그리고 5장에서는 결론을 내린다.
Ⅱ. 정의
여기서는 c-times 전자서명의 개념을 형식적으로 기술한다. 다음 정의 중 일부분에 대해서는 세부적으로 Glodwasser, Micali, Rivest가 제시한 논문⑻을 참조하도록 한다.
2.1 기호
- k-rNe 집합 N으로부터 원소 如이 임의로(randomly) 선택되어짐을 나타낸다.
- 만일 모든 c>0에 대해。(如)<1/丄을 만족하는 mc>0가 존재한다면 함수 e(x)은 무시할 수 있는 양이다 라고 말한다.
2.2 전자서명
일반적으로. 전자서명 스킴 Se 3가지 다항식 시간 알고리즘인 키 생성 알고리즘, 서명생성과 서명 확인 알고리즘에 의하여 정의된다.
키 생성 알고리즘 KG는 입력으로 1*( 就는 보안 상수)을 받고 키 쌍 (欧幼)을 출력하는 임의성을 갖는 알고리즘이다. 여기서 疏는 서명 생성을 위한 비밀키이고 /弘는 서명 확인을 위한 공개키이다.
서명 생성 알고리즘 Sig는 비밀키 疏와 메시지 m을 입력으로 받아 서명。를 생성하는 임의성을 갖는 알고리즘이다. 메시지 醇은 관련된 메시지 공간 M에 속한다.
서명확인 알고리즘 7次은 서명 값 s와 공개키 pk를 입력으로 받아 1 또는 0을 되돌려준다. 1을 결과값으로 얻는 경우 서명 s는 메시지 0에 대해 유효하다고 얘기한다.
서명 스킴의 안전성 정의는〔8〕의 정의를 이용하기로 한다. 여기서의 안전성 목적은 위조 불가능성이며 S由로 나타낸다. 공격 모델은 선택 메시지 공격이며 CMS로 나타낸다. 공격자 F는 서명생성 알고리즘에 대한 오라클 접근을 적합하게 하도록 허용되어진다. 즉 적합하게 선택된 메시지에 대해 오라클 질문을 할 수 있도록 허용된다. 서명 스킴 S을 깨는 공격자의 이점 (advantage) Ada 尊。耕은 이전에 허용된 오라클 질문과 같지 않은 메시지에 대해 유효한 서명을 얻을 확률로 정의된다. 만일 보안 상수 »에 대해 다항식 시간의 운영 시간을 갖는 모든 공격자 f에 대해 4㎛잉事冲가 무시할 수 있는 양이라면 전자 서명 스킴은 적합하게 선택된 메시지 공격에 대해 안전하다고 한다.
2.3 c-times 전자서명
우선, c-times 전자서명의 개념을 형식적으로 정의하기 전에 '어떻게 서명자의 서명 능력을 제한시킬 수 있는가'에 관해 논의해 보자. 사실상 이 개념은 서명의 횟수가 증가함에 따라서 서명 스킴의 생명이 줄어든다는 의미에서 음성적(negative or maximal) 임계 기법이 된다. 특정한 횟수가 스킴의 생사에 관한 임계점이 된다.
이것을 실현하는 방법에는 여러 가지가 있다. 첫째, 제 3의 신뢰기관을 이용하는 방법이다. (공개키 인증서를 이용하는 방법을 포함할 수 있다.) 둘째, 자체적으로 강화된(Self-enforcing) 특성을 갖는 스킴을 구성하는 방법이다. 위의 첫 번째 방법은 쉽게 서명 횟수의 제한을 가할 수 있는 방법이다. 사실상 유효한 서명의 횟수에 대한 합법적인 한계가 있는 상황에서 초과된 서명 값들 그 자체는 제한이 위반되었다는 증거를 제시해 준다. 하지만 보다 엄격히 서명 능력을 제한하기 위하여 초과된 서명행위에 대한 어떤 '벌칙'이 필요해지며 본 논문에서는 정책적인 면이 강한 첫 번째 방법 이외에 자체적으로 강화된 스킴을 구성하여 위의 목적을 기술적으로 실현하는 방법에 대해 생각해 보기로 한다.
이런 의미에서 다음에서는 두 번째 방법의 구성을 고려해 보자. 자체적으로 강화된 서명 스킴을 구성하기 위해서는 최대 임계 기법을 스킴의 안전성과 연계하여 구성할 수 있다. 즉, 특정한 횟수의 서명 후에 주어진 서명 스킴의 안전성을 사라지게 하는 것이다. 다시 말해, 서명 위조가 가능해진다는 뜻이다. 서명 위조는 서명자에게 불법적인 행위(서명 횟수의 위반)어】 대해 매우 큰 손실을 안겨 줄 잠재적인 벌칙을 제공해 주게 되므로 서명 능력에 제한을 주는 방법으로 적합하게 쓰일 수 있게 된다.
이처럼, 서명 능력을 제한시키기 위해 c-times 서명 스킴은 서명 위조 알고리즘을 자체적으로 포함하고 있어야 한다. 서명 위조 알고리즘은 공개된 c + 1개 이상의 서명 값들, 이에 대응하는 메시지들과 공개키를 입력으로 받아 합법적으로 서명을 위조할 수 있다.
다음은 c-times 전자서명을 형식적으로 기술한다.
[정의 1] c-times 전자 서명 스킴
c-times 전자 서명 스킴 3은 4가지 알고리즘의 쌍이다; CS=(CKG, cSig, cVer, Forge c+l).
- 키 생성 알고리즘. CKG.
키 생성 알고리즘 는 입력으로 1* 以는 보안 상수)을 받고 키 쌍 (就, 扶)을 출력하는 임의성 (random)을 갖는 다항식 시간 알고리즘이다. 여기서 sK는 서명 생성을 위한 비밀키이고 弘는 서명 확인을 위한 공개키이다.
- 서명 생성 알고리즘. cSig.
서명 생성 알고리즘 ° Sig는 비밀키 展와 메시지 m 을 입력으로 받아 서명 勺를 생성하는 임의성을 갖는 다항식 시간 알고리즘이다. 메시지 me 관련된 메시지 공간 M에 속하고 °g{0, l广이다.
- 서명 확인 알고리즘. cVer.
서명확인 알고리즘 은 서명 값。0와 공개키 pk을 입력으로 받아 1 또는 0을 되돌려 주는 결정성 (deterministic)을 갖는 다항식 시간 알고리즘이다. 1을 결과 값으로 얻는 경우 서명 는 메시지 m에 대해 유효하다고 얘기한다.
- 서명 위조 알고리즘. Fcwge°+1.
c + l개의 유효한 전자서명 cOi, 이에 대응하는 메시지들 m, , 그리고 공개키 怵를 입력으로 받아 이전에 서명되지 않은 메시지 0’에 대해 새로운 서명을 七'을 얻는 결정성을 갖는 다항식 시간 알고리즘이다. 즉,
#
어떤 모델에서는 위의 서명 위조 알고리즘이 확장된 모습으로 다루어질 필요가 있는 경우도 있다. 예를 들어, 서명 위조 알고리즘은 다른 서명 스킴에 대한 위조 알고리즘으로 대체되어 사용될 수 있을 것이다. 예를 들어 대리 서명 스킴에서 대리 서명자는 대리 서명을 생성할 때마다 자신의 또 다른 고유한 비밀키 값을 서명 생성과 함께 쉐어의 일부분으로 분배하는 경우이다. 이 경우 대리 서명자의 능력 제한은 매우 강하게 작용한다.
[정의 2] c-times 전자서명의 완전성.
만일 V (s九佻)丘 °G(1*), meM,
그리고 #대하여,
#가 매우 높은 확률로 성공적인 서명 위조를 한다면. c-times 전자서명 스킴 切는 완전하다고 얘기한다.
임계 전자 서명 스킴⑼ (Threshold signature scheme) 에서는 기반이 되는 서명 스킴에 임계 기법이 병렬적으로 적용되어지는데 반하여 c-times 전자서명에서는 임계기법이 직렬적으로 적용된다. 임계 전자 서명이란 Boyd'μ Desmedt[n!, 그리고 Desmedt 와 Frankel'(2)에 의하여 소개되어 임계암호론으로 알려진 일반적인 접근의한 부분이다. 임계 서명 스킴에서 비밀키는 "명의 참가자에게 분산되어져 있다. 주어진 메시지에 대해 유효한 서명을 생성하기 위해서는 병렬적으로 각 참가자가 그 메시지에 대한 자신의 서명을 생성한 다음 이 후에 완전한 서명이 되도록 개별적인 서명 조각이 결합되어진다. 그러나 c-times 서명 스킴에서는 서명 작업이 직렬적인 모습으로 c번 이루어지게 된다.
(그림 1) 전자 서명의 임계성에 대한 일반적인 개념
2.4 c-times 전자서명의 안전성
일반적으로 서명 스킴의 안전성은 두 가지에 관한 문제가 중점적으로 논의된다: 안전성 목적(security goal)과 공격 모델(attack model). 본 논문에서 안전성 목적은 가장 일반적인 개념인 서명 위조 불가능성을 다루기로 하고 이것을 UF로 나타내기로 약속한다. 보통의 전자 서명 스킴에서 보안 상수에 관한 다항식에 의해 제한된 개수의 오라클 질문을 허용하는 공격 모델과는 다르게, c-times 전자 서명 스킴의 공격 모델은 공격자가 서명 오라클에게 미리 정해진 횟수의 질문만을 하도록 허용함으로써 이용할 수 있는 정보의 양에 제한이 있는 모델을 구성하게 된다. 예를 들어, 알려진 메시지 공격에 있어서 미리 정해진 수 c개 이하의 메시지들의 서명 값들이 공격자에게 주어진다. 또한 (적합한) 선택 메시지 공격에서는 공격자가 서명 오라클에 많아야 c번의 질문만을 할 수 있도록 허용되어 진다. 이처럼 c-time 전자서명에서는 새로운 공격 모델인 제한된 공격 모델이 필요함을 알 수 있다. 여기서는 이 공격 모델을 °ATK으로 나타내기로 한다. 보통의 ATK의 관점에서 안전한 서명 스킴은 MTK에 대해서도 안전함을 쉽게 알 수 있다.
사실, c-times 전자서명에서 c값은 주어진 시스템의 안전성을 위하여 기본적으로 주어진 스킴의 보안 상수에 관한 다항식에 의하여 제한되어야 한다. 이 후에서는 c에 대한 이런 가정을 계속 사용하기로 약속한다.
다음에서는 c~times 전자서명 스킴 °S= (CKG, cSig, 榕e°+D에 대한 공격에서 공격자를 운영하는 실험을 형식적으로 나타낸다.
#
만일 °。) = 1 이고 m'a] 이전의 오라클 질문과 같지 않으면 1을 되돌려주고 아니면 0을 되돌려 준다.
F 는 서명 오라클 ° Sig 从 . )에 대해 많아야 c 번까지 접근할 수 있는 공격자이다. °S의 공격에 대한공격자의 '이점은 다음과 같이 보안상수 々에 관한 함수 Ad〃로 정의된다.
#
위의 식에서 확률 값은 실험에서 만들어진 모든 임의의 선택에 대해 얻어진 값이다.
만일 보안 상수 在에 관해 운영시간이 다항식인 모든 공격자에 대해 함수 A出 竇f'g您)가 무시할 수 있는 양 이라면 c-times 전자 서명 스킴 朽는 UF- CCMA 의 관점에서 안전하다고 말한다.
Ⅲ. 증명 가능한 (t,n)-비밀분산 기법
(t, 如)-비밀분산 기법은 비밀을 분배하기 원하는 비밀 분배자와 이 비밀 값의 쉐어 (share)를 받는 "명의 쉐어 소유자들로 구성된다. 그리고 비밀 값의 복원은 이후 그들 가운데 단지 t 명 이상의 그룹만이 할 수 있도록 허락되어진다. 증명 가능한 비밀분산(VSS) 기법은 부정한 비밀 분배자의 문제를 극복하기 위해서 Chor, Goldwasser 그리고 Micali에 의해 최초로 제안되었다「(3) VSS 스킴에서 쉐어의 소유자들은 자신의 쉐어에 대한 유효성을 증명할 수 있다. 만일쉐어의 소유자들이 비밀 분배자 또는 서로의 상호작용 없이 그들의 쉐어의 유효성을 증명할 수 있다면 주어진 스킴 ESS°] 비상호작용(non-interactive) 성질이 있는 스킴이라고 말한다.
3.1 증명 가능한 (t,n)-비밀분산 기법
U를 쉐어 소유자들의 집합 {, 七.......이라고 하자. 그리고 "를 다음과 같이 정의된 접근 구조라가하자.
#
여기서 厶는 (1, .… 如}의한 부분집합이며 A의 원소의 개수는 t 이상이다. 따라서 위의 접근구조로부터 (。, 如)-임계 기법의 특성상) t 명 이상의 쉐어 소유자들 의 모임에 의해서만 비밀 값에 대한 접근, 즉 비밀 값의 복구가 허용됨을 알 수 있다. 증명 가능한 (山)-비밀분산 기법 (IM/M") 은 4개의 다항식 시간 알고리즘의 쌍 (PG, Share, Verify, Recover)구성된다.
- 공개 및 비밀 파라미터 생성 알고리즘.
PG는 입력으로 1'(人는 보안 상수)을 받고 공개 및 비밀 파라미터 (sec, 也를 출력하는 임의성(random)을 갖는 다항식 시간 알고리즘이다. 여기서 sec는 참가자들에게 분배될 비밀값이고 加는 쉐어의 정당성을 확인하기 위한 공개 파라미터이다.
- 쉐어 생성 및 분배 알고리즘.
Shared 비밀값 sec를 입력으로 받아 外개의 쉐어값들 을 생성하는 임의성을 갖는 다항식 시간 알고리즘이다. 세부적으로 표현하면 V/ (1 r{0, 1} *, s, *—s 膈re(sec, ") 이다. 앞으로 한 개의 쉐어를 계산하는 표현은 다음과 같이 s f—share(sec, u) 간단히 표현하기로 한다. (경우에 따라서는 "값이 s, 에 포함되어진다.)
이 후. 비밀 분배자는 각 쉐어를 "명의 참가자들 巳에게 안전하게 분배한다.
- 쉐어 검증 알고리즘.
Verifye 쉐어 값 s, 와 공개 파라미터 力, 을 입력으로 받아 참 또는 '거짓'을 되돌려 주는 결정성 (deterministic)을 갖는 다항식 시간 알고리즘이다. '참'을 결과 값으로 얻는 경우 쉐어 s, 는 유효하다고 얘기한다.
- 비밀 값 복구 알고리즘.
Recovere c + 1 개의 유효한 쉐어들의 모임을 입력으로 받아 최초의 비밀값 sec를 복구해주는 결정성을 갖는 다항식 시간 알고리즘이다.
3.2 증명 가능한 (t,n)-비밀분산 기법의 안전성
여기서는 증명 가능한 3, 沥-비밀분산 기법의 안전성에 대해 기술한다.
만일 ("勿-비밀분산 기법이 다음의 성질들을 만족하면 각각 정확성과 증명가능성을 갖는다고 말한다.
- (정확성) S膈能(sec) = (si.......s”)이면
VZeX(er0, FeryS>(s, ) = true 이다.
- (증명가능성) vxer, : V心.
Verify {s , ) = true 이 면
Recovere, (s— sec 이다.
3, 耸)-비밀분산 기법이 안전하다는 뜻은, 직관적으로, \/4'击「, 에 대해 집합 {sJMtI'}으로부터 비밀 값을 복구하는 것은 계산적으로 불가능해야 함을 의미한다. 다시 말해. 접근 구조에 의해 정의된 정당한 쉐어의 모임에 의해서만 비밀 값이 복구되어진다는 의미이다. 이런 비밀값 복구 불가능에 대한 안전성 목적을 URec으로 나타내기로 한다. 여기서 다항식 시간 공격자 F는 공개 파라미터 协를 입력으로 받아쉐어 생성 오라클 share(sec, . )에 많아야 — 1 번까지 질문을 할 수 있다. (이것을 CS4(선택 쉐어 공격) 로 나타내기로 한다.) 다시 말해, 공격자는 £-1개의 유효한 쉐어를 얻을 수 있다.
다음에서는 (t, 勿)-비밀분산 기법 (PG, Share, Ver她 Recot所)에 대한 공격 에서 공격 자를 운영하는 실험을 형식적으로 나타낸다.
#
만일 s'= sec 이면 1 을 되돌려주고 아니면 0을 되돌린다.
(5)—VSS의 공격에 대한 공격자의 '이점'은 다음과 같이 보안상수 左에 관한 함수 Ad。로 정의된다.
#
위에서 정의된 확률 값은 실험에서 만들어진 모든 임의의 선택에 대해 얻어진 값이다. 만일 보안 상수 左에 관해 운영 시간이 다항식인 모든 공격 자에 대해 4㎛带江懲.가 무시할 수 있는 양이라면는 URec- Cg 관점에서 안전하다고 말한다.
Ⅳ. c-times 전자서명의 일반적인 구성
여기서는 주어진 임의의 전자서명 스킴을 c-times 전자서명으로 변환시키는 방법을 살펴보기로 한다. 서명자의 능력에 대한 제한을 얻는 방법은. 비형식적으로 말하면, 공개된 서명 값들. 이에 대응되는 메시지들 그리고 공개키에 대해 임계기법을 적용시키는 것이다([그림 2〕참조).
[그림 2〕c-times 전자서명의 구성 방식
본 논문에서 제시할 방법을 구체적으로 말하면, 비밀분산 기법을 메시지에 적용시키는 것이다. 즉, 서명될 메시지는 서명자의 비밀키를 분산시키는 데에 이용되며 따라서 c-times 전자서명 스킴의 서명 값은 주어진 메시지에 대한 서명 값과 비밀키의 쉐어로 구성된 쌍이 된다. 생성된 서명의 횟수의 한계는 주어진 서명 값 내의 비밀 값의 쉐어를 사용하여 俗S의 증명 알고리즘을 통하여 공개적으로 증명되어진다. 서명자가 서명을 생성할 때마다 비밀키의 쉐어 하나가 동시에 생성되며 이것은 서명이 한번 생성되었음을 공개적으로 나타내어 준다. 만일 정해진 수 이상의 유효한 쉐어가 모이면 서명자의 비밀키 정보가 yss 의 복구 알고리즘에 의하여 노출되게 된다.
4.1 일반적인 구성 방법
여기서는 c-times 전자서명 스킴의 일반적인 구성 방법을 제시하고 이의 안전성을 증명한다.
4.1.1 스킴의 구성
먼저, 서명 스킴 S=(G, Sig, Ve分. 랜덤함수 Rm, 그리고 증명가능한 (c+1, c+1)-비밀분산 스킴 VSS = {PG, Share, Verify, Recover)이 주어졌다고 가정하자. c-times 전자서명 스킴 CS=(CKG, cSig, cVer, Forge。")은 다음과 같이 구성할 수 있다.
- 키 생성 알고리즘. CG.
주어진 입력 1 "에 대하여(여기서 为는 보안상수이다. ) , 알고리즘 는 서명 스킴 S의 키 생성 알고리즘 G 을 이용하여 주어진 서명 스킴을 위한 비밀키와 공개키 쌍 (展, 泌)을 생성한다. 그리고 다음에는 비밀분산 스킴 VSS 의 키 생성 알고리즘 FG 를 이용하여 쉐어의 유효성을 검증하는데 필요한 공개파라미터 0Z를 생성하고 비밀값은 비밀키 展로 정의한다. c-times 전자서명의 공개키는 (佻, 初) 이며비밀키는 展이다.
- 서명 생성 알고리즘, cSig.
비밀키 展와 메시지 维을 입력으로 받아 다음과 같이。와 涎를 계산한다.
#
전자서 명 값은 七 =(<?, 湖이다.
- 서명 확인 알고리즘,
공개키 sk. 메시지 m, 그리고 이에 대응하는 서명 b=(<r, W)를 입력으로 받아 다음과 같이 두 가지 알고리즘을 이용하여 유효성을 검증한다. 만일 沥 = 1과 Verify{pp, nt, Ran(, m)) = 1°] 유효한 서명 값이 된다.
- 서명 위조 알고리즘. Forgec+i.
서명 위조 알고리즘은 VSS의 Recover 알고리즘을 이용하여 c+1 개의 유효한 서명 값 °<7= ( <7, W) 들과이에 대응하는 메시지들을 입력으로 받아 비밀키값 展를 계산한다.
#
제시한 c-times 전자서명의 안전성을 위하여, 주어진 메시지 과 쉐어 값 波를 독립적으로 만들기 위하여 랜덤 함수가 필요하다. 일반적으로, 주어진 전자서명이 메시지 해쉬 함수를 사용하는 경우, 이 해쉬 함수는 그 특성상 랜덤 함수의 역할을 하기에중분하다.
쉐어 값을 계산하기 위해 제시한 함수은 메시지의 서명 값이 아닌 메시지에 대한 함수이다. 이것은 주어진 서명 스킴에 의존하지 않으므로 후자가 더 일반적임을 알 수 있다. 그리고, 서명과 쉐어를 동시에 계산할 수 있다.
[정리 1]
위에서 제시한 c-times 전자서명은 정의 2의 완전성을 만족한다.
증명은 직접적이다. 주어진 c+1 개의 서명 값과 이에 대응하는 메시지 m에 대하여 비밀키 企의 유효한 c + 1개의 쉐어들을 얻을 수 있으며 충돌 쌍이 발생할 확률은 매우 작으며 서로 다른 c + 1 개의 쉐어들에 대해 Recwez■알고리즘을 통하여 서명자의 비밀키 sk를 복구할 수 있다.
4.1.2 제시한 c-times 서명스키의 안전성
만일 안전하지 않은 (c+l, c+l)- VSS 또는 랜덤 함수 또는 전자서명 스킴 S가 사용된다면 제시한 스킴이 안전하지 않다는 것은 자명하다. 다음 정리는 5 의 안전성이 이 스킴을 구성하기 위해 주어진 서명 스킴 S. 랜덤 함수 (c + Lc + 1)-VSS의 안전성보다 약하지 않음을 보여준다.
[정리 2]
만일 서명 스킴 S, 랜덤 함수 曲亿 (c + l.c + D-VSS이 안전하다면 위의 제시한 c-times 서명 스킴 'Se 안전하다.
(증명)
증명의 중심 생각은 랜덤 함수의 사용에 있다. 랜덤 오라클 모델하에서 78"함수는 독립적인 랜덤성을 나타내며 이 조건하에서 주어진 스킴의 안전성을 기술한다. 비형식적으로 말하자면, 제시한 c-times 서명 스킴에 대한 서명 위조는 주어진 서명 스킴에 대한 서명 위조 또는 (c + l.c+l)- VSS 안전성을 깨는데 이용될 수 있다. 다음에서는 이 증명에 대해 형식적인 기술을 한다. 증명의 기법은 바로 위에서 언급한 논의와 같이 대우 명제를 이용하기로 한다.
먼저, 공격자 尸가 무시할 수 없을 확률 e으로 °S 의 UF- CCMA 안전성을 깬다고 가정한다. 그리고, 일반성을 잃지 않고. 공격자 尸는 3에 대해 c개의 오라클 질문을 만든다고 가정한다. 를 공격자 F 이 서명 받기 원하는 i (IMzMc)번째 메시지라 하고 (<?, , 成, )를 이 메시지의 서명이라고 하자. 여기서 <7, SigSJt(m , ) 이고 nt i Sharedsk, Ran{mi')') 이다. 0")와 m을 공격자 尸이 출력하는 값이라고 가정한다. 여기서 JlMz'Mc}, (a, 는 에 대응하는 위조된 서명이다. 마지막으로(形{a, IlMzMc} 의 사건을 Forged로 나타내기로 한다. 그러면 공격자 F"이 성공할 확률은 다음과 같음을 알 수 있다.
#
따라서 최소한 위의 확률 가운데 한 개는 e/2 보다 크거나 같다. 다음에서는 첫 번째 확률 값이 e/2보다 크다면 S가 頒-CW1의 관점에서 안전하지 않음을 보이고 반면에 두 번째 확률 값이 e/2보다 크다면 (c+l.c+l)- VSS가 URec- CSA관점에서 안전하지 않음을 보인다.
- 경우 1. Pr(A'succeed/\Forged)e/2.
이 경우에는 주어진 공격자 矿를 이용하여 서명 스킴 S의 안전성을 깨는 공격자 을 구성한다. Fsi느 자체적으로 임의의 비밀 값 X와 공개 파라미터 如를 선택한다. 다음에 F, , 志 F'의 메시지에 대한 질문을 먼저 자신의 서명 오라클 S飢*( . 에게 요청하여 서명 a, 을 받은 후 쉐어 생성 알고리즘을 이용하여 쉐어 값 ""을 생성하여 를 되돌려 줌으로써 E을 시뮬레이트 (simulate)한다. 여기서 주목할 점은 x가 서명 생성키 s為와 다르다는 점이다. 사실, X는 비밀키 就와는 독립적이다. 하지만 이런 환경은 7? 如함수가 랜덤 오라클처럼 행동하는 특성 때문에 공격자 F'의 이점을 감소시키지 않음을 알 수 있다. 공격자 F'이 새로운 메시지 所에 대해 °S에 관한 위조된 서명 七 = (。, 厲을 출력 했을 때 공격자 Fs*은 새로운 메시지 折에 대해 S에 관한 위조된 서명 <7 을 출력하게 된다. 여기서 F”ged의 사건이 발생했다는 사실과。가 서명 스킴 S에 관한 새로운 서명이 된다는 사실과 동치임을 주목하자. 따라서 공격자 八;은 최소한 "2(무시할 수 없는 양) 의확률로 성공하게 되며 이것은 S의 UF-CW1 안전성에 관한 모순을 이끌어 준다.
- 경우 2. Pr(A' succeeds/\eForged)>e/2.
이 경우에는 주어진 공격자 F'를 이용하여 (c + 1. c + l)- VSS의 안전성을 깨는 공격자 /七件를 구성한다. 이 공격자 F/ss는 어떤 c개의 유효한 쉐어에 대해서도 비밀 값을 복구할 수 있다. Fvss는 자체적으로 서명 스킴 S의 임의의 비밀키. 공개키 쌍(s卮以)을 선택한다. 다음에 Fvss는 户'의 메시지 %에 대한 질문을 먼저 자신의 쉐어 생성 오라클 s如花(sec, Ra〃(総■))에게 요청하여 쉐어 값 以을얻고 서명 생성 알고리즘을 이용하여 서명 값을 생성함으로써 시뮬레이트(simulate)한다. 여기서 주목할 점은 비밀 값 X가 서명 생성키 展와 다르다는 점이다. 사실, %는 비밀키 展와는 독립적이다. 하지만 이런 환경은 함수가 랜덤 오라클처럼 행동하는 특성 때문에 공격자 F'의 이점을 감소시키지 않음을 알 수 있다. 공격자 F'이 새로운 메시지 欢에 대해 °S에 관한 위조된 서명 ca={o, nf)을 출력 했을 때 공격자 Fvss는 VSS에 관한 쉐어값 成을 얻게 된다. 이 경우 사건은 川가 이전의 오라클 질문으로 얻은 값들 중에 어떤 必와 같은 경우와 같지 않은 경우로 나누어질 수 있고 전자의 사건을 Equal로 나타내고 후자를 -'Equal으로 나타내기로 하자. 만일 사건 -、Equal 이 일어났을 경우 공격자 Frss는 주어진 공격자 F'의 성공 확률 히2로 비밀값을 복구하게 된다. 반면에 Equal이 일어난 경우 공격자 F「ss는 실패하게 된다. 하지만 이 사건이 발생할 확률, 은 Rm함수의 랜덤성 때문에 c/湼이다. (여기서 人는 (c+l.c+l)- KSS의 보안 상수이다.) c값은 시스템 초기 설정 단계에서 스킴의 안전성을 위해 보안상수에 제한되어지므로 이 값은 무시할 수 있을 정도의 양으로 가정할 수 있고 공격자 Fkss의 성공확률은 e/2-S(무시할 수 없는 양)가 된다. 따라서 이것은 (c+1, c + l)-VSS의 质ebCSA안전성에 관한 모순을 이끌어 준다.
기존의 서명 스킴에 'c-times'의 제한이 사용될 때 마다. 비밀키에 대한 새로운 접근구조가 이용된다. 따라서 'c-times'의 중복 사용은 주어진 전자서명의 안전성을 손상 시키지 않는다.
Ⅴ. c-times 전자서명 스킴의 예
이 장에서는 DSA(DigitaI Signature Standard)'13와 Feldman의 증명 가능한 (£, 如)-비밀분산 기법'⑸에 기반한 c-times 전자서명 스킴을 기술한다.
5.1 Digital Signature Standard(DSS)
Digital Signature Algorithm(DSA)은 미국의 표준 전자서명 알고리즘으로 채택된 ElGamal 전자서명 〔的 기반의 전자서명 스킴이다. 다음에는 DSA 에 대해 간략히 기술한다.
[DSA]
- 시스템 파라미터 : 시스템 구성을 위한 공개 파라미터는 다음과 같다.
(1) t는 크기 如1비트의 소수이다. q는 크기 從 비트의 소수이고 />-1의 약수이다. ( "과 "2는 시스템의 안전성에 관계하는 보안 상수이다. 현재 旳은 1024비트 勿2는 160비트면 안전한 것으로 여겨진다.)
(2) 死 위수 인 의 부분군의 생성원이다.
- 키 생성 알고리즘 :
(1) 서명자의 비밀키 X는 1과 q 사이의 임의의 값이다.
(2) 서명자의 공개키는 y= gx (mod 2)이다.
- 서명 생성 알고리즘 :
(1) 주어진 메시지 m에 대하여 서명자는 난수 kuZ*t를 선택하고 r=((g*) mod />) mod q 과 s= » 'H(折)+ ".) mod g을 계산한다. 여기서 /z는 해쉬 함수를 나타낸다.
(2) 메시지 에 대한 서명은 (r, s)이다.
- 서명 확인 알고리즘 :
(1) 주어진 메시지 WI에 대한 서명 (r, s)은 다음을 검증하여 공개적으로 증명된다.
#
5.2Feldman의 증명 가능한 (t,n)-비밀분산 기법
Feldman의 증명 가능한 0, 轮)-비밀분산 기법은 Shamir의 (" 如)-비밀분산 기법"을 확장한 스킴이다. 다음에서는 顷을 모두 c+1 로 가정한다.
[Feldman의 중명 가능한 (c+ 1, c+ 1)-비밀분산 기법]
- 시스템 파라미터 : 시스템 구성을 위한 공개 파라미터는 다음과 같다.
(1) b는 크기 们비트의 소수이다. q는 크기 如2비트의 소수이고 »-1의 약수이다. ( 们과 如 2는 시스템의 안전성에 관계하는 보안 상수이다. 현재 的은 1024비트 ”2는 160비트면 안전한 것으로 여겨진다.)
(2) * 위수 g인 의 부분군의 생성원이다.
- 시스템 초기화 :
(1) 비밀 값 X는 1과 q 사이의 임의의 값이다.
(2) 비밀 분배자는 임의의 c차 다항식 /(z)을 선택한다.
#
(3) 검증식은 F(z)= ft 이다.
(4) b t= ga, ( OMzVc) 은공개된다.
- 비밀 분배 : 비밀 분배자 F는 참가자 R들에게 비밀값 X의 쉐어 奶 = /(丿)를 보낸다.
- 쉐어의 정당성 확인 : 각 참가자 P;는 쉐어 값이 검증식 g"'=F 侦)을 만족하는지 확인하고 만일 성립하지 않으면 분배자에게 이 사실을 알린다.
- 비밀 복구 : 주어진 정당한 c+l개의 쉐어 값을 통해 c차 다항식 /(z)가 다시 구성되어지며 /(0) = X 을 계산하여 비밀값이 복구되어진다.
주어진 #에 대해,
Lagarnge 교항 다항식을 이용하면
#이다.
비밀값 X에 대해, C 또는 그 이하의 쉐어 값을 아는 공격자는 g*으로부터 얻을 수 있는 정보 이상의 더 많은 정보를 얻지 못함을 쉽게 알 수 있다. Feldman 의 증명 가능한 3, 如)-비밀분산 기법의 구체적인 안전성은〔15〕 를 참조하기로 한다.
5.3 DSA와 Feldman의 (t,n)-VSS에 기반한 c-times 전자서명 스킴
여기서는 DSA와 Feldman의 증명 가능한 (t, n) -비밀분산 기법에 기반한 c-times 전자서명。/加을 제안한다. 키 생성 알고리즘에서 보통의 DSA의 서명 값을 확인하는 공개키 이외에 쉐어를 확인하기 위해 부가적인 공개키 값들이 생성된다. 서명 생성알고리즘은 보통의 DSA 전자서명과 메시지의 해쉬값을 c차 다항식에 넣어 얻은 함수 값을 서명 값으로 출력한다. 사실, 이 함수 값은 Feldman의 증명 가능한 (O0-비밀분산 기법을 통해 얻은 비밀키의 쉐어이고. 이 쉐어 값은 서명이 "1 번" 생성되었음을 나타내어 준다. 합법적인 서명 위조 알고리즘은 Lagarnge 교항 다항식을 이용한 비밀키 복구 알고리즘이 사용된다.
[ CDSA 스킴]
- 시스템 파라미터 : 시스템 구성을 위한 공개 파라미터는 다음과 같다.
(1) p는 크기 旳비트의 소수이다. q는 크기 用2비트의 소수이고 2-1의 약수이다. ( 旳과 如 2는 시스템의 안전성에 관계하는 보안 상수이다. 현재 旳은 1024비트 "2는 160비트면 안전한 것으로 여겨진다.)
(2) * 위수 g인 의 부분군의 생성원이다.
- 키 생성 알고리즘 :
(1) X는 1과 q 사이의 임의의 값으로 서명자의 비밀키이다.
(2) a, (IMzMc)는 1과 q 사이의 임의의 값으로 서명자의 비밀 값이다.
(2) 서명자의 공개키는 y=g* (mod 力)와 bj = ga (mod p) (IMzMc) 이다.
- 서명 생성 알고리즘 :
(1) 주어진 메시지 m에 대하여 서명자는 난수 為mZ;를 선택하고 r=((g*) mod p) mod q과 s= 妒'3(沥+ xr) mod g을 계산한다. 여기서 는 해쉬 함수를 나타낸다.
(2) f(w) = x+ a! w+ a2W2 + ... + a r wc mod q 를 계산한다. 여기서 a/=/z(»z)이다.
(3) 메시지 m에 대한 서명은。=( (r, s), /(w)) 이다.
- 서명 확인 알고리즘 :
(1) 주어진 메시지 彻에 대한 서명 ( (r, s), /(»)) 은 다음을 검증하여 공개적으로 그 유효성이 증명된다.
#
- 서명 위조 알고리즘 :
(1) 주어진 유효한 c+l개의 서명 값에 대해, Lagrange 교항 다항식을 이용하여 서명자의 비밀키 값을 복구한다. 즉,
# 이다.
(2) 비밀키의 복구 후 서명 알고리즘을 사용하면 합법적인 서명 위조를 할 수 있다.
주어진 서명 값의 유효성을 검증하기 위해서는 서명의 확인 단계에서 c개의 베이스를 사용하는 법 지수 승 연산이 필요하다. 이 경우 동시 지수승(simultaneous exponentiation) 연산법을 이용하면 매우 효율적으로 값을 계산할 수 있다.
[따름 정리〕
cDSA는 안전한 btimes 전자서명 스킴이다.
제시한 스킴이 정의 2의 완전성 성질을 만족함은 자명하다. DSA에 사용된 해쉬 함수의 충돌회피 성질을 이용하면 서명자가 주어진 서로 다른 메시지에 대해 같은 해쉬 값을 얻을 확률은 생일역설 원리를 이용하면 많아야 c(c—l)/2g이고 무시할 수 있을 정도의 양이기 때문이다. 랜덤 함수의 역할을 일반적으로 랜덤성을 갖는 것으로 여겨지는 해쉬 함수로 대치하면 4장의 증명 방법을 따르므로 CQS4의 안전성을 보장하게 된다.
Ⅵ. 결론
c-times 전자서명 스킴은 서명자의 능력이 제한되어야 하는 상황에 필요한 유용한 도구이다. 본 논문에서는 서명자가 미리 정해진 횟수의 서명만을 할 수 있는 c-times 전자서명의 형식적인 정의를 하고 이에 대한 새로운 안전성 개념을 제시했다. 이 안전성 모델에서는 일반적인 서명 스킴과는 다르게 공격자가 어떤 정해진 횟수 이상의 오라클 질문을 할 수 없는 제한된 공격능력을 가진다.
c-times 전자서명의 특정한 예로 DSA와 Feldman의 증명 가능한 0, 径)-비밀분산 기법에 기반한 cDSA을 제안하였다. DSA에 근거한 특정한 예를 제시하였지만 기본적인 접근 방법은 이산대수를 이용하는 ElGamal 형태의 전자서명에 적용가능舌! 다.
기존의 일반적인 일 방향 함수에 기반한 일회용 전자서명 또는 이의 다중(multiple) 사용 형태가 효율성에 장점이 있는 반면 본 논문에서 고려한 스킴은 응용성에 중점이 두어졌다. 예를 들어, 이산대수에 기반한 기존의 특정 목적을 달성하는 전자서명에 c-times 규칙을 적용하기 위해 제시된 방법이 이용될 수 있을 것이다.
제시된 스킴에서 앞으로 개선시켜야 할 문제는 서명의 횟수를 나타내는 c 값이 증가함에 따라 공개 키값이 선형적으로 증가한다는 것이다. 효율성을 위해 공개키 확장이 일어나지 않는 스킴의 연구가 필요하다.
References
- IEEE Trans. Info. Theory v.IT-22 no.6 New directions in Cryptgraphy W. Diffie;M.E. Hellman
- communications of the ACM v.21 no.2 A method for obtaining digital signatures and public-key cryptosystem R. L. Rivest;A. Shamir;L. Adleman https://doi.org/10.1145/359340.359342
- Crypto'94, Lecture Notes in Computer Science no.839 Directed acyclic graphs, one-way functions and digital signatures D. Bleichenbacher;U. M. mauer
- Technical Report SRI Intl. CSL 98 Constructing digital signatures from a one-way function L. Lamport
- Advances in Cryptology-EUROCRYPT'91 Proceeding Group Signatures D. Chum
- Proceedings of the 1995 Symposium on Cryptography and Information Security v.B1 no.1 Proxy signature M. Mambo;K. Usuda;E. Okamoto
- Crypto'89, Lecture Notes in Computer Science no.435 Efficient identification and signatures for smart cards C. P. Schnorr
- SIAM Journal of Computing v.17 no.2 A digital signature scheme secure against adaptive chosen-message attacks S. Goldwasser;S. Micali;R. Rivest https://doi.org/10.1137/0217017
- Crypto'95 Lecture Notes in Computer Science no.963 Threshold DSS signatures without trusted party S. Langford
- Cryptography and Coding Digital Multisignayures C. Boyd.;H. Baker(ed.);F. Piper(ed.)
- Crypto'87, Lecture Notes in Computer Science no.293 Society and group oriented crytography: A new concept Y. Desmedt
- Crypto'89, Lecture Notes in Computer Science no.435 Threshold cryptosystem Y. Desmedt;Y. Frankel
- Proceedings of 26th IEEE Symposium on the Foundations of Computer Science(FOCS) Verifiable secret sharing and achieving simultanity in the presence of faults B. Chor;S. Goldwasser;S. Micali;B. Awerbuch
- Digital Signature Standard(DSS) Technical Report 169 National Institute for Standard and Technology
- Proc. 28th IEEE Symp. on Foundations of Comp. Science A Practical Scheme Non-Interactive Verifiable Secret Sharing P. Feldman
- IEEE Trans. Info. Theory v.IT31 A public key cryptosystem and a signature scheme based on discrete logarithms T. ElGamal
- Communications of the ACM How to Share a Secret A. Shamir
- SAC2001, Lecture Notes in Computer Science v.2259 Algorithms for multi-exponentiation B. Moller