KR20020003059A - 정수 또는 다항식 행열을 이용한 공개키 암호시스템 - Google Patents
정수 또는 다항식 행열을 이용한 공개키 암호시스템 Download PDFInfo
- Publication number
- KR20020003059A KR20020003059A KR1020000037603A KR20000037603A KR20020003059A KR 20020003059 A KR20020003059 A KR 20020003059A KR 1020000037603 A KR1020000037603 A KR 1020000037603A KR 20000037603 A KR20000037603 A KR 20000037603A KR 20020003059 A KR20020003059 A KR 20020003059A
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- message
- digital signature
- values
- integer
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public 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
Landscapes
- Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
다항식과 정수를 원소로 구성된 행열 환에서 덧셈과 곱셈을 사용하여 새로운 trap-door 일방향 함수를 발견하고 이를 이용한 유사한 2가지 공개키 암호시스템을 개발하였다. 이 암호는 암호화 및 복호화 속도가 매우 빠르고 전자서명이 가능한 시스템이다.
Description
본 발명은 새로운 일방향 함수를 발견하고, 이 함수를 이용하여 만든 공개키 암호시스템의 일종이다. 유사한 일방향함수를 이용하여 암호가 작용하는 메시지 공간을 달리하여 아래의 두 공개키 암호시스템을 설명하고자 한다
A. 정수 행열을 이용한 공개키 암호시스템.
예로서 2 ×2 행열H을 고려해 보자.
먼저 정수Q를 2213-1 이라 하자. 그리고P의 값을 약 2140정도의 gcd(Q,P) = 1 인 정수로 잡자. 그리고 2 ×2 행열f의 각 구성원소가 272이하의 양의 정수로 구성되도록 잡자. 그리고 이 행열의 정수환Z/ <Q> 에 대한 역행열을f Q 라 하자. 행열P * =라 할 때P * ×f Q modQ하여 생성된 행열을H라 하면H는 아래의 모양을 가진다. 이때H와Q를 공개한다.
H = 그러면 공격자가 이 두 값으로부터f * =라 할 때P값이하인 어떤 양의 정수 PP에 대해
ax + bz mod Q = PP , cx + dz mod Q = PP
ay + bw mod Q = PP , cy + dw mod Q = PP 를 만족하고x,y,z,w 모두가272이하인x,y,z,w, PP를 구하기 어려울 것이라는 문제에 안전성의 근거를 두고 있다.
B. 다항식 행열을 이용한 공개키 암호시스템.
예로서 자세히 설명하고자 한다.
p= 2 라 하자. 그리고 다항식Q를x 161-1 이라 하자. 그리고 차수가 100차이고 gcd (Q,P) = 1인 다항식P를 S 안에서 랜덤 선택하자. 그리고 2 ×2 행열f의 각 구성원소가 차수가 60 이하의 다항식으로 구성되도록 잡자. 그리고 이 행열의 정수환 S에 대한 역행열을f Q 라 하자. 행열P * = 라 할 때P * ×f Q modQ하여 생성된 행열을H라 하면H는 아래의 모양을 가진다. 이때H와Q를 공개한다.
H=그러면 공격자가 이 두 값으로부터f * =라 할 때 차수가 100이하인 어떤 S의 원소 PP에 대해
ax + bz mod Q = PP , cx + dz mod Q = PP
ay + bw mod Q = PP , cy + dw mod Q = PP 를 만족하고x,y,z,w모두의 차수가 6O 이하인x,y,z,w, PP를 구하기 어려울 것이라는 문제에 안전성의 근거를 두고 있다.
세상에 알려져 있는 공개키 암호시스템에는 크게 두 종류로 나눌 수 있다. 하나는 키 사이즈는 조금 크지만 효율적인 전자서명을 제공해 주는 RSA 라는 암호시스템이고 두 번 째는 키 사이즈가 작아 스마트 카드에서 사용가능한 ECC라는 암호시스템이다.
그러나 둘다 현실적으로 그 자체 알고리즘으로는 음성을 암호화 할 수 있는 속도를 제공하지 못하기에 현실에서 한계를 가지고 있다.
본 발명에서 제시하는 정수를 이용한 암호시스템은 비교적 작은 수를 사용함으로써 매우 빠른 암호화 및 복호화를 가능하게 하는 시스템으로 전자서명 또한 기존의 암호시스템에 비해 효율적이다.그리고 다항식 행열을 이용한 암호시스템은 비교적 작은 수를 사용함으로써 낮은 8bit 프로세스에서도 연산 수행가능하여 ECC 보다 빠르면서 전자서명을 지원할 수 있다. 키 사이즈 또한 비교적 작아서 일반 통신 기기에서도 유용하게 쓰일 수 있어리라 생각된다. 그리고 이와 유사한 NTRU 암호시스템과는 달리 암호화 시 쓰는 알고리즘과 동일한 알고리즘으로 전자서명을 지원할 수 있어 매우 효율적이라 생각된다. 따라서 본 암호시스템은 비밀키 암호시스템은 사용하지 않고 공개키 암호시스템만 사용하여 실시간 암호화 기능을 제공할 수 있는 공개키 암호시스템이다.
공개키 암호시스템이란 두 사람이 안전한 통신을 하기위해 별도의 비밀키를교환하기 위한 통로가 필요없는 암호시스템이다. 가장 널리 쓰이고 있는 공개키 암호시스템인 RSA암호시스템은 정수의 소인수분해문제의 어려움에 근거하고 있는데 안전성은 보장받고 있으나 key생성 시간 , key-size , 암호화, 복호화 시간 등 여러 측면에서 매우 비효율적이어서 그 응용에는 한계가 있다. 또 다른 시스템으로는 1985년 key-size 측면에서는 매우 우수한 타원곡선 암호시스템(ECC)가 제안되어 현재 사용 중이나 이 시스템 또한 구현이 어렵고 속도가 느리다는 단점을 지니고 있으며 key생성시간이 오래 걸린다는 단점을 지니고 있다. 그러나 1996년 비정역 다항식 환에서의 다항식의 연산을 이용한 공개키 암호 시스템인 NTRU 가 제안되었다. 이 시스템은 이전의 공개키 암호시스템보다 속도 및 key 생성시간이 매우 짧다. 그리고 구현이 용이해서 참 효율적인 연산처리가 가능하다. 그러나 확률론적 암호시스템이어서 항상 복호화가 성공적이지는 않으며 전자서명 방법이 비효율적이라는 단점을 지니고 있다. 여기서 제안하고자 하는 암호시스템은 암호화,복호화 원리관점에서만은 NTRU와 유사하지만 암호의 핵심인 trap-door 일방향 함수는 전혀 다르다. 본 발명의 장점은 암호화,복호화,message 인증 및 서명법 등에서는 매우 효율적이라는 점이다.
문자 데이터는 물론 음성데이터조차 실시간으로 송수신 할 수 있는 매우 빠른 암호화, 복호화, 전자서명 가능한 공개키 암호시스템 개발 및 무선랜통신에서 매우 빠른 key 생성기능을 이용한 안전한 정보교환 및 실시간 전자서명을 지원을 지원할 것이다.
A . 정수 행열을 이용한 공개키 암호시스템.
[1] Key 생성하기
먼저 다음을 만족하는 양의 정수 n1 ,n2 ,n3 ,n4, n5 값을 결정한다.
* n3-1 + n1 + int( log2 k) < n4
* n5 + n3 + n2 + int( log2 k ) <n4
*n 1*m≥60 (f의 복잡도 )
*n 5*k≥60 (R의 복잡도 )
*n 3≥60 (P의 복잡도 ) ,n 1<n 3
먼저m×mmatrixf를 다음과 같이 랜덤하게 구성한다.
f=여기서 0 ≤f ij ≤ 2 n 1인 정수로 구성한다.
두 번째로k×mmatrixP를 다음과 같이 구성한다.
P=,
이때 gcd( det(P) ,Q) = 1 이 이상적이다.
여기서 0 ≤c ij <2 n 2이고 2 n 3-1≤P 1< 2 n 3
( 단 ,i∈ { 1, 2 ,3 ,4 , ... ,k} ,j∈ { 1, 2 ,3 ,4 , ... ,m} )
그리고 크기가 2 n 4≤Q< 2 n 4+1인 양의 정수Q를 선택한다. 이때Q는 랜덤해도 되지만 경우에 따라 두 소수의 곱 또는 소수로 선택하여 전자서명에 활용하기도 할 것이다.
그리고 다음과 같은 방법으로 비밀키 matrixf Q 와 공개키 matrixH를 생성한다.
정수 환Z/<Q> 에서f의 역행열을f Q 라 하자. 그러면f Q *f≡f*f Q ≡ImodQ. ( 단,I는 단위행열 )
그리고 정수 환Z/<Q> 에서P*f Q modQ≡H라 한다.
마찬가지로 정수 환Z/<P 1 > 에서 행열f의 역행열을f P 1라 하면f P 1*f≡f*f P 1≡ImodP 1. ( 단,I는 단위행열 ) 가 된다.
여기까지 생성한 여러 key 들 중
공개키는Q,H,n 3,n 4,n 5이고 비밀키는f,f Q ,P 1,f P 1이다.
[2] 메시지 구성하기
메시지M= ( M1 , M2 , ... , Mm) 으로 표현하자. 이때 각 Mi 값은P 1미만인 양의 정수로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한것이다.
구체적으로 2 n 3-2≤Mi ≤2 n 3-1이도록 구성한다.
[3] 암호화 하기
메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인R= ( R1 , R2 , ..... , Rk) 로 표현한다. (단, 2 n 5-1≤ Ri ≤2 n 5)
그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키Q와H를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다.
M+R*HmodQ≡E가 암호화된 결과로서 1 ×m행열이 된다.
이 값을 보내고자 하는 상대에게 보낸다.
[4] 복호화 하기
메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.
1.E*fmodQ= A = ( A1 , A2 , .... , Am)
2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )
AA = ( AA1 , AA2 , .... , AAm)
3. AA *f P 1modP 1≡MM을 얻는다.
이때 수신자는MM=M임을 확인 할 수 있다.
[5] 전자서명방법
전자서명이 성립하도록하기 위해 다음과 같은 방법이 있다.
[5-1] 확률론적인 전자서명법
확룰론적인 전자서명은 비교적 작은 key size를 이용하여 기존의 암호시스템의 전자서명법을 이용하지 않고 기존보다 비교적 빠른 전자서명 방법을 제공한다.
일반적으로 보다 빠른 복호화를 위해k≥m이도록 수를 잡는다.
첫 번째 경우로n 1-1 ≤n 5+n 2인 경우n 4=n 5+n 3+n 2+ int( log2 k) 로 잡는다.
이때 전자서명이 성립할 확율은
( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) ==이 된다. 그런데 암호시스템에서n 2와 log2 k값은 일반적으로 2이하로 잡을 것이므로 별로 문제가 되지 않을 것이라 생각된다. 만약
두 번째로n 1-1 ≥n 5+n 2인 경우n 4=n 3-1+n 1+int( log2 k) 로 잡는다.
이때 전자서명이 성립할 확률은
=이다. 따라서 전자서명이 될 확률을 높이려면 |n 1-n 5|와 int( log2 k) 의 값이 작은 정수이도록 계수들을 설정한다.
다음은 A가 메시지 M에 전자서명하여 B에게 보낸는 방법이다
정의 : M 이 정수이고 2 n -1≤M<2 n 이라면 len(M) =n이라 정의한다. 그리고 M = (M 1, M 2,...,M m ) 이라면 len ( M ) = len(M i ) 라 정의한다. 두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다고 가정하자. 이때 B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자. 먼저 A는 h(M)을 계산하자. 그리고 아래와 같이 전자서명을 한다.
CASE A > len( h(M) ) ≥ len(Q A )
(1) len( h(M) ) - len(Q A ) 만큼의 bit 수를 h(M) 의 오른쪽 부분에서 잘라낸다. 그 결과를 MM이라 하자.
(2) 그리고 A 자신의 비밀키인 행열f와 정수P 1을 사용하여 아래 식을 만족하는 행열M과R을 얻는다.
MM =M *+R *×H A modQ A
얻어진M *과R *이 A 자신의 공개키인 len(M)과 len(R) 보다 크다면 MM의 오른쪽 1bit를 1과 exclusive or 연산을 작용시켜M *과R *얻는 과정을 반복한다. 이런 과정을 MM의 우측 오른 약 5 bit를 에 대해 수행하면 위 조건을 만족하는M *과R *값을 얻을 수 있을 것이다.
(3) 위에서 구한M *과R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.
(4) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다. ) 그리고 다시 A의 공개키로 암호화 하여 얻어진 MM과 h(M) 의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.
CASE B> len( h(M) ) < len(Q A )
(1) h(M)의 앞부분의 bit들을 차례로 추출하여 concatenation하여 그 결과를 x라 할 때 , len(h(M) x) 값이 B의 공개된 len(Q B ) 가 되도록 만들자. (만약 len(h(M) (h(M))조차로 B의 공개된 message 길이보다 작으면 크기 조건을 만족시킬 때까지 h(M) (h(M) x 모양으로 변형을 계속한다. ) 그리고 그 결과 h(M) x 를 MM 이라 하자.
(2) CASE A> 에서의 (2), (3) 과정을 수행한다.
(3) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다. ) 다시 A의 공개키로 다음식M *+R *×H A modQ A 와 같이 연산하여 MM을 얻는다. 이 MM값이 원래 전자서명 받기를 원하는message M의 hash 값인 h(M) 또는 h(M) x 또는 h(M) h(M) x 등등의 모양인지 유사한지 검사한다. 그 유사성 유무의 판단 기준은 오른쪽 5bit의 수이하가 차이나면 그 전자서명은 신뢰도가 있는 것으로 받아들이고 그렇지 않으면 A 의 전자서명을 거부한다.
[5-2] 고전적인 전자서명방법을 적용한 서명방법.
고전적인 전자서명방법중 RSA에서 사용하고 있는 전자서명법을 우리의 경우에 적합하게 적용하여 전자서명하는 방법을 제시하고자 한다.
먼저Q를 두 소수의 곱으로 잡는다. 그리고 RSA 전자서명법을 적용하려고 RSA 의 전자서명용 공개키 e 와 비밀키 d를 만든다. 그리고 다음과 같이 메시지 M 에 대해 전자서명을 한다.
먼저 메시지 M을 해쉬함수에 넣어 그 결과를 얻는다. 그 결과 비교적 작은 bit 수를 가진 text를 얻을 것이다. 이것을 RSA 에서와 같은 방법으로 전자서명을 한다.
여기서 주의 할 것은 메시지를 보낼 때는 " 정수행열을 이용한 공개키 암호시스템."에서 제시한 방법으로 암호화를 하고 전자서명시에만 RSA 방법으로 함으로써 보다 빠른 전자성거래 시스템을 구축할 수 있을 것이다.
비정역인 정수환에서 곱셈연산만을 사용한 암호시스템으로는 RSA라는 암호시스템이 있다. 이 암호시스템은 두 소수 p , q 의 곱인 N 이 공개되어 있더라도 이로부터 p , q를 구하기는 어렵다는 소위, 충분히 큰 정수 N=p*q의 인수분해의 어려움에 그 안전성의 근거를 두고 있다. 하지만 본 발명은 정수환에서 곱셈연산과덧셈연산을 동시에 사용하고 있다.
그리고 본 발명은 message 인증 및 전자서명을 지원하는 암호시스템이다. 본 암호시스템을 이용한 message 인증 및 전자서명은 기존의 암호시스템에 비해 매우 효율적이다.
B . 다항식 행열을 이용한 공개키 암호시스템.
[1] Key 생성하기
먼저 다항식의 환 S =Z[x]/<p,Q> 라 정의하자. ( 단,p는 양의 정수 ,Q는 기약 다항식 , 또는x N- c 모양의 다항식 ).
환 SS를Z[x]/<p,P 1> 라 정의하자. (P 1은 아래의 차수 조건을 만족하는 다항식 ) 이때 만약G가 다항식이면 " deg (G )= 다항식G의 차수 " 라고 정의하자. 만약G= (G 1,G 2,...,G k ) 이고 각G i 가 다항식이면 deg (G)= max { deg(G 1),deg(G 2), ... ,deg(G k ) } 라 정의하자.
먼저 음이 아닌 정수 deg(C)를 정하자. 보통은 deg(C) ∈{0,1,2,3} .
예로서 deg(C) 가 2이면Z/<p>의 원소를 계수로 가지는 2차 이하의 다항식을 의미한다. 0 ≤deg(c ij ) ≤ deg(C) .
그리고k는 1≤k인 양의 정수로 잡는다. 보통 이 정수가 클수록 수행속도가 늦어지므로 가능한 작은 정수를 잡도록 하자.
이제 아래의 차수 및 기타 조건을 만족하도록 각 deg 값을 정하자.
deg(M) + deg(f) < deg(Q) .
deg(M) < deg(P 1)
deg(R) + deg (P 1) + deg( C ) < deg(Q) .
p deg( f )* m ≥ 2128
p deg( R )* k ≥ 2128
p deg( M )* m ≥ 2128
예로서p= 2 ,k=m= 2 , deg(C) =1 이라면 deg(f) , deg(R) , deg(M) 이 모두 64 이상인 정수롤 잡는다. 그 결과 deg(Q) 는 최소 130이상인 정수일 것이다.
이제 다항식의 1×m행열M과 1 ×k행열R을 다음과 같이 정의하자.
M= (M 1,M 2,...,M m ) , R = (r 1,r 2,...,r k ) . 여기서 M, R , f 의 구성성분은 위 차수조건을 만족하도록 선택한다. 가능한 deg(r 1) = ...= deg(r k ) = deg(R) 이도록 잡는다.
H=,f=
P=
이때 gcd (det(P),Q) = 1 이 이상적이다.
위 세 행열은 다음과 같은 관계를 가진다.
먼저m×m행열f의 역행열이 존재할 때까지 행열f를 랜덤하게 구성한다. 이때 행열f의 행열값이 환 S에서 단위원일 때 역행열이 존재하는 것이다. 그리고 수학적인 계산에 의해 행열f의 역행열을F Q 라 하자. 그리고 위 차수 조건을 만족하도록 정한P 1과c ij 값으로부터P를 구성한 후P*F Q 를 환 S 안에서 곱하기를 수행하여 나온 결과 생성되는k×m행열을H라 정의하자. 그 결과 생성되는 각H의 원소들에 대해 다음 조건이 만족되는지 조사한다.
각 j = 1 ,2 ,3 ,...,m 에 대해
min { deg(H 1 j ) , deg(H 2 j ) , ... , deg(H kj ) } > deg( Q ) - 10 인지 조사한다. 만약 이 조건이 만족되지 않으면 f를 랜덤하게 선택하고 위 과정을 반복한다 .
그리고 이렇게 구해진 행열f에 대해 환 SS 에서의f의 역행열을 구한다. 만약 존재하지 않으면f를 랜덤하게 선택한 후 위 전과정을 반복한다. 구해진 역행열을f P 1이라 하자.
공개키 :H,Q, deg(M) ,deg(R)
비밀키 :P 1,f
[2] 메시지 구성하기
메시지M= (M 1,M 2,...,M m ) 으로 표현하자. 이때 각M i 값은 deg(M) 이하인S의 원소로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한 것이다.
[3] 암호화 하기
메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인 R = (r 1,r 2,...,r k ) 로 표현한다.
그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키Q와H를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다. (단, + 와 * 는 환 S 안에서의 연산이다. )
M+R*H≡E가 암호화된 결과로서 1 ×m행열이 된다.
이 값을 보내고자 하는 상대에게 보낸다.
[4] 복호화 하기
메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.
1.E*fmodQ= A = ( A1 , A2 , .... , Am)
2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )
AA = ( AA1 , AA2 , .... , AAm)
3. AA *f P 1modP 1≡MM을 얻는다.
이때 수신자는MM=M임을 확인 할 수 있다.
[5] 전자서명방법
일반적으로 deg(M) = deg(P)-1 , deg(f)=deg(R) , m = k , deg(C)=0 , deg(M) + deg(P) = deg(Q) 이도록 선택한다면 다음과 같이 전자서명을 할 수 있다.
그러나 일반적으로 deg(M) = deg(P)-1 , deg(R)=deg(Q)-deg(P)-deg(C)-1 , deg(M) + deg(P) = deg(Q) 로 선택시 전자서명이 될 확률은 다음과 같다.
( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) =이다. 특수한 경우로m=k로 잡으면 전자서명이 될 확률은이다.
다음은 A가 메시지 M에 전자서명하여 B에게 전송하는 절차이다.
두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다고 가정하자.이때 B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.
먼저 A는 h(M)을 계산하자. 그리고 아래와 같이 전자서명을 한다.
CASE A > log p ( h(M) ) ≥ log p (Q A )
(1) 정수로 표현한 h(M)을p진수로 표현했을 때 왼쪽에서 int[ log p Q A ] 만큼의 자리수만 남기고 나머지는 모두 버린다.그 결과 생성된 값을 hh(M)이라 하자. 그리고 이p진수 hh(M) 값을 1 ×m행열로 자리수 기준으로 골고루 분산시킨다. 그 결과 생생된 1 ×m행열을 hhh(M)이라 하자.
(2) 그리고 자신의 비밀키인 행열f와 다항식P 1을 사용하여 아래 식을 만족하는 행열M *과R *을 얻는다.
hhh(M) =M *+R *×H A modQ A
얻어진M *과R *의 각 구성원소인M i 와R i 의 값이 A의 공개키인 deg(M)과 deg(R)값보다 크다면 hhh(M)의 값에 오른쪽 1bit를 1과 exclusive or 연산을 작용시켜 생성된 결과를 다시 hhh(M)이라 하고M *과R *얻는 과정을 반복한다.이런 과정을 hhh(M)의 우측 오른 약 5 bit를 에 대해 수행하면 위 조건을 만족하는M *과R *값을 얻을 수 있을 것이다.
(3) 위에서 구한M *과R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.
(4) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다. ) 그리고 A의 공개키로 암호화 하여 얻어진 hhh(M)과 h(M) 의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.
CASE B> len( h(M) ) < len (Q A )
(1) 정수로 표현한 h(M)을p진수로 표현했을 때 왼쪽에서 int[ log p Q A ]만큼의 자리수를 차지할 때까지p진수로 표현한 h(M)값의 왼쪽부분을 각 자리수를p진수 h(M)에 붙이기를 반복한다. (예, h(M) x , h(M) h(M) x, 등등 ). 그 결과 생성된 값을 hh(M)이라 하자. 그리고 이p진수 hh(M) 값을 1 ×m행열로 자리수 기준으로 골고루 분산시킨다. 그 결과 생성된 1 ×m행열을 hhh(M)이라 하자.
(2) CASE A> 에서의 (2), (3) 과정을 수행한다.
(3) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다. ) 그리고 다시 A의 공개키로 다음 식M *+R *×H A modQ A 와 같이 연산하여 hhh(M)을 얻는다. 이 hhh(M)값이 원래 전자서명 받기를 원하는 message M의 hash 값인 h(M) 또는 h(M) x 또는 h(M) h(M) x 등등을p진수로 표현한 모양과 유사한지 검사한다. 그 유사성 유무의 판단 기준은 오른쪽 5bit의 수이하가 차이나면 그 전자서명은 신뢰도가 있는 것으로 받아들이고 그렇지 않으면 A 의 전자서명을 거부한다.
종래에 다항식을 이용한 암호시스템에는 ECC와 NTRU 가 있다. 그런데 여기서 제시하고 있는 시스템은 NTRU와 암호화 및 복호화 과정은 유사하지만 암호의 핵심은 일방향 함수는 다르다. 또한 전자서명법은 전혀 다르다.
기존의 암호시스템의 암호화 및 복호화 속도의 한계를 극복하여 매우 빠른 PKI 구축에 사용되어 질 수 있다. 그리고 매우 빠른 키 생성시간은 one time password로 응용될 수 있다.
그리고 다항식을 이용한 공개키 암호시스템은 매우 작은 수를 사용할 수 있으므로 메모리 효율적인 스마트 카드 등에 응용되어 질 수 있을 것이다.
Claims (4)
- 행열을 이용한 공개키 암호시스템에서 암호화 및 복화화 과정[1] Key 생성하기먼저 다음을 만족하는 양의 정수 n1 ,n2 ,n3 ,n4, n5 값을 결정한다.* n3-1 + n1 + int( log2 k) < n4* n5 + n3 + n2 + int( log2 k) < n4*n 1*m≥60 (f의 복잡도 )*n 5*k≥60 (R의 복잡도 )*n 3≥60 (P의 복잡도 ) ,n 1<n 3먼저m×mmatrixf를 다음과 같이 랜덤하게 구성한다.f=여기서 0 ≤f ij ≤ 2 n 1인 정수로 구성한다.두 번째로k×mmatrixP를 다음과 같이 구성한다.P=이때 gcd (det(P),Q) = 1 이 이상적이다.여기서 0 ≤c ij <2 n 2이고 2 n 3-1≤P 1< 2 n 3( 단 ,i∈ { 1, 2 ,3 ,4 , ... ,k} ,j∈ { 1, 2 ,3 ,4 , ... ,m} )그리고 크기가 2 n 4≤Q< 2 n 4+1인 양의 정수Q를 선택한다. 이때Q는 랜덤해도 되지만 경우에 따라 두 소수의 곱 또는 소수로 선택하여 전자서명에 활용하기도 할 것이다.그리고 다음과 같은 방법으로 비밀키 matrixf Q 와 공개키 matrixH를 생성한다.정수 환Z/<Q> 에서f의 역행열을f Q 라 하자. 그러면f Q *f≡f*f Q ≡ImodQ. ( 단,I는 단위행열 )그리고 정수 환Z/<Q> 에서P*f Q modQ≡H라 한다.마찬가지로 정수 환Z/<P 1> 에서 행열f의 역행열을f P 1라 하면f P 1*f≡f*f P 1≡ImodP 1. ( 단,I는 단위행열 ) 가 된다.여기까지 생성한 여러 key 들 중 공개키는Q,H,n 3,n 4,n 5이고 비밀키는f,f Q ,P 1,f P 1이다.[2] 메시지 구성하기메시지M= ( M1 , M2 , ... , Mm) 으로 표현하자. 이때 각 Mi 값은P 1미만인 양의 정수로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한 것이다.구체적으로 2 n 3-2≤ Mi ≤2 n 3-1이도록 구성한다.[3] 암호화 하기메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인R= ( R1 , R2 , ..... , Rk) 로 표현한다. (단, 2 n 5-1≤ Ri ≤2 n 5)그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키Q와H를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다.M+R*HmodQ≡E가 암호화된 결과로서 1 ×m행열이 된다.이 값을 보내고자 하는 상대에게 보낸다.[4] 복호화 하기메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.1.E*fmodQ= A = ( A1 , A2 , .... , Am)2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )AA = ( AA1 , AA2 , .... , AAm)3. AA *f P 1modP 1≡MM을 얻는다.이때 수신자는MM=M임을 확인 할 수 있다.
- 제 1항의 암호화, 복호화 방법을 이용한 전자서명방법전자서명이 성립하도록하기 위해 다음과 같은 방법이 있다.[1] 확률론적인 전자서명법확룰론적인 전자서명은 비교적 작은 key size를 이용하여 기존의 암호시스템의 전자서명법을 이용하지 않고 기존보다 비교적 빠른 전자서명 방법을 제공한다.일반적으로 보다 빠른 복호화를 위해k≥m이도록 수를 잡는다.첫 번째 경우로n 1-1 ≤n 5+n 2인 경우n 4=n 5+n 3+n 2+ int( log2 k) 로 잡는다.이때 전자서명이 성립할 확율은( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) ==이 된다. 그런데 암호시스템에서n 2와 log2 k값은 일반적으로 2이하로 잡을 것이므로 별로 문제가 되지 않을 것이라 생각된다. 만약두 번째로n 1-1 ≥n 5+n 2인 경우n 4=n 3-1+n 1+int( log2 k) 로 잡는다. 이때 전자서명이 성립할 확률은=이다. 따라서 전자서명이 될 확률을 높이려면 |n 1-n 5|와 int( log2 k) 의 값이 작은 정수이도록 계수들을 설정한다.다음은 A가 메시지 M에 전자서명하여 B에게 보내는 방법이다.정의 : M 이 정수이고 2 n -1≤M<2 n 이라면 len(M) =n이라 정의한다. M =(M 1,M 2,...,M m ) 이라면 len ( M ) = len(M i ) 라 정의한다.두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다고 가정하자.이때 B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.먼저 A는 h(M)을 계산하자. 그리고 아래와 같이 전자서명을 한다.CASE A > len( h(M) ) ≥ len(Q A )(1) len( h(M) ) - len(Q A ) 만큼의 bit 수를 h(M) 의 오른쪽 부분에서 잘라낸다. 그 결과를 MM이라 하자.(2) 그리고 A 자신의 비밀키인 행열f와 정수P 1을 사용하여 아래 식을 만족하는 행열M과R을 얻는다.MM =M *+R *×H A modQ A얻어진M *과R *이 A 자신의 공개키인 len(M)과 len(R) 보다 크다면 MM의 오른쪽 1bit를 1과 exclusive or 연산을 작용시켜M *과R *얻는 과정을 반복한다.이런 과정을 MM의 우측 오른 약 5 bit를 에 대해 수행하면 위 조건을 만족하는M *과R *값을 얻을 수 있을 것이다.(3) 위에서 구한M *과R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.(4) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다.(성립하지 않으면 서명은 신뢰도가 없는 것이다.) 그리고 다시 A의 공개키로 암호화 하여 얻어진 MM과 h(M)의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.CASE B> len( h(M) ) < len (Q A )(1) h(M)의 앞부분의 bit들을 차례로 추출하여 concatenation하여 그 결과를 x라 할 때 , len(h(M) x) 값이 B의 공개된 len(Q B ) 가 되도록 만들자.(만약 len(h(M) (h(M))조차로 B의 공개된 message 길이보다 작으면 크기 조건을 만족시킬 때까지 h(M) (h(M) x 모양으로 변형을 계속한다.) 그리고 그 결과 h(M) x 를 MM 이라 하자.(2) CASE A> 에서의 (2), (3) 과정을 수행한다.(3) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다.) 다시 A의 공개키로 다음식M *+R *×H A modQ A 와 같이 연산하여 MM을 얻는다. 이 MM값이 원래 전자서명 받기를 원하는message M의 hash 값인 h(M) 또는 h(M) x 또는 h(M) h(M) x 등등의 모양인지 유사한지 검사한다. 그 유사성 유무의 판단 기준은 오른쪽 5bit의 수이하가 차이나면 그 전자서명은 신뢰도가 있는 것으로 받아들이고 그렇지 않으면 A 의 전자서명을 거부한다.[2] 고전적인 전자서명방법을 적용한 서명방법.고전적인 전자서명방법중 RSA에서 사용하고 있는 전자서명법을 우리의 경우에 적합하게 적용하여 전자서명하는 방법을 제시하고자 한다.먼저Q를 두 소수의 곱으로 잡는다. 그리고 RSA 전자서명법을 적용하려고 RSA 의 전자서명용 공개키 e 와 비밀키 d를 만든다. 그리고 다음과 같이 메시지 M 에 대해 전자서명을 한다.먼저 메시지 M을 해쉬함수에 넣어 그 결과를 얻는다. 그 결과 비교적 작은 bit 수를 가진 text를 얻을 것이다. 이것을 RSA 에서와 같은 방법으로 전자서명을 한다.여기서 주의 할 것은 메시지를 보낼 때는 " 정수행열을 이용한 공개키 암호시스템."에서 제시한 방법으로 암호화를 하고 전자서명시에만 RSA 방법으로 함으로써 보다 빠른 전자성거래 시스템을 구축할 수 있을 것이다.
- 다항식을 이용한 공개키암호시스템에서 암호화 및 복호화 과정[1] Key 생성하기먼저 다항식의 환 S =Z[x]/<p,Q>라 정의하자. ( 단,p는 양의 정수 ,Q는 기약 다항식 , 또는x N -c모양의 다항식 ).환 SS를Z[x]/<p,P 1> 라 정의하자. (P 1은 아래의 차수 조건을 만족하는 다항식 )이때 만약G가 다항식이면 " deg (G) = 다항식G의 차수 " 라고 정의하자.만약G= (G 1,G 2,...,G k ) 이고 각G i 가 다항식이면 deg (G)= max { deg(G 1),deg(G 2), ... ,deg(G k ) } 라 정의하자.먼저 음이 아닌 정수 deg(C)를 정하자. 보통은 deg(C) ∈{0,1,2,3} .예로서 deg(C) 가 2이면Z/<p>의 원소를 계수로 가지는 2차 이하의 다항식. 0 ≤deg(c ij ) ≤ deg(C) .그리고k는 1≤k인 양의 정수로 잡는다. 보통 이 정수가 클수록 수행속도가 늦어지므로 가능한 작은 정수를 잡도록 하자.이제 아래의 차수 및 기타 조건을 만족하도록 각 deg 값을 정하자.deg(M) + deg(f) < deg(Q) . deg(M) < deg(P1)deg(R) + deg(P 1) + deg( C ) < deg(Q) .p deg( f )* m ≥ 2128p deg( R )* k ≥ 2128p deg( M )* m ≥ 2128예로서p= 2 ,k=m= 2 , deg(C) =1 이라면 deg(f) , deg(R) , deg(M) 이 모두 64 이상인 정수롤 잡는다. 그 결과 deg(Q) 는 최소 130이상인 정수일 것이다.이제 다항식의 1×m행열M과 1 ×k행열R을 다음과 같이 정의하자.M= (M 1,M 2,...,M m ) , R = (r 1,r 2,...,r k ) . 여기서 M, R , f 의 구성성분은 위 차수조건을 만족하도록 선택한다. 가능한 deg (r 1) = ...= deg(r k ) = deg (R) 이도록 잡는다.H=,f=P=이때 gcd (det(P),Q) = 1 이 이상적이다.위 세 행열은 다음과 같은 관계를 가진다.먼저m×m행열f의 역행열이 존재할 때까지 행열f를 랜덤하게 구성한다. 이때 행열f의 행열값이 환 S에서 단위원일 때 역행열이 존재하는 것이다. 그리고 수학적인 계산에 의해 행열f의 역행열을F Q 라 하자. 그리고 위 차수 조건을 만족하도록 정한P 1과c ij 값으로부터P를 구성한 후P*F Q 를 환 S 안에서 곱하기를 수행하여 나온결과 생성되는k×m행열을H라 정의하자. 그 결과 생성되는 각H의 원소들에 대해 다음 조건이 만족되는지 조사한다.각 j = 1 ,2 ,3 ,...,m 에 대해min { deg(H 1 j ) , deg(H 2 j ) , ... , deg(H kj ) } > deg( Q ) - 10 인지 조사한다. 만약 이 조건이 만족되지 않으면 f를 랜덤하게 선택하고 위 과정을 반복한다.그리고 이렇게 구해진 행열f에 대해 환 SS 에서의f의 역행열을 구한다. 만약 존재하지 않으면f를 랜덤하게 선택한 후 위 전과정을 반복한다. 구해진 역행열을f P 1이라 하자.공개키 :H,Q, deg(M) ,deg(R)비밀키 :P 1,f[2] 메시지 구성하기메시지M= (M 1,M 2,...,M m ) 으로 표현하자. 이때 각M i 값은 deg(M) 이하인 S의 원소로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한 것이다.[3] 암호화 하기메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인 R = (r 1,r 2,...,r k ) 로 표현한다.그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키Q와H를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다.(단 , + 와 ×는 환 S 안에서의 연산이다. )M+R × H≡E가 암호화된 결과로서 1 ×m행열이 된다.이 값을 보내고자 하는 상대에게 보낸다.[4] 복호화 하기메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.1.E*fmodQ= A = ( A1 , A2 , .... , Am)2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )AA = ( AA1 , AA2 , .... , AAm)3. AA *f P 1modP 1≡MM을 얻는다.이때 수신자는MM=M임을 확인 할 수 있다.
- 제 3항의 암호화/복호화 방법을 이용한 전자서명방법일반적으로 deg(M) = deg(P)-1 , deg(f)=deg(R) , m = k , deg(C)=0 , deg(M) + deg(P) = deg(Q) 이도록 선택한다면 다음과 같이 전자서명을 할 수 있다.그러나 일반적으로 deg(M) = deg(P)-1 , deg(R)=deg(Q)-deg(P)-deg(C)-1 , deg(M) + deg(P) = deg(Q) 로 선택시 전자서명이 될 확률은 다음과 같다.( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) =이다. 특수한 경우로m=k로 잡으면 전자서명이 될확률은이다.다음은 A가 메시지 M에 전자서명하여 B에게 전송하는 절차이다.두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다고 가정하자.이때 B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.먼저 A는 h(M)을 계산하자. 그리고 아래와 같이 전자서명을 한다.CASE A > log p ( h(M) ) ≥ log p (Q A )(1) 정수로 표현한 h(M)을p진수로 표현했을 때 왼쪽에서 int[ log p (Q A ) ]만큼의 자리수만 남기고 나머지는 모두 버린다.그 결과 생성된 값을 hh(M)이라 하자. 그리고 이p진수 hh(M) 값을 1×m행열로 자리수 기준으로 골고루 분산시킨다. 그 결과 생생된 1 ×m행열을 hhh(M)이라 하자.(2) 그리고 자신의 비밀키인 행열f와 다항식P 1을 사용하여 아래 식을 만족하는 행열M *과R *을 얻는다.hhh(M) =M *+R *×H A modQ A얻어진M *과R *의 각 구성원소인M i 와R i 의 값이 A의 공개키인 deg(M)과 deg(R)값보다 크다면 hhh(M)의 값에 오른쪽 1bit를 1과 exclusive or 연산을 작용시켜 생성된 결과를 다시 hhh(M)이라 하고M *과R *얻는 과정을 반복한다.이런 과정을 hhh(m)의 우측 오른 약 5 bit를 에 대해 수행하면 위 조건을 만족하는M *과R *값을 얻을 수 있을 것이다.(3) 위에서 구한M *과R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.(4) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다.) 그리고 A의 공개키로 암호화 하여 얻어진 hhh(M)과 h(M) 의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.CASE B> log p ( h(M) ) < log p (Q A )(1) 정수로 표현한 h(M)을p진수로 표현했을 때 왼쪽에서 int[ log p Q A ]만큼의 자리수를 차지할 때까지p진수로 표현한 h(M)값의 왼쪽부분을 각 자리수를p진수 h(M)에 붙이기를 반복한다.(예, h(M) x , h(M) h(M) x, 등등 ). 그 결과 생성된 값을 hh(M)이라 하자. 그리고 이p진수 hh(M) 값을 1 ×m행열로 자리수 기준으로 골고루 분산시킨다. 그 결과 생생된 1 ×m행열을 hhh(M)이라 하자.(2) CASE A> 에서의 (2), (3) 과정을 수행한다.(3) 그러면 B 는 복호화 하여M *과R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다.(성립하지 않으면 서명은 신뢰도가 없는 것이다.) 그리고 다시 A의 공개키로 다음 식M *+R *×H A modQ A 와 같이 연산하여 hhh(M)을 얻는다. 이 hhh(M)값이 원래 전자서명 받기를 원하는 message M의 hash 값인 h(M) 또는 h(M) x 또는 h(M) h(M) x 등등을p진수로 표현한 모양과 유사한지 검사한다. 그 유사성 유무의 판단 기준은 오른쪽 5bit의 수이하가 차이나면 그 전자서명은 신뢰도가 있는 것으로 받아들이고 그렇지 않으면 A 의 전자서명을 거부한다.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000037603A KR20020003059A (ko) | 2000-07-01 | 2000-07-01 | 정수 또는 다항식 행열을 이용한 공개키 암호시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000037603A KR20020003059A (ko) | 2000-07-01 | 2000-07-01 | 정수 또는 다항식 행열을 이용한 공개키 암호시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020003059A true KR20020003059A (ko) | 2002-01-10 |
Family
ID=19675802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000037603A KR20020003059A (ko) | 2000-07-01 | 2000-07-01 | 정수 또는 다항식 행열을 이용한 공개키 암호시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20020003059A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877627A (zh) * | 2005-06-10 | 2006-12-13 | 中国科学院软件研究所 | 在线交易的电子支付***和方法 |
KR100718489B1 (ko) * | 2004-03-02 | 2007-05-16 | 프랑스 텔레콤 | 신규의 공정한 은닉 서명을 위한 서명 방법, 컴퓨터 프로그램, 장치 및 서명 시스템 |
CN108259487A (zh) * | 2018-01-10 | 2018-07-06 | 韩家佳 | 信息交互方法和计算机可读介质 |
CN116308813A (zh) * | 2023-05-17 | 2023-06-23 | 青岛农村商业银行股份有限公司 | 一种异业联合金融权益安全管理*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62132451A (ja) * | 1985-12-05 | 1987-06-15 | Toshiba Corp | 公開鍵暗号方式 |
US5295188A (en) * | 1991-04-04 | 1994-03-15 | Wilson William J | Public key encryption and decryption circuitry and method |
JPH11161164A (ja) * | 1997-11-26 | 1999-06-18 | Masao Kasahara | 公開鍵暗号方式と暗号化装置および復号装置 |
KR19990070921A (ko) * | 1998-02-26 | 1999-09-15 | 구자홍 | 행렬그룹 공개키와 그 생성방법 |
-
2000
- 2000-07-01 KR KR1020000037603A patent/KR20020003059A/ko not_active Application Discontinuation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62132451A (ja) * | 1985-12-05 | 1987-06-15 | Toshiba Corp | 公開鍵暗号方式 |
US5295188A (en) * | 1991-04-04 | 1994-03-15 | Wilson William J | Public key encryption and decryption circuitry and method |
JPH11161164A (ja) * | 1997-11-26 | 1999-06-18 | Masao Kasahara | 公開鍵暗号方式と暗号化装置および復号装置 |
KR19990070921A (ko) * | 1998-02-26 | 1999-09-15 | 구자홍 | 행렬그룹 공개키와 그 생성방법 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100718489B1 (ko) * | 2004-03-02 | 2007-05-16 | 프랑스 텔레콤 | 신규의 공정한 은닉 서명을 위한 서명 방법, 컴퓨터 프로그램, 장치 및 서명 시스템 |
CN1877627A (zh) * | 2005-06-10 | 2006-12-13 | 中国科学院软件研究所 | 在线交易的电子支付***和方法 |
CN108259487A (zh) * | 2018-01-10 | 2018-07-06 | 韩家佳 | 信息交互方法和计算机可读介质 |
CN108259487B (zh) * | 2018-01-10 | 2019-12-10 | 韩家佳 | 信息交互方法和计算机可读介质 |
CN116308813A (zh) * | 2023-05-17 | 2023-06-23 | 青岛农村商业银行股份有限公司 | 一种异业联合金融权益安全管理*** |
CN116308813B (zh) * | 2023-05-17 | 2023-08-08 | 青岛农村商业银行股份有限公司 | 一种异业联合金融权益安全管理*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0963635B1 (en) | Cyclotomic polynomial construction of discrete logarithm cryptosystems over finite fields | |
Nyberg et al. | Message recovery for signature schemes based on the discrete logarithm problem | |
US5231668A (en) | Digital signature algorithm | |
US5146500A (en) | Public key cryptographic system using elliptic curves over rings | |
US6415032B1 (en) | Encryption technique using stream cipher and block cipher | |
US8184803B2 (en) | Hash functions using elliptic curve cryptography | |
US7469048B2 (en) | Methods for point compression for jacobians of hyperelliptic curves | |
NZ535698A (en) | An cryptosystem involving generating an isogeny that maps points from one elliptic curve onto another elliptic curve and publishing a public key corresponding to the isogeny | |
AU1132199A (en) | A non-deterministic public key encryption system | |
US20040228485A1 (en) | Method and apparatus for the generation of public key based on a user-defined ID in a cryptosystem | |
Lone et al. | Demystifying cryptography behind blockchains and a vision for post-quantum blockchains | |
CN118160275A (zh) | 阈值签名方案 | |
JP3402441B2 (ja) | 公開鍵暗号化装置、公開鍵暗号復号装置及び復号プログラム記録媒体 | |
WO2019056103A1 (en) | SUPERSINGULAR ELLIPTICAL CURVED CRYPTOGRAPH KEY AGREEMENT SCHEME WITH THREE PARTS | |
US20060251248A1 (en) | Public key cryptographic methods and systems with preprocessing | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
CN117795901A (zh) | 生成数字签名份额 | |
KR20020003059A (ko) | 정수 또는 다항식 행열을 이용한 공개키 암호시스템 | |
Viswanath et al. | A secure cryptosystem using the decimal expansion of an Irrational number | |
CN109787773B (zh) | 基于私钥池和Elgamal的抗量子计算签密方法和*** | |
Mohapatra | Signcryption schemes with forward secrecy based on elliptic curve cryptography | |
Yadav et al. | Hybrid cryptography approach to secure the data in computing environment | |
Shafieinejad et al. | A post-quantum one time signature using bloom filter | |
Naseri et al. | A new public key cryptography using $ M_ {q} $ matrix | |
Somsuk et al. | The Variant of Digital Signature Algorithm for Constant Message. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |