KR100370786B1 - 환 위의 타원곡선을 이용한 공개키 암호화 방법 - Google Patents

환 위의 타원곡선을 이용한 공개키 암호화 방법 Download PDF

Info

Publication number
KR100370786B1
KR100370786B1 KR10-1999-0027009A KR19990027009A KR100370786B1 KR 100370786 B1 KR100370786 B1 KR 100370786B1 KR 19990027009 A KR19990027009 A KR 19990027009A KR 100370786 B1 KR100370786 B1 KR 100370786B1
Authority
KR
South Korea
Prior art keywords
elliptic curve
point
integer
public key
key
Prior art date
Application number
KR10-1999-0027009A
Other languages
English (en)
Other versions
KR20010008921A (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 KR10-1999-0027009A priority Critical patent/KR100370786B1/ko
Publication of KR20010008921A publication Critical patent/KR20010008921A/ko
Application granted granted Critical
Publication of KR100370786B1 publication Critical patent/KR100370786B1/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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

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

Abstract

본 발명은 환 위의 타원곡선을 이용한 공개키 암호화 방법에 관한 것으로, 임의의 두 소수(p, q), 상기 두 소수의 p2qs(s=1, 2, 3 …)로 정의되는 정수(n), 정수환(Z/nZ) 위에 정의된 타원곡선(E)을 입력받는 초기화 과정과, 상기 두 소수(p, q) 및 정수(n)를 이용하여 공개키 및 비밀키를 생성하는 키 생성 과정과, 상기 공개키를 평문만큼 가산하여 평문을 암호문으로 변환하는 암호화 과정과, 상기 비밀키를 이용하여 상기 암호문의 이산로그를 구해 평문으로 복호화하는 과정으로 이루어지는 환 위의 타원곡선을 이용한 공개키 암호화 방법이 제시된다.

Description

환 위의 타원곡선을 이용한 공개키 암호화 방법{Cryptographic method of using an elliptic curve over a ring}
본 발명은 환(ring) 위의 타원곡선을 이용한 공개키 암호화 방법에 관한 것으로, 특히 RSA 형태가 아닌 이산로그형태의 일방향 함수를 사용함으로서 기존에 제안된 환 위의 타원곡선을 이용한 타원곡선 공개키 암호시스템에 비해 안전성과효율성을 증대시킬 수 있는 공개키 암호시스템에 관한 것이다.
현재 사용되고 있는 공개키 암호시스템은 크게 ElGamal로 대표되는 이산로그 계열과 RSA로 대표되는 인수분해 계열로 나눌 수 있으며 각각은 '군 위의 이산로그를 구하기 어려움' 및 '합성수의 인수분해하기 어려움'에 의존하고 있다. 현재까지 두 계열의 안전성은 비슷한 것으로 나타나고 있으며 단지 각 암호시스템의 특성으로 인해 사용환경에 따라 적합한 암호시스템이 선택되어 사용되고 있다.
최근에는 이러한 암호시스템을 타원곡선 위에서 구현하는 작업들이 많이 이루어 지고 있는데, 그것은 타원곡선의 구조적 특성으로 인해 유한체 및 잉여군(Z/nZ)위에 구현된 암호시스템에 비해 더 높은 안전성을 주기 때문이다. 이산로그 계열의 타원곡선 암호로는 타원곡선 ElGamal 암호 시스템이 있고, 인수분해 계열의 타원곡선 암호로는 KMOV 암호 시스템, Demytko 암호시스템, Koyama 암호시스템등이 있다. 여기서 타원곡선 ElGamal 암호 시스템은 안전하고 효율적인 반면, 인수분해 계열의 타원곡선 암호는 아직 덜 효율적이고 여러 가지 제한조건을 가지고 있다.
따라서, 본 발명은 뒷문(trap door)을 설치하여 비밀키를 알고 있는 사람은 쉽게 이산로그를 계산할 수가 있어 복호화가 가능하지만 비밀키를 알고 있지 않으면 보통의 타원곡선의 이산로그를 풀어야 하므로 복호화가 불가능한 환 위의 타원곡선을 이용한 공개키 암호화 방법을 제공하는 데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 환 위의 타원곡선을 이용한 공개키 암호화 방법은 임의의 두 소수(p, q), 상기 두 소수의 p2qs(s=1, 2, 3 …)로 정의되는 정수(n), 정수환(Z/nZ) 위에 정의된 타원곡선(E)을 입력받는 초기화 과정과, 상기 임의의 두 소수(p, q) 및 정수(n)를 이용하여 공개키 및 비밀키를 생성하는 키 생성 과정과, 상기 공개키를 평문만큼 가산하여 평문을 암호문으로 변환하는 암호화 과정과, 상기 비밀키를 이용하여 상기 암호문의 이산로그를 구해 평문으로 복호화하는 과정을 포함하여 이루어지는 것을 특징으로 한다.
도 1은 본 발명의 제 1 실시 예에 따른 공개키 암호화 방법을 설명하기 위한 흐름도.
도 2는 본 발명의 제 2 실시 예에 따른 공개키 암호화 방법을 설명하기 위한 흐름도.
도 3은 본 발명의 제 3 실시 예에 따른 공개키 암호화 방법을 설명하기 위한 흐름도.
본 발명은 환(nZ) 위에서의 타원곡선 이산로그가 어렵다는 사실을 가정하여 공개키를 암호화하는 방법으로, 그 안전성은 n의 소인수분해와 동치이다. 기존의 타원곡선 암호시스템은 유한체 GF(q)위에서 정의된 타원곡선을 사용하며 여기에서의 이산로그가 풀기 어렵다는 것을 안전성의 기초로 하고 있다. 즉, 주어진 타원곡선의 점 P와 정수 m이 주어져 있을 때, Q=mP를 계산하기는 쉽지만, P와 Q만을 가지고 m을 구하기는 매우 어렵다는 사실에 의존하는 것이다.
이에 비해 본 발명은 합성수 n에 대하여 n의 인수분해가 어렵다는 사실에 의존하는 공개키 암호화 방법을 구현한다. 본 발명에 따르면, 뒷문(trap door)을 설치하여 뒷문(n의 소인수분해)을 알고 있는 사람은 쉽게 이산로그를 구할 수 있어 복호화가 가능하나 그렇지 않은 사람은 이산로그를 구할 수 없어 복호화가 불가능하게 된다. 이러한 특성으로 인해 본 암호시스템은 ElGamal 암호시스템과 달리 평문과 암호문의 비율이 1:1에 가까운 암호시스템이 된다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
공개키 암호화 방법은 n의 종류에 따라 세가지 형태로 구분된다.
도 1은 본 발명의 제 1 실시 예에 따른 공개키 암호화 방법을 설명하기 위한 흐름도이다.
도 1에서 제안된 암호화 방법은 소수 p와 q에 대하여 n=p2q의 형태일 때 적용할 수 있는 암호화 방법으로, 정수환 Z/nZ위에 정의되는 임의의 타원곡선(E)에 대하여 적용할 수 있다. 이 방법은 크게, 초기화 과정, 공개키와 비밀키를 생성하는 과정, 공개키를 사용하여 평문 m∈Z을 암호문 C∈E(Z/nZ)로 암호화하는 과정, 암호문 C를 다시 평문 m으로 복호화하는 과정으로 이루어진다.
먼저, 소수 p, q와 정수 n=p2q, 그리고 정수환 Z/nZ위에 정의된 타원곡선 E를 입력받는다(11). 타원곡선 E가 정수환 Z/nZ위에 정의된다는 말은 타원곡선의 계수가 정수환 Z/nZ에 속한다는 것을 의미한다.
두 번째 단계는 키 생성 단계이다(12). 키 생성을 위하여 먼저, E(Z/nZ)위의 한 점 P를 지정한다. P=(x,y)가 타원곡선 E(Z/nZ)위의 점이란 것은 x, y가 x,y∈Z/nZ이면서 타원곡선을 정의하는 식을 만족한다는 것을 의미한다. 다음으로는, 타원곡선 E의 계수를 법 p로 축소(reduce)하여 생각하면, E는 유한체 Z/pZ위의 타원곡선으로 생각할 수 있는데 이때 타원곡선 E(Z/pZ)의 위수를 구하여 Np라고 놓는다. 또한 소수 p를 이진 전개하였을 때 그의 자리수를 계산하여 k라고 놓는다.마지막으로, 타원곡선 E(Z/nZ)상에서 점 P를 n배 하여 이것을 H라 놓는다. 이 과정을 통해 생성된 것 중에, 정수 n과 k, 그리고 타원곡선 E와 E(Z/nZ)위의 두 점 P, H를 공개키로 공개하고, 소수 p, q와 E(Z/pZ)의 위수 Np는 비밀키로 간직한다.
세 번째 단계는 암호화 과정으로 공개키 (n, k, P, H, E)의 소유자에게 다른 사람이 k비트 이진수열인 평문 m을 비밀리에 전송하고 싶을 때 암호화하는 과정을 나타낸다(13). 우선 평문 m을 입력 받은 후, 0과 n 사이의 정수 r을 임의의 생성한다. 다음으로 공개되있는 정보 P와 H를 이용하여 E(Z/nZ)상에서 C=((mP+rH)mod n)를 계산한다. 이때 타원곡선 점 C가 평문 m의 암호문이 된다.
네 번째 단계는 복호화 과정으로 공개키 (n, k, P, H, E)의 소유자가 암호문 C를 받았을 때 자신만이 아는 비밀키(p, q, Np)로 원래 평문 m을 복구해 내는 과정을 나타낸다(14).
점 C를 E(Z/p2Z)상의 점으로 축소한다. 그러면 이것을, E(Qp) mod P2의 점으로 간주할 수 있고, 이것을 Np배 한 결과를 C' 이라고 놓고 이 점의 x, y좌표를 각각 x[C'], y[C']이라 놓는다.
다음으로 점 P를 E(Z/p2Z)상의 점으로 축소하여 E(Qp) mod P2의 점으로 간주하고 이것을 Np배 한 결과를 P'이라고 놓고, 이 점의 x, y좌표를 각각 x[P'], y[P']이라 놓는다. 이때 x[C'], x[P']는 (1/P2)Zp의 원소이고, y[C'], y[P']는 (1/P3)Zp의 원소이다.
따라서, (x[C'], y[P']/(y[C']×[P']는 Zp의 원소이고, 이것을 p로 나눈 나머지를 구하면 이것이 원래의 평문 m이다.
도 2는 본 발명의 제 2 실시 예에 따른 공개키 암호화 방법을 설명하기 위한 흐름도로서, 도 1에 제시된 방법의 효율을 높였으며, n=p2q2혹은 n=p2q3의 경우에 사용할 수 있다.
이것도 역시 정수환 Z/nZ위에 정의되는 임의의 타원곡선에 대하여 적용할 수 있으나, n의 크기가 일정할 경우 n=p2q2나 n=p2q3를 인수분해하기가 n=p2q을 인수분해 하기보다 쉬울 수 있으므로 특별한 용도에 적합한 암호 시스템이다.
이 방법은 크게, 초기화 과정, 공개키와 비밀키를 생성하는 과정, 공개키를 사용하여 평문 m∈Z을 암호문 C∈E(Z/nZ)로 암호화하는 과정, 암호문 C를 다시 평문 m으로 복호화하는 과정으로 이루어진다.
초기화 과정에서, 소수 p, q와 정수 n=p2qs, 그리고 정수환 Z/nZ 위에 정의된 타원곡선 E를 입력받는다(21).
두 번째 단계는 키 생성 단계이다(21). 먼저, E(Z/nZ)위의 한 점 P를 지정한다. 다음으로는, E를 유한체 Z/pZ위의 타원곡선으로 생각하여 타원곡선 E(Z/pZ)의 위수 Np,N를 구한다. 또한 합성수 pq를 이진 전개하였을 때 그의 자리수를 계산하여 k라고 놓는다. 마지막으로 타원곡선 E(Z/nZ)상에서 점 P를 n배 하여 이것을 H라 놓는다. 이 과정을 통해 생성된 것 중에, 정수 n과 k, 그리고 타원곡선 E와E(Z/nZ)위의 두 점 P, H를 공개키로 공개하고, 소수 p, q와 Np와 Nq는 비밀키로 간직한다.
세 번째 단계는 암호화 과정으로, 공개키 (n, k, P, H, E)의 소유자에게 다른 사람이 k비트 이진수열인 평문 m을 비밀리에 전송하고 싶을 때 암호화하는 과정을 나타낸다(23). 먼저, 평문 m을 입력 받은 후, 0과 n 사이의 정수 r을 임의의 생성한다. 다음으로 공개되있는 정보 P와 H를 이용하여 E(Z/nZ)상에서 C=(mP+rH) mod n를 계산한다. 이때 타원곡선 점 C가 평문 m의 암호문이 된다.
마지막 복호화 과정은 공개키 (n, k, P, H, E)의 소유자가 암호문 C를 받았을 때 자신만이 아는 비밀키 (p, q, Np)로 원래 평문 m을 복구해 내는 과정으로 세 단계로 수행된다. 제 1 복호화 과정(24)에서 먼저, 점 C를 E(Z/p2Z)상의 점으로 간주하여 Np배 한 결과를 Cp이라고 놓고, 이 점의 x, y좌표를 각각 x[Cp], y[Cp]이라 놓는다. 다음으로는 점 P를 E(Z/p2Z)상의 점으로 간주하여 Np배 한 결과를 Pp이라고 놓고, 이 점의 x, y좌표를 각각 x[Pp], y[Pp]이라 놓는다. 이때 x[Cp], x[Pp]는 Zp의 원소이고, y[Cp], y[Pp]는Zp의 원소이다. 따라서 (x[Cp]y[Pp])/(y[Cp]x[Pp])는 Zp의 원소이고 이것을 P로 나눈 나머지를 mp라 놓는다. 마지막으로 유리수 (x[Cp]y[Pp])/(y[Cp]x[Pp])을 계산한 후 이 값을 p로 나눈 나머지를 구하여 mp라 놓는다. 제 2 복호화 과정(25)에서 먼저, 점 C를 E(Z/q2Z)상의 점으로 간주하여 Nq배 한 결과를 Cq이라고 놓고, 이 점의 x, y좌표를 각각 x[Cq], y[Cq]이라 놓는다. 다음으로는 점 P를 E(Z/q2Z)상의 점으로 간주하여 Nq배 한 결과를 Pq이라고 놓고, 이 점의 x, y좌표를 각각 x[Pq], y[Pq]이라 놓는다. 이때 x[Cq], x[Pq]는 Zq의 원소이고, y[Cq], y[Pq]는Zp의 원소이다. 따라서 (x[Cq]y[Pq])/(y[Cq]x[Pq])는 Zq의 원소이고 이것을 P로 나눈 나머지를 mq라 놓는다. 제 3 복호화 과정(26)에서는 제 1 및 제 2 복호화 과정에서 얻은 mp와 mq에 대하여, 중국인의 나머지 정리를 이용하여 m=mpmod p이고 m=mqmod q인 정수중에 0과 2k-1사이에 있는 정수를 찾으면 이것이 원래의 평문 m이다.
도 3은 본 발명의 제 3 실시 예에 따른 공개키 암호화 방법을 설명하기 위한 흐름도로서, n=pq 꼴일 때 적용될 수 있는 암호 시스템으로 가장 안전성이 높은 암호시스템이다.
이 시스템은 앞의 두 방법보다 효율적이지만, 처음 시스템을 구성하기가 도 1 및 도 2의 암호화 방법보다 어렵다.
이 방법은 크게, 초기화 과정, 공개키와 비밀키를 생성하는 과정, 공개키를사용하여 평문 m∈Z을 암호문 C∈E(Z/nZ)로 암호화하는 과정, 암호문 C를 다시 평문 m으로 복호화하는 과정으로 이루어진다.
초기화 과정(31)에서는 소수 p, q와 정수 n=pq, 그리고 정수환 Z/nZ 위에 정의된 타원곡선 E를 입력받는다. 타원곡선 E는 Z/pZ에서의 위수가 p이고 Z/qZ에서의 위수는 q인 것으로 잡는다. 이러한 타원곡선을 Z/pZ 및 Z/qZ에서 각각 anomalous인 타원곡선이라 한다.
두 번째 단계는 키 생성 단계(32)로 먼저, E(Z/nZ)위의 한 점 P를 잡은 후, gcd(n.s) =1인 s를 골라서 P를 E(Z/nZ) 상에서 s배하여 H라 놓는다. 이 과정을 통해 생성된 것 중에, 정수 n, 타원곡선 E와 E(Z/nZ)위의 두 점 P, H를 공개키로 공개하고, 소수 p와 q를 비밀키로 간직한다.
세 번째 단계는 암호화 과정(33)으로, 공개키 (n, P, H, E)의 소유자에게 다른 사람이 n보다 작은 정수인 평문 m을 비밀리에 전송하고 싶을 때 암호화하는 과정을 나타낸다. 먼저, 평문 m을 입력 받은 후, 0과 n 사이의 정수 r을 임의의 생성한다. 다음으로, 공개되어 있는 정보 P와 H를 이용하여 E(Z/nZ)상에서 C=(mP+rH) mod n과 R=rP mod n을 계산한다. 이때 타원곡선 위의 점 C와 R이 평문 m의 암호문이 된다.
마지막 복호화 과정은 공개키 (n, P, H, E)의 소유자가 암호문 (C, R)을 받았을 때 자신의 비밀키(q, r, s)로 원래 평문 m을 복구해 내는 과정으로 세 단계로 수행된다. 제 1 복호화 과정(34)에서 먼저, 점 C에서 S, R을 빼면 mP만이 남는다.이것을 E(Z/pZ)위로 축소하고 다시 E(QP)로의 리프팅(lifting) Cp'를 Hensel lemma를 이용하여 구한다. 즉, Cp'는 x좌표를 (mP mod p)의 x좌표로 놓고 타원곡선을 만족하도록 y값을 Qp'위에서 찾으면 된다. 이것은 Hensel lemma에 의해 쉽게 수행된다. 다음으로 Cp'를 p배 한 결과를 Cp이라고 놓고, 이 점의 x, y좌표를 각각 x[Cp], y[Cp]이라 놓는다. 다음으로는 점 P를 E(Z/pZ)위로 축소하고 다시 E(Qp)로 리프팅한 점 Pp'을 p배 한 결과를 Pp이라고 놓고, 이 점의 x, y좌표를 각각 x[Pp], y[Pp]이라 놓는다. 이때 x[Cp], x[Pp]는 (1/P2)ZP의 원소이고, y[Cp], y[Pp]는 (1/P3)ZP의 원소이다. 따라서 (x[Cp]y[Pp])/(y[Cp]x[Pp])는 ZP의 원소이고 이것을 P로 나눈 나머지를 mp라 놓는다. 제 2 복호화 과정(35)에서, 점 C를 E(Z/nZ)위로 축소하고 다시 E(Qq)위의 점 Cq'로 리프팅하여, 이것을 q배 한 점 Cq의 x, y좌표를 각각 x[Cq], y[Cq]이라 놓는다. 다음으로는 점 P를 E(Qq)위의 점 Pq'로 리프팅하여, 이것을 q배 한 점 Pq의 x, y좌표를 각각 x[Pq], y[Pq]이라 놓는다. 이때 x[Cq], x[Pq]는 Zq의 원소이고, y[Cq], y[Pq]는Zq의 원소이다. 따라서 (x[Cq]y[Pq])/(y[Cq]x[Pq])는 Zq의 원소이고 이것을 P로 나눈 나머지를 mq라 놓는다. 제 3 복호화 과정(36)에서는 제 1 및 제 2 복호화 과정에서 얻은 mp와 mq에 대하여 중국인의 나머지 정리를 이용하여 m=mpmod p이고 m=mqmod q인 정수중에 0과 2k-1사이에 있는 정수를 찾으면 이것이 원래의 평문 m이다.
이상의 세 암호화 방법은, 사용 환경 및 사용자/시스템 요구조건에 따라, 혹은 인수분해 알고리즘의 발달 등 여러 가지 외적 환경변화를 고려하여 이에 적합한 암호알고리즘을 선택해 사용할 수 있다.
또한, 이상에서 설명한 본 발명은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 한정되는 것이 아니다.
상술한 바와 같이, 본 발명에 따르면 암호화/복호화 및 서명/인증 등 다양한 정보보호 서비스에 응용할 수 있다. 또한, 타원곡선 ElGamal 암호시스템에 비해 평문:암호문의 비율이 좋으며, 기타 인수분해 계열 타원곡선 암호 시스템에 비해 효율적인 효과가 있다.

Claims (11)

  1. 임의의 두 소수(p, q), 상기 두 소수의 p2qs(s=1, 2, 3 …)로 정의되는 정수(n), 정수환(Z/Zn) 위에 정의된 타원곡선(E)을 입력받는 초기화 과정과,
    상기 두 소수(p, q) 및 정수(n)를 이용하여 공개키 및 비밀키를 생성하는 키 생성 과정과,
    상기 공개키를 평문만큼 가산하여 평문을 암호문으로 변환하는 암호화 과정과,
    상기 비밀키를 이용하여 상기 암호문의 이산로그를 구해 평문으로 복호화하는 과정을 포함하여 이루어지는 것을 특징으로 하는 환 위의 타원곡선을 이용한 공개키 암호화 방법.
  2. 제 1 항에 있어서,
    상기 정수(n)이 p2q로 정의된 경우 상기 키 생성 과정은
    타원곡선(E(Z/nZ)) 위의 한 점 P를 선택하는 단계와,
    상기 타원곡선(E(Z/pZ))의 위수를 구하여 Np라고 설정하는 단계와,
    상기 소수(p)를 이진 전개하였을 때 그의 자리수를 계산하여 k로 설정하는 단계와,
    상기 타원곡선(E(Z/nZ))상에서 점 P를 n배 하여 H라 설정하여, 정수 n, k,타원곡선 E와 E(Z/nZ)위의 두 점 P, H를 공개키로 공개하고, 소수 p, q와 E(Z/pZ)의 위수 Np는 비밀키로 간직하는 단계를 포함하여 이루어지는 것을 특징으로 하는 환 위의 타원곡선을 이용한 공개키 암호화 방법.
  3. 제 1 항에 있어서,
    상기 정수(n)이 p2q로 정의된 경우 상기 암호화 과정은 평문(m)을 입력 받은 후, 0과 n 사이의 임의의 정수(r)를 생성하는 단계와,
    공개되있는 정보 P와 H를 이용하여 타원곡선(E(Z/nZ)) 상에서 암호문(C=(mP+rH) mod n)를 계산하는 단계를 포함하여 이루어지는 것을 특징으로 하는 환 위의 타원곡선을 이용한 공개키 암호화 방법.
  4. 제 1 항에 있어서,
    상기 정수(n)이 p2q로 정의된 경우 상기 복호화 과정은 암호문(C)를 타원곡선(E(Z/p2Z))상의 점으로 간주하여 Np배 한 결과를 C'이라 하고, 이 점의 x, y좌표를 각각 x[C'], y[C']로 설정하는 단계와,
    점 P를 타원곡선(E(Z/p2Z))상의 점으로 간주하여 Np배 한 결과를 P'라 하고, 이 점의 x, y좌표를 각각 x[P'], y[P']로 설정하는 단계와,
    ZP의 원소 (x[C']y[P'])/(y[C']x[P'])을 계산한 후 이 값을 p로 나눈 나머지를 구하는 단계를 포함하여 이루어지는 것을 특징으로 하는 환 위의 타원곡선을 이용한 공개키 암호화 방법.
  5. 제 1 항에 있어서,
    상기 정수(n)이 p2q2으로 정의된 경우 상기 키 생성 과정은 타원곡선(E(Z/nZ)) 위의 한 점 P를 지정하는 단계와,
    타원곡선(E)을 유한체 Z/pZ위의 타원곡선으로 생각하여 타원곡선 E(Z/pZ)의 위수 Np를 구하는 단계와,
    합성수 pq를 이진 전개하였을 때 그의 자리수를 계산하여 k로 설정하는 단계와,
    타원곡선(E(Z/nZ))상에서 점 P를 n배 하여 이것을 H라 설정하여, 정수 n, k, 타원곡선 E와 E(Z/nZ)위의 두 점 P, H를 공개키로 공개하고, 소수 p, q와 Np와 Nq는 비밀키로 간직하는 단계를 포함하여 이루어지는 것을 특징으로 하는 환 위의 타원곡선을 이용한 공개키 암호화 방법.
  6. 제 1 항에 있어서,
    상기 정수(n)이 p2q2으로 정의된 경우 상기 암호화 과정은 평문(m)을 입력 받은 후, 0과 n 사이의 임의의 정수(r)를 생성하는 단계와,
    공개되있는 정보 P와 H를 이용하여 타원곡선(E(Z/nZ))상에서 암호문(C=(mP+rH) mod n)를 계산하는 단계를 포함하여 이루어지는 것을 특징으로 하는 환 위의 타원곡선을 이용한 공개키 암호화 방법.
  7. 제 1 항에 있어서,
    상기 정수(n)이 p2q2으로 정의된 경우 상기 복호화 과정은 암호문(C)을 E(Z/p2Z)상의 점으로 간주하여 Np배 한 결과를 Cp이라 설정하고, 이 점의 x, y좌표를 각각 x[Cp], y[Cp]라 설정하는 단계와, 점 P를 타원곡선(E(Z/p2Z))상의 점으로 간주하여 Np배 한 결과를 Pp이라 설정하고, 이 점의 x, y좌표를 각각 x[Pp], y[Pp]라 설정하는 단계와, ZP의 원소 (x[Cp]y[Pp])/(y[Cp]x[Pp])을 계산한 후 이 값을 p로 나눈 나머지를 구하여 mp라 설정하는 단계로 이루어진 제 1 복호화 과정과,
    암호문(C)을 E(Z/q2Z)상의 점으로 간주하여 Nq배 한 결과를 Cq이라 설정하고, 이 점의 x, y좌표를 각각 x[Cq], y[Cq]라 설정하는 단계와, 점 P를 E(Z/q2Z)상의 점으로 간주하여 Nq배 한 결과를 Pq이라 설정하고, 이 점의 x, y좌표를 각각 x[Pq], y[Pq]라 설정하는 단계와, ZP의 원소 (x[Cq]y[Pq])/(y[Cq]x[Pq])을 계산한 후 이 값을 q로 나눈 나머지를 구하여 mq라 설정하는 단계로 이루어진 제 2 복호화 과정과,
    상기 mp와 mq에 대하여 m=mpmod p이고 m=mqmod q인 정수중에 0과 2k-1사이에 있는 정수를 찾는 제 3 복호화 과정을 포함하여 이루어지는 것을 특징으로 하는 환 위의 타원곡선을 이용한 공개키 암호화 방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 임의의 두 소수(p, q), 상기 두 소수의 p2qs(s=1, 2, 3 …)로 정의되는 정수(n), 정수환(Z/Zn) 위에 정의된 타원곡선(E)을 입력받는 초기화 과정과,
    상기 두 소수(p, q) 및 정수(n)를 이용하여 공개키 및 비밀키를 생성하는 키 생성 과정과,
    상기 공개키를 평문만큼 가산하여 평문을 암호문으로 변환하는 암호화 과정과,
    상기 비밀키를 이용하여 상기 암호문의 이산로그를 구해 평문으로 복호화하는 과정을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-1999-0027009A 1999-07-06 1999-07-06 환 위의 타원곡선을 이용한 공개키 암호화 방법 KR100370786B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1999-0027009A KR100370786B1 (ko) 1999-07-06 1999-07-06 환 위의 타원곡선을 이용한 공개키 암호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1999-0027009A KR100370786B1 (ko) 1999-07-06 1999-07-06 환 위의 타원곡선을 이용한 공개키 암호화 방법

Publications (2)

Publication Number Publication Date
KR20010008921A KR20010008921A (ko) 2001-02-05
KR100370786B1 true KR100370786B1 (ko) 2003-02-05

Family

ID=19599566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0027009A KR100370786B1 (ko) 1999-07-06 1999-07-06 환 위의 타원곡선을 이용한 공개키 암호화 방법

Country Status (1)

Country Link
KR (1) KR100370786B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100395158B1 (ko) * 2001-07-12 2003-08-19 한국전자통신연구원 유한 비가환군을 이용한 공개키 암호 시스템
KR100611311B1 (ko) * 2005-02-07 2006-08-10 고려대학교 산학협력단 타원곡선 위에서 효율적으로 동시적 곱셈을 수행하는 타원곡선 암호화 방법 및 그 시스템
KR100778057B1 (ko) * 2005-12-08 2007-11-21 한국전자통신연구원 2차 잉여류 군에서 정의되는 하이브리드 공개키 암호 기법

Also Published As

Publication number Publication date
KR20010008921A (ko) 2001-02-05

Similar Documents

Publication Publication Date Title
Bresson et al. A simple public-key cryptosystem with a double trapdoor decryption mechanism and its applications
US6154541A (en) Method and apparatus for a robust high-speed cryptosystem
Dodis et al. Intrusion-resilient public-key encryption
US7516321B2 (en) Method, system and device for enabling delegation of authority and access control methods based on delegated authority
JP2005521323A (ja) 階層型の同一性に基づく暗号化および署名スキーム
Zheng et al. Practical approaches to attaining security against adaptively chosen ciphertext attacks
JPH08504962A (ja) 暗号化方法
Syalim et al. Realizing proxy re-encryption in the symmetric world
CN110851845A (zh) 一种轻量级单用户多数据的全同态数据封装方法
Lal et al. ID based generalized signcryption
Liu et al. New efficient identity based encryption without pairings
WO2000049768A1 (en) Method for signature splitting to protect private keys
M’Raïhi et al. Computational alternatives to random number generators
CN107463849B (zh) 基于单服务器的隐私信息恢复方法
US20050135610A1 (en) Identifier-based signcryption
Birkett et al. Efficient chosen-ciphertext secure identity-based encryption with wildcards
JP3402441B2 (ja) 公開鍵暗号化装置、公開鍵暗号復号装置及び復号プログラム記録媒体
TSENG et al. Short Paper_
Dodis et al. Exposure-resilience for free: the hierarchical ID-based encryption case
KR100370786B1 (ko) 환 위의 타원곡선을 이용한 공개키 암호화 방법
JP3517663B2 (ja) 暗号通信方法及び暗号通信システム
CN115361109B (zh) 一种支持双向代理重加密的同态加密方法
Patel et al. A novel verifiable multi-secret sharing scheme based on elliptic curve cryptography
Zheng Improved public key cryptosystems secure against chosen ciphertext attacks
CN113708925B (zh) 一种普通密码算法密钥的群组使用方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090102

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee