KR920003275B1 - Rsa 알고리즘을 사용한 보안 모듈회로 - Google Patents

Rsa 알고리즘을 사용한 보안 모듈회로 Download PDF

Info

Publication number
KR920003275B1
KR920003275B1 KR1019890017900A KR890017900A KR920003275B1 KR 920003275 B1 KR920003275 B1 KR 920003275B1 KR 1019890017900 A KR1019890017900 A KR 1019890017900A KR 890017900 A KR890017900 A KR 890017900A KR 920003275 B1 KR920003275 B1 KR 920003275B1
Authority
KR
South Korea
Prior art keywords
security
security module
main module
module
main
Prior art date
Application number
KR1019890017900A
Other languages
English (en)
Other versions
KR910010322A (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 KR1019890017900A priority Critical patent/KR920003275B1/ko
Publication of KR910010322A publication Critical patent/KR910010322A/ko
Application granted granted Critical
Publication of KR920003275B1 publication Critical patent/KR920003275B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)

Abstract

내용 없음.

Description

RSA 알고리즘을 사용한 보안 모듈회로
제1도는 본 발명에 따른 일실시예에 보안 모듈의 회로 구성도.
제2도는 제1도의 메인 모듈부에 의한 제어 플로우챠트.
제3도는 제1도의 보안 모듈부에 의한 제어 플로우챠트.
제4도는 변형(MOD)계산의 알고리즘.
제5도는 변형(MOD)계산중의 뺄셈 알고리즘.
* 도면의 주요부분에 대한 부호의 설명
1 : 메일 모듈부 2 : 보안 모듈부
3 : 인터페이스부 4 : 리셋 회로부
5 : 읽기/쓰기 선택논리부
본 발명은 RSA(Rivest, Shamir, Adleman)알고리즘을 사용한 보안 모듈(Security Module)회로에 관한 것으로, 특히 RSA알고리즘을 사용하여 소규모의 마이크로 프로세서를 채용한 시스템의 보안을 유지하는 보안 모듈회로에 관한 것이다.
RSA알고리즘은 이미 잘 알려져 있는 바와 같이 정확한 암호수를 알지 못할 경우 데이터의 복호가 불가능하다는 특징을 갖고 있으며, 계산에 있어서 암호수가 크기 대문에 종래의 시스템, 특히 소규모 시스템에 있어서는 계산 시간이 많이 소요될 뿐만 아니라 계산에 필요한 메모리의 소모량이 엄청나게 요구되며, 이러한 계산으로 인해 장시간 동안 중앙처리장치가 독점되어 다른 작업을 할 수 없는 등의 문제점이 있었다.
따라서, 본 발명은 이러한 사정을 감안하여 안출한 것으로서, RSA알고리즘 계산에 메인모듈이 독점되는 것을 방지하기 위해 별도의 보안모듈을 부가하고 메인모듈과 보안 모듈간의 통신을 병렬로 실현하며 계산 알고리즘을 개선함으로써 통신시간을 실시간으로 처리하는 RSA알고리즘을 사용한 보안 모듈회로를 제공하는데 그 목적이 있다.
이러한 목적을 달성하기 위해 본 발명은 다른 RSA시스템으로부터 무작위 수를 수신하여 보안 응답을 계산하기 위한 신호를 제공하는 메인 모듈수단; 상기 메인 모듈수단으로부터의 신호를 수신하여 상기 무작위수 및 키이 데이터에 따라 보안 응답을 계산하여 메인 모듈로 전송하는 보안 모듈수단; 상기 메인 모듈수단과 보안 모듈수단간의 원활한 통신이 이루어지도록 하는 인터페이스수단; 상기 메인 모듈수단, 보안 모듈수단, 및 인터페이스수단의 리셋단자에 연결되어 상호동작을 초기화시키는 리셋수단; 및 상기 메인 모듈 수단의 제어하에 인터페이스 수단의 읽기 및 쓰기 동작을 선택하는 선택논리수단으로 구성하였다.
이하, 첨부된 도면에 의거하여 본 발명을 상세히 설명하면 다음과 같다.
제1도는 본 발명에 따른 보안 모듈회로의 일실시예 상세 구성회로를 도시한 것으로서, 도면에서 1은 메인 모듈부, 2는 보안 모듈부, 3은 인터페이스부, 4는 리셋부, 5는 읽기 및 쓰기 동작 선택용 논리부이고, C1 내지 C6는 캐패시터, D1은 다이오드, R1은 저항, X1은 발진기를 각각 나타낸 것이다.
메인 모듈부(1)는 다른 시스템으로부터의 무작위 수를 수신하여 보안 응답을 계산하기 위한 신호를 제공하는 것으로서 공지의 마이크로 프로세서를 이용하여 구성하는데, 본 발명의 실시예에서는 Z-80 마이크로 프로세서를 이용하여 구성하였다.
보안 모듈부(2)는 상기 메인 모듈부에계 RSA알고리즘의 계산에 대한 부담을 지우지 않도록 하여 시스템 전체의 순조로운 제어가 유지되도록 하는 것으로서, 본 발명의 실시예에서는 87C51 IC칩 및 발진기(X1)를 이용하여 구성하였다.
그리고, 상기 메인 모듈부(1) 및 보안 모듈부(2)간의 통신이 원활하게 이루어지도록 인터페이스부(3)를 구성하였는바, 본 발명의 실시예에서는 82C55 병렬 입/출력 버퍼 IC를 이용하여 구성하였으며, 상기 양 모듈부 사이의 통신속도를 고려하여 병렬(Parallel)통신을 수행하도록 연결 구성함이 바람직하다.
또한, 상기 메인 모듈부(1)의 제어하에 인터페이스부(3)의 읽기 및 쓰기 동작을 선택하는 논리부(5)를 메인 모듈부 및 인터페이스부 간에 연결 구성하고, 상기 메인 모듈부(1), 보안 모듈부(2), 및 인터페이스부(3)의 리셋단에 각각 그 출력단이 연결되도록 리셋 회로부(4)를 구성시키는 바, 본 발명의 실시예에서는 도면에 도시한 바와 같이 공지의 RC회로 및 슈미트 트리거 회로를 이용하여 구성하였다.
우선, 메인 모듈부(1)의 동작은 제2도에서와 같이 동작하게 된다. 즉, 다른 시스템으로부터 규정된 계산에 의해 발생되고 송신 되어온 무작위 수를 수신하게 되면 상기 메인 모듈부(1)가 이를 판단하는 바(스텝101), 수신 신호가 있으면 메인 모듈부(1)는 이를 마이크로 프로세서 내부에 구비된 메모리에 보관하고(스텝 102), 보안 응답을 계산히기 위해서 인터페이스부(3)를 통해 보안 모듈부(2)로 전송한다(스텝 103). 그리고 상기한 바와 같이 보안 모듈부(2)에 무작위 수를 전송한 후 일정시간(T1)내에 보안 모듈부(2)로부터 암호 데이터가 수사되는가를 검사한다(스텝 104). 만약에 소정시간(T1)내에 보안모듈부(2)로 부터 응답이 없을 경우에는 그의 리셋 단자(RESET)를 통해 보안 모듈부(2)와 인터페이스부(3)를 리셋시켜 이때까지의 과정을 무시하고 다시 무작위 수를 수신할때까지 기다려 상기 과정(스텝 101 내지 스텝 104)을 반복 수행하도록 하고, 보안 모듈부(2)로부터 응답이 있는 경우에는 수신된 보안 응답신호를 다른 시스템으로 전송한다.
이때, 다른 시스템에서는 응답값과 자신이 계산한 값을 비교하여 일치할 경우에만 상호 통신을 허락하게 된다(스텝 105).
한편, 보안 모듈부(2)에서는 제3도와 같이 동작하는데, 우선, 전술한 바와 같이 메인 모듈부(1)로부터의 무작위 수를 인터페이스부(3)를 통해 수신하면(스텝 106), 보안 모듈부내의 시스템 키이 데이타로 보안 응답값을 계산한 다음(스텝 107), 계산된 보안 응답값(암호 데이타)을 메인 모듈부(1)로 전송하고 난 후, 리셋신호(RESET)를 발생시켜 제1도에 도시한 시스템 회로를 리셋시키도록 한다.
보안 모듈부(2)내에서의 변형(Modulation: 이하 간단히 "MOD"라 한다) 계산 방법을 제4도를 참조하여 설명하면 다음과 같다.
제4도에 있어서, RD1과 RD2는 부작위 수를 표시하고, K1, K2, K3는 키이 데이타를 표시하며, MOD는 그 전위수를 후위수로 나눈 나머지값을 결과값으로 갖는 연산을 의미한다. 즉, "5 MOD 3"은 5/3의 나머지 2를 뜻하는 바(5 MOD 3=2), 기본 계산의 배경은 다음과 같다.
Figure kpo00001
통상적인 방법으로 An을 계산하려면 엄청난 메모리의 양과 처리시간을 필요하게 되지만,아래와 같이 변형 알고리즘을 사용하면 최소의 메모리와 실시간 계산이 가능하다.
즉, (RD1K1+K2RD2)MOD K3를 계산할 경우(스텝 201), 이것은 (RD1K1)MOD K3과 (K2RD2) MOD K3을 계산하여 최종적으로 이를 합산하면 된다(스텝 202, 203).
우선 n=21인 경우 상기 보안 모듈(2)은 K1=2n인가를 판단하는 바(스텝 204), 첫번째 MOD B×첫번째 MOD B) MOD B는 두번째 MOD가 된다(스텝 205). 이러한 방식으로 계산하게 되면 ((n-1)번째 MOD B×(n-1)번째 MOD B) MOD B는 AnMOD B와 같은 결과를 얻게 된다.
다시 말하면, K1=K1-21가 0이 아닐 경우(스텝 206), 2번째 MOD=(첫번째 MOD×첫번째 MOD) MOD K3로 두번째 MOD를 계산하고(스텝 207), 다시 K1=K1-22이 0이 아닐 경우(스텝 208)에는 이와 같은 방법으로 계속 수행하여, n번째 MOD까지 계산한다(스텝 209).
이때 원시적인 계산으로는 곱셈이 2의 ℓ 승번(21) 필요하며 이를 저장하기 위한 메모리의 길이는 무한대 까지 갈 수 있다.
그러나, 본 발명에 따르면 ℓ 번의 곱셈만 하면 되며 이를 저장하기 위한 메모리의 양을 2A 즉, A저장메모리의 2배를 넘지 않는다.
한편 스텝(204)에서 판별한 결과 n=21이 아닐 경우 프로그램은 다른 스텝(310)으로 진행되는 바 n= 211+12=...lm으로 표현될 수 있으므로 이를 다시 표현하면 A211×A212×…×A21m과 같으므로 계산식은
Figure kpo00002
와 같이 된다(스텝211).
이와 같이, 2개의 변형값을 도면의 그 다음 스텝(212, 213)과 같이 구하면 n번째의 변형을 구할 수 있게 된다(스텝 214).
Figure kpo00003
을 얻어지게 된다.
보안 모듈의 변형 계산중 나눗셈을 하여 변형값을 구하기 위한 플로우챠트가 제5도에 도시하였다.
즉 8비트나 16비트 마이크로 프로세서로 구축된 소규모 시스템에서는 뺄셈을 사용하여야 되며, 이를 위한 알고리즘이 제5도인 바, 이에 대해 설명한다.
즉, A의 바이트수가 B의 바이트 수보가 클 경우 이를 서치하여 (스텝310), B의 바이트를 A의 바이트와 같은 바이트로 간주하여 계산을 하지만 A의 최상위 바이트의 최상위 비트보다 B의 최상위 바이트의 최상위 비트가 1비트 적어야 한다. 다시 말하면 A의 최상위 비트가 B의 최상위 비트보다 큰가를 검사하여(스텝 302), A의 최상위 비트와 B의 최상위 비트 위치를 시프트시키기 위해 검사한다(스텝 303).
그리고 난후에 B를 A의 전비트 수-B의 전비트수 만큼 시프트시켜 A를 얻는다(스텝304, 305).
한편 이러한 과정을 반복할때 캐리가 발생하면, 이를 다시 캐리와 같이 A와B를 더하여 (스텝 306) 최종의 변형된 값 AMODB=A을 얻게 된다(스텝 307).
이와 같이 동작하는 본 발명은 RSA알고리즘을 사용하여 시스템에서 이를 실시간으로 처리할 수 있으며 보안 모듈로 인하여 메인 모듈에서의 처리 능력을 향상시킬 수 있으므로 메모리의 소모용량을 늘리지 않고 서도 계산이 가능한 효과를 지닌 것이다.

Claims (1)

  1. RSA알고리즘을 사용하여 소규모 마이크로 프로세서를 채용한 시스템의 보안을 유지하기 위한 보안 모듈회로에 있어서, 다른 RSA시스템으로부터 무작위 수를 수신하여 보안 응답을 계산하기 위한 신호를 제공하는 메인 모듈수단(1); 상기 메인 모듈수단으로부터의 신호를 수신하여 무작위 수 및 키이 데이터에 따라 변형 알고리즘을 이용해 보안 응답을 계산하여 메인 모듈로 전송하는 보안 모듈수단(2); 상기 메인 도듈수단(1)과 보안 모듈수단(2)간의 원활한 통신이 이루어지도록 하는 인터페이스 수단(3); 상기 메인 모듈수단, 보안 모듈수단, 및 인터페이스 수단의 리셋단자에 연결되어 상호동작을 초기화시키는 리셋수단(4); 및 상기 메인 모듈수단의 제어하에 인터페이스 수단의 읽기 및 쓰기 동작을 선택하는 선택논리수단(5)을 구비하고 있는 것을 특징으로 하는 RSA알고리즘을 사용한 보안 모듈회로.
KR1019890017900A 1989-11-30 1989-11-30 Rsa 알고리즘을 사용한 보안 모듈회로 KR920003275B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019890017900A KR920003275B1 (ko) 1989-11-30 1989-11-30 Rsa 알고리즘을 사용한 보안 모듈회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019890017900A KR920003275B1 (ko) 1989-11-30 1989-11-30 Rsa 알고리즘을 사용한 보안 모듈회로

Publications (2)

Publication Number Publication Date
KR910010322A KR910010322A (ko) 1991-06-29
KR920003275B1 true KR920003275B1 (ko) 1992-04-27

Family

ID=19292565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890017900A KR920003275B1 (ko) 1989-11-30 1989-11-30 Rsa 알고리즘을 사용한 보안 모듈회로

Country Status (1)

Country Link
KR (1) KR920003275B1 (ko)

Also Published As

Publication number Publication date
KR910010322A (ko) 1991-06-29

Similar Documents

Publication Publication Date Title
JP3467489B2 (ja) Rsa符号化装置
EP0933695B1 (en) IC card equipped with elliptic curve encryption processing facility
US5627894A (en) Random number generator
EP0917047A2 (en) Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
US5130991A (en) Method and apparatus for crc computation
CN108880562B (zh) 循环冗余校验电路及其方法、装置以及芯片、电子设备
KR100436814B1 (ko) 아이씨카드용 알에스에이 암호 연산 장치
CN111708513B (zh) 一种伪随机数种子生成方法及相关产品
CN101212292A (zh) 一种ecc\rsa加解密协处理器
JP2001505325A (ja) タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
US4532638A (en) Method and apparatus for the exponentiation of large binary numbers in a residue class modulo N, particularly for encoding and decoding digitally-represented messages
KR920003275B1 (ko) Rsa 알고리즘을 사용한 보안 모듈회로
US5644639A (en) Device for carrying out a division
US20040054703A1 (en) Method and device for generating a pseudo-random sequence using a discrete logarithm
CN114884517A (zh) 一种crc硬件计算系统及芯片
CN101361278B (zh) 奇偶校验位生成电路、计数电路以及计数方法
KR960011753A (ko) 스마트카드의 데이타 통신장치 및 방법
CN100458685C (zh) 产生随机数的装置及方法
CN113625992A (zh) 基于除法器的任务处理方法、装置、除法器及存储介质
JP4541485B2 (ja) べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体
US11902415B2 (en) Secure computing device, secure computing method, and program
WO2018088958A1 (en) System and method for performing cryptographic operations
JP2972190B1 (ja) Cpuの高速処理回路
JPS6034136B2 (ja) リ−ド・ソロモン符号復号方式
US6470369B1 (en) Euclid mutual division arithmetic circuit and processing circuit

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application
E902 Notification of reason for refusal
J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20000323

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee