KR20020050680A - 행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템 - Google Patents

행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템 Download PDF

Info

Publication number
KR20020050680A
KR20020050680A KR1020000079957A KR20000079957A KR20020050680A KR 20020050680 A KR20020050680 A KR 20020050680A KR 1020000079957 A KR1020000079957 A KR 1020000079957A KR 20000079957 A KR20000079957 A KR 20000079957A KR 20020050680 A KR20020050680 A KR 20020050680A
Authority
KR
South Korea
Prior art keywords
polynomial
public key
vecdeg
col
matrix
Prior art date
Application number
KR1020000079957A
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 KR1020000079957A priority Critical patent/KR20020050680A/ko
Publication of KR20020050680A publication Critical patent/KR20020050680A/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Facsimile Transmission Control (AREA)
  • Storage Device Security (AREA)

Abstract

다항식의 환과 체의 연산을 행열에 적용시킨 본 암호는 확률론적 공개키 암호이다. 본 암호가 사용하고 있는 암호화 및 복호화 방법은 다항식의 차수를 바탕으로 하고 있는데 기존의 암호에서는 찾아 볼 수 없는 성질중의 하나이다. 본 암호의 특징은 매우 빠른 암호화, 복호화, 전자서명에 있다.

Description

행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템{Matrix Polynomial Ring Based Public Key}
기존의 암호 중에서 다항식 환 및 체 에서의 연산을 이용하여 암호를 만들려고 많은 시도는 있어왔으나 다른 암호에 배해 속도가 효율적이지 못해 실용성에 한계를 가져왔다.
본 발명은 새로운 일방향 함수를 발견하고, 이 함수를 이용하여 새로운 확률론적 공개키 암호시스템을 만들었다.
다항식 환과 체의 복합적인 연산으로 이루어진 복합 다항식을 행열의 구성원소로 삼아 , 비교적 적은 연산으로 암호화/복호화 수행 방법을 개발하여 기존의 공개키 암호의 단점인 암호화/복호화 속도의 느린 점을 극복하였다.
문자 데이터는 물론 음성데이터조차 실시간으로 송수신 할 수 있는 매우 빠른 암호화, 복호화, 전자서명 가능한 공개키 암호시스템 개발 및 pager등에서 매우 빠른 key 생성기능을 이용한 안전한 정보교환 및 매우 빠른 실시간 전자서명 지원 시스템 개발.
공개키 암호시스템이란 두 사람이 안전한 통신을 하기위해 별도의 비밀키를교환하기 위한 통로가 필요없는 암호시스템이다.
가장 널리 쓰이고 있는 공개키 암호시스템인 RSA암호시스템은 정수의 소인수분해문제의 어려움에 근거하고 있는데 안전성은 보장받고 있으나 key생성 시간 , key-size , 암호화, 복호화 시간 등 여러 측면에서 매우 비효율적이어서 그 응용에는 한계가 있다. 또 다른 시스템으로는 1985년 key-size측면에서는 매우 우수한 타원곡선 암호시스템(ECC)가 제안되어 현재 사용중이나 이 시스템 또한 구현이 어렵고 속도가 느리다는 단점을 지니고 있으며 key생성시간이 오래 걸린다는 단점을 지니고 있다. 그러나 1996년 비정역 다항식 환에서의 다항식의 연산을 이용한 공개키 암호 시스템인 NTRU 가 제안되었다. 이 시스템은 이전의 공개키 암호시스템보다 속도 및 key 생성시간이 매우 짧다. 그리고 구현이 용이해서 참 효율적인 연산처리가 가능하다. 그러나 항상 복호화가 성공적이지는 않으며 전자서명 방법이 비효율적이라는 단점을 지니고 있다. 여기서 제안하고자 하는 암호시스템은 암호화, 복호화 원리관점에서만은 NTRU와 유사하지만 암호의 핵심인 trap-door 일방향 함수는 전혀 다르다. 본 발명의 장점은 암호화, 복호화, message 인증 및 서명법 등에서는 매우 효율적이라는 점이다.
현존하는 공개키로 전자서명을 수행하고자 할 때 동시 접속자가 적을 때는 별 문제없이 수행되지만 동시접속자가 많은 서버인 경우는 부하가 걸린다. 하지만 본 암호를 이용하여 PKI를 구축시 기존의 암호시스템인 RSA를 사용시 보다 100배이상 빠를 것으로 생각된다. 매우 빠르고 효율적인 암호화/복화화 및 전자서명을 지원하는 본 암호시스템을 이용하여 온라인 뱅킹과 같은 전자상거래 사이트 뿐만 아니라 인터넷 폰등의 안전한 통신에도 크게 기여 할 수 있다. 그리고 경제적인 측면에서 , 기존의 암호로는 핸드폰 등에 보안 적용에 비효율 적이다. 그러나 본 암호 사용시 충분히 경제적으로 무선통신보안을 할 수 있을 것이다.
A . 복합 다항식의 계수에 차수 바탕으로 한 크기 mechonism을 적용한 공개키 암호시스템.
본문에서 사용될 문자들에 대한 정의는 다음과 같다.
Z [x] : 정수를 걔수로 가지는 다항식.
p는 소수(prime number).
irred는 환 FF = Z [x]/<p>에서의 랜덤하게 선택된 기약다항식.
환 F = Z [x]/<p,irred>.
환 S = F [x]/<p, Q > : 복합 다항식을 원소로 가지는 환
환 SS = (Z [x]/<p, P 1,>)/< p,Q>
복합 다항식 행열 : 행의 수가 정수 row 값을 가지고 열의 수가 정수 col값을 가지며 각 (i,j) 원소는 환 S 의 원소로 가지는 행열.
먼저 F 의 원소 에 대해 deg(f) = MAX{ i | a i 0,i=0,1,2,...,N-1 } 로 정의하자.
그리고, F 의 원소f 0,f 1,f 2,...,f N -1에 대해 , 각f i x i 의 계수로 가지는 차수가 N -1 인 복합 다항식f를 만들자. 이ff= (f 0,f 1,f 2,...,f N -1) 로 표현하자.즉,을 의미한다.
만일f가 복합 다항식이라면 maxdeg(f) =
MAX { deg(f 0), deg(f 1), deg(f 2),..., deg(f N -1) } 로 정의하고
mindeg(f) = MIN { deg(f 0), deg(f 1), deg(f 2),..., deg(f N -1) }
f가 복합다항식 원소f i 들을 가지는 1×ro w 벡터라면 ,
f= (f 0,f 1,...,f ro w -1) 에 대해 vecdeg(f) = MAX{ maxdeg (f i )| i = 0,1,2,..., row-1 }
로 정의한다. 1×col벡터들에 대해서도 동일하게 정의한다.
f가 복합다항식 원소f i,j 들을 (i,j) 원소로 가지는ro w ×col,col×col행열이라면 matdeg(f) = MAX{ maxdeg (f i.j )| i,j = 0,1,2,... , row-1,col-1 }
로 정의한다. 이때 행열의 행열값을 det(f) 로 표현하기로 한다.
[1]. Key 생성하기
아래에서 P 1 F 이고Cro w ×col행열이며,fcol×col행열이다.
그리고,M은 1×col벡터이고R은 1×ro w 벡터이다.
Step 1> 먼저 사용할p소수를 결정하자.그리고 아래의 차수 및 기타 조건을만족하도록 각 정수 matdeg,maxdeg,deg값들도 결정하자. 각 정수가 클수록 암호시스템은 더 안전해지나 복호화 속도가 감소한다.
1.1> 본 암호시스템이 지원하기를 원하는 복잡도인 pow를 결정한다.참고로 pow 값이 64이면 264정도의 복잡도를 가진다.
1.2> 본 암호시스템에서 사용할 행열의 사이즈인 자연수 row , col를 결정한다.
1.3> non-zero 복합 다항식 행열C에 대해 matdeg(C) 를 결정한다.
1.3>p (mat deg( f )+1)* N * col > 2 po w 를 만족하도록 하는 두 자연수 matdeg( f ),N을 결정한다.
1.4> matdeg(f) < deg( P 1)이고를 만족하는 deg( P 1)을 결정한다.
1.5> deg( P 1)+matdeg(f) ≤ deg(irre d ) 를 만족하도록 deg(irre d )을 결정한다. deg(irre d )값은 주어진 식을 만족하는 범위 내에서 작을수록 암호화 및 복호화가 빠르다.
1.6> vecdeg(M) < deg( P 1) 이고p ( vec deg( M )+1)* N * col > 2 po w 이도록 vecdeg(M) 을 선택한다.--> 일반적으로 vecdeg(M) = deg( P 1)-1 이도록 vecdeg(M)을 선택한다.
1.7> vecdeg(R) + deg( P 1) + matdeg(C) < deg(irre d ) 와 p( vec deg( R )+1)* N * ro w > 2 po w 를 만족하도록 vecdeg(R)을 결정한다. --> 일반적으로 vecdeg(R) + deg( P 1) + matdeg(C) = deg(irre d )-1 이도록 maxdeg(R)를 선택한다.
Step 2> 다항식 Q 를 차수가 N 이고 환 FF 안에서 기약 다항식 , 또는x N -c모양의 다항식으로 선택한다.x N -c모양의 다항식으로 선택시 암호화 및 복호화 속도가 우수하다.
Step 3> 위에서 결정된 deg(irred)를 차수로 가지는 기약 다항식을 선택하여 다항식의 체 F = Z [x]/<p,irre d > 라 구성하자. 그리고 다항식의 환 S = F [x]/<p, Q > 도 구성하자.이때 수학적으로 all one polynomial 등과 같이 체에서 매우 빠른 다항식 곱셈을 지원하는 기약다항식을 선택하는 것이 좋다.
Step 4> 위 차수조건을 만족하고 환 FF 안에서 기약인 다항식 P 1을 gcd(irred , P 1)= 1 과 gcd( P 1, Q ) = 1을 만족하는 범위내에서 랜덤하게 선택한다.
Step 5> 환 S 안에서 다항식f i,j = (f i,j, 0,f i,j, 1,f i,j, 2,...,f i,j , N -1)를 가능한 mindeg(f i,j ) = maxdeg(f i,j )=matdeg(f) 이도록 랜덤하게 선택하자.( 단,0i<col,0j<col). 이렇게 만들어진f i,j 값을 원소로 가지는 복합 다항식 행열을f라 합니다. 환 s 안에서 * 에 대한 행열 f 의 역행열과 환 SS = (Z[x]/<p, P 1>)/<p, Q > 에서 일반적인 복합 다항식의 곱셈 연산에 대한f의 역행열 둘다 존재할 때 까지 랜덤한f를 선택하기를 반복하자. 각각의 두 역원을이라 하자.
Step 6> 위 차수조건 maxdeg(C i,j ) ≤matdeg(C)를 만족하는 랜덤한 복합 다항식C i,j 를 원소로 가지는ro w ×col행열
를 구성한다
(단 ,C i,j = (c i,j, 0,c i,j, 1,...,c i,j , N -1)이고0i<ro w ),0j<col)
그리고ro w ×col행열
를 구성하자.
Step 7> 공개키 H = P * F Q 를 만들자.
< 단 , 복합 다항식 H i,j = (h 0,h 1,...,h N -1) >
그리고 만약 row=col인 경우는 , H 의 각 원소를 환 S = F[x]/<p, Q >안에서 연산했을 때 , 역행열을 가지는지 조사하자. 역행열이 존재치 않으면 Step 4부터 다시 수행하자. H 의 역행열은 gcd(det( H ) , Q ) = 1 일때만 존재한다.
공개키 : N ,p,irre d , Q , H , vecdeg(M) , vecdeg(R)
비밀키 : P 1,C,f,, F Q
[2] 암호화 하기
보내고자 하는 메시지를M= (M 0,M 1,...,M col -1)으로 표현한다.( 단, 복합 다항식M i= (m i ,0, m i ,1,...,m i,N -1) 의 maxdeg(M i )는 위 차수조건 vecdeg(M) 값과 같거나 작도록 한다.) 그리고 각 메시지 암호화시마다 랜덤하게 선택되는 non-zero vectorR= (R 0,R 1,...,R ro w -1)을 생성하자. (단,복합 다항식R i= (r i ,0,r i, 1,...,r i,N -1) 의 maxdeg(R i )는 의 차수조건 vecdeg(R) 값과 같거나 작도록 한다. ) 그리고 나서 다음과 같은 연산으로 암호화를 수행한다.
M+R* H E 가 암호화된 결과.(단 , * 는 행열의 곱셈연산 )
E =( E 0, E 1,..., E col -1) ( 단 , E i= (e i ,0,e i, 1,...,e i,N -1) )
이 값을 메시지 수신자에게 보낸다.
[4] 복호화 하기
메시지 Receiver 는 E 값으로부터 자신의 비밀키들을 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.
1. E *fMod Q = A = ( A 0, A 1,..., A col -1)
(단 ,복합 다항식A i= ( a i ,0, a i ,1,..., a i,N -1) ( 단 Mod 는 환 S = F [x]/<p,Q> 안에서의 나누기 연산이다. )
2. A imod P 1= ( a i, 0mod P 1, a i ,1mod P 1,..., a i , N -1mod P 1)=AA
( 단,i { 0, 1, 2 , 3 , 4 , ... , col-1 } )
3. AA *MM을 얻는다.( 단 * 는 환 SS = (Z[x]/<p, P 1>)/<p, Q > 안에서의 연산이다. )
이때 수신자는MM=M임을 확인 할 수 있다.
[5] 전자서명방법
일반적으로 vecdeg(M) = deg( P 1)-1 , vecdeg(R)=deg(irre d )-1-deg( P 1)-matdeg(C) 이도록 선택한다. 일반적으로 전자서명 성립 확률은
( 메시지M경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) =
이다. 특수한 경우로 matdeg(C) = 0 ,ro w =col으로 잡으면 전자서명이 될 확률은이므로 거의 100% 라고 할 수 있다.
다음은 전자서명 수행 절차이다.
다음의 가정아래 전자서명법을 설명하고자 한다.
가정 1 : deg(irre d A) = deg(irre d B ) , deg( Q A ) = deg( Q B ) .
가정 2 : A , B 는 동일한 해쉬함수를 사용한다. 그리고 송신자 A 가 보내고자 하는 메시지 m을 해쉬 했을 때 나온 값을 여기서는 편의상M이라 하기로 한다.
참고로 현실적으로 가정 2는 대부분 참이므로 별 문제가 되지 않는다. 그러나 가정 1은 틀린 경우가 많다. 가정 1이 만족되지 않는 경우의 전자서명방법은 아래 방법을 약간 변형한 사소한 기술에 지나지 않으므로 생략하기로 한다.
Step 1: A가 B에게 messageM에 전자서명을 하여 보내고자 한다고 하자. 먼저 B의 vecdeg(M B ) ,vecdeg(R B )값을 읽는다. 이때 messageM=h(m)에 전자서명한 문서를 복합 다항식 1 ×col벡터로 표현하자. 그 벡터를M A 라 하자.
Step 2 : vecdeg(RR A ) 값이 vecdeg(R B )이고 랜덤 복합 다항식으로 이루어진 1 ×ro w 행열 벡터RR A 을 생성한다. 그리고 나서 먼저 A는 B의 공개키 H B 를 사용하여 수신자 B 의 다항식 환 안에서의 연산으로 다음과 같이 암호화 한다.
E B (M A ) ≡M A +RR A * H B Mod Q B
Step 3 : E B (M A ) 값으로부터 A 자신의 공개키 및 비밀키를 이용하여 먼저 복호화 과정을 통하여M을 구한다.
E B (M A ) ≡M+R* H A 을 만족시키는MR은 거의 항상 존재하므로 다음과 같이MR을 구한다. 그리고 A 는 자신의 환에서를 구한 후 아래와 같은 방법으로R을 구한다.
( E B (M A ) -M) *R
Step 4 : 이렇게 구해진MR로부터 얻어진 vecdeg(M) 과 vecdeg(R) 값이 A 의 공개키 값 vecdeg(M A ) 과 vecdeg(R A ) 이하인지를 각각 체크한다.
매우 높은 확률로 이 조건은 만족되므로 별 문제가 되지 않는다. 참고로 이 조건을 만족하지 않는MR이 생성될 확률은 거의 10 -10이하이다.
만약 만족하지 않으면 Step 1에서 h(m) = M 값의 끝 5비트를 변경하여 이 값으로부터 새로 벡터M A 를 구성한 후 만족될 때 까지 Step2 -Step 4를 반복한다.무한 루프로 빠질 확률은 거의 0이므로 걱정할 사항은 없다.
Step 5 :MR을 B에게 보낸다.
Step 6 . B는MR을 받은 후 A가 보낸지 확인하기 위해 먼저 받은MR의 vecdeg(M) , vecdeg(R)값이 송신자 A 의 공개키 값 vecdeg(M A ) 과 vecdeg(R A ) 이하인지를 각각 체크한다. 만족시키는지 확인한다. 만약 만족시키지 않으면 서명을 거부한다. 이를 만족시키면 공개키 H A 를 이용하여 E B (M A )을 계산한다.
E B (M A ) ≡M+R* H A
Step 7 . 그리고 E B (M A ) 를 B의 비밀키f B 를 이용하여 원래 전자서명된 문서M A 를 위 복호화 과정을 통해 구한다.
B .복합 다항식의 차수를 바탕으로 한 크기 mechonism을 적용한 공개키 암호시스템.
본문에서 사용될 문자들에 대한 정의는 다음과 같다.
Z [x] : 정수를 계수로 가지는 다항식.
p는 소수(prime number).
irre d 는 환 FF = Z [x]/<p>에서의 랜덤하게 선택된 기약다항식.
환 F = Z [x]/<p,irre d >.
환 S = F[x]/<p, Q > : 복합 다항식을 원소로 가지는 환
환 SS = (F[x]/<p, P 1>)
복합 다항식 행열 : 행의 수가 정수 row 값을 가지고 열의 수가 정수 col값을 가지며 각 (i,j) 원소는 환 S 의 원소로 가지는 행열.
먼저 F 의 원소에 대해 deg(f) = MAX{ i | a i 0,i=0,1,2,...,N-1 } 로 정의하자.
그리고, F 의 원소f 0,f 1,f 2,...,f N -1에 대해 , 각f i x i 의 계수로 가지는 차수가 N -1 인 복합 다항식f를 만들자. 이f
f= (f 0,f 1,f 2,...,f N -1) 로 표현하자. 즉,f=f 0+f 1*x+f 2*x 2+...+f N -1*x N -1을 의미한다.
만일 f 가 복합 다항식이라면
len (f) = MAX {i+1 |f i 0,i=0.1.2.,,,.N-1 },
deg(f) = MAX {i |f i 0,i=0.1.2.,,,.N-1 }로 정의하기로 한다.
f 가 복합다항식 원소f i 들을 가지는 1 ×row벡터라면 ,
f= (f 0,f 1,...,f ro w -1) 에 대해 vecdeg(f) = MAX{len (f i )+1| i = 0,1,2,... , row-1 }
로 정의한다. 1 ×col벡터들에 대해서도 동일하게 정의한다.
f가 복합다항식 원소f i,j 들을 (i,j) 원소로 가지는ro w ×col,col×col행열이라면 matdeg(f) = MAX{ len (f i.j )+1 |0i<ro w ,0j<col} 로 정의한다. matmindeg(f) = MIN { len (f i.j )+1 |0i<ro w ,0j<col} 로 정의한다.그리고 정방행열의 행열값을 det(f)로 표현하기로 한다.
[1] Key 생성하기
f, C 는 복합다항식을 구성원소로 구성된 행열이다.M,R 은 벡터이다.
Step 1> 먼저 사용할 p 소수를 결정하자.그리고 아래의 차수 및 기타 조건을 만족하도록 각 정수 len 및 deg 값들도 결정하자. 각 정수가 클수록 암호시스템은 더 안전해지나 복호화 속도가 감소한다.
1.1> 본 암호시스템이 지원하기를 원하는 복잡도인 pow를 결정한다.참고로 pow 값이 64이면 264정도의 복잡도를 가진다.
1.2> 본 암호시스템에서 사용할 행열의 사이즈인 자연수 row , col를 결정한다.
1.3> non-zero 행열C의 원소C i,j 들에 대한 matdeg(C)를 결정한다.
1.3>를 만족하도록 하는 두 자연수 matdeg (f), deg(irred) 를 결정한다.
1.4> matdeg(f) < deg( P 1)이고를 만족하는 deg( P 1)을 결정한다.
1.5> deg( P 1)+matdeg(f) < N 을 만족하는 자연수 N을 결정한다.N 의 값은 주어진 조건을 만족하는 범위 내에서 작을수록 암호화 및 복호화가 빠르다.따라서 일반적으로 deg( P 1)+matdeg(f) = N - 1 인 N을 선택한다.
1.6> vecdeg(M) < deg( P 1) 이고이도록 vecdeg(M)을 선택한다.--> 일반적으로 vecdeg(M) = deg( P 1)-1 이도록 vecdeg(M)을 선택한다.
1.7> vecdeg(R) + deg( P 1) + matdeg(C) < N 과를 만족하도록 vecdeg(R)을 결정한다. --> 일반적으로 vecdeg(R) + deg( P 1) + matdeg(C) = N-1 이도록 vecdeg(R)를 선택한다.
Step 2> 다항식 Q 를 차수가 N 이고 환 FF 안에서 기약 다항식 , 또는모양의 다항식으로 선택한다.모양의 다항식으로 선택 시 암호화 및 복호화 속도가 우수하다.
Step 3> 위에서 결정된 deg(irred)를 차수로 가지는 기약 다항식을 선택하여 다항식의 체 F = Z [x]/<p,irre d > 라 구성하자. 그리고 다항식의 환 S = F[x]/<p, Q > 도 구성하자.이때 수학적으로 all one polynomial 등과 같이 체에서 매우 빠른 다항식 곱셈을 지원하는 기약다항식을 선택하는 것이 좋다.
Step 4> 위 차수 조건을 만족하는 환 S 안에서의 기약 다항식인 P 1을 gcd( P 1, Q ) = 1 이도록 랜덤하게 선택한다. 그리고, 환 S 안에서 다항식로 구성된 행열f를 가능한 matdeg(f) = matmindeg(f)를 만족하는 범위에서 랜덤하게 선택하자.( 단, 0≤i<ro w , 0≤j<col). 환 S 안에서 * 에 대한 행열f의 역원과 환 SS = (Z[x]/<p,irre d >)/< p, P 1> 에서 일반적인 복합 다항식의 곱셈 연산에 대한f의 역원 둘다 존재할 때 까지 랜덤한f를 선택하기를 반복하자.
즉 , gcd( det(f) , P 1) = 1 이고 gcd( det(f) , Q ) = 1 이어야 한다.
각각의 두 역원을이라 하자.
Step 5> 위 차수조건 deg(C i,j ) ≤ matdeg(C)를 만족하는 랜덤한 non-zero 복합 다항식C i,j 를 원소로 가지는 row ×col 행열
을 구성하자.
Step 6>
Step 7> 공개키 H = P * F Q 를 만들자.
< 단 , 복합 다항식>
그리고 row=col 인 경우는 , H 의 각 원소를 환 S = F [x]/<p, Q > 안에서 연산 했을 때 , 역행열을 가지는지 조사하자. 역행열이 존재치 않으면 Step 4> 부터 다시 수행하자. H 의 역행열은 gcd(deg( H ) , Q ) = 1 일때만 존재한다.
공개키 : N ,p,irre d , Q , H , len(M) , len(R)
비밀키 : P 1,C,f,, F Q
[2] 암호화 하기
보내고자 하는 메시지를으로 표현한다.
(단 , 복합 다항식 1 ×N벡터이고). 그리고 각 메시지 암호화시마다 랜덤하게 선택되는 non-zero vector을 생성하자.
(단,복합 다항식 1 ×N벡터이고).
암호화는 다음과 같다.
M+R* H E 가 암호화된 결과.(단 , * 는 행열의 곱셈연산 )
(단,)
이 값을 메시지 수신자에게 보낸다.
[4] 복호화 하기
메시지 Receiver 는E값으로부터 자신의 비밀키들을 이용하여 다음과 같이 원래 메시지 M 을 구할 수 있다.
1.
(단 , 복합 다항식( 단,이고 Mod는 환 S = F [x]/<p, Q > 안에서의 나누기 연산이다. )
2.
( Mod 는 복합 다항식 환 S 안에서 나누기 연산이다. )
3.을 얻는다.( 단 * 는 환안에서의 행열 곱셈 연산이다. )
이때 수신자는MM=M임을 확인 할 수 있다.
[5] 전자서명방법
일반적으로 vecdeg(M) = deg( P 1)-1 , vecdeg(R)=N-1-deg( P 1)-matdeg(C)이도록 선택한다. 일반적으로 전자서명 성립 확률은
( 메시지M경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) =이다. 특수한 경우로 matdeg(C) = 0 ,ro w =col으로 잡으면 전자서명이 될 확률은이므로 거의 100% 라고 할 수 있다.
다음의 가정아래 전자서명법을 설명하고자 한다.
가정 1 : deg(irre d A ) = deg(irre d B ) , deg( Q A ) = deg( Q B ) .
가정 2 : A , B 는 동일한 해쉬함수를 사용한다. 그리고 송신자 A 가 보내고자 하는 메시지 m을 해쉬 했을 때 나온 값을 여기서는 편의상 M 이라 하기로 한다.
참고로 현실적으로 가정 2는 대부분 참이므로 별 문제가 되자 않는다. 그러나 가정 1은 틀린 경우가 많다. 가정 1이 만족되지 않는 경우의 전자서명방법은 아래 방법을 약간 변형한 사소한 기술에 지나지 않으므로 생략하기로 한다.
Step 1: A가 B에게 messageM에 전자서명을 하여 보내고자 한다고 하자. 먼저 B의 vecdeg(M B ) , vecdeg(R B ) 값을 읽는다. 이때 messageM=h(m)에 전자서명한 문서를 복합 다항식 1 ×col벡터로 표현하자. 그 벡터를M A 라 하자.
Step 2 : vecdeg(RR A ) 값이 vecdeg(R B )이고 랜덤 복합 다항식으로 이루어진 1 ×ro w 행열 벡터RR A 을 생성한다. 그리고 나서 먼저 A는 B의 공개키 H B 를 사용하여 수신자 B 의 다항식 환 안에서의 연산으로 다음과 같이 암호화 한다.
Step 3 : E B (M A ) 값으로부터 A 자신의 공개키 및 비밀키를 이용하여 먼저 복호화 과정을 통하여M을 구한다.
E B (M A ) ≡M+R* H A 을 만족시키는MR은 거의 항상 존재하므로 다음과 같이MR을 구한다. 그리고 A 는 자신의 환에서를 구한 후 아래와 같은 방법으로R을 구한다.
Step 4 : 이렇게 구해진MR로부터 얻어진 vecdeg(M) 과 vecdeg(R) 값이 A 의 공개키 값 vecdeg(M A ) 과 vecdeg(R A ) 이하인지를 각각 체크한다.
매우 높은 확률로 이 조건은 만족되므로 별 문제가 되지 않는다. 참고로 이 조건을 만족하지 않는MR이 생성될 확률은 거의 10 -10이하이다.
만약 만족하지 않으면 Step 1에서 h(m) = M 값의 끝 5비트를 변경하여 이 값으로부터 새로 벡터M A 를 구성한 후 만족될 때 까지 Step2 -Step 4를 반복한다.무한 루프로 빠질 확률은 거의 0이므로 걱정할 사항은 없다.
Step 5 :MR을 B에게 보낸다.
Step 6 . B는MR을 받은 후 A가 보낸지 확인하기 위해 먼저 받은MR의 vecdeg(M) , vecdeg(R)값이 송신자 A 의 공개키 값 vecdeg(M A ) 과vecdeg(R A ) 이하인지를 각각 체크한다.만족시키는지 확인한다.
만약 만족시키지 않으면 서명을 거부한다. 이를 만족시키면 공개키 H A 를 이용하여 E B (M A ) 을 계산한다.
Step 7 . 그리고 E B (M A ) 를 B의 비밀키f B 를 이용하여 원래 전자서명된 문서M A 를 위 복호화 과정을 통해 구한다.
기존의 암호시스템의 암호화 및 복호화 속도의 한계를 극복하여 매우 빠른 PKI 구축에 사용되어 질 수 있다. 그리고 매우 빠른 키 생성시간은 one time password로 응용될 수 있다.
그리고 다항식을 이용한 공개키 암호시스템은 매우 작은 수를 사용할 수 있으므로 메모리 효율적인 스마트 카드등에 응용되어 질 수 있을 것이다.

Claims (3)

  1. A . 복합 다항식의 계수에 차수 바탕으로 한 크기 mechonism을 적용한 공개키 암호시스템.
    [1] Key 생성하기부터 ~ [4] 복호화 하기 까지 과정.
  2. B .복합 다항식의 차수를 바탕으로 한 크기 mechonism을 적용한 공개키 암호시스템.
    [1] Key 생성하기부터 ~ [4] 복호화 하기 까지 과정.
  3. [청구항 1] 과 [청구항 2] 의 암호시스템을 이용한 전자서명 방법
    A 의 [5]항과 B 의 [5] 항의 전자 서명방법은 기본 바탕이 같다. 그러므로 하나로 묶어 청구한다.
KR1020000079957A 2000-12-21 2000-12-21 행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템 KR20020050680A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000079957A KR20020050680A (ko) 2000-12-21 2000-12-21 행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000079957A KR20020050680A (ko) 2000-12-21 2000-12-21 행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템

Publications (1)

Publication Number Publication Date
KR20020050680A true KR20020050680A (ko) 2002-06-27

Family

ID=27684396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000079957A KR20020050680A (ko) 2000-12-21 2000-12-21 행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템

Country Status (1)

Country Link
KR (1) KR20020050680A (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62132451A (ja) * 1985-12-05 1987-06-15 Toshiba Corp 公開鍵暗号方式
US5054066A (en) * 1988-11-16 1991-10-01 Grumman Corporation Error correcting public key cryptographic method and program
JPH0946333A (ja) * 1995-07-27 1997-02-14 Cp 8 Transac 暗号通信法
KR19990070921A (ko) * 1998-02-26 1999-09-15 구자홍 행렬그룹 공개키와 그 생성방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62132451A (ja) * 1985-12-05 1987-06-15 Toshiba Corp 公開鍵暗号方式
US5054066A (en) * 1988-11-16 1991-10-01 Grumman Corporation Error correcting public key cryptographic method and program
JPH0946333A (ja) * 1995-07-27 1997-02-14 Cp 8 Transac 暗号通信法
KR19990070921A (ko) * 1998-02-26 1999-09-15 구자홍 행렬그룹 공개키와 그 생성방법

Similar Documents

Publication Publication Date Title
US6415032B1 (en) Encryption technique using stream cipher and block cipher
US5365589A (en) Method and apparatus for encryption, decryption and authentication using dynamical systems
AU2004218638B2 (en) Use of isogenies for design of cryptosystems
US20110307698A1 (en) Masking the output of random number generators in key generation protocols
JP2000516733A (ja) 公開鍵暗号システム方法および装置
US8180048B2 (en) Method and system for computational transformation
KR20110129961A (ko) 네트워트에서 통신을 안전하게 하기 위한 방법, 통신 디바이스, 네트워크 및 이를 위한 컴퓨터 프로그램
Hodowu et al. An enhancement of data security in cloud computing with an implementation of a two-level cryptographic technique, using AES and ECC algorithm
US7760872B2 (en) Public key cryptographic methods and systems
CA2742530C (en) Masking the output of random number generators in key generation protocols
US20060251248A1 (en) Public key cryptographic methods and systems with preprocessing
Schaefer An introduction to cryptography and Cryptanalysis
Pon et al. Dynamic reblocking RSA-based multisignatures scheme for computer and communication networks
Anand et al. Real-time symmetric cryptography using quaternion julia set
US7756269B2 (en) Cryptosystem for communication networks
Rivest et al. 9. A Method for Obtaining Digital Signatures and
KR20020050680A (ko) 행열 다항식 환 과 체를 기반으로 한 공개키 암호시스템
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
JP3706398B2 (ja) 楕円曲線による署名、認証及び秘密通信方式
US20040151307A1 (en) Tractable rational map public-key system
KR20020051597A (ko) 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
Patel et al. A critical analysis on encryption techniques used for data security in cloud computing and IOT (internet of things) based smart cloud storage system: a survey
KR20020003059A (ko) 정수 또는 다항식 행열을 이용한 공개키 암호시스템
JP3894919B2 (ja) 電子署名方法とそのプログラム及び装置
Giri et al. End-to-End Encryption Techniques

Legal Events

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