KR20000024419A - 트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템및 메시지 전자서명 및 인증 시스템. - Google Patents

트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템및 메시지 전자서명 및 인증 시스템. Download PDF

Info

Publication number
KR20000024419A
KR20000024419A KR1020000006715A KR20000006715A KR20000024419A KR 20000024419 A KR20000024419 A KR 20000024419A KR 1020000006715 A KR1020000006715 A KR 1020000006715A KR 20000006715 A KR20000006715 A KR 20000006715A KR 20000024419 A KR20000024419 A KR 20000024419A
Authority
KR
South Korea
Prior art keywords
len
mod
message
less
value
Prior art date
Application number
KR1020000006715A
Other languages
English (en)
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 KR1020000006715A priority Critical patent/KR20000024419A/ko
Publication of KR20000024419A publication Critical patent/KR20000024419A/ko

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

새로운 trap-door one way function을 발견하고 , 이를 이용한 새로운 암호시스템을 개발하였다 . 이 암호시스템은 암호화,복호화 속도가 기존의 암호시스템에 비해 매우 빨라 매우 효율적인 전자서명을 지원하는 공개키 암호 시스템이다.

Description

트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템 및 메시지 전자서명 및 인증 시스템.{A new public key cryptosystem : BMG}
본 발명은 새로운 일방향 함수를 발견하고, 이 함수를 이용하여 만든 공개키 암호시스템의 일종이다. 이 일방향 함수는 비정역 정수환인 Z/<m>에서 덧셈과 곱셈의 연산을 혼용한 것인데 자세한 내용은 아래와 같다.
비정역인 정수환에서 곱셈연산만을 사용한 암호시스템으로는 RSA라는 암호시스템이 있다. 이 암호시스템은 두 소수 p , q 의 곱인 N 이 공개되어 있더라도 이로부터 p , q를 구하기는 어렵다는 소위, 충분히 큰 정수 N=p*q의 인수분해의 어려움에 그 안전성의 근거를 두고 있다. 하지만 본 발명은 정수환에서 곱셈연산과 덧셈연산을 동시에 사용한 암호시스템이다. 예로서 먼저 N을 2^1000-1 이라 하자. f를 랜덤한 약 2^ 600와 2^601 사이의 임의의 수라고 하자. 그리고 약 2^399와 2^400 사이에 있고 Z/<N>에서 inverse가 존재하는 정수를 g라 하자. 이때 g의 inverse를 G라 하자. 그리고 H = f*G mod N 으로 계산하여 H를 공개했을 때 x*H mod N = y를 만족시키고 x는 2^400 이하이고 y는 2^601 이하인 두 정수의 쌍인 (x,y)를 찾기 어려울 것이라는 추정에 key의 안전성의 근거를 두고 있다. 보기에는 두 암호시스템이 다소 유사한 면도 없진 않으나 암호화 과정 등은 명백히 다르다.
그리고 본 발명은 message 인증 및 전자서명을 지원하는 암호시스템이다. 본 암호시스템을 이용한 message 인증 및 전자서명은 기존의 암호시스템에 비해 매우효율적이다.
가장 널리 쓰이고 있는 공개키 암호시스템은 RSA는 암호화 및 복호화 속도가 느리다는 약점을 가지고 있다. 본 발명은 매우 빠른 암호화,복호화, 전자서명을 지원가능하게 함으로써 RSA의 한계를 극복할 수 있을 것으로 기대한다. 특히 은행과 같이 초당 매우 많은 전자서명이 필요한 시스템에 이 암호가 적합하다. 그리고 나아가 음성 데이터를 실시간으로 암호화,복호화 가능하게 함으로써 인터넷상에서 음성파일과 관련된 전자상거래 시스템에 특히 유용하게 사용될 수 있다.
암호시스템이란 어떤 정보를 특정한 열쇠를 지닌 자 외에는 알아볼 수 없도록 변장시켜 주는 장치로서 비밀키 암호시스템(private key cryptosystem)과 공개키 암호 시스템(public key cryptosystem) 으로 나눈다.
비밀키 암호시스템이란 암호화와 복호화의 key가 동일한 암호시스템을 말한다. 이 시스템은 암/복호화 속도는 매우 빠르나 정보를 비밀리에 서로 교환하고자 하는 사람들은 사전에 key를 공유해야 하므로 이를 위해 별도의 안전한 정보전송 통로가 필요하다는 단점이 있다.
이 시스템은 현대처럼 많은 대중이 서로 정보 교환 시 각각의 비밀키의 공유를 위해 만나거나, 또 다른 정보전송기술을 이용해야 하는 등 비효율적, 비실행적이다. 그리고 이 시스템은 전자서명의 필요시 작성자의 신분등을 증명해 줄 수 없다는 문제점이 있다. 이러한 문제점에 대한 대책으로 1976년 Diffie 와 Hellman 이 공개키(public key) 암호시스템의 개념을 처음으로 소개하였다. 이 암호 시스템은 서로 다른 두 열쇠가 사용되는 데 하나는 공개하고 나머지 하나는 자신만이 비밀로 간직한다. 예를 들면 갑이 을에게 어떤 비밀 정보를 보내고자 할 때 갑은 을의 공개된 key를 보고 그 key를 이용해서 보내고자 하는 정보를 암호화한다. 그리고 암호화된 결과를 일반 전송통로를 통해 을에게 보내면 을은 받은 암호문을 자신만의 비밀키로 복호화한다. 따라서 정보를 공유하고자 하는 사람들이 사전에 key를 공유할 필요가 없으므로 별도의 안전한 전송통로를 필요로 하지 않는다.
가장 널리 쓰이고 있는 공개키 암호시스템인 RSA암호시스템은 정수의 소인수분해문제의 어려움에 근거하고 있는데 안전성은 보장받고 있으나 key생성 시간 , key-size , 암호화,복호화 시간 등 여러 측면에서 매우 비효율적이어서 그 응용에는 한계가 있어왔다. 그리고 1985년 key-size 측면에서는 매우 우수한 공개키 암호시스템은 타원곡선 암호시스템(ECC)가 제안되어 현재 사용 중이나 이 시스템 또한 구현이 어렵고 속도가 느리다는 단점을 지니고 있으며 key생성이 매우 어렵다는 단점을 지니고 있다. 그러나 1996년 비정역 다항식 환에서의 다항식의 연산을 이용한 공개키 암호 시스템인 NTRU 가 제안되었다. 이 시스템은 이전의 공개키 암호시스템보다 속도 및 key 생성시간이 매우 짧다. 그리고 구현이 용이해서 참 효율적인 연산처리가 가능하다. 그러나 확률론적 암호시스템이어서 항상 복호화가 성공적이지는 않으며 전자서명 방법이 비효율적이라는 단점을 지니고 있다. 여기서 제안하고자 하는 BMG암호시스템은 암호화,복호화 원리관점에서만은 NTRU와 유사하지만 암호의 핵심인 trap-door 일방향 함수는 전혀 다르다. 본 발명의 장점은 암호화,복호화, message 인증 및 서명법 등에서는 매우 효율적이라는 점이다.
문자 데이터는 물론 음성데이터조차 실시간으로 송수신 할 수 있는 매우 빠른 암호화, 복호화, 전자서명 가능한 공개키 암호시스템 개발 및 pager등에서 매우 빠른 key 생성기능을 이용한 안전한 정보교환 및 실시간 전자서명 지원 시스템 개발.
[1]. 암호화 ,복호화 과정 상세 설명
(1). Key 생성단계(Key generation)
먼저 약 2^(k1) 인 정수 N을 선택하자.(일반적으로 k1은 200이상이고 N은 충분히 큰 소수를 약수로 가지도록 선택되는 것이 이상적이다. 또한 N은 2^(k1) ± small integer 모양의 소수일 때가 가장 이상적이다. ) 그리고 N과 서로소이면서 2^(k2)이상 2^(k2+1)미만인 랜덤한 정수 P를 선택한다. 그리고 2^(k3)이상 2^(k3+1)미만이고 정수 N , P 와 서로소인 정수 f를 랜덤하게 선택한다.여기서 k1,k2,k3는 대략적으로 k3 ,k2 의 크기 관계를 가진다. 그리고 정수환 Z/<N>에서의 f의 inverse를 구하여F N 이라 하자. 그리고 f*F N mod N = H 라 하자. 이 H 값이 공개키에 해당된다.
그리고 정수환 Z/<P>에서 f 의 inverse를F p 라 하자. 그러면 비밀키는 f , P ,F N ,F p 가 된다.
단, 모든 key들 f ,F N , P ,F p , H 은 아래의 크기를 만족해야 한다. 만약 만족하지 않으면 위 전 과정을 처음부터 반복한다. 이론적으로 위 과정은 5번 이상 반복될 확률이 거의 0에 가깝다.
먼저 len(f) = ( log2 f의 정수부분 ) + 1 이라 정의하자. 암호화할 message를 정수로 표현했을 때 그 정수를 M 이라 하자. 그리고 암호화 과정에서 쓰일 랜덤한 정수를 r 이라 하자.
그리고 시스템의 안전도를 표현하는 정수인 모수를 complexity라 하자. 이때 complexity는 정수이며 예로서 complexity 가 60이면 key 복잡도는 약 260임을 의미한다.
크기 조건 :
len(r) = complexity
len(r)+len(P)< len(N)
len(M)+len(f) < len(N)
len(r)+len(H)>len(N)+ comlexity-T .
len(M)<len(P)
위에서 T는 1이상 10미만의 자연수로서 필요에 따라 변동 가능한 수이다.
일반적인 위 조건을 만족시키려면 다음과 같은 크기의 정수를 택하면 된다.
len(M)= len(P)-1
len(f)=complexity+1
len(r)=complexity
len(P)=len(N)-complexity
len(P)+len(F N ) > len(N) + complexity-T
len(r) +len(H) > len( N) + complexity-T
참고로 공개키들을 요약하면 다음과 같다.
N , len(M) , len(r) ,complexity
(2). 암호화 단계 (Encryption)
A 의 공개키를H A ,N A 라 하자. B가 A 에게 message를 보내고자 한다고 하자. 그러면 먼저 message를 환(ring) R의 원소이자 len(M)이 len(P)-1인 정수M으로 표현하자.
len(r)이 complexity인 랜덤한 정수r을 선택한 후 다음과 같이 M을 암호화시킨다.
M+r*H A EmodN A
그리고 E 를 A 에게 보통의 전송통로를 통해 보낸다
(3). 복호화 단계(Decryption)
A 는 자신의 비밀키 f 와F p 를 이용해서 수신한E를 다음과 같이 복호화한다.
E*fM*f+r*PmodN A
E*fmodPM*f
(M*f)*F P modPM
[2]. 효율적인 전자서명 과정 상세 설명
먼저 두 가정이 필요하다. 첫번째 가정은 두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다는 것이다. 두번째 가정은 len( h(M) )의 값이 두 사람의 공개된 두 message 길이(= len(M))값들 중 더 작은 값과 같거나 더 작아야 한다는 것이다. 이 두 가정은 수학적으로 대부분 성립하므로 큰 제약조건이 되지 않는다. 따라서 우리는 이 두 가정을 쉽게 할 수 있다. 이 두 가정의 바탕 위에 전자서명시 발생될 수 있는 여러 가지 경우를 분류하여 전자서명과정을 자세히 설명하겠다.
B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.
CASE 1 :N B N A 인 경우
(1).먼저 h(M)을 계산하자. 그리고 이 h(M)에 h(M)의 앞 부분의 bit를 차례로 추출하여 concatenation하여 그 결과를 x라 할 때 , len(h(M)x) 값이 B의 공개된 message 길이가 되도록 만들자.( 여기서 일반적으로 len(h(M))은 약 160이다. 만약 len(h(M)(h(M))조차로 B의 공개된 message 길이보다 작으면 크기 조건을 만족시킬 때까지 h(M)(h(M)x 모양으로 변형을 계속한다 여기서는 단순한 경우만 설명하겠다.) 그리고 그 결과 h(M)x 를M A 라 하자. 또 len(R A )이 B의 공개된 complexity인 랜덤 정수R A 을 생성한다. 그리고 나서 먼저 A는 B의 공개키H B 를 사용하여 다음과 같이 환Z/<N B > 에서E B (M A )을 계산한다.
E B (M A ) ≡M A +R A *H B modN B
(2).E B (M A ) 값으로부터 A 자신의 공개키 및 비밀키를 이용하여 다음을 만족하는MR을 아래와 같이 구한다.
E B (M A ) ≡M+R*H A modN A 를 만족시키는 M 과 R 은 거의 항상 존재하므로 다음과 같이MR을 구한다.(만약 존재하지 않는다면 과정(1)에서R A 를 바꾼 후 위 과정을 반복한다.)
(1)M구하기
( (E B (M A )*f A ) modP A ) *F PA modP A M
(2).R구하기
(E B (M A ) -M)*H A -1R
(3). A 는MR의 각 len 값이 공개된 A의 len(M) 과 len(R) 값 이하인지 체크한다.
이 조건이 만족되지 않을 확률은 실험적으로 ½이하인데 , 이런 경우가 발생할 때에는 과정 (1)에서R A 를 바꾸어 위 과정을 반복한다. 이때 위 과정을 n번 이상 반복 수행해야 할 확률은 (½)n이하이므로 전자서명은 위 과정이 대부분 5번 이하 수행 시 성공을 얻는다.
(4). A 는MR을 B에게 보낸다. 그러면 B는 다음과 같은 과정으로M A 의 A에 의한 전자서명여부를 다음과 같은 과정으로 판단한다.
1). B는MR을 받은 후 A가 보냈는지 확인하기 위해 먼저 받은MR이 공개된 A의 message와 complexity에 대한 len 조건이하인지 확인한다. 만약 만족시키지 않으면 서명을 거부한다. 이를 만족시키면 공개키H A 를 이용하여E B (M A *) 을 계산한다.
E B (M A *)≡M+R*H A modN A
2). 그리고E B (M A *) 를 B의 비밀키f B 를 이용하여 원래 전자 서명된 문서M A 를 다음과 같이 구한다.
(((E B (M A *)*f B ) modP B )*F PB ) modP B M A *
그리고M A *가 원래 전자서명 받기를 원하는 message M의 hash 값인 h(M) 또는 h(M)x 또는 h(M)h(M)x 등등의 모양인지 검사한다.(여기서 x는 h(M)의 앞부분 몇 bit를 차례로 추출한 부분이다.) 만약 같지 않다면 message 변조가 일어났거나 A가 서명하지 않은 것이다.
CASE 2 :N B >N A 인 경우
(1).먼저 h(M)을 계산하자. 그리고 이 h(M)에 h(M)의 앞 부분의 bit를 차례로 추출하여 concatenation하여 그 결과를 x라 할 때 , len(h(M)x) 값이 A의 공개된N A 길이 이하이고 그 값은N A 미만이도록 x를 조절하자.( 여기서 일반적으로 len(h(M))은 약 160이다. 만약 len(h(M)(h(M))조차로 B의 공개된 message 길이보다 작으면 크기 조건을 만족시킬 때까지 h(M)(h(M)x 모양으로 변형을 계속한다 여기서는 단순한 경우만 설명하겠다.) 그리고 그 결과 h(M)x 를M A 라 하자. 그리고M A M *+r **H A modN A 를 만족시키고 A의 공개된 len(M) 및 len(r) 조건을 만족시키는지 조사하자. 만약 이 조건을 만족시키는M *r *이 존재하지 않을 시에는
1) 방법 1 : 위 과정에서 x의 오른 쪽 1bit을 잘라내어 다시 위 식을 만족시키는M *r *가 존재하는지 검사한다. 존재하지 않으면 만족하는M *r *을 찾을 때 까지 반복한다.
2) 방법 2 : x의 오른쪽 1bit의 값을 0은 1로 , 1은 0으로 바꾸어M A 를 변형한 수 위 식을 만족시키는M *r *가 존재하는지 검사한다. 존재하지 않을 때에는 x의 오른쪽에서 두 번째 bit 자리의 값을 바꾸어(0은 1로 1은 0으로) 다시 검사한다.이와 같은 방법으로 위 식을 만족시키는M *r *를 얻을 때까지 위 과정을 반복하자. 이때 x의 우측 bit 값은 5 bit 까지만 0을 1로 , 1은 0으로 바꾸는 과정을 반복한다. 만약 이런 방법에 의해 위 과정을 32번 반복했을 때도 위 식을 만족시키는M *r *가 존재하지 않을 때에는 방법 1로 돌아간다. 방법 1에서도 위 식을 만족시키는M *r *을 찾을 수 없을 시에는 사실상 서명은 실패이다. 그러나 이 확률은이하이므로 우려할 수준이 아니다.
(2) 이제 구해진M *의 len이 공개된 B의 message 의 len 값과 비교하자.
(2.1)len(M *) 값이 공개된 B의 message 의 len 값보다 같거나 작은 경우. (대부분 이 경우에 해당된다.)
그 차이만큼M *의 앞자리 부분에서 bit들을 가져와 이 부분을 y라 할 때M * y =M **를 구성한다.그리고 B의 공개키들을 보고 다음과 같이 암호화시킨다.
EM **+R A *H B modN B
그리고 A는 y값과 E를 보통의 전송통로를 통해 B에게 보낸다.또한 A는r *값을 B의 공개키로 암호화시켜 B에게 보낸다.그러면 B는 받은 E 값으로부터 자신의 비밀키들을 사용하여M **를 구한 후 y값으로부터M *를 구한다. 그리고 복호화 과정을 통해 얻어진r *를 사용하여M A **M *+r **H A modN A 를 계산하여 얻은M A **과 h(M)x =M A 값을 2진수 입장에서 앞부분부터 차례로 비교하여 일치여부를 점검한다. 이때 오른쪽 몇 5 bit의 값이 차이가 나는 것은 일치하는 것을로 받아들인다. 만약 일치하면 서명이 성립, 일치하지 않으면 서명이 성립하지 않는다.
(2.2) len(M *) 값이 공개된 B의 message 의 len 값보다 큰 경우.
그 차이만큼M *를 오른쪽으로 shift 시켰을 때 그 값을M **라 하자. 이때 shift된 부분을 z 이라 하자. 그리고EM **+R A *H B modN B 를 계산하여 z과 함께 B에게 보낸다. 또한 A는r *값을 B의 공개키로 암호화시켜 B에게 보낸다. 그러면 B는 E 로부터M **를 계산한 후M ** z 하여M *를 얻는다. 그리고 복호화 과정을 통해 얻어진r *를 사용하여M A **M *+r **H A modN A 를 계산하여 얻은M A **과 h(M)x 값을 2진수 입장에서 앞부분부터 차례로 비교하여 일치여부를 점검한다. 만약 일치하면 서명이 성립, 일치하지 않으면 서명이 성립하지 않는다.
매우 간단한 연산과정을 통하여 매우 빠른 암호화, 복호화를 가능하게 하였다. 그리고 매우 짧은 key 생성시간 , 매우 빠른 전자서명 등은 특히 통신에서 안전한 message 송수신에 유용하리라 생각한다.

Claims (2)

  1. 아래의 일방향 함수를 이용한 공개키 암호시스템.
    먼저 새로운 trap-door 일방향 함수를 설명한다. k1 , k2 , k3는 일반적으로 100 이상인 자연수라 하자.그리고 약 2^(k1) 인 정수 N을 선택하자. (일반적으로 k1은 200이상이고 N은 충분히 큰 소수를 약수로 가지도록 선택되는 것이 이상적이다.) 그리고 N과 서로소이면서 2^(k2)이상 2^(k2+1)미만인 랜덤한 자연수 P를 선택한다. 그리고 2^(k3)이상 2^(k3+1)미만이고 정수 N , P 와 서로소인 자연수 f를 랜덤하게 선택한다. 그리고 Z/<N>에서의 f의 inverse를 구하여F N 이라 하자. 그리고 f*F N mod N = H 라 하자. 이 H 값이 공개키에 해당된다. H를 공개했을 때 x*H mod N = y를 만족시키고 x는 2^(k2) 이하이고 y는 2^(k3) 이하인 두 정수의 쌍인 (x,y)를 찾기 어렵다는 문제를 사용하여 다음과 같이 일방향 함수를 구성할 수 있다.H,N,E이 공개되어 있을 때 아래의 특정 len 조건을 만족하고 다음 식을 만족하는Mr을 찾기는 매우 어렵다는 것이 일방향 함수의 요지이다.
    len(M)= len(P)-1
    len(r)=complexity
    len(P)=len(N)-complexity
    M+r*HEmodN
    이 일방향 함수를 이용하여 암호화 및 복호화 시스템을 만들면 다음과 같다.
    (1) 암호화 과정
    message M을 암호화하기 위해 [발명의 구성 및 작용] 에서 key 생성단계에서의 message에 대한 정해진 크기조건을 만족하도록 message를 적당한 크기의 정수block들로 나눈다.이렇게 구성된 특정 한 block 의 정수를M이라 하자. 그리고 len 조건을 만족하는 랜덤한 자연수r을 선택하여 다음과 같이 암호화한다. 여기서HN은 message 수신자의 공개키이다.
    M+r*HEmodN
    (2) 복호화 과정
    위에서 받은E를 가지고 message 수신자는 자신의 비밀키인fP를 이용하여 다음과 같이 복호화한다.
    E*fM*f+r*PmodN
    E*fmodPM*f
    (M*f)*F P modPM
  2. 위 일방향 함수를 이용한 효율적인 전자서명 방법.
    먼저 두 가정이 필요하다. 첫 번째 가정은 두 사람 A , B 가 동일한 해쉬함수 h를 사용하고 있다는 것이다. 두 번째 가정은 len( h(M) )의 값이 두 사람의 공개된 두 message 길이(= len(M))값들 중 더 작은 값보다 작아야 한다는 것이다. 이 두 가정은 수학적으로 대부분 성립하므로 큰 제약조건이 되지 않는다. 따라서 우리는 이 두 가정을 쉽게 할 수 있다. 이 두 가정의 바탕 위에 전자서명 시 발생될 수 있는 여러 가지 경우를 분류하여 전자서명과정을 자세히 설명하겠다.
    B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.
    CASE 1 :N B N A 인 경우
    (1).먼저 h(M)을 계산하자. 그리고 이 h(M)에 h(M)의 앞부분의 bit들을 차례로 추출하여 concatenation하여 그 결과를 x라 할 때 , len(h(M)x) 값이 B의 공개된 message 길이가 되도록 만들자.( 여기서 일반적으로 len(h(M))은 약 160이다. 만약 len(h(M)(h(M))조차로 B의 공개된 message 길이보다 작으면 크기 조건을 만족시킬 때까지 h(M)(h(M)x 모양으로 변형을 계속한다 여기서는 단순한 경우만 설명하겠다.) 그리고 그 결과 h(M)x 를M A 라 하자. 또 len(R A )이 B의 공개된 complexity인 랜덤 정수R A 을 생성한다. 그리고 나서 먼저 A는 B의 공개키H B 를 사용하여 다음과 같이 환Z/<N B > 에서E B (M A )을 계산한다.
    E B (M A ) ≡M A +R A *H B modN B
    (2).E B (M A ) 값으로부터 A 자신의 공개키 및 비밀키를 이용하여 다음을 만족하는MR을 아래와 같이 구한다.
    E B (M A ) ≡M+R*H A modN A 를 만족시키는MR은 거의 항상 존재하므로 다음과 같이MR을 구한다.(만약 존재하지 않는다면 과정(1)에서R A 를 바꾼 후 위 과정을 반복한다.)
    (1)M구하기
    ( (E B (M A )*f A modP A ) *F PA modP A M
    (2).R구하기
    (E B (M A ) -M)*H A -1R
    (3). A 는MR의 각 len 값이 공개된 A의 len(M) 과 len(R) 값 이하인지 체크한다.
    이 조건이 만족되지 않을 확률은 실험적으로 ½이하인데 , 이런 경우가 발생할 때에는 과정 (1)에서R A 를 바꾸어 위 과정을 반복한다. 이때 위 과정을 n번 이상 반복 수행해야 할 확률은 (½)n이하이므로 전자서명은 위 과정이 대부분 5번 이하 수행 시 성공을 얻는다.
    (4). A 는MR을 B에게 보낸다. 그러면 B는 다음과 같은 과정으로M A 의 A에 의한 전자서명여부를 다음과 같은 과정으로 판단한다.
    1). B는MR을 받은 후 A가 보냈는지 확인하기 위해 먼저 받은MR이 공개된 A의 message와 complexity에 대한 len 조건이하인지 확인한다. 만약 만족시키지 않으면 서명을 거부한다. 이를 만족시키면 공개키H A 를 이용하여E B (M A * ) 을 계산한다.
    E B (M A *) ≡M+R*H A modN A
    2). 그리고E B (M A *) 를 B의 비밀키f B 이용하여 원래 전자서명된 문서M A 를 다음과 같이 구한다.
    (((E B (M A *)*f B ) modP B )*F PB ) modP B M A *
    그리고M A *가 원래 전자서명 받기를 원하는 message M의 hash 값인 h(M) 또는 h(M)x 또는 h(M)h(M)x 등등의 모양인지 검사한다.(여기서 x는 h(M)의 앞부분 몇 bit를 차례로 추출한 부분이다.) 만약 같지 않다면 message 변조가 일어났거나 A가 서명하지 않은 것이다.
    CASE 2 :N B >N A 인 경우
    (1).먼저 h(M)을 계산하자. 그리고 이 h(M)에 h(M)의 앞 부분의 bit를 차례로 추출하여 concatenation하여 그 결과를 x라 할 때 , len(h(M)x) 값이 A의 공개된N A 길이 이하이고 그 값은N A 미만이도록 x를 조절하자.( 여기서 일반적으로 len(h(M))은 약 160이다. 만약 len(h(M)(h(M))조차로 B의 공개된 message 길이보다 작으면 크기 조건을 만족시킬 때까지 h(M)(h(M)x 모양으로 변형을 계속한다 여기서는 단순한 경우만 설명하겠다.) 그리고 그 결과 h(M)x 를M A 라 하자. 그리고M A M * +r **H A mod NA를 만족시키고 A의 공개된 len(M) 및 len(r) 조건을 만족시키는지 조사하자. 만약 이 조건을 만족시키는M *r *이 존재하지 않을 시에는
    1) 방법 1 : 위 과정에서 x의 오른 쪽 1bit을 잘라내어 다시 위 식을 만족시키는M *r *가 존재하는지 검사한다. 존재하지 않으면 만족하는M *r *을 찾을 때 까지 반복한다.
    2) 방법 2 : x의 오른쪽 1bit의 값을 0은 1로 , 1은 0으로 바꾸어M A 를 변형한 수 위 식을 만족시키는M *r *가 존재하는지 검사한다. 존재하지 않을 때에는 x의 오른쪽에서 두 번째 bit 자리의 값을 바꾸어(0은 1로 1은 0으로) 다시 검사한다.이와 같은 방법으로 위 식을 만족시키는M *r *를 얻을 때까지 위 과정을 반복하자. 이때 x의 우측 bit 값은 5 bit 까지만 0을 1로 , 1은 0으로 바꾸는 과정을 반복한다. 만약 이런 방법에 의해 위 과정을 32번 반복했을 때도 위 식을 만족시키는M *r *가 존재하지 않을 때에는 방법 1로 돌아간다. 방법 1에서도 위 식을 만족시키는M *r *을 찾을 수 없을 시에는 사실상 서명은 실패이다. 그러나 이 확률은이하이므로 우려할 수준이 아니다.
    (2) 이제 구해진M *의 len이 공개된 B의 message 의 len 값과 비교하자.
    (2.1)len(M *) 값이 공개된 B의 message 의 len 값보다 같거나 작은 경우. (대부분 이 경우에 해당된다.)
    그 차이만큼M *의 앞자리 부분에서 bit들을 가져와 이 부분을 y라 할 때M * y =M **를 구성한다.그리고 B의 공개키들을 보고 다음과 같이 암호화시킨다.
    E ≡M **+R A *H B modN B
    그리고 A는 y값과E를 보통의 전송통로를 통해 B에게 보낸다.또한 A는r *값을 B의 공개키로 암호화시켜 B에게 보낸다.그러면 B는 받은E값으로부터 자신의 비밀키들을 사용하여M **를 구한 후 y값으로부터M *를 구한다. 그리고 복호화 과정을 통해 얻어진r *를 사용하여M A ** M *+r **H A modN A 를 계산하여 얻은M A **과 h(M)x =M A 값을 2진수 입장에서 앞부분부터 차례로 비교하여 일치여부를 점검한다. 이때 오른쪽 5 bit이내의 값이 차이가 나는 것은 일치하는 것으로 받아들인다. 만약 일치하면 서명이 성립, 일치하지 않으면 서명이 성립하지 않는다.
    (2.2) len(M *) 값이 공개된 B의 message 의 len 값보다 큰 경우.
    그 차이만큼M *를 오른쪽으로 shift 시켰을 때 그 값을M **라 하자. 이때 shift된 부분을 z 이라 하자. 그리고EM **+R A *H B modN B 를 계산하여 z 과 함께 B에게 보낸다. 또한 A는r *값을 B의 공개키로 암호화시켜 B에게 보낸다. 그러면 B는E로부터M **를 계산한 후M ** z 하여M *를 얻는다. 그리고 복호화 과정을 통해 얻어진r *를 사용하여M A **M *+r **H A modN A 를 계산하여 얻은M A **과 h(M)x 값을 2진수 입장에서 앞부분부터 차례로 비교하여 일치여부를 점검한다. 만약 일치하면 서명이 성립, 일치하지 않으면 서명이 성립하지 않는다.
KR1020000006715A 2000-02-12 2000-02-12 트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템및 메시지 전자서명 및 인증 시스템. KR20000024419A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000006715A KR20000024419A (ko) 2000-02-12 2000-02-12 트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템및 메시지 전자서명 및 인증 시스템.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000006715A KR20000024419A (ko) 2000-02-12 2000-02-12 트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템및 메시지 전자서명 및 인증 시스템.

Publications (1)

Publication Number Publication Date
KR20000024419A true KR20000024419A (ko) 2000-05-06

Family

ID=19646047

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000006715A KR20000024419A (ko) 2000-02-12 2000-02-12 트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템및 메시지 전자서명 및 인증 시스템.

Country Status (1)

Country Link
KR (1) KR20000024419A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100384233B1 (ko) * 2000-07-12 2003-05-16 스팍스컴 주식회사 공개키 암호시스템에 적용하기 위한 점화식 구축방법
KR100388059B1 (ko) * 2000-12-23 2003-06-18 한국전자통신연구원 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493614A (en) * 1994-05-03 1996-02-20 Chaum; David Private signature and proof systems
US5577124A (en) * 1995-03-09 1996-11-19 Arithmetica, Inc. Multi-purpose high speed cryptographically secure sequence generator based on zeta-one-way functions
KR970049779A (ko) * 1995-12-19 1997-07-29 양승택 이산대수 문제에 근거한 디지탈 서명 처리 방법
KR19980048479A (ko) * 1996-12-17 1998-09-15 양승택 안전성 측면의 디지털 서명 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493614A (en) * 1994-05-03 1996-02-20 Chaum; David Private signature and proof systems
US5577124A (en) * 1995-03-09 1996-11-19 Arithmetica, Inc. Multi-purpose high speed cryptographically secure sequence generator based on zeta-one-way functions
KR970049779A (ko) * 1995-12-19 1997-07-29 양승택 이산대수 문제에 근거한 디지탈 서명 처리 방법
KR19980048479A (ko) * 1996-12-17 1998-09-15 양승택 안전성 측면의 디지털 서명 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100384233B1 (ko) * 2000-07-12 2003-05-16 스팍스컴 주식회사 공개키 암호시스템에 적용하기 위한 점화식 구축방법
KR100388059B1 (ko) * 2000-12-23 2003-06-18 한국전자통신연구원 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법

Similar Documents

Publication Publication Date Title
US20130236012A1 (en) Public Key Cryptographic Methods and Systems
Jaju et al. A Modified RSA algorithm to enhance security for digital signature
Khan et al. Analysis of asymmetric cryptography in information security based on computational study to ensure confidentiality during information exchange
US6345098B1 (en) Method, system and apparatus for improved reliability in generating secret cryptographic variables
Al Busafi et al. Review and analysis of cryptography techniques
CN100388663C (zh) 用于检测一个键对和用于产生rsa键的方法和装置
CN100452695C (zh) 椭圆曲线加密解密方法和装置
KR100396740B1 (ko) 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법
GB2415579A (en) Authenticating the identity of a message sender in an identifier-based encryption system
KR20040009766A (ko) 암호 시스템에서 송수신 장치 및 방법
US20060251248A1 (en) Public key cryptographic methods and systems with preprocessing
CN109756335B (zh) 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
US20080019508A1 (en) Public key cryptographic methods and systems with rebalancing
US7231048B2 (en) Key sharing system, public key cryptosystem, signature system, key sharing apparatus, encryption apparatus, decryption apparatus, signature apparatus, authentication apparatus, key sharing method, encryption method, decryption method, signature method, authentication method, and programs
KR100388059B1 (ko) 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
JP2006319485A (ja) 署名装置、署名暗号化装置、検証装置、復号装置、復元装置、情報提供装置、通信システム、署名方法、署名暗号化方法及び検証方法
KR20000024419A (ko) 트랩-도어 일방향 함수를 이용한 안전한 정보교환 시스템및 메시지 전자서명 및 인증 시스템.
Sheth et al. Analysis of cryptography techniques
EP2697930B1 (en) A method and system of cryptographic processing of a message
KR100323799B1 (ko) 안전성이 증명가능한 타원곡선 공개키 암호화 시스템
CN104158663B (zh) 一种基于双曲线群算术的公钥密码体制及签名方法
Albermany et al. RADG design On elliptic curve cryptography
Kumar et al. A survey on various asymmetric algorithms
JP2000115157A (ja) 紛失通信方法
Singh et al. Public key cryptography using sphere and spheroid

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
E601 Decision to refuse application