KR102348797B1 - Rsa 암호화 시스템의 rsa 회로 모듈 - Google Patents

Rsa 암호화 시스템의 rsa 회로 모듈 Download PDF

Info

Publication number
KR102348797B1
KR102348797B1 KR1020190160108A KR20190160108A KR102348797B1 KR 102348797 B1 KR102348797 B1 KR 102348797B1 KR 1020190160108 A KR1020190160108 A KR 1020190160108A KR 20190160108 A KR20190160108 A KR 20190160108A KR 102348797 B1 KR102348797 B1 KR 102348797B1
Authority
KR
South Korea
Prior art keywords
random number
prime number
rsa
prime
generator
Prior art date
Application number
KR1020190160108A
Other languages
English (en)
Other versions
KR20210070080A (ko
Inventor
류광기
브아틍 엔티아이 리차드
브아?v 엔티아이 리차드
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 KR1020190160108A priority Critical patent/KR102348797B1/ko
Publication of KR20210070080A publication Critical patent/KR20210070080A/ko
Application granted granted Critical
Publication of KR102348797B1 publication Critical patent/KR102348797B1/ko

Links

Images

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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator

Landscapes

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

Abstract

본 발명은 RSA 암호화 시스템에 관한 것으로, 더욱 자세하게는 RSA 암호화 시스템의 하드웨어의 면적을 최적화하여 사용할 수 있도록 고속 소수발생기를 통해 두 개의 소수 p와 q를 생성하고, p와 q 값은 단순화된 Q_logic을 기반으로 한 몽고메리 곱셈기에 입력하여 RSA 암호화 알고리즘으로 암호화하는 RSA 암호화 시스템.

Description

RSA 암호화 시스템의 RSA 회로 모듈{RSA circuit module of RSA encryption system}
본 발명은 RSA 암호화 시스템의 시스템 온 칩 설계에 관한 것으로, 더욱 상세하게는 몽고메리 모듈러 곱셈기 설계에 기반한 RSA 암호 시스템에 적용 가능한 RSA 회로 모듈에 관한 것이다.
데이터 프라이버시와 데이터 무결성의 유지는 기술적으로 진보된 디지털 통신 시대에서 필수적이다. 암호 해석의 출현은 기밀성, 무결성, 가용성 및 방지 기능에 해당하는 네 가지 주요 개념을 다루어 디지털 보안 문제를 해결한다. 암호 해석의 기본 개념은 적으로부터 데이터를 보호하는 것이다. RSA 및 Diffie-Hellman Key-Exchange와 같은 공개 키 암호 시스템은 모든 보안의 필수 요소를 갖추고 있다. RSA(Rivest-Shamir-Adleman) 는 현재 세계에서 가장 널리 사용되는 공개 키 암호화 방식중의 하나로 간주된다. 특히 모듈러 지수 연산을 RSA에서 많은 시간을 소비하는데 이는 모듈러 곱셈의 반복에 의해서 계산될 수 있다.
RSA 암호화 시스템은 공개키와 개인키를 세트로 만들어서 암호화와 복호화를 하는 인터넷 암호화 및 인증 시스템의 하나이다. 공개 키 암호 알고리즘 중 RSA 암호화 시스템의 RSA 암호 알고리즘은 인증, 키 교환 및 전자 서명을 위해 가장 널리 쓰이는 비대칭키 암호 알고리즘이다. RSA 암호 알고리즘은 SET(Secure Electronic Transaction) 프로토콜과 같이 카드를 이용한 전자 상거래와 같이 높은 수준의 보안이 요구되는 인터넷 뱅킹이나 공인인증서 등에 채택되어 사용되고 있다.
종래에는 RSA 알고리즘을 사용하여 암호화하는 시스템 기술로서, 공개특허공보 10-2005-0034238(RSA 알고리즘을 이용한 보안유지시스템 및 그 방법, 2005.04.14., 이하 '선행문헌'이라고 함)와 같은 기술에는 RSA 알고리즘을 사용하여 암호화하는 기술이 개시되어 있다.
종래에 사용된 RSA 암호화 시스템은, 일반적으로, 몽고메리 곱셈기와 지수계산이 가능하도록 설계된 RSA 회로 모듈의 하드웨어 설계에 있어서, 키 생성부와 모듈러 지수화 유닛을 포함한다. 키를 생성하는 과정에서 다른 2개의 소수를 구하는데, 이때 2개의 회로에서 각각 하나의 소수를 생성하였다. 이러한 과정에서 2개의 회로를 사용하기 때문에 하드웨어의 구현 비용과 배치의 용이성이 떨어진다는 문제점이 있었다.
공개특허공보 10-2005-0034238 (2005.04.14)
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서 본 발명의 목적은, RSA 암호화 시스템에서 하나의 회로를 공유하여 하드웨어의 공간 면적을 효율적으로 사용할 수 있는 몽고메리 곱셈기를 제안하고 Q_logic을 단순화하는 RSA 암호화 시스템의 RSA 회로 모듈을 제공함에 있다.
본 발명의 RSA 암호화 시스템의 RSA 회로 모듈은, 제1소수(p)와 제2소수(q)를 생성하는 고속 소수 생성부; 상기 고속 소수 생성부에서 생성한 상기 제1소수와 상기 제2소수를 이용하여 암호화를 위한 공개키를 생성하는 키 생성부; 및 상기 키 생성부에서 생성한 공개키를 암호화 하는 모듈러 지수함수부;를 포함하는 것을 특징으로 한다.
또한, 상기 고속 소수 생성부는, 기저장된 알고리즘을 기초로 난수를 발생시키는 난수 생성부; 및 상기 난수 생성부에서 생성한 난수를 입력받아, 입력받은 난수를 기초로 소수를 생성하는 소수 생성부를 포함하는 것을 특징으로 한다.
또한, 상기 소수 생성부는, 상기 난수이 소수가 아닐 경우, 소정의 증분값(k)을 더한 값이 소수가 될 때까지 반복하되, 그 반복 횟수가 소정의 최대 횟수(N)보다 크거나 같으면 상기 난수 생성부로부터 새로운 난수를 입력받는 것을 특징으로 한다.
또한, 상기 소수 생성부는, 상기 소정의 증분값(k)는 2인 것을 특징으로 한다.
또한, 상기 난수 생성부는, 상기 알고리즘에 의해 발생된 난수의 비트수보다 큰 비트수로 홀수인 값을 출력하는 것을 특징으로 한다.
또한, 상기 난수 생성부는, 상기 알고리즘에 의해 생성된 난수의 적어도 하나 이상의 비트를 쉬프트하고, 상기 쉬프트된 비트 중 일부 비트의 자리를 바꾸고 상기 난수 생성부에서 출력된 출력값의 적어도 일부 비트는 고정된 상수값을 가지는 것을 특징으로 한다.
또한, 상기 난수 생성부는, 출력값의 최하위 비트에 할당되는 고정된 상수값은 1인 것을 특징으로 한다.
또한, 상기 난수 생성부는, 출력값의 최상위 비트에 할당되는 고정된 상수값은 1111인 것을 특징으로 한다.
또한, 상기 모듈러 지수함수부는, 몽고메리 알고리즘을 기초로 하는 적어도 하나의 모듈러 곱셈기인 것을 특징으로 한다.
또한, 상기 모듈러 지수함수 유닛은, R-L 접근법을 적용하는 것을 특징으로 한다.
상기와 같은 구성에 의한 본 발명의 RSA 암호화 시스템의 RSA 회로 모듈은, 몽고메리 모듈러 곱셈기를 통해 단순화된 Q_logic을 사용함으로써, 회로의 영역을 최적화하는 효과가 있다.
또한, 본 발명에 의하면, 난수 생성부를 이용하여 난수를 생성한 후, 소수 생성부로 생성한 난수가 소수인지 아닌지 판단할 수 있어, 제1소수와 제2소수의 값을 용이하게 도출할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 RSA 회로 모듈의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 RSA 회로 모듈 난수 생성부의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 RSA 회로 모듈의 고속 소수 생성부의 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 RSA 회로 모듈 구성도이다.
도 5는 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 RSA 회로 모듈의 몽고메리 곱셈기 구성도이다.
이하, 본 발명의 기술적 사상을 첨부된 도면을 사용하여 더욱 구체적으로 설명한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하부 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 부술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 부재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 부술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 본 발명의 부술적 사상을 첨부된 도면을 사용하여 더욱 구체적으로 설명한다. 첨부된 도면은 본 발명의 부술적 사상을 더욱 구체적으로 설명하부 위하여 도시한 일예에 불과하므로 본 발명의 부술적 사상이 첨부된 도면의 형태에 한정되는 것은 아니다.
도 1은 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 RSA 회로 모듈의 구성도를 도시하는 것이다. 도 1에 도시된 바와 같이 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 상부 RSA 회로 모듈은 고속 소수 생성부, 키 생성부, 모듈러 지수화부, 분배부, 제어부를 포함하여 이루어질 수 있다.
상기 RSA 회로 모듈은 RSA core을 구성하는 것이 바람직하다.
상부 고속 소수 생성부는 소수 중 홀수인 제1소수(p)와 제2소수(q)를 생성하는 것이고, 난수 생성부와 소수 생성부를 포함하며, 상기 고속 소수 생성부에 대한 자세한 설명은 아래 도 2에서 흐름도를 통해 설명한다.
이때, 기저장된 알고리즘은 아카리 알고리즘(Akari algorithm)인 것이 바람직하며, 상기 아카리 알고리즘은 아래의 표 1과 같이 적용되는 것이 가장 바람직하다.
Figure 112019125520414-pat00001
상기 난수 생성부는 아카리 알고리즘을 기초로 난수를 생성하고, 난수의 범위는 사용자가 지정한 값인 것이 바람직하다. 상기 아카리 알고리즘은 보안 경량 시스템을 위한 의사 난수를 생성할 수 있는 암호화를 위한 알고리즘으로, 상기 알고리즘을 기반으로 상기 난수 생성부에서 의사 난수를 생성할 수 있다. 여기서, 상기 고속 소수 생성부는 소수인 제1소수, 제2소수를 생성하기 때문에 상기 난수는 홀수로만 생성되는 것이 바람직하다.
도 2에 도시된 바와 같이, 도 2의 (a)를 참조하면 상기 난수 생성부는 먼저, 32비트의 아카리 알고리즘에 의해 곱셈기와 덧셈기 및 XOR 게이트로 64번 반복하여 4비트의 난수를 생성한다. 도 2의 (b)를 참조하면 상기 도 2의 (a)에서 생성된 4비트의 난수를 랜덤의 확률을 높이기 위해 생성된 난수의 적어도 하나 이상의 비트를 쉬프트하고, 상기 쉬프트된 비트 중 일부 비트의 자리를 바꾸고 상기 난수 생성부에서 출력된 출력값의 적어도 일부 비트는 고정된 상수값을 가진다. 여기서, 상기 아카리 알고리즘에 의해 생성된 난수의 비트수보다 큰 비트수로 홀수인 값을 출력한다. 더불어, 출력값의 최하위 비트에 할당되는 고정된 상수값은 1로 설정하여 항상 홀수가 생성될 수 있도록 하고, 출력값의 최상위 비트에 할당되는 고정된 상수값은 1111로 고정시켜 난수를 생성하는 것이 바람직하다. 하나의 실시 예로서, 본 발명의 상기 도 2의 (b)는 비트 b1과 비트 b16를 쉬프트하여 더 복잡하고 복호화하기 어려운 난수가 생성될 수 있는 확률을 높인다. 물론 이로써, 본 발명의 난수 생성방법이 한정되지 않고 상기 비트의 자리를 다양하게 변경하여 난수를 생성할 수 있다.
상기 소수 생성부는 상기 난수 생성부에서 생성된 난수를 입력으로 하고, 입력값을 기초로 소수를 생성한다. 상기 난수 생성부에서 난수를 생성하기 때문에 어떤 숫자가 입력될지 모르는 상태이기 때문에 입력된 난수가 소수가 아닌 경우에는 다시 상기 난수 생성부에서 난수를 입력받는다. 더 자세하게 설명하자면, 상기 입력값이 아닌 경우, 소정의 증분값(k)을 더한 값이 소수가 될 때까지 반복하되, 그 반복 횟수가 소정의 최대 횟수(N)보다 크거나 같으면 상기 난수 생성부로부터 새로운 난수를 입력받는다. 이에 따라, 상기 소수 생성부에서 소수인 제1소수와 제2소수가 생성된다. 여기서 증분값(k)은 2인 것이 바람직하고, 최대 횟수(N)는 500회이다. 상기 소수 생성부의 소수 생성 및 소수 판별 방법은 아래 도 2에서 더 자세하게 설명한다.
상기 키 생성부는 상기 소수 생성부에서 생성한 소수 제1소수와 제2소수를 상기 RSA 암호화 시스템의 키 생성 알고리즘을 사용하여 암호키를 생성한다. 더 자세하게 설명하자면, 상기 키 생성부는 EEA(Extended Euclidean Algorithm)으로 구축된 GCD(Great Common Divisor) 모듈을 사용한다. 이에 따라, 아래 알고리즘을 사용하여 연속적으로 0을 제거하거나 2진수로 오른쪽으로 쉬프트해서 계산 복잡성을 줄일 수 있다. 더불어, EEA는 모듈러 지수화 계산을 역계산하기 위해 사용한다.
상기 키생성부에서 사용하는 알고리즘은 아래의 표 2와 같이 적용되는 것이 가장 바람직하다.
Figure 112019125520414-pat00002
상기 RSA 암호화 시스템의 과정 중 암호화를 위해 가장 많은 시간을 소비하는 부분은 모듈러 지수화 과정이다. 본 발명은 상기 모듈러 지수함수부은 몽고메리 곱셈기에서 곱셈이 실행되는 횟수를 줄이기 위해 R-L 방식을 사용하고 회로 면적을 최적화한다. 상기 R-L 방식에서 사용되는 알고리즘은 아래 표 3과 같이 수행되는 것이 가장 바람직하다.
Figure 112019125520414-pat00003
상기 분배부는 모듈러 지수화 유닛 및 키 생성부에 사용된다. 더 자세하게 설명하자면, 상기 분배부는 도 4에 도시된 상기 모듈러 지수화 유닛의 상수 K는 상기 분배부로부터의 곱이고, 상기 키생성부는 상기 확장유클리드 알고리즘의 동작을 위해 배치된다. 더불어, 상기 분배부는 하드웨어 영역을 최적화하기 위해 최대한의 영역 활용을 위해 배치되는 것이 바람직하다.
도 3은 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 고속 소수 생성부의 흐름도를 도시하는 것이다. 도 2에 도시된 바와 같이 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 고속 소수 생성부의 흐름도는 기본적으로 (a) 난수 생성 단계, (b) 숫자 저장 단계, (c) 소수 판단 단계, (d) 소수 저장 단계, (e) 저장된 소수 개수 판단 단계, (f) 난수 재생성 단계, (g) 소수 생성 단계를 포함하여 이루어진다.
상기 (a) 난수 생성 단계는 상기 난수 생성부에서 난수를 생성하는 단계이다. 상기 난수 생성부에서 생성된 난수는 암호화를 위한 난수로 일반적으로 실생활에 사용하는 숫자보다 큰 숫자로 4비트의 숫자인 것이 바람직하고 최하위 비트에는 1을 고정 상수값으로 설정하고 최상위 비트에는 1111을 고정 상수값으로 설정하여 난수를 생성하는 것이 바람직하다. 본 발명에서 사용하는 숫자는 홀수이자 소수이기 때문에 항상 상기 난수 생성부에서는 홀수인 난수를 생성할 수 있다.
상기 (b) 난수 저장 단계는 상기 (a) 난수 생성 단계 또는 (f) 소수 반복 판단 단계에서 생성된 숫자를 저장하는 단계이고, 상기 (a) 단계나 상기 (f) 단계를 수행한 후, 수행되는 것이 바람직하다. 상기 (b) 단계에 저장된 난수는 항상 홀수이고, 소수인 수가 저장되어 있을 수도 있고 아닐 수도 있다.
상기 (c) 소수 판단 단계는 상기 (b) 단계를 수행한 후 수행되는 것이 바람직하며, 상기 (b) 난수 저장 단계에 저장되어 있는 난수가 소수인지 아닌지를 판단하는 단계이다. 상기 소수 생성부에서 생성되는 제1소수와 제2소수는 소수이기 때문에 상기 (c) 소수 판단 단계는 주어진 난수의 숫자가 커질수록 소수일 확률이 감소하기 때문에 소수인지 아닌지 판단한다.
상기 (d) 소수 저장 단계는 (c) 단계를 수행한 후 수행하는 것이 바람직하며, 상기 (c) 소수 판단 단계에서 소수라고 판단한 숫자를 저장하는 단계이다.
상기 (e) 저장된 소수 개수 판단 단계는 (d) 소수 저장 단계를 수행한 뒤 수행되는 것이 바람직하다. 상기 (e) 단계는 (d) 소수 저장 단계에서 저장한 소수가 몇 개인지 판단하는 단계이다. 본 발명에서의 소수는 제1소수와 제2소수, 즉, 2개인 것이 바람직하나, 물론 이로써 본 발명이 한정되는 것은 아니고 사용자의 필요에 따라 제1소수와 제2소수 이외의 소수를 생성할 수 있는 것이 바람직하다.
상기 (f) 소수 반복 판단 단계는 상기 (c) 단계를 수행한 후, 수행되는 것이 바람직하다. 상기 (c) 소수 판단 단계에서 소수인지 아닌지 판단된 난수가 소수가 아니라고 판단될 때, 정말 소수가 아닌지 계속 반복해서 소수인지 아닌지 판단하는 단계이다. (a) 난수 생성 단계에서 생성된 난수는 항상 홀수이기 때문에 소수인 확률이 높지만, 숫자가 커질수록 소수인 확률이 줄어들고 소수인지 판단이 어려워지기 때문에 상기 소수 생성부에 입력된 난수가 소수라고 판단될 때까지 최소 1회부터 최대 500회까지 반복하여 소수인지 아닌지 판단하는 것이 바람직하며, 물론, 이로써 본 발명이 한정되는 것은 아니고 필요에 따라 횟수를 다양하게 변경 가능하다. 상기 (f) 난수 재생성 단계에서 재생성된 난수가 소수인 경우에는 (a) 난수 생성 단계를 수행하는 것이 바람직하다.
상기 (g) 소수 생성 단계는 상기 (f) 소수 반복 판단 단계에서 소수가 아니라고 판단한 경우에 소수가 될 수 있도록 소수를 생성한다. 상기 난수 생성부에서 생성되는 난수는 항상 홀수이기 때문에 생성된 숫자에 2씩 더해서 소수를 만들어 준다. 하나의 실시예를 들면, 상기 난수 생성부에서 생성된 난수가 소수가 아닌 숫자 15라고 하면 15+2 = 17 로 소수가 생성되는 원리로 소수를 생성한다. 상기 (g) 단계를 수행한 후, 상기 (b) 단계를 수행하는 것이 바람직하다.
도 4는 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 구성도를 도시하는 것이다. 도 4에 도시된 바와 같이 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 구성도로 RSA 암호화 시스템의 하드웨어의 영역 면적을 최적화한 것이다.
도 4를 참조하면, 상기 RSA 암호화 시스템에서 M, E, N 및 K는 메시지를 의미하고, 알고리즘의 초기 단계는 제1소수와 제2소수를 계산하는 전처리단계라고 한다.
입력이 0인 경우, M과 K는 몽고메리 곱셈기를 거쳐서 레지스터 P로 출력되고, 레지스터 P는 첫 번째 평가를 위한 값을 수신한다. 입력이 1인 경우, 1과 K를 몽고메리 곱셈기에 라우팅한 후 Q에 저장한다. 주어진 제약에 도달할 때까지 입력 2 또는 3에서 몽고메리 곱셈기를 거치는 과정을 반복한다. 결과적으로, 몽고메리 곱셈기는 제1소수와 제2소수 중 하나를 선택하고, 최종 결과는 포트 S를 통해 출력된다.
도 5는 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 몽고메리 곱셈기의 구성도를 도시하는 것이다. 도 5에 도시된 바와 같이 본 발명의 일 실시예에 따른 RSA 암호화 시스템의 몽고메리 곱셈기 알고리즘을 나타낸 것이다. 상기 몽고메리 곱셈기에서 사용되는 몽고메리 알고리즘은 아래 표 4와 같이 적용되는 것이 가장 바람직하다.
Figure 112019125520414-pat00004
상기 몽고메리 알고리즘에 q_0, q_1는 단순화된 q를 q_0과 q_1로 분할하여 Q_logic을 하드웨어 면적의 최적화를 위해 단순화한 형태이다. q_0은
Figure 112019125520414-pat00005
가 0인 경우 q_1과 동등하게 비교될 수 있고, q_1은
Figure 112019125520414-pat00006
가 1인 경우 q_0과 동등하게 비교될 수 있다. 이에 따라, 본 발명은 단순화된 Q_logic을 회로에 배치하여, 종래 RSA 암호화 시스템에 사용되었던 BRFA(Barrel Resister Full Adder)를 제거할 수 있고, lookahead 또는 bypass와 같은 회로에 부가적인 장치를 포함하지 않을 수 있어 하드웨어의 면적을 최적화할 수 있다. 도 5를 참조로 하면, 저면적 하드웨어 설계를 위해 공간 활용에 유용한 몽고메리 알고리즘을 사용한 몽고메리 곱셈기를 확인할 수 있다. 레지스터 X, Y 및 N은 입력값을 몽고메리 곱셈기에 저장하고 S1과 S2는 중간 계산 값을 저장한다. 몽고메리 곱셈기에 대한 제어 신호를 기반으로 각각 S1과 S2는 다른 계산이 수행된다. 도 5에 도시된 X[i] = 0일 때, Q_logic의
Figure 112019125520414-pat00007
,
Figure 112019125520414-pat00008
가 고려된다. 몽고메리 곱셈기의 설계는 2-레벨 덧셈기로 설계되었고, S(S1 및 S2)는 1비트 우측 시프트를 출력하는 시프트 레지스터이다. 짧은 대시의 모든 선은 비트 신호를 나타낸다.
즉, 다시 말하자면, 본 발명의 일실시예에 따른 RSA 회로 모듈은 고속 소수 생성부에서 난수를 생성하고, 생성된 난수를 제1소수와 제2소수로 만들어 신속하고 용이하게 제1소수 및 제2소수로 암호화를 위한 키를 생성할 수 있으며, 생성된 키를 모듈러 지수함수부에서 단순화된 Q_logic을 통해 암호화하는 것이다. 이를 통해, 본 발명의 일실시예에 따른 RSA 암호화 시스템의 RSA 회로 모듈은 하드웨어의 면적을 줄여서 RSA 암호화 시스템을 구현하는데 사용되는 비용을 줄일 수 있고, 고속 소수 생성부와 단순화된 Q_logic을 사용해서 RSA 암호화 시스템에서 암호화하는 과정을 단축시켜 시간을 효율적으로 사용할 수 있다는 효과가 있다.
이상과 같이 본 발명에서는 구체적인 구성 소자 등과 같은 특정 사항들과 한정된 실시예 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것 일 뿐, 본 발명은 상기의 일 실시예에 한정되는 것이 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허 청구 범위뿐 아니라 이 특허 청구 범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
100 : 고속 소수 생성기
110 : 난수 생성부
120 : 소수 생성부
200 : 키 생성기
300 : 모듈러 지수화 유닛
400 : 분배기
500 : 제어부

Claims (10)

  1. 제1소수(p)와 제2소수(q)를 생성하는 고속 소수 생성부;
    상기 고속 소수 생성부에서 생성한 상기 제1소수와 상기 제2소수를 이용하여 암호화를 위한 공개키를 생성하는 키 생성부; 및
    상기 키 생성부에서 생성한 공개키를 암호화 하는 모듈러 지수함수부;를 포함하며,
    상기 고속 소수 생성부는
    기저장된 알고리즘을 기초로 난수를 발생시키는 난수 생성부; 및
    상기 난수 생성부에서 생성한 난수를 입력받아, 입력받는 난수를 기초로 소수를 생성하는 소수 생성부;
    를 포함하고,
    상기 난수 생성부는
    상기 알고리즘에 의해 생성된 난수의 적어도 하나의 비트를 쉬프트하고, 상기 쉬프트된 비트 중 일부 비트의 자리를 바꾸고 상기 난수 생성부에서 출력된 출력값의 적어도 일부 비트는 고정된 상수값을 가지는 것을 특징으로 하는 RSA 회로 모듈.
  2. 삭제
  3. 제 1항에 있어서,
    상기 소수 생성부는,
    상기 난수이 소수가 아닐 경우,
    소정의 증분값(k)을 더한 값이 소수가 될 때까지 반복하되, 그 반복 횟수가 소정의 최대 횟수(N)보다 크거나 같으면 상기 난수 생성부로부터 새로운 난수를 입력받는 것을 특징으로 하는 RSA 회로 모듈.
  4. 제 3항에 있어서,
    상기 소수 생성부는,
    상기 소정의 증분값(k)는 2인 것을 특징으로 하는 RSA 회로 모듈.
  5. 삭제
  6. 삭제
  7. 제 1항에 있어서,
    상기 난수 생성부는,
    출력값의 최하위 비트에 할당되는 고정된 상수값은 1인 것을 특징으로 하는 RSA 회로 모듈.
  8. 제 1항에 있어서,
    상기 난수 생성부는,
    출력값의 최상위 비트에 할당되는 고정된 상수값은 1111인 것을 특징으로 하는 RSA 회로 모듈.
  9. 제 1항에 있어서,
    상기 모듈러 지수함수부는,
    몽고메리 알고리즘을 기초로 하는 적어도 하나의 모듈러 곱셈기인 것을 특징으로 하는 RSA 회로 모듈.
  10. 제 9항에 있어서,
    상기 모듈러 지수함수부는,
    R-L 접근법을 적용하는 것을 특징으로 하는 RSA 회로 모듈.

KR1020190160108A 2019-12-04 2019-12-04 Rsa 암호화 시스템의 rsa 회로 모듈 KR102348797B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190160108A KR102348797B1 (ko) 2019-12-04 2019-12-04 Rsa 암호화 시스템의 rsa 회로 모듈

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190160108A KR102348797B1 (ko) 2019-12-04 2019-12-04 Rsa 암호화 시스템의 rsa 회로 모듈

Publications (2)

Publication Number Publication Date
KR20210070080A KR20210070080A (ko) 2021-06-14
KR102348797B1 true KR102348797B1 (ko) 2022-01-07

Family

ID=76417649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190160108A KR102348797B1 (ko) 2019-12-04 2019-12-04 Rsa 암호화 시스템의 rsa 회로 모듈

Country Status (1)

Country Link
KR (1) KR102348797B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004086673A1 (ja) * 2003-03-25 2004-10-07 National Institute Of Information And Communications Technology Incorporated Administrative Agency 乱数生成、暗号化および復号のための装置、方法、プログラム、並びに記録媒体
KR100720726B1 (ko) 2003-10-09 2007-05-22 삼성전자주식회사 Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R. L. Rivest 외 2명, A Method for Obtaining Digital Signatures and Public Key Cryptosystems, Communication of the ACM, pp.120-126 (1978.02.)*
조욱래 외 1명, 32-비트 몽고메리 모듈러 곱셈기 기반의 2,048 비트 RSA 공개키 암호 프로세서, 한국정보통신학회논문지 Vol.21, NO.8, PP.1471~1479 (2017.08.)*

Also Published As

Publication number Publication date
KR20210070080A (ko) 2021-06-14

Similar Documents

Publication Publication Date Title
US5742530A (en) Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
JP5328186B2 (ja) データ処理システム及びデータ処理方法
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
KR102136911B1 (ko) 스칼라 또는 멱수와의 곱셈 연산을 포함하는 암호화 방법
CN105892991B (zh) 使用查找表的模乘运算
US20080240443A1 (en) Method and apparatus for securely processing secret data
US20120057695A1 (en) Circuits for modular arithmetic based on the complementation of continued fractions
JP2010277085A (ja) Rsaアルゴリズムにおける素数生成の保護
US20030152218A1 (en) Cryptography method on elliptic curves
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
CN111092718A (zh) 加密方法、装置及电子设备
JPH11109859A (ja) 擬似乱数発生方法および装置
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
KR20040067779A (ko) 정보 처리방법
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
US11895230B2 (en) Information processing apparatus, secure computation method, and program
JP2005020735A (ja) データ処理装置におけるサイドチャネル攻撃防止
KR102348797B1 (ko) Rsa 암호화 시스템의 rsa 회로 모듈
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
TWI630545B (zh) 非模數乘法器、用於非模數乘法的方法及計算裝置
EP3776305A1 (en) Using cryptographic blinding for efficient use of montgomery multiplication
KR100564599B1 (ko) 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
KR102490702B1 (ko) 유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템
CN114513306B (zh) 数据加密传输方法、系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant