KR20020003059A - A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials - Google Patents

A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials Download PDF

Info

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
Application number
KR1020000037603A
Other languages
Korean (ko)
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 KR1020000037603A priority Critical patent/KR20020003059A/en
Publication of KR20020003059A publication Critical patent/KR20020003059A/en

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

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

PURPOSE: An open key password system using an integer or polynomial matrix is provided so that encryption and decryption can be performed at a high speed by using a small number of numbers. CONSTITUTION: An open key password system enables two persons to communicate with each other without using a path for exchanging secret keys for safety. A general RSA password system is inefficient in a key generation time, a key size and an encryption and decryption time in spite of safety. In addition, an ECC password system has a complicated structure, a low speed and a long key generation time. An NTRU password system using a polynomial operation has a high speed and a short key generation time, and efficiently performs operations. However, the NTRU password system is not always successful in decryption, and inefficient in electronic signing. An open key password system using an integer or polynomial matrix is similar to the NTRU password system in encryption and decryption principles, but implements a different trap door one directional function. Accordingly, the open key password system is efficient in encryption, decryption, message authentication and electronic signing.

Description

정수 또는 다항식 행열을 이용한 공개키 암호시스템{A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials}A public key cryptosystem using matrix which is composed of Integers and Polynomials}

본 발명은 새로운 일방향 함수를 발견하고, 이 함수를 이용하여 만든 공개키 암호시스템의 일종이다. 유사한 일방향함수를 이용하여 암호가 작용하는 메시지 공간을 달리하여 아래의 두 공개키 암호시스템을 설명하고자 한다The present invention finds a new one-way function and is a kind of public key cryptosystem made using this function. The following two public key cryptosystems will be described using different one-way functions and similar message spaces.

A. 정수 행열을 이용한 공개키 암호시스템.A. Public Key Cryptography System Using Integer Matrices.

예로서 2 ×2 행열H을 고려해 보자.As an example, consider the 2x2 matrix 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는 아래의 모양을 가진다. 이때HQ를 공개한다.First integerQ2213Let's say -1. AndPThe value of about 2140Degree of gcd (Q,PLet's set it to an integer with = 1. And a 2 × 2 matrixfEach member of 272Let's get it to consist of the following positive integers: And the integer replacement of this matrixZ/ <Q> Inverse forf Q Let's do it. MatrixP * =WhenP * ×f Q modQTo create a matrixHIfHHas the form At this timeHWowQTo the public.

H = 그러면 공격자가 이 두 값으로부터f * =라 할 때P값이하인 어떤 양의 정수 PP에 대해 H = The attacker would then use f * = P values less than or equal to d for any positive integer PP

ax + bz mod Q = PP , cx + dz mod Q = PPax + 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를 구하기 어려울 것이라는 문제에 안전성의 근거를 두고 있다.Based on the safety of the problem that it would be difficult to find x , y , z , w , PP where ay + bw mod Q = PP, cy + dw mod Q = PP and x , y , z , w are all less than 2 72. have.

B. 다항식 행열을 이용한 공개키 암호시스템.B. Public-Key Cryptography Using Polynomial Matrices.

예로서 자세히 설명하고자 한다.It will be described in detail as an example.

p= 2 라 하자. 그리고 다항식Qx 161-1 이라 하자. 그리고 차수가 100차이고 gcd (Q,P) = 1인 다항식P를 S 안에서 랜덤 선택하자. 그리고 2 ×2 행열f의 각 구성원소가 차수가 60 이하의 다항식으로 구성되도록 잡자. 그리고 이 행열의 정수환 S에 대한 역행열을f Q 라 하자. 행열P * = 라 할 때P * ×f Q modQ하여 생성된 행열을H라 하면H는 아래의 모양을 가진다. 이때HQ를 공개한다.Let p = 2 And let polynomial Q be x 161 -1. Then randomly select the polynomial P with order 100 and gcd ( Q , P ) = 1 in S. And let each element of the 2x2 matrix f be a polynomial of order 60 or less. Let f Q be the inverse of the integer S of this matrix. Matrix P * = Suppose that the matrix generated by P * × f Q mod Q is H. H has the following shape. At this time, H and Q are disclosed.

H=그러면 공격자가 이 두 값으로부터f * =라 할 때 차수가 100이하인 어떤 S의 원소 PP에 대해 H=The attacker would then be able tof * =For any element PP of S with an order of 100 or less

ax + bz mod Q = PP , cx + dz mod Q = PPax + 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를 구하기 어려울 것이라는 문제에 안전성의 근거를 두고 있다.The basis for safety is that it will be difficult to find x , y , z , w , and PP that satisfy ay + bw mod Q = PP, cy + dw mod Q = PP and the order of x , y , z , w are all below 6O. I put it.

세상에 알려져 있는 공개키 암호시스템에는 크게 두 종류로 나눌 수 있다. 하나는 키 사이즈는 조금 크지만 효율적인 전자서명을 제공해 주는 RSA 라는 암호시스템이고 두 번 째는 키 사이즈가 작아 스마트 카드에서 사용가능한 ECC라는 암호시스템이다.The public key cryptosystem known in the world can be divided into two types. One is a cryptographic system called RSA that provides efficient digital signatures with a slightly larger key size, and the second is an ECC cryptographic system that can be used on smart cards because of its smaller key size.

그러나 둘다 현실적으로 그 자체 알고리즘으로는 음성을 암호화 할 수 있는 속도를 제공하지 못하기에 현실에서 한계를 가지고 있다.However, both have limitations in reality because their own algorithms do not provide the speed to encrypt voice.

본 발명에서 제시하는 정수를 이용한 암호시스템은 비교적 작은 수를 사용함으로써 매우 빠른 암호화 및 복호화를 가능하게 하는 시스템으로 전자서명 또한 기존의 암호시스템에 비해 효율적이다.그리고 다항식 행열을 이용한 암호시스템은 비교적 작은 수를 사용함으로써 낮은 8bit 프로세스에서도 연산 수행가능하여 ECC 보다 빠르면서 전자서명을 지원할 수 있다. 키 사이즈 또한 비교적 작아서 일반 통신 기기에서도 유용하게 쓰일 수 있어리라 생각된다. 그리고 이와 유사한 NTRU 암호시스템과는 달리 암호화 시 쓰는 알고리즘과 동일한 알고리즘으로 전자서명을 지원할 수 있어 매우 효율적이라 생각된다. 따라서 본 암호시스템은 비밀키 암호시스템은 사용하지 않고 공개키 암호시스템만 사용하여 실시간 암호화 기능을 제공할 수 있는 공개키 암호시스템이다.The cryptographic system using integers proposed in the present invention is a system that enables very fast encryption and decryption by using a relatively small number. The digital signature is also more efficient than the conventional cryptographic system. By using numbers, operations can be performed on low 8-bit processes, supporting digital signatures faster than ECC. The key size is also relatively small, so it can be useful in general communication devices. And unlike similar NTRU encryption system, it is considered to be very efficient because it can support digital signature with the same algorithm used for encryption. Therefore, this cryptosystem is a public key cryptosystem that can provide real-time encryption without using a secret key cryptosystem.

공개키 암호시스템이란 두 사람이 안전한 통신을 하기위해 별도의 비밀키를교환하기 위한 통로가 필요없는 암호시스템이다. 가장 널리 쓰이고 있는 공개키 암호시스템인 RSA암호시스템은 정수의 소인수분해문제의 어려움에 근거하고 있는데 안전성은 보장받고 있으나 key생성 시간 , key-size , 암호화, 복호화 시간 등 여러 측면에서 매우 비효율적이어서 그 응용에는 한계가 있다. 또 다른 시스템으로는 1985년 key-size 측면에서는 매우 우수한 타원곡선 암호시스템(ECC)가 제안되어 현재 사용 중이나 이 시스템 또한 구현이 어렵고 속도가 느리다는 단점을 지니고 있으며 key생성시간이 오래 걸린다는 단점을 지니고 있다. 그러나 1996년 비정역 다항식 환에서의 다항식의 연산을 이용한 공개키 암호 시스템인 NTRU 가 제안되었다. 이 시스템은 이전의 공개키 암호시스템보다 속도 및 key 생성시간이 매우 짧다. 그리고 구현이 용이해서 참 효율적인 연산처리가 가능하다. 그러나 확률론적 암호시스템이어서 항상 복호화가 성공적이지는 않으며 전자서명 방법이 비효율적이라는 단점을 지니고 있다. 여기서 제안하고자 하는 암호시스템은 암호화,복호화 원리관점에서만은 NTRU와 유사하지만 암호의 핵심인 trap-door 일방향 함수는 전혀 다르다. 본 발명의 장점은 암호화,복호화,message 인증 및 서명법 등에서는 매우 효율적이라는 점이다.A public key cryptosystem is a cryptographic system that does not require a path for exchanging separate secret keys for secure communication. The RSA cryptosystem, the most widely used public key cryptosystem, is based on the difficulty of factoring integers, but its security is guaranteed, but it is very inefficient in many aspects such as key generation time, key-size, encryption, and decryption time. There is a limit. As another system, an excellent elliptic curve cryptosystem (ECC) was proposed in 1985 in terms of key-size, and it is currently in use, but it also has the disadvantage of being difficult to implement and slow. I have it. However, in 1996, NTRU, a public key cryptographic system using polynomial operations in non-inverse polynomials, was proposed. This system is much shorter in speed and key generation time than the previous public key cryptosystem. And because it is easy to implement, it is possible to operate efficiently. However, because it is a stochastic cryptosystem, it is not always successful and the digital signature method is inefficient. The encryption system proposed here is similar to NTRU only in terms of the principle of encryption and decryption, but the trap-door one-way function, which is the core of encryption, is completely different. The advantage of the present invention is that it is very efficient in encryption, decryption, message authentication and signature.

문자 데이터는 물론 음성데이터조차 실시간으로 송수신 할 수 있는 매우 빠른 암호화, 복호화, 전자서명 가능한 공개키 암호시스템 개발 및 무선랜통신에서 매우 빠른 key 생성기능을 이용한 안전한 정보교환 및 실시간 전자서명을 지원을 지원할 것이다.We support the development of a very fast encryption, decryption, digital signature public key cryptosystem that can send and receive text data as well as voice data in real time, and support secure information exchange and real-time digital signature using a very fast key generation function in wireless LAN communication. will be.

A . 정수 행열을 이용한 공개키 암호시스템.A. Public key cryptosystem using integer matrix.

[1] Key 생성하기[1] Key generation

먼저 다음을 만족하는 양의 정수 n1 ,n2 ,n3 ,n4, n5 값을 결정한다.First, the positive integers n1, n2, n3, n4 and n5 satisfying the following values are determined.

* n3-1 + n1 + int( log2 k) < n4N3-1 + n1 + int (log 2 k ) <n4

* n5 + n3 + n2 + int( log2 k ) <n4N5 + n3 + n2 + int (log 2 k) < n4

n 1*m≥60 (f의 복잡도 )n 1 * m ≥60 ( f complexity)

n 5*k≥60 (R의 복잡도 )n 5 * k ≥60 (complexity of R )

n 3≥60 (P의 복잡도 ) ,n 1<n 3 N 3 ≥60 ( P complexity), n 1 < n 3

먼저m×mmatrixf를 다음과 같이 랜덤하게 구성한다.First, m × m matrix f is randomly constructed as follows.

f=여기서 0 ≤f ij ≤ 2 n 1인 정수로 구성한다. f = Herein, an integer of 0 ≦ f ij ≦ 2 n 1 is used.

두 번째로k×mmatrixP를 다음과 같이 구성한다.Second, the k × m matrix P is constructed as follows.

P=, P = ,

이때 gcd( det(P) ,Q) = 1 이 이상적이다.Gcd (det (P), Q ) = 1 is ideal.

여기서 0 ≤c ij <2 n 2이고 2 n 3-1P 1< 2 n 3 Where 0 ≤c ij <2 n 2And 2 n 3-1P One<2 n 3

( 단 ,i∈ { 1, 2 ,3 ,4 , ... ,k} ,j∈ { 1, 2 ,3 ,4 , ... ,m} )Where i ∈ {1, 2, 3, 4, ..., k }, j ∈ {1, 2, 3, 4, ..., m }

그리고 크기가 2 n 4Q< 2 n 4+1인 양의 정수Q를 선택한다. 이때Q는 랜덤해도 되지만 경우에 따라 두 소수의 곱 또는 소수로 선택하여 전자서명에 활용하기도 할 것이다.And size 2 n 4Q<2 n 4 + 1Positive integerQSelect. At this timeQMay be random, but in some cases it may be chosen as the product or fraction of two prime numbers and used for digital signatures.

그리고 다음과 같은 방법으로 비밀키 matrixf Q 와 공개키 matrixH를 생성한다.Then, the secret key matrix f Q and the public key matrix H are generated as follows.

정수 환Z/<Q> 에서f의 역행열을f Q 라 하자. 그러면f Q *ff*f Q ImodQ. ( 단,I는 단위행열 )Let f Q be the inverse of f in the integer ring Z / < Q >. Then f Q * ff * f Q I mod Q. (Where I is the unit matrix)

그리고 정수 환Z/<Q> 에서P*f Q modQH라 한다.And P * f Q mod QH in the integer ring Z / < Q >.

마찬가지로 정수 환Z/<P 1 > 에서 행열f의 역행열을f P 1라 하면f P 1*ff*f P 1ImodP 1. ( 단,I는 단위행열 ) 가 된다.Likewise, if the inverse of the matrix f is f P 1 in the integer Z / < P 1 >, then f P 1 * ff * f P 1I mod P 1 . Where I is the unit matrix.

여기까지 생성한 여러 key 들 중Among the keys created so far

공개키는Q,H,n 3,n 4,n 5이고 비밀키는f,f Q ,P 1,f P 1이다.The public keys are Q , H , n 3 , n 4 , n 5, and the private keys are f , f Q , P 1 , f P 1 .

[2] 메시지 구성하기[2] constructing messages

메시지M= ( M1 , M2 , ... , Mm) 으로 표현하자. 이때 각 Mi 값은P 1미만인 양의 정수로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한것이다.Express the message M = (M1, M2, ..., M m ). At this time, each Mi value is a positive integer less than P 1 , and the message to be sent is expressed as a 1 × m matrix of integers.

구체적으로 2 n 3-2≤Mi ≤2 n 3-1이도록 구성한다.Specifically 2 n 3-2≤Mi ≤2 n 3-1To be configured.

[3] 암호화 하기[3] encryption

메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인R= ( R1 , R2 , ..... , Rk) 로 표현한다. (단, 2 n 5-1≤ Ri ≤2 n 5)messageMIn order to encrypt a message, the message sender is first composed of a random integer 1 ×kArrayR= (R1, R2, ....., Rk) (Only 2 n 5-1≤ Ri ≤2 n 5)

그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키QH를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다.The message M is encrypted using the public key Q and H of the message receiver, which is created in the above way.

M+RHmodQE가 암호화된 결과로서 1 ×m행열이 된다. M + R * H mod QE is the result of the encryption resulting in a 1 × m matrix.

이 값을 보내고자 하는 상대에게 보낸다.Send this value to the person you want to send.

[4] 복호화 하기[4] decrypt

메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.The message receiver can obtain the original message M by using its private key from the E value as follows.

1.E*fmodQ= A = ( A1 , A2 , .... , Am) 1. E * f mod Q = A = (A1, A2, ...., A m)

2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )Ai mod P 1 = AAi (where i ∈ {1, 2, 3, 4, ..., m })

AA = ( AA1 , AA2 , .... , AAm)AA = (AA1, AA2, ...., AA m )

3. AA *f P 1modP 1MM을 얻는다.3. Obtain AA * f P 1 mod P 1MM .

이때 수신자는MM=M임을 확인 할 수 있다.At this time, the receiver can confirm that MM = M.

[5] 전자서명방법[5] digital signatures

전자서명이 성립하도록하기 위해 다음과 같은 방법이 있다.There are the following ways to establish an electronic signature.

[5-1] 확률론적인 전자서명법[5-1] Probabilistic Digital Signature

확룰론적인 전자서명은 비교적 작은 key size를 이용하여 기존의 암호시스템의 전자서명법을 이용하지 않고 기존보다 비교적 빠른 전자서명 방법을 제공한다.The probabilistic digital signature provides a relatively faster digital signature method than the existing digital signature method of the existing encryption system by using a relatively small key size.

일반적으로 보다 빠른 복호화를 위해km이도록 수를 잡는다.In general, number the number km for faster decoding.

첫 번째 경우로n 1-1 ≤n 5+n 2인 경우n 4=n 5+n 3+n 2+ int( log2 k) 로 잡는다.In the first case, n 1 -1 ≤ n 5 + n 2 , n 4 = n 5 + n 3 + n 2 + int (log 2 k ).

이때 전자서명이 성립할 확율은The probability that the digital signature will be established

( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) ==이 된다. 그런데 암호시스템에서n 2와 log2 k값은 일반적으로 2이하로 잡을 것이므로 별로 문제가 되지 않을 것이라 생각된다. 만약(Number of message cases × number of R cases) / (encrypted message space) = = Becomes In the cryptosystem, however, n 2 and log 2 k values are generally set to 2 or less, so it is not a problem. if

두 번째로n 1-1 ≥n 5+n 2인 경우n 4=n 3-1+n 1+int( log2 k) 로 잡는다.Secondly, if n 1 -1 ≥ n 5 + n 2 , set n 4 = n 3 -1+ n 1 + int (log 2 k ).

이때 전자서명이 성립할 확률은In this case, the probability that the digital signature is established

=이다. 따라서 전자서명이 될 확률을 높이려면 |n 1-n 5|와 int( log2 k) 의 값이 작은 정수이도록 계수들을 설정한다. = to be. Therefore, to increase the probability of becoming a digital signature, we set the coefficients so that | n 1 - n 5 | and int (log 2 k ) are small integers.

다음은 A가 메시지 M에 전자서명하여 B에게 보낸는 방법이다Here is how A electronically signs message M and sends it to B:

정의 : M 이 정수이고 2 n -1M<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)을 계산하자. 그리고 아래와 같이 전자서명을 한다.Definition: M is an integer and 2 n -OneM<2 n If len (M) =nThis is defined as. And M = (M One, M 2,...,M m ), Len (M) = len(M i It is defined as Suppose two people A and B use the same hash function h. B is messsage to AMLet's say you asked for an electronic signature. First, let A calculate h (M). Then, digitally sign as follows.

CASE A > len( h(M) ) ≥ len(Q A )CASE A> len (h (M)) ≥ len ( Q A )

(1) len( h(M) ) - len(Q A ) 만큼의 bit 수를 h(M) 의 오른쪽 부분에서 잘라낸다. 그 결과를 MM이라 하자.(1) len (h (M))-Cut the number of bits by len ( Q A ) from the right side of h (M). Let the result be MM.

(2) 그리고 A 자신의 비밀키인 행열f와 정수P 1을 사용하여 아래 식을 만족하는 행열MR을 얻는다.(2) Then, using A's own secret key, the matrix f and the integer P 1 , we obtain the matrix M and R which satisfy the following equation.

MM =M *+R *×H A modQ A MM = M * + R * × H A mod Q A

얻어진M *R *이 A 자신의 공개키인 len(M)과 len(R) 보다 크다면 MM의 오른쪽 1bit를 1과 exclusive or 연산을 작용시켜M *R *얻는 과정을 반복한다. 이런 과정을 MM의 우측 오른 약 5 bit를 에 대해 수행하면 위 조건을 만족하는M *R *값을 얻을 수 있을 것이다.If the obtained M * and R * are larger than A's public keys len (M) and len (R), the process of obtaining M * and R * is performed by performing an exclusive or operation with 1 on the right 1 bit of the MM. If you do this for about 5 bits to the right of the MM, you will get M * and R * values that satisfy the above conditions.

(3) 위에서 구한M *R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.(3) The M * and R * values obtained above are encrypted and transmitted using the B's public key. Of course, the h (M) value is passed to B in the normal path.

(4) 그러면 B 는 복호화 하여M *R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다. ) 그리고 다시 A의 공개키로 암호화 하여 얻어진 MM과 h(M) 의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.(4) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to the values of deg (M) and deg (R), which are the public keys of A. do. (If not, the signature is not trusted.) Then compare the values of MM and h (M), which are again encrypted with A's public key. As a result, if the difference between two values is about 5 bits or less on the right, the digital signature is considered reliable and the rest of the digital signature is considered unreliable.

CASE B> len( h(M) ) < len(Q A )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 이라 하자.(1) When the first bits of h (M) are extracted in order and concatenation, the result x is len (h (M) x) Let the value be the open len ( Q B ) of B. (If len (h (M) Even if (h (M)) is less than B's published message length, h (M) until the size condition is met (h (M) Continue transforming to the x shape. ) And the resulting h (M) Let x be MM.

(2) CASE A> 에서의 (2), (3) 과정을 수행한다.(2) Perform steps (2) and (3) in CASE A>.

(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 의 전자서명을 거부한다.(3) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to deg (M) and deg (R), the public keys of A. do. (If not, the signature is unreliable.) Again, the public key of A is calculated as follows: M * + R * × H A mod Q A to obtain the MM. H (M) or h (M), which is the hash value of message M that you want to receive the original digital signature. x or h (M) h (M) Check if x looks like or similar. The criterion of the similarity is that if the right 5 bits is less than the difference, the digital signature is regarded as reliable, otherwise A's digital signature is rejected.

[5-2] 고전적인 전자서명방법을 적용한 서명방법.[5-2] Signature method using classical digital signature method.

고전적인 전자서명방법중 RSA에서 사용하고 있는 전자서명법을 우리의 경우에 적합하게 적용하여 전자서명하는 방법을 제시하고자 한다.In the classic digital signature method, we propose the method of digital signature by applying the digital signature method used in RSA appropriately in our case.

먼저Q를 두 소수의 곱으로 잡는다. 그리고 RSA 전자서명법을 적용하려고 RSA 의 전자서명용 공개키 e 와 비밀키 d를 만든다. 그리고 다음과 같이 메시지 M 에 대해 전자서명을 한다.First let Q be the product of two prime numbers. Then, to apply the RSA digital signature method, RSA's public key e and secret key d are created. Then, digitally sign the message M as follows.

먼저 메시지 M을 해쉬함수에 넣어 그 결과를 얻는다. 그 결과 비교적 작은 bit 수를 가진 text를 얻을 것이다. 이것을 RSA 에서와 같은 방법으로 전자서명을 한다.First we put message M into a hash function to get the result. The result is text with a relatively small number of bits. This is digitally signed in the same way as in RSA.

여기서 주의 할 것은 메시지를 보낼 때는 " 정수행열을 이용한 공개키 암호시스템."에서 제시한 방법으로 암호화를 하고 전자서명시에만 RSA 방법으로 함으로써 보다 빠른 전자성거래 시스템을 구축할 수 있을 것이다.It should be noted that when sending a message, encryption can be done using the method suggested in "Public Key Cryptography System Using Integer Matrix."

비정역인 정수환에서 곱셈연산만을 사용한 암호시스템으로는 RSA라는 암호시스템이 있다. 이 암호시스템은 두 소수 p , q 의 곱인 N 이 공개되어 있더라도 이로부터 p , q를 구하기는 어렵다는 소위, 충분히 큰 정수 N=p*q의 인수분해의 어려움에 그 안전성의 근거를 두고 있다. 하지만 본 발명은 정수환에서 곱셈연산과덧셈연산을 동시에 사용하고 있다.There is a cryptographic system called RSA that uses only multiplications in noninteger integers. This cryptosystem is based on the safety of the so-called difficulty of factoring a sufficiently large integer N = p * q, even though N, the product of two prime numbers p and q, is known. However, the present invention uses the multiplication operation and the addition operation at the same time in the integer ring.

그리고 본 발명은 message 인증 및 전자서명을 지원하는 암호시스템이다. 본 암호시스템을 이용한 message 인증 및 전자서명은 기존의 암호시스템에 비해 매우 효율적이다.The present invention is a cryptographic system that supports message authentication and digital signature. Message authentication and digital signature using this encryption system is more efficient than the existing encryption system.

B . 다항식 행열을 이용한 공개키 암호시스템.B. Public key cryptosystem using polynomial matrix.

[1] Key 생성하기[1] Key generation

먼저 다항식의 환 S =Z[x]/<p,Q> 라 정의하자. ( 단,p는 양의 정수 ,Q는 기약 다항식 , 또는x N- c 모양의 다항식 ).First, let's define the polynomial ring S = Z [ x ] / < p , Q >. (Where p is a positive integer, Q is a weak polynomial, or x N -c shaped polynomial).

환 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 ) } 라 정의하자.Circle SSZ[x] / <p,P One> Let's define (P OneIs a polynomial that satisfies the following order conditions:GIs a polynomial, "deg (G)= PolynomialGLet's define the order of "ifG= (G One,G 2, ...,G k ) And eachG i If is a polynomial, deg (G) = max {deg (G One), deg (G 2), ..., deg (G k )}

먼저 음이 아닌 정수 deg(C)를 정하자. 보통은 deg(C) ∈{0,1,2,3} .First let's set the non-negative integer deg (C). Usually deg (C) ∈ {0,1,2,3}.

예로서 deg(C) 가 2이면Z/<p>의 원소를 계수로 가지는 2차 이하의 다항식을 의미한다. 0 ≤deg(c ij ) ≤ deg(C) .For example, when deg (C) is 2, it means a second or lower polynomial having elements of Z / < p > as coefficients. 0 ≤ deg ( c ij ) ≤ deg (C).

그리고k는 1≤k인 양의 정수로 잡는다. 보통 이 정수가 클수록 수행속도가 늦어지므로 가능한 작은 정수를 잡도록 하자.And k is a positive integer catches the 1≤ k. In general, the larger the integer, the slower the execution speed.

이제 아래의 차수 및 기타 조건을 만족하도록 각 deg 값을 정하자.Now set each deg value to satisfy the following orders and other conditions.

deg(M) + deg(f) < deg(Q) .deg (M) + deg (f) <deg (Q).

deg(M) < deg(P 1)deg (M) <deg ( P 1 )

deg(R) + deg (P 1) + deg( C ) < deg(Q) .deg (R) + deg ( P 1 ) + deg (C) <deg (Q).

p deg( f )* m ≥ 2128 p deg ( f ) * m ≥ 2 128

p deg( R )* k ≥ 2128 p deg ( R ) * k ≥ 2 128

p deg( M )* m ≥ 2128 p deg ( M ) * m ≥ 2 128

예로서p= 2 ,k=m= 2 , deg(C) =1 이라면 deg(f) , deg(R) , deg(M) 이 모두 64 이상인 정수롤 잡는다. 그 결과 deg(Q) 는 최소 130이상인 정수일 것이다.For example, if p = 2, k = m = 2, and deg (C) = 1, deg (f), deg (R), and deg (M) are all integers having 64 or more. As a result, deg (Q) will be an integer of at least 130.

이제 다항식의 1×m행열M과 1 ×k행열R을 다음과 같이 정의하자.Now define the 1 × m matrix M and 1 × k matrix R of the polynomial as

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) 이도록 잡는다. M = ( M 1 , M 2 , ..., M m ), R = ( r 1 , r 2 , ..., r k ). Where the components of M, R, f are selected to satisfy the above order conditions. Hold deg ( r 1 ) = ... = deg ( r k ) = deg ( R ) where possible.

H=,f= H = , f =

P= P =

이때 gcd (det(P),Q) = 1 이 이상적이다.Gcd (det ( P ), Q ) = 1 is ideal.

위 세 행열은 다음과 같은 관계를 가진다.The above three columns have the following relationship.

먼저m×m행열f의 역행열이 존재할 때까지 행열f를 랜덤하게 구성한다. 이때 행열f의 행열값이 환 S에서 단위원일 때 역행열이 존재하는 것이다. 그리고 수학적인 계산에 의해 행열f의 역행열을F Q 라 하자. 그리고 위 차수 조건을 만족하도록 정한P 1c ij 값으로부터P를 구성한 후P*F Q 를 환 S 안에서 곱하기를 수행하여 나온 결과 생성되는k×m행열을H라 정의하자. 그 결과 생성되는 각H의 원소들에 대해 다음 조건이 만족되는지 조사한다.First, the matrix f is randomly constructed until there is an inverse of the m × m matrix f . In this case, the inverse matrix exists when the matrix value of the matrix f is a unit circle in the ring S. Then, let the inverse of the matrix f be F Q by mathematical calculation. Then define H as the resulting k × m matrix resulting from multiplying P * F Q in the ring S by constructing P from P 1 and c ij values satisfying the above order condition. For each of the resulting H elements, check whether the following conditions are met.

각 j = 1 ,2 ,3 ,...,m 에 대해For each j = 1, 2, 3, ..., m

min { deg(H 1 j ) , deg(H 2 j ) , ... , deg(H kj ) } > deg( Q ) - 10 인지 조사한다. 만약 이 조건이 만족되지 않으면 f를 랜덤하게 선택하고 위 과정을 반복한다 .Determine if min {deg ( H 1 j ), deg ( H 2 j ), ..., deg ( H kj )}> deg (Q)-10. If this condition is not met, select f randomly and repeat the above procedure.

그리고 이렇게 구해진 행열f에 대해 환 SS 에서의f의 역행열을 구한다. 만약 존재하지 않으면f를 랜덤하게 선택한 후 위 전과정을 반복한다. 구해진 역행열을f P 1이라 하자.Then, the inverse of f in the ring SS is obtained from the matrix f thus obtained. If it does not exist, select f randomly and repeat the above procedure. Assume that the obtained inverse is f P 1 .

공개키 :H,Q, deg(M) ,deg(R)Public keys: H , Q , deg (M), deg (R)

비밀키 :P 1,f Secret key: P 1 , f

[2] 메시지 구성하기[2] constructing messages

메시지M= (M 1,M 2,...,M m ) 으로 표현하자. 이때 각M i 값은 deg(M) 이하인S의 원소로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한 것이다.messageM= (M One,M 2, ...,M m ) Where eachM i The value is an element of S less than or equal to deg (M).mIt is expressed as a matrix.

[3] 암호화 하기[3] encryption

메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인 R = (r 1,r 2,...,r k ) 로 표현한다.When we want to encrypt message M , the message sender is first represented by R = ( r 1 , r 2 , ..., r k ), which is a 1 × k array of random integers.

그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키QH를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다. (단, + 와 * 는 환 S 안에서의 연산이다. )The message M is encrypted using the public key Q and H of the message receiver, which is created in the above way. (+ And * are operations in the ring S.)

M+RHE가 암호화된 결과로서 1 ×m행열이 된다. M + RHE results in an encrypted result in a 1 × m matrix.

이 값을 보내고자 하는 상대에게 보낸다.Send this value to the person you want to send.

[4] 복호화 하기[4] decrypt

메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.The message receiver can obtain the original message M by using its private key from the E value as follows.

1.E*fmodQ= A = ( A1 , A2 , .... , Am) 1. E * f mod Q = A = (A1, A2, ...., A m)

2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )Ai mod P 1 = AAi (where i ∈ {1, 2, 3, 4, ..., m })

AA = ( AA1 , AA2 , .... , AAm)AA = (AA1, AA2, ...., AA m )

3. AA *f P 1modP 1MM을 얻는다.3. Obtain AA * f P 1 mod P 1MM .

이때 수신자는MM=M임을 확인 할 수 있다.At this time, the receiver can confirm that MM = M.

[5] 전자서명방법[5] digital signatures

일반적으로 deg(M) = deg(P)-1 , deg(f)=deg(R) , m = k , deg(C)=0 , deg(M) + deg(P) = deg(Q) 이도록 선택한다면 다음과 같이 전자서명을 할 수 있다.In general, deg (M) = deg (P) -1, deg (f) = deg (R), m = k, deg (C) = 0, deg (M) + deg (P) = deg (Q) If you choose, you can digitally sign as follows:

그러나 일반적으로 deg(M) = deg(P)-1 , deg(R)=deg(Q)-deg(P)-deg(C)-1 , deg(M) + deg(P) = deg(Q) 로 선택시 전자서명이 될 확률은 다음과 같다.However, in general, deg (M) = deg (P) -1, deg (R) = deg (Q) -deg (P) -deg (C) -1, deg (M) + deg (P) = deg (Q ), The probability of becoming a digital signature is as follows.

( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) =이다. 특수한 경우로m=k로 잡으면 전자서명이 될 확률은이다.(Number of message cases × number of R cases) / (encrypted message space) = to be. As a special case, when m = k , the probability of becoming digital signature is to be.

다음은 A가 메시지 M에 전자서명하여 B에게 전송하는 절차이다.The following is the procedure that A digitally signs message M and sends it to B.

두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다고 가정하자.이때 B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.Suppose two people A and B are using the same hash function h, where B asks A to digitally sign messsage M.

먼저 A는 h(M)을 계산하자. 그리고 아래와 같이 전자서명을 한다.First, let A calculate h (M). Then, digitally sign as follows.

CASE A > log p ( h(M) ) ≥ log p (Q A )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)이라 하자.(1) When h (M) expressed as an integer is expressed in p- number, only the number of digits int [log p Q A ] are left on the left side, and all others are discarded. The resulting value is called hh (M). The hh (M) values in p are evenly distributed in a 1 × m matrix on a digit basis. The resulting 1 × m matrix is called hhh (M).

(2) 그리고 자신의 비밀키인 행열f와 다항식P 1을 사용하여 아래 식을 만족하는 행열M *R *을 얻는다.(2) Then, using his private key f and polynomial P 1 , we get the matrices M * and R * which satisfy the following equation:

hhh(M) =M *+R *×H A modQ A hhh (M) = M * + R * × H A mod Q 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 *값을 얻을 수 있을 것이다.If the values of M i and R i , which are the members of M * and R * , are larger than the values of deg (M) and deg (R), which are the public keys of A, the right 1 bit of hhh (M) is set to 1 and exclusive or The result produced by the operation is called hhh (M) and the process of obtaining M * and R * is repeated. If this process is performed for about 5 bits to the right of hhh (M) for, M that satisfies the above condition You will get * and R * values.

(3) 위에서 구한M *R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.(3) The M * and R * values obtained above are encrypted and transmitted using the B's public key. Of course, the h (M) value is passed to B in the normal path.

(4) 그러면 B 는 복호화 하여M *R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다. ) 그리고 A의 공개키로 암호화 하여 얻어진 hhh(M)과 h(M) 의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.(4) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to the values of deg (M) and deg (R), which are the public keys of A. do. (If not, the signature is not trusted.) And compare the values of hhh (M) and h (M) obtained by encrypting with A's public key. As a result, if the difference between two values is about 5 bits or less on the right, the digital signature is considered reliable and the rest of the digital signature is considered unreliable.

CASE B> len( h(M) ) < len (Q A )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)이라 하자.(1) h (M) expressed as an integerpInt [log from left when expressed in decimal p Q A Until you get the number of digitspThe left part of the h (M) value expressed in decimal numbers for each digit.pRepeat pasting to the decimal number h (M). (E.g. h (M) x, h (M) h (M) x, etc.). Let's call the resulting value hh (M). And thispDecimal hh (M) Value 1 ×mDistribute the rows evenly by digits. The resulting 1 ×mLet the matrix be hhh (M).

(2) CASE A> 에서의 (2), (3) 과정을 수행한다.(2) Perform steps (2) and (3) in CASE A>.

(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 의 전자서명을 거부한다.(3) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to deg (M) and deg (R), the public keys of A. do. (If it doesn't, the signature is not reliable.) And again with A's public key, we compute hhh (M) with the following formula M * + R * × H A mod Q A. The value of hhh (M) is h (M) or h (M), which is the hash value of message M that you want to receive the original digital signature on. x or h (M) h (M) Checks to see if x is similar to the p representation. The criterion of the similarity is that if the right 5 bits is less than the difference, the digital signature is regarded as reliable, otherwise A's digital signature is rejected.

종래에 다항식을 이용한 암호시스템에는 ECC와 NTRU 가 있다. 그런데 여기서 제시하고 있는 시스템은 NTRU와 암호화 및 복호화 과정은 유사하지만 암호의 핵심은 일방향 함수는 다르다. 또한 전자서명법은 전혀 다르다.Conventional cryptographic systems using polynomials include ECC and NTRU. However, the system presented here is similar to NTRU in encryption and decryption, but the key to encryption is one-way function. Also, digital signatures are completely different.

기존의 암호시스템의 암호화 및 복호화 속도의 한계를 극복하여 매우 빠른 PKI 구축에 사용되어 질 수 있다. 그리고 매우 빠른 키 생성시간은 one time password로 응용될 수 있다.It can be used to build a very fast PKI by overcoming the limitations of encryption and decryption speed of existing cryptosystems. And a very fast key generation time can be applied with one time password.

그리고 다항식을 이용한 공개키 암호시스템은 매우 작은 수를 사용할 수 있으므로 메모리 효율적인 스마트 카드 등에 응용되어 질 수 있을 것이다.And since the public key cryptosystem using polynomial can use very small number, it can be applied to memory efficient smart card.

Claims (4)

행열을 이용한 공개키 암호시스템에서 암호화 및 복화화 과정Encryption and decryption process in public key cryptosystem using matrix [1] Key 생성하기[1] Key generation 먼저 다음을 만족하는 양의 정수 n1 ,n2 ,n3 ,n4, n5 값을 결정한다.First, the positive integers n1, n2, n3, n4 and n5 satisfying the following values are determined. * n3-1 + n1 + int( log2 k) < n4N3-1 + n1 + int (log 2 k ) <n4 * n5 + n3 + n2 + int( log2 k) < n4N5 + n3 + n2 + int (log 2 k ) <n4 n 1*m≥60 (f의 복잡도 )n 1 * m ≥60 ( f complexity) n 5*k≥60 (R의 복잡도 )n 5 * k ≥60 (complexity of R ) n 3≥60 (P의 복잡도 ) ,n 1<n 3 N 3 ≥60 ( P complexity), n 1 < n 3 먼저m×mmatrixf를 다음과 같이 랜덤하게 구성한다.First, m × m matrix f is randomly constructed as follows. f=여기서 0 ≤f ij ≤ 2 n 1인 정수로 구성한다. f = Herein, an integer of 0 ≦ f ij ≦ 2 n 1 is used. 두 번째로k×mmatrixP를 다음과 같이 구성한다.Second, the k × m matrix P is constructed as follows. P= P = 이때 gcd (det(P),Q) = 1 이 이상적이다.Gcd (det ( P ), Q ) = 1 is ideal. 여기서 0 ≤c ij <2 n 2이고 2 n 3-1P 1< 2 n 3 Where 0 ≤c ij <2 n 2And 2 n 3-1P One<2 n 3 ( 단 ,i∈ { 1, 2 ,3 ,4 , ... ,k} ,j∈ { 1, 2 ,3 ,4 , ... ,m} )Where i ∈ {1, 2, 3, 4, ..., k }, j ∈ {1, 2, 3, 4, ..., m } 그리고 크기가 2 n 4Q< 2 n 4+1인 양의 정수Q를 선택한다. 이때Q는 랜덤해도 되지만 경우에 따라 두 소수의 곱 또는 소수로 선택하여 전자서명에 활용하기도 할 것이다.And size 2 n 4Q<2 n 4 + 1Positive integerQSelect. At this timeQMay be random, but in some cases it may be chosen as the product or fraction of two prime numbers and used for digital signatures. 그리고 다음과 같은 방법으로 비밀키 matrixf Q 와 공개키 matrixH를 생성한다.Then, the secret key matrix f Q and the public key matrix H are generated as follows. 정수 환Z/<Q> 에서f의 역행열을f Q 라 하자. 그러면f Q *ff*f Q ImodQ. ( 단,I는 단위행열 )Let f Q be the inverse of f in the integer ring Z / < Q >. Then f Q * ff * f Q I mod Q. (Where I is the unit matrix) 그리고 정수 환Z/<Q> 에서P*f Q modQH라 한다.And integer ringZ/ <Q> InP*f Q modQHIt is called. 마찬가지로 정수 환Z/<P 1> 에서 행열f의 역행열을f P 1라 하면f P 1*ff*f P 1ImodP 1. ( 단,I는 단위행열 ) 가 된다.Likewise, if the inverse of the matrix f is f P 1 in the integer Z / < P 1 >, then f P 1 * ff * f P 1I mod P 1 . Where I is the unit matrix. 여기까지 생성한 여러 key 들 중 공개키는Q,H,n 3,n 4,n 5이고 비밀키는f,f Q ,P 1,f P 1이다.Among the keys generated so far, the public keys are Q , H , n 3 , n 4 , n 5 and the secret keys are f , f Q , P 1 , f P 1 . [2] 메시지 구성하기[2] constructing messages 메시지M= ( M1 , M2 , ... , Mm) 으로 표현하자. 이때 각 Mi 값은P 1미만인 양의 정수로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한 것이다.Express the message M = (M1, M2, ..., M m ). In this case, each Mi value is a positive integer less than P 1 , and the message to be sent is represented by a 1 × m matrix of integers. 구체적으로 2 n 3-2≤ Mi ≤2 n 3-1이도록 구성한다.Specifically 2 n 3-2≤ Mi ≤2 n 3-1To be configured. [3] 암호화 하기[3] encryption 메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인R= ( R1 , R2 , ..... , Rk) 로 표현한다. (단, 2 n 5-1≤ Ri ≤2 n 5)messageMIn order to encrypt a message, the message sender is first composed of a random integer 1 ×kArrayR= (R1, R2, ....., Rk) (Only 2 n 5-1≤ Ri ≤2 n 5) 그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키QH를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다.The message M is encrypted using the public key Q and H of the message receiver, which is created in the above way. M+RHmodQE가 암호화된 결과로서 1 ×m행열이 된다. M + R * H mod QE is the result of the encryption resulting in a 1 × m matrix. 이 값을 보내고자 하는 상대에게 보낸다.Send this value to the person you want to send. [4] 복호화 하기[4] decrypt 메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.The message receiver can obtain the original message M by using its private key from the E value as follows. 1.E*fmodQ= A = ( A1 , A2 , .... , Am) 1. E * f mod Q = A = (A1, A2, ...., A m) 2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )Ai mod P 1 = AAi (where i ∈ {1, 2, 3, 4, ..., m }) AA = ( AA1 , AA2 , .... , AAm)AA = (AA1, AA2, ...., AA m ) 3. AA *f P 1modP 1MM을 얻는다.3. Obtain AA * f P 1 mod P 1MM . 이때 수신자는MM=M임을 확인 할 수 있다.At this time, the receiver can confirm that MM = M. 제 1항의 암호화, 복호화 방법을 이용한 전자서명방법Electronic signature method using the encryption and decryption method of claim 1 전자서명이 성립하도록하기 위해 다음과 같은 방법이 있다.There are the following ways to establish an electronic signature. [1] 확률론적인 전자서명법[1] stochastic digital signatures 확룰론적인 전자서명은 비교적 작은 key size를 이용하여 기존의 암호시스템의 전자서명법을 이용하지 않고 기존보다 비교적 빠른 전자서명 방법을 제공한다.The probabilistic digital signature provides a relatively faster digital signature method than the existing digital signature method of the existing encryption system by using a relatively small key size. 일반적으로 보다 빠른 복호화를 위해km이도록 수를 잡는다.In general, number the number km for faster decoding. 첫 번째 경우로n 1-1 ≤n 5+n 2인 경우n 4=n 5+n 3+n 2+ int( log2 k) 로 잡는다.In the first case, n 1 -1 ≤ n 5 + n 2 , n 4 = n 5 + n 3 + n 2 + int (log 2 k ). 이때 전자서명이 성립할 확율은The probability that the digital signature will be established ( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) ==이 된다. 그런데 암호시스템에서n 2와 log2 k값은 일반적으로 2이하로 잡을 것이므로 별로 문제가 되지 않을 것이라 생각된다. 만약(Number of message cases × number of R cases) / (encrypted message space) = = Becomes In the cryptosystem, however, n 2 and log 2 k values are generally set to 2 or less, so it is not a problem. if 두 번째로n 1-1 ≥n 5+n 2인 경우n 4=n 3-1+n 1+int( log2 k) 로 잡는다. 이때 전자서명이 성립할 확률은=이다. 따라서 전자서명이 될 확률을 높이려면 |n 1-n 5|와 int( log2 k) 의 값이 작은 정수이도록 계수들을 설정한다.Secondly, if n 1 -1 ≥ n 5 + n 2 , set n 4 = n 3 -1+ n 1 + int (log 2 k ). In this case, the probability that the digital signature is established = to be. Therefore, to increase the probability of becoming a digital signature, we set the coefficients so that | n 1 - n 5 | and int (log 2 k ) are small integers. 다음은 A가 메시지 M에 전자서명하여 B에게 보내는 방법이다.The following is how A electronically signs message M and sends it to B. 정의 : M 이 정수이고 2 n -1M<2 n 이라면 len(M) =n이라 정의한다. M =(M 1,M 2,...,M m ) 이라면 len ( M ) = len(M i ) 라 정의한다.Definition: M is an integer and 2 n -OneM<2 n If len (M) =nThis is defined as. M = (M One,M 2, ...,M m ), Len (M) = len(M i It is defined as 두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다고 가정하자.이때 B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.Suppose two people A and B are using the same hash function h, where B asks A to digitally sign messsage M. 먼저 A는 h(M)을 계산하자. 그리고 아래와 같이 전자서명을 한다.First, let A calculate h (M). Then, digitally sign as follows. CASE A > len( h(M) ) ≥ len(Q A )CASE A> len (h (M)) ≥ len ( Q A ) (1) len( h(M) ) - len(Q A ) 만큼의 bit 수를 h(M) 의 오른쪽 부분에서 잘라낸다. 그 결과를 MM이라 하자.(1) len (h (M))-Cut the number of bits by len ( Q A ) from the right side of h (M). Let the result be MM. (2) 그리고 A 자신의 비밀키인 행열f와 정수P 1을 사용하여 아래 식을 만족하는 행열MR을 얻는다.(2) Then, using A's own secret key, the matrix f and the integer P 1 , we obtain the matrix M and R which satisfy the following equation. MM =M *+R *×H A modQ A MM = M * + R * × H A mod Q A 얻어진M *R *이 A 자신의 공개키인 len(M)과 len(R) 보다 크다면 MM의 오른쪽 1bit를 1과 exclusive or 연산을 작용시켜M *R *얻는 과정을 반복한다.이런 과정을 MM의 우측 오른 약 5 bit를 에 대해 수행하면 위 조건을 만족하는M *R *값을 얻을 수 있을 것이다.If the obtained M * and R * are larger than A's own public keys, len (M) and len (R), repeat the process of obtaining M * and R * by performing an exclusive or operation with 1 on the right 1 bit of MM. If the process is performed for about 5 bits to the right of the MM, M * and R * values satisfying the above conditions will be obtained. (3) 위에서 구한M *R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.(3) The M * and R * values obtained above are encrypted and transmitted using the B's public key. Of course, the h (M) value is passed to B in the normal path. (4) 그러면 B 는 복호화 하여M *R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다.(성립하지 않으면 서명은 신뢰도가 없는 것이다.) 그리고 다시 A의 공개키로 암호화 하여 얻어진 MM과 h(M)의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.(4) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to the values of deg (M) and deg (R), which are the public keys of A. (If not, the signature is untrusted.) Then compare the values of MM and h (M), which are again encrypted with A's public key. As a result, if the difference between two values is about 5 bits or less on the right, the digital signature is considered reliable and the rest of the digital signature is considered unreliable. CASE B> len( h(M) ) < len (Q A )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 이라 하자.(1) When the first bits of h (M) are extracted in order and concatenation, the result x is len (h (M) Let x be the value of B's public len ( Q B ) (if len (h (M) Even if (h (M)) is less than B's published message length, h (M) until the size condition is met (h (M) continue transforming to x shape) and consequently h (M) Let x be MM. (2) CASE A> 에서의 (2), (3) 과정을 수행한다.(2) Perform steps (2) and (3) in CASE A>. (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 의 전자서명을 거부한다.(3) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to deg (M) and deg (R), the public keys of A. do. (If not, the signature is unreliable.) Again, with A's public key, we compute MM by computing M * + R * × H A mod Q A. H (M) or h (M), which is the hash value of message M that you want to receive the original digital signature. x or h (M) h (M) Check if x looks like or similar. The criterion of the similarity is that if the right 5 bits is less than the difference, the digital signature is regarded as reliable, otherwise A's digital signature is rejected. [2] 고전적인 전자서명방법을 적용한 서명방법.[2] Signature method using classical digital signature method. 고전적인 전자서명방법중 RSA에서 사용하고 있는 전자서명법을 우리의 경우에 적합하게 적용하여 전자서명하는 방법을 제시하고자 한다.In the classic digital signature method, we propose the method of digital signature by applying the digital signature method used in RSA appropriately in our case. 먼저Q를 두 소수의 곱으로 잡는다. 그리고 RSA 전자서명법을 적용하려고 RSA 의 전자서명용 공개키 e 와 비밀키 d를 만든다. 그리고 다음과 같이 메시지 M 에 대해 전자서명을 한다.First let Q be the product of two prime numbers. Then, to apply the RSA digital signature method, RSA's public key e and secret key d are created. Then, digitally sign the message M as follows. 먼저 메시지 M을 해쉬함수에 넣어 그 결과를 얻는다. 그 결과 비교적 작은 bit 수를 가진 text를 얻을 것이다. 이것을 RSA 에서와 같은 방법으로 전자서명을 한다.First we put message M into a hash function to get the result. The result is text with a relatively small number of bits. This is digitally signed in the same way as in RSA. 여기서 주의 할 것은 메시지를 보낼 때는 " 정수행열을 이용한 공개키 암호시스템."에서 제시한 방법으로 암호화를 하고 전자서명시에만 RSA 방법으로 함으로써 보다 빠른 전자성거래 시스템을 구축할 수 있을 것이다.It should be noted that when sending a message, encryption can be done using the method suggested in "Public Key Cryptography System Using Integer Matrix." 다항식을 이용한 공개키암호시스템에서 암호화 및 복호화 과정Encryption and decryption process in public key cryptosystem using polynomial [1] Key 생성하기[1] Key generation 먼저 다항식의 환 S =Z[x]/<p,Q>라 정의하자. ( 단,p는 양의 정수 ,Q는 기약 다항식 , 또는x N -c모양의 다항식 ).First let's define the polynomial S = Z [ x ] / < p , Q> . (Where p is a positive integer, Q is a weak polynomial, or x N - c shaped polynomial). 환 SS를Z[x]/<p,P 1> 라 정의하자. (P 1은 아래의 차수 조건을 만족하는 다항식 )Define the ring SS as Z [ x ] / < p, P 1 >. ( P 1 is a polynomial that satisfies the following order conditions) 이때 만약G가 다항식이면 " deg (G) = 다항식G의 차수 " 라고 정의하자.If G is a polynomial, define "deg ( G ) = degree of polynomial G ". 만약G= (G 1,G 2,...,G k ) 이고 각G i 가 다항식이면 deg (G)= max { deg(G 1),deg(G 2), ... ,deg(G k ) } 라 정의하자.If G = ( G 1 , G 2 , ..., G k ) and each G i is polynomial deg ( G ) = max {deg ( G 1 ), deg ( G 2 ), ..., deg ( G k )}. 먼저 음이 아닌 정수 deg(C)를 정하자. 보통은 deg(C) ∈{0,1,2,3} .First let's set the non-negative integer deg (C). Usually deg (C) ∈ {0,1,2,3}. 예로서 deg(C) 가 2이면Z/<p>의 원소를 계수로 가지는 2차 이하의 다항식. 0 ≤deg(c ij ) ≤ deg(C) .For example, if deg (C) is 2, a quadratic or lower-order polynomial having elements of Z / < p > as coefficients. 0 ≤ deg ( c ij ) ≤ deg (C). 그리고k는 1≤k인 양의 정수로 잡는다. 보통 이 정수가 클수록 수행속도가 늦어지므로 가능한 작은 정수를 잡도록 하자.And k is a positive integer catches the 1≤ k. In general, the larger the integer, the slower the execution speed. 이제 아래의 차수 및 기타 조건을 만족하도록 각 deg 값을 정하자.Now set each deg value to satisfy the following orders and other conditions. deg(M) + deg(f) < deg(Q) . deg(M) < deg(P1)deg (M) + deg (f) <deg (Q). deg (M) <deg (P 1 ) deg(R) + deg(P 1) + deg( C ) < deg(Q) .deg (R) + deg ( P 1 ) + deg (C) <deg (Q). p deg( f )* m ≥ 2128 p deg ( f ) * m ≥ 2 128 p deg( R )* k ≥ 2128 p deg ( R ) * k ≥ 2 128 p deg( M )* m ≥ 2128 p deg ( M ) * m ≥ 2 128 예로서p= 2 ,k=m= 2 , deg(C) =1 이라면 deg(f) , deg(R) , deg(M) 이 모두 64 이상인 정수롤 잡는다. 그 결과 deg(Q) 는 최소 130이상인 정수일 것이다.For example, if p = 2, k = m = 2, and deg (C) = 1, deg (f), deg (R), and deg (M) are all integers having 64 or more. As a result, deg (Q) will be an integer of at least 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) 이도록 잡는다.Now define the 1 × m matrix M and 1 × k matrix R of the polynomial as M = ( M 1 , M 2 , ..., M m ), R = ( r 1 , r 2 , ..., r k ). Where the components of M, R, f are selected to satisfy the above order conditions. Hold deg ( r 1 ) = ... = deg ( r k ) = deg ( R ) where possible. H=,f= H = , f = P= P = 이때 gcd (det(P),Q) = 1 이 이상적이다.Gcd (det ( P ), Q ) = 1 is ideal. 위 세 행열은 다음과 같은 관계를 가진다.The above three columns have the following relationship. 먼저m×m행열f의 역행열이 존재할 때까지 행열f를 랜덤하게 구성한다. 이때 행열f의 행열값이 환 S에서 단위원일 때 역행열이 존재하는 것이다. 그리고 수학적인 계산에 의해 행열f의 역행열을F Q 라 하자. 그리고 위 차수 조건을 만족하도록 정한P 1c ij 값으로부터P를 구성한 후P*F Q 를 환 S 안에서 곱하기를 수행하여 나온결과 생성되는k×m행열을H라 정의하자. 그 결과 생성되는 각H의 원소들에 대해 다음 조건이 만족되는지 조사한다.First, the matrix f is randomly constructed until there is an inverse of the m × m matrix f . In this case, the inverse matrix exists when the matrix value of the matrix f is a unit circle in the ring S. Then, let the inverse of the matrix f be F Q by mathematical calculation. We define H as the k × m matrix resulting from constructing P from P 1 and c ij values satisfying the above order condition and multiplying P * F Q in S. For each of the resulting H elements, check whether the following conditions are met. 각 j = 1 ,2 ,3 ,...,m 에 대해For each j = 1, 2, 3, ..., m min { deg(H 1 j ) , deg(H 2 j ) , ... , deg(H kj ) } > deg( Q ) - 10 인지 조사한다. 만약 이 조건이 만족되지 않으면 f를 랜덤하게 선택하고 위 과정을 반복한다.Determine if min {deg ( H 1 j ), deg ( H 2 j ), ..., deg ( H kj )}> deg (Q)-10. If this condition is not satisfied, select f randomly and repeat the above procedure. 그리고 이렇게 구해진 행열f에 대해 환 SS 에서의f의 역행열을 구한다. 만약 존재하지 않으면f를 랜덤하게 선택한 후 위 전과정을 반복한다. 구해진 역행열을f P 1이라 하자.Then, the inverse of f in the ring SS is obtained from the matrix f thus obtained. If it does not exist, select f randomly and repeat the above procedure. Assume that the obtained inverse is f P 1 . 공개키 :H,Q, deg(M) ,deg(R)Public keys: H , Q , deg (M), deg (R) 비밀키 :P 1,f Secret key: P 1 , f [2] 메시지 구성하기[2] constructing messages 메시지M= (M 1,M 2,...,M m ) 으로 표현하자. 이때 각M i 값은 deg(M) 이하인 S의 원소로서 보내고자 하는 메시지를 정수로 이루어진 1 ×m행열로 표현한 것이다.messageM= (M One,M 2, ...,M m ) Where eachM i The value is an element of S less than or equal to deg (M).mIt is expressed as a matrix. [3] 암호화 하기[3] encryption 메시지M을 암호화하고자 할 때 메시지 Sender 는 먼저 랜덤한 정수로 이루어진 1 ×k배열인 R = (r 1,r 2,...,r k ) 로 표현한다.When we want to encrypt message M , the message sender is first represented by R = ( r 1 , r 2 , ..., r k ), which is a 1 × k array of random integers. 그리고 위와 같은 방법으로 만들어진 메시지 수신자의 공개키QH를 이용하여 다음과 같은 과정으로 메시지 M을 암호화한다.(단 , + 와 ×는 환 S 안에서의 연산이다. )Using the message receiver's public keys Q and H , the message M is encrypted using the following procedure (where + and × are operations within ring S): M+R × HE가 암호화된 결과로서 1 ×m행열이 된다. M + R × HE results in an encrypted result in a 1 × m matrix. 이 값을 보내고자 하는 상대에게 보낸다.Send this value to the person you want to send. [4] 복호화 하기[4] decrypt 메시지 Receiver 는E값으로부터 자신의 비밀키를 이용하여 다음과 같이 원래 메시지M을 구할 수 있다.The message receiver can obtain the original message M by using its private key from the E value as follows. 1.E*fmodQ= A = ( A1 , A2 , .... , Am) 1. E * f mod Q = A = (A1, A2, ...., A m) 2. Ai modP 1= AAi ( 단,i∈ { 1, 2 ,3 ,4 , ... ,m} )Ai mod P 1 = AAi (where i ∈ {1, 2, 3, 4, ..., m }) AA = ( AA1 , AA2 , .... , AAm)AA = (AA1, AA2, ...., AA m ) 3. AA *f P 1modP 1MM을 얻는다.3. Obtain AA * f P 1 mod P 1MM . 이때 수신자는MM=M임을 확인 할 수 있다.At this time, the receiver can confirm that MM = M. 제 3항의 암호화/복호화 방법을 이용한 전자서명방법Electronic signature method using the encryption / decryption method of claim 3 일반적으로 deg(M) = deg(P)-1 , deg(f)=deg(R) , m = k , deg(C)=0 , deg(M) + deg(P) = deg(Q) 이도록 선택한다면 다음과 같이 전자서명을 할 수 있다.In general, deg (M) = deg (P) -1, deg (f) = deg (R), m = k, deg (C) = 0, deg (M) + deg (P) = deg (Q) If you choose, you can digitally sign as follows: 그러나 일반적으로 deg(M) = deg(P)-1 , deg(R)=deg(Q)-deg(P)-deg(C)-1 , deg(M) + deg(P) = deg(Q) 로 선택시 전자서명이 될 확률은 다음과 같다.However, in general, deg (M) = deg (P) -1, deg (R) = deg (Q) -deg (P) -deg (C) -1, deg (M) + deg (P) = deg (Q ), The probability of becoming a digital signature is as follows. ( 메시지경우의 수 ×R의 경우의 수 )/ ( 암호화된 메시지 공간 ) =이다. 특수한 경우로m=k로 잡으면 전자서명이 될확률은이다.(Number of message cases × number of R cases) / (encrypted message space) = to be. As a special case, when m = k , the probability of digital signature is to be. 다음은 A가 메시지 M에 전자서명하여 B에게 전송하는 절차이다.The following is the procedure that A digitally signs message M and sends it to B. 두 사람 A , B 가 동일한 해쉬 함수 h를 사용하고 있다고 가정하자.이때 B는 A에게 messsageM에 전자서명 해 줄 것을 요청했다고 하자.Suppose two people A and B are using the same hash function h, where B asks A to digitally sign messsage M. 먼저 A는 h(M)을 계산하자. 그리고 아래와 같이 전자서명을 한다.First, let A calculate h (M). Then, digitally sign as follows. CASE A > log p ( h(M) ) ≥ log p (Q A )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)이라 하자.(1) When h (M) expressed as an integer is expressed as a p- number, only the number of digits int [log p ( Q A )] are left on the left side, and the rest are discarded. The resulting value is hh (M). . And disperse evenly in a p-adic number hh (M) based on the digit values to 1 × m matrix. The resulting 1 × m matrix is called hhh (M). (2) 그리고 자신의 비밀키인 행열f와 다항식P 1을 사용하여 아래 식을 만족하는 행열M *R *을 얻는다.(2) Then, using his private key f and polynomial P 1 , we get the matrices M * and R * which satisfy the following equation: hhh(M) =M *+R *×H A modQ A hhh (M) = M * + R * × H A mod Q 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 *값을 얻을 수 있을 것이다.If the values of M i and R i , which are the members of M * and R * , are larger than the values of deg (M) and deg (R), which are the public keys of A, the right 1 bit of hhh (M) is 1 and exclusive or The result produced by the operation is called hhh (M) and the process of obtaining M * and R * is repeated. If this process is performed for about 5 bits to the right of hhh (m) for, M which satisfies the above condition You will get * and R * values. (3) 위에서 구한M *R *값을 상대방인 B의 공개키를 이용하여 암호화 전송한다. 물론 h(M) 값은 보통의 통로로 B에게 전달한다.(3) The M * and R * values obtained above are encrypted and transmitted using the B's public key. Of course, the h (M) value is passed to B in the normal path. (4) 그러면 B 는 복호화 하여M *R *을 구한 후 그 결과 deg(M *)와 deg(R *)값이 각가 A의 공개키인 deg(M)과 deg(R)값 이하인지 확인한다. (성립하지 않으면 서명은 신뢰도가 없는 것이다.) 그리고 A의 공개키로 암호화 하여 얻어진 hhh(M)과 h(M) 의 값을 비교한다. 그 결과 두 값의 차이가 오른쪽 약 5bit 이하의 차이로 인한 것이라면 그 전자서명은 믿을 만한 것으로 받아들이고 나머지는 전자서명을 신뢰도가 없는 것으로 생각한다.(4) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to the values of deg (M) and deg (R), which are the public keys of A. do. (If not, the signature is not trusted.) And compare the values of hhh (M) and h (M) obtained by encrypting with A's public key. As a result, if the difference between two values is about 5 bits or less on the right, the digital signature is considered reliable and the rest of the digital signature is considered unreliable. CASE B> log p ( h(M) ) < log p (Q A )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)이라 하자.(1) expressed as an integer h (M) of p binary to have, when expressed as a p-adic number until there digits to the right of the by int [log p Q A] in the left representation h (M) on the left part of each of the value digits to p Repeat pasting to decimal h (M) (eg, h (M)) x, h (M) h (M) x, etc.). Let's call the resulting value hh (M). The hh (M) values in p are evenly distributed in a 1 × m matrix on a digit basis. The resulting 1 × m matrix is called hhh (M). (2) CASE A> 에서의 (2), (3) 과정을 수행한다.(2) Perform steps (2) and (3) in CASE A>. (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 의 전자서명을 거부한다.(3) Then, B decrypts and finds M * and R * , and as a result, checks that the values of deg ( M * ) and deg ( R * ) are less than or equal to deg (M) and deg (R), the public keys of A. and (if not satisfied signature is not reliable), and the public key of the operation back to a, as shown in the following expression M * + R * × H a mod Q a gets hhh (M). The value of hhh (M) is h (M) or h (M), which is the hash value of message M that you want to receive the original digital signature on. x or h (M) h (M) Checks to see if x is similar to the p representation. The criterion of the similarity is that if the right 5 bits is less than the difference, the digital signature is regarded as reliable, otherwise A's digital signature is rejected.
KR1020000037603A 2000-07-01 2000-07-01 A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials KR20020003059A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000037603A KR20020003059A (en) 2000-07-01 2000-07-01 A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000037603A KR20020003059A (en) 2000-07-01 2000-07-01 A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials

Publications (1)

Publication Number Publication Date
KR20020003059A true KR20020003059A (en) 2002-01-10

Family

ID=19675802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000037603A KR20020003059A (en) 2000-07-01 2000-07-01 A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials

Country Status (1)

Country Link
KR (1) KR20020003059A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877627A (en) * 2005-06-10 2006-12-13 中国科学院软件研究所 On-line transaction electronic payment system and method
KR100718489B1 (en) * 2004-03-02 2007-05-16 프랑스 텔레콤 Signature process, computer program, apparatus and signature system for the new fair blind signature
CN108259487A (en) * 2018-01-10 2018-07-06 韩家佳 Information interacting method and computer-readable medium
CN116308813A (en) * 2023-05-17 2023-06-23 青岛农村商业银行股份有限公司 Different-industry combined financial equity safety management system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62132451A (en) * 1985-12-05 1987-06-15 Toshiba Corp Open key ciphering system
US5295188A (en) * 1991-04-04 1994-03-15 Wilson William J Public key encryption and decryption circuitry and method
JPH11161164A (en) * 1997-11-26 1999-06-18 Masao Kasahara Public key cipher system, ciphering device, and deciphering device
KR19990070921A (en) * 1998-02-26 1999-09-15 구자홍 Matrix group public key and its creation method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62132451A (en) * 1985-12-05 1987-06-15 Toshiba Corp Open key ciphering system
US5295188A (en) * 1991-04-04 1994-03-15 Wilson William J Public key encryption and decryption circuitry and method
JPH11161164A (en) * 1997-11-26 1999-06-18 Masao Kasahara Public key cipher system, ciphering device, and deciphering device
KR19990070921A (en) * 1998-02-26 1999-09-15 구자홍 Matrix group public key and its creation method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100718489B1 (en) * 2004-03-02 2007-05-16 프랑스 텔레콤 Signature process, computer program, apparatus and signature system for the new fair blind signature
CN1877627A (en) * 2005-06-10 2006-12-13 中国科学院软件研究所 On-line transaction electronic payment system and method
CN108259487A (en) * 2018-01-10 2018-07-06 韩家佳 Information interacting method and computer-readable medium
CN108259487B (en) * 2018-01-10 2019-12-10 韩家佳 information interaction method and computer readable medium
CN116308813A (en) * 2023-05-17 2023-06-23 青岛农村商业银行股份有限公司 Different-industry combined financial equity safety management system
CN116308813B (en) * 2023-05-17 2023-08-08 青岛农村商业银行股份有限公司 Different-industry combined financial equity safety management system

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 (en) Threshold signature scheme
JP3402441B2 (en) Public key encryption device, public key encryption / decryption device, and decryption program recording medium
WO2019056103A1 (en) Three-party supersingular elliptic curve cryptography key agreement scheme
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 (en) Generating digital signature shares
KR20020003059A (en) A Public Key Cryptosystem using Matrix which is composed of Integers and Polynomials
Viswanath et al. A secure cryptosystem using the decimal expansion of an Irrational number
CN109787773B (en) Anti-quantum computation signcryption method and system based on private key pool and 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