KR20030083857A - 키 로밍 방법 및 그를 위한 시스템 - Google Patents

키 로밍 방법 및 그를 위한 시스템 Download PDF

Info

Publication number
KR20030083857A
KR20030083857A KR1020020022044A KR20020022044A KR20030083857A KR 20030083857 A KR20030083857 A KR 20030083857A KR 1020020022044 A KR1020020022044 A KR 1020020022044A KR 20020022044 A KR20020022044 A KR 20020022044A KR 20030083857 A KR20030083857 A KR 20030083857A
Authority
KR
South Korea
Prior art keywords
value
user
key
private key
values
Prior art date
Application number
KR1020020022044A
Other languages
English (en)
Other versions
KR100681005B1 (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 KR1020020022044A priority Critical patent/KR100681005B1/ko
Publication of KR20030083857A publication Critical patent/KR20030083857A/ko
Application granted granted Critical
Publication of KR100681005B1 publication Critical patent/KR100681005B1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Abstract

본 발명은 키 관리 기반 구조 시스템(key management infrastructure system)에 관한 것으로, 특히 공개키 기반 구조 시스템(PKI system)에서 사용자가 별도의 미디어나 장치 없이 장소에 구애 받지 않고 자신의 개인키(비밀키)를 안전하게 사용할 수 있도록 해주는 키 로밍 방법 및 그를 위한 시스템에 관한 것이다. 이를 위해 본 발명은 특정 사용자의 개인키를 위탁받는 단계와, 상기 사용자의 요구에 따라, 상기 위탁된 개인키를 임시로 복구시키는 단계와, 상기 사용자에 의한 키 사용이 완료된 후에 상기 복구된 개인키를 소멸시키는 단계로 이루어진다. 그에 따라 본 발명은 PKI와 연동하여 언제 어디서나 강력한 보안을 유지해주며 동시에 사용자에게 이동성을 보장해 주기 때문에, 인터넷 사용자들에게 보다 편리한 보안 환경을 제공해 준다.

Description

키 로밍 방법 및 그를 위한 시스템{key roaming method, and method for the same}
본 발명은 키 관리 기반 구조 시스템(key management infrastructure system)에 관한 것으로, 특히 공개키 기반 구조 시스템(PKI system)에서 사용자가 별도의 미디어나 장치 없이 장소에 구애 받지 않고 자신의 개인키(비밀키)를 안전하게 사용할 수 있도록 해주는 키 로밍 방법 및 그를 위한 시스템에 관한 것이다.
종래에는 여러 분야에서 인터넷 기술이 사용됨에 따라, 인터넷 보안 기술이 요구되었다.
이러한 요구에 따라, 1991년 비대칭 키 알고리즘(asymmetric key algorithm)인 RSA(Rivest, Shamir, Adelman) 공개키 암호 방식(public key cryptosystem)에 대한 표준안이 발표되었다.
상기한 비대칭 키 알고리즘을 이용한 채널 암호화는 다수의 사용자 간에 보안 세션(security session)을 성공적으로 생성시켜 민감한 데이터를 온라인으로 주고받을 수 있도록 지원한다.
또한 비대칭 키 알고리즘을 사용한 서비스의 확산을 위해서, 공개키를 소유한 자의 증명을 위한 인증서(certificate) 개념이 도입된다. 온라인 사용자에게 인증서를 발급함으로써, 온라인 사용자들은 서로에 대한 인증이 가능하며, 또한 상호간 암호화 채널 형성이 가능해진다.
또한 비대칭 키 알고리즘에 의한 전자서명(electronic signature)을 사용함으로써, 온라인 사용자들이 주고받는 문서의 안전성(integrity)을 보증한다.
공개키 기반 구조(Public Key Infrastructure ; 이하, PKI 라 약칭함)는 상기에서 언급된 온라인 채널 보안과 사용자 인증과 전자서명 등의 보안 서비스를 제공한다.
PKI의 방식들 중에서는, 인증기관(Certificate Authority)에서 발생하는 인증서를 기반으로 상호 인증을 제공하는 ITU-T의 X.509 방식이 표준규격안으로 사용되고 있다.
특히 PKI에서는 키 사용목적을 문서에 대한 전자서명과 암호화 등으로 규정하고 있다.
문서에 대한 전자서명과 암호화의 특성을 각각 살펴보면, 전자서명 문서의 경우에는 키 생성자(사용자)의 비밀키(Private key)가 소멸되거나 손상되었을 때에도 해당 전자서명 사용자의 인증서를 발급한 인증기관이나 그 인증서를 저장하는 디렉토리 서버(directory server)를 통해 전자서명 값을 검증할 수 있는 공개키(public key) 정보를 쉽게 얻어낼 수 있다. 그러나 암호화된 문서의 경우에는 해당 문서를 암호화한 사용자의 비밀키가 소멸되거나 손상된다면 그 문서 자체까지 손실된다는 문제가 있다.
이렇게 문서에 대한 전자서명과 암호화의 특성들 때문에 PKI 표준규격안에서는 전자서명과 문서 암호화에 대해 각기 다른 키 정보를 이용해 보안 작업을 수행하도록 권고하고 있으며, 또한 사용자는 사용목적에 부합되는 인증서를 발급받아 사용토록 권하고 있다.
이러한 PKI 기반의 서비스가 성공적으로 운용됨에 따라, 다양한 전자상거래 및 전자결재, 전자문서화 등의 비즈니스가 안정적으로 진행되고 있다.
그러나 점차 다양화되고 있는 비즈니스 환경에서 PKI로 인해 강화된 보안도는 유지하면서 사용자에게 이동성을 부여하거나 기존의 시스템에서의 경계선을 없애고 싶어하는 경향이 짙어지고 있다.
그에 따라 최근에는 날로 심해지는 사용자들의 이동성과 다양한 비즈니스 모델의 지원을 위해서, 반드시 PKI에서 사용되는 키에 대한 보다 진보된 관리 시스템이 도입되어야 한다는 요구가 있다. 특히 현재 우리나라 인터넷 뱅킹의 경우는 그 가입자수가 세계적인 규모인데도 불구하고 이동성 제안과 보안성 문제로 인해 사용상의 많은 불편을 겪어왔다.
물론 이동성의 제약을 해결하기 위해 일부 업체들은 스마트카드(smartcard)나 USB키와 같은 부가적인 하드웨어를 사용하여 인증서와 키를 운반하는 방법을 사용하고 있다. 그러나 이는 사용자가 이동할 때마다 항상 그 부가 하드웨어를 지니고 다녀야한다는 불편함 때문에 이동성을 보장해 주는 완벽한 솔루션이 될 수 없다. 또한 널리 확산되어 있는 피씨(PC)방이나 외국에서 그 부가 하드웨어를 사용할 경우에, 그 부가 하드웨어를 인식할 장비가 마련되어 있지 않으면 사용자가 자신의 인증서와 키를 사용할 수 없다는 한계를 안고 있었다.
본 발명은 이와 같은 종래 기술의 문제점을 해결하기 위하여 안출한 것으로, 별도의 부가적인 하드웨어를 사용하지 않고도 사용자가 원격지에서 공개키 기반 구조(PKI)의 강화된 보안도로 자신의 개인키(비밀키)를 안전하게 사용할 수 있도록 해주는데 적당한 키 로밍 방법 및 그를 위한 시스템을 제공하는데 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 키 로밍 방법의 특징은, 특정 사용자의 개인키를 위탁받는 단계와, 상기 사용자의 요구에 따라, 상기 위탁된 개인키를 임시로 복구시키는 단계와, 상기 사용자에 의한 키 사용이 완료된 후에 상기 복구된 개인키를 소멸시키는 단계로 이루어진다.
바람직하게 상기 키 위탁 단계는, 상기 사용자의 등록된 암호로부터 N개의 Ri(i=1~N) 값을 생성시키고, 상기 개인키의 암호화를 위해 임시로 생성시킨 세션키로부터 N개의 Si(i=1~N) 값을 생성시키고, 상기 생성된 Ri(i=1~N) 값을 N+M개의 Kj(j=1~(N+M), M>0) 값으로 파생시키고, 상기 파생된 KN+M값과 상기 생성된 SN값을 배타적 논리합으로 상관(correlation) 연산시키고, 상기 상관 값으로 상기 사용자의 개인키를 암호화하여 별도의 로밍 크리덴셜 서버에 등록시킨다.
또한 상기 사용자가 등록된 암호를 사용하여 자신의 개인키의 복구를 요구함에 따라, 상기 암호로부터 N개의 Ri(i=1~N) 값을 복구시켜 사용자 단말로 전달하고, 상기 사용자 단말에서, 상기 복구된 Ri(i=1~N) 값을 N+M개의 Kj(j=1~(N+M), M>0) 값으로 파생시키고, N개의 로밍 기밀 서버(RSS)들이, 상기 파생된 K1~N값들을 제공받아 그 K1~N값들과 쌍이되는 S1~N값들을 상기 사용자 단말로 전달하고, 상기 사용자 단말에서, 상기 전달받은 N개의 Si(i=1~N) 값으로 상기 세션키를 복구하고, 상기 사용자 단말에서, 상기 복구된 세션키와 상기 파생된 KN+M값을 배타적 논리합으로 상관(correlation) 연산시키고, 상기 사용자 단말에서, 상기 상관 값으로 상기 암호화된 개인키를 복호화시킨다.
상기한 목적을 달성하기 위한 본 발명에 따른 키 로밍 시스템의 특징은, 특정 사용자의 단말과, 상기 사용자의 개인키를 암호화하고, 그 개인키의 암호화에사용된 암호화 단서들을 분리 등록하는 로밍 기밀 서버들과, 상기 로밍 기밀 서버들에서 암호화된 개인키를 보관하고, 가상스마트카드를 상기 단말로 자동 설치시킨 후 상기 가상스마트카드로 상기 암호화 개인키를 제공하는 로밍 크리덴셜 서버로 구성된다.
바람직하게 상기 사용자 단말에 자동 설치된 가상스마트카드는 상기 사용자의 인증이 요구되는 특정 서비스 종료 후 상기 사용자 단말에서 자동 소멸된다.
도 1은 본 발명에 따른 키 로밍을 위한 시스템 구성을 나타낸 도면.
도 2는 본 발명에 따른 키 로밍 절차를 나타낸 상태흐름도.
도 3은 본 발명에 따른 키 위탁 절차를 나타낸 도면.
도 4는 본 발명에서 사용되는 임의의 Ri의 생성 절차를 나타낸 도면.
도 5는 본 발명에 따른 키 복구 절차를 나타낸 도면.
도 6은 본 발명에 따른 키 위탁 및 키 복구의 일 예를 나타낸 도면.
*도면의 주요부분에 대한 부호설명*
10 : 로밍 크리덴셜 서버(RCS) 21~23 : 로밍 기밀 서버(RSS)
이하, 본 발명의 바람직한 일 실시 예를 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 1은 본 발명에 따른 키 로밍을 위한 시스템 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 시스템은 로밍 크리덴셜 서버(roaming credential server ; 이하, RCS라 약칭함)(10)와 N개의 로밍 기밀 서버(roaming secret server ; 이하, RSS라 약칭함)(21~23)로 구성된다. 그 밖에 본 발명의 시스템과 상호 작용하는 사용자 단말들(user terminals)(31~32)과 PKI 서비스센터(40)와 PKI 비즈니스센터(50)가 추가로 구성된다. 여기서 PKI 서비스센터(40)는 하나의 인증기관서버이다. 그러나 이들 추가 구성 요소들은 본 발명의 기술 영역에 속하지 않으며, 일반적으로 이미 알려진 기능들을 수행한다.
그리고 본 발명의 시스템은 가상스마트카드(VSC : Virtual Smart Card)가 더 구비된다. 그러나 이 가상스마트카드(이하, VSC 라 약칭함)는 RCS(10)가 제공하여 사용자 단말들(31~32)에 자동으로 설치되는 컨트롤(control)로써 하나의 소프트웨어 개념이다.
본 발명의 시스템에서 가장 중요한 점은, 사용자가 위치한 장소에 상관없이 그 사용자가 사용하는 컴퓨터가 사용자 단말들(31~32)이며, 사용자가 그 사용자 단말들(31~32)을 통해 RCS(10)에 접속하면 자동으로 설치되는 VSC를 통해 자신의 신원을 밝히고 그에 따라 암호화된 개인키(비밀키)를 제공받아 PKI 비즈니스센터(50)의 서비스를 처리한다. 여기서 PKI 비즈니스센터(50)는 인터넷 뱅킹이나 인증이 요구되는 전자상거래를 서비스하는 곳이다.
이하 본 발명의 시스템에 대한 동작을 설명한다.
RCS(roaming credential server)(10)는 암호화된 개인키(비밀키)를 저장한다. 또한 그 개인키에 대응되는 인증서를 저장한다. 여기서 개인키(비밀키)와 인증서는 PKI 서비스센터(40)가 발급한 것이다. 별도로 본 발명에서는 PKI 서비스센터(40)가 사용자의 인증서만을 발급하고, 사용자가 그 발급된 인증서를 사용하여 개인키(비밀키)의 생성을 요청하면 RCS(10)가 그 사용자의 개인키(비밀키)를 생성하여 해당 인증서와 함께 저장하는 구조도 지원한다. 이는 시스템 구현상의 문제이다.
또한 RCS(10)는 사용자가 사용자 단말들(31~32)을 통해 접속하면, 자동으로 설치되는 VSC를 그 사용자 단말들(31~32)로 제공한다.
특히 RCS(10)는 암호화된 개인키를 저장함과 동시에 그 암호화 개인키를 요청한 사용자에 대해 인증을 실시하기 위한 단서를 함께 저장한다. 즉 키를 복구하고자 할 때 사용자가 그 단서를 사용하여 암호화 개인키를 요청하면, RCS(10)는 그단서에 대한 일치 여부에 따라 암호화 개인키의 제공 여부를 판단한다.
다음 RSS(roaming secret server)(21~23)는 사용자 등록 및 인증을 실시하는 서버이며, 사용자 등록 및 인증을 통해 개인키 암호화 정보를 저장한다. 특히 RSS(21~23)와 사용자 단말들(31~32)간에는 SSL(secure socket layer) 보안채널을 사용한다.
특히 본 발명에서는 RSS(21~23)와 사용자 단말들(31~32)에 비대칭형 암호화(RSA) 기반의 암호강화프로토콜(PHP : password hardening protocol)을 적용한다. 이로써 N-1 개의 서버 공격에도 개인키의 안전성을 보장한다.
RSS(21~23)는 사용자의 식별자(ID)와 비밀번호를 등록받는다. 이때 사용자는 식별자(ID)와 비밀번호를 RSS(21~23)에 등록하면서 자신의 개인키를 전달한다.
이후에 RSS(21~23)는 그 등록된 식별자(ID)와 비밀번호에 대해 암호강화프로토콜(PHP)을 실시한다. RSS(21~23)는 암호강화프로토콜(PHP)을 통해 전달받은 개인키를 암호화하여 RCS(10)에 전달하고, 또한 RSS(21~23)는 그 개인키 암호화에 사용된 암호화 단서들을 하나씩 보관함으로써, 사용자의 개인키를 위탁받는다. 그에 따른 상세한 절차는 도 2 및 도 3을 통해 설명된다.
그리고 RSS(21~23)는 키 복구를 위해 사용자에 대한 인증을 실시한다. 이 때 인증에 성공되면, RSS(21~23)는 암호강화프로토콜(PHP)을 통해 등록된 비밀번호에 대응되는 암호화 단서들을 사용자 단말(31~32)로 전달한다.
그러면 사용자 단말(31~32)에서는 암호강화프로토콜(PHP)을 통해, RCS(10)로부터 전달받은 암호화 개인키를 복호화한다.
다음은 본 발명에 따른 키 로밍 절차를 설명한다. 그 키 로밍 절차는 키 위탁 과정과 키 복구 과정으로 나누어 설명한다.
도 2는 본 발명에 따른 키 로밍 절차를 나타낸 상태흐름도이다.
도 2를 참조하여 본 발명의 키 로밍 절차를 이하 설명한다. 이하에서는 초기 사용자가 키를 위탁하는 제1 사용자 단말과, 이후에 키를 복구하는 제2 사용자 단말이 적용되는데, 이는 사용자의 이동에 따른 본 발명의 절차를 설명하기 위한 것이다.
일단 사용자가 제1 사용자 단말에서 RCS로 접속하면(S1), RCS는 그 제1 사용자 단말로 VSC를 제공한다(S2). 그러면 제1 사용자 단말에는 VSC가 자동 설치된다(S3).
이후 PKI 서비스센터(소위 인증기관서버)는 제1 사용자 단말로부터 서명용 키 쌍(공개키 쌍)의 생성과 인증서 발급 요청이 있으면(S4), 해당 사용자의 서명용 키 쌍을 생성시킨다(S5). 그리고 그 생성된 서명용 키 쌍으로 제작된 인증서를 제1 사용자 단말로 전달한다(S6).
그러면 사용자는 제1 사용자 단말에 설치된 VSC를 통해 식별자(ID)와 비밀번호를 RSS들에 등록한다(S7). 이때 사용자는 식별자(ID)와 비밀번호를 RSS들에 등록함으로써, 자신의 개인키를 RSS에 전달하게 된다.
RSS는 그 등록된 식별자(ID)와 비밀번호에 대해 암호강화프로토콜(PHP)을 실시한다(S8). 그 암호강화프로토콜(PHP)의 절차는 도 3을 참조한다.
RSS는 암호강화프로토콜(PHP)을 통해, 등록된 비밀번호로부터 N개의 Ri(여기서 i는 1~N)값을 생성한다(S20). 그 Ri는 도 4에 도시된 과정을 통해 생성된다.
도 4를 참조하여 Ri의 생성 절차를 설명한다. 먼저 사용자가 제1 사용자 단말에 설치된 VSC를 통해 식별자(ID)와 비밀번호(P)를 RSS에 등록하면, RSS는 등록된 식별자(ID)를 사용하여 공개키(PUK : Public Key)와 공개키 인증서(PUC : Public key certificate)를 생성한다. 이후 RSS는 생성된 공개키 인증서(PUC)로 임의의 값인 n 값과 e 값을 생성한다. 그리고 RSS는 생성된 공개키(PUK)로 임의의 값 d 값을 생성한다.
이후에 등록된 비밀번호(P)와 n 값과 e 값을 사용하고, 미리 정해진 k 값을 더 사용하여 다음 식 1과 같이 r 값을 산출한다.
r = f(P) * ke mod n
다시 식 1에 의해 산출된 r 값과, 상기에서 생성된 n 값과 d 값을 사용하여 다음 식 2와 같이 s 값을 산출한다. 상기한 식 1에서 f(P)는 비밀번호(P)를 임의의 함수로 암호화한 값이다.
s = rdmod n
그 다음 식 2에 의해 산출된 s값과 상기에서 미리 정해진 k 값을 사용하여다음 식 3과 같이 Ri가 생성된다.
R = s/k mod n
상기와 같은 절차를 통해 생성된 Ri를 키 파생함수(KDF : Key derivation function)를 사용하여 새로운 Kj(여기서 j는 1~N+M, M>0)을 생성한다(S21). 그 생성된 Kj중에서 N개 값은 N개의 RSS들에 하나씩 등록된다(S22). 보다 바람직하게 생성된 Ri를 키 파생함수(Key derivation function)를 사용하여 새로운 Kj(여기서 j는 1~N+2)을 생성한다.
다시 RSS는 개인키(비밀키)의 암호화를 위해 생성된 임시의 세션키를 비밀분산알고리즘(secret sharing algorithm)에 적용시켜 N개의 Si(여기서 i는 1~N)을 파생시킨다(S23). 그 생성된 SjN개 값은 N개의 RSS들에 하나씩 등록된다(S24).
상기에서 생성된 Kj중에서 N개 값과 SjN개 값은 쌍을 이루어 N개의 RSS들에 하나씩 등록된다.
또한 RSS는 KN+M값과 SN값을 배타적 논리합(XOR)의 논리연산을 통해 상관(Correlation) 연산하고(S25), 그 상관 값으로 개인키(비밀키)를 암호화한다(S26).
이후에 그 암호화된 개인키 값은 KN+(M-1)값과 함께 RCS에 등록된다(S27).
상기한 암호강화프로토콜(PHP) 절차를 통해 사용자에 대한 키 위탁이 완료된다.
이후에 사용자가 자신의 개인키(비밀키) 복구를 위해 원격지에 위치한 제2 사용자 단말에서 RCS로 접속하면(S9), RCS는 그 제2 사용자 단말로 VSC를 제공한다(S10). 그러면 제2 사용자 단말에는 VSC가 자동 설치된다(S11).
그 사용자가 제2 사용자 단말에 설치된 VSC를 통해 식별자(ID)와 비밀번호로 로그인하면(S12), RSS들은 사용자에 대한 인증을 실시한다(S13).
RSS에서 인증이 성공되면, 그 사용자에 대한 키 복구 절차가 실시된다(S14). 그 키 복구 절차는 도 5를 참조한다.
먼저 각 RSS들은 암호강화프로토콜(PHP)을 통해 등록된 비밀번호로부터 N개의 Ri(여기서 i는 1~N)값을 그 제2 사용자 단말로 전달한다(S30).
제2 사용자 단말에서는 전달받은 Ri값을 키 파생함수(Key derivation function)에 적용시켜 Kj(여기서 j는 1~N+M, M 0)을 생성시킨다(S31).
그에 따라 제2 사용자 단말은 생성된 Kj값들 중에서 K1부터 KN까지의 값들을각 RSS들에 전달한다(S32). 그러면 각 RSS들은 전달받은 Kj값이 자신에게 등록된 값과 동일한지 확인하고(S33), 동일하면 자신에 등록된 Kj값과 쌍을 이루는 Si값을 제2 사용자 단말로 전달한다(S34). 또한 제2 사용자 단말은 상기 생성된 Kj값들 중에서 KN+(M-1)값으로 RCS에 등록되어 있던 암호화된 개인키를 요청한다(S35). 그러면 RCS는 KN+(M-1)값에 대응되어 보관된 암호화 개인키를 제2 사용자 단말로 전달한다(S36).
다시 제2 사용자 단말에서는 전달받은 Si값을 비밀분산알고리즘(secret sharing algorithm)에 역으로 적용시켜 개인키(비밀키)의 암호화에 사용된 임시의 세션키를 복원시킨다(S37).
제2 사용자 단말에서는 또한 그 복원된 세션키과 Ri값으로부터 파생된 KN+M값을 배타적 논리합(XOR)의 논리연산을 통해 상관(Correlation) 연산한다(S38).
결국 제2 사용자 단말에서는 복원 세션키와 KN+M값의 상관 값으로 미리 RCS로부터 전달받은 암호화 개인키가 복호화된다(S39).
그 복호된 개인키를 사용하여, 사용자는 인증이 요구되는 인터넷 뱅킹이나 전자상거래와 같은 PKI 비즈니스센터의 서비스를 처리한다(S15).
그리고 그 서비스 처리가 종료되면(S16), 제2 사용자 단말에 설치되었던 VSC는 자동 소멸된다(S17). 즉 본 발명에서는 위탁된 사용자의 개인키가 인증이 필요한 서비스를 위해 임시로 복호화된다.
다음은 본 발명에 따른 키 위탁 및 키 복구의 일 예를 도 6을 참조하여 설명한다. 여기서 다수 개로 구현이 가능한 RSS는 RSS-1, RSS-2, RSS-3로 구성된다.
RSS는 암호강화프로토콜(PHP)을 통해, 제1 사용자 단말로부터 등록된 비밀번호를 이용하여 3개의 R(R1,R2,R3) 값을 생성한다(S50). 그리고 생성된 R1/R2/R3를 키파생함수(Key derivation function)에 적용시켜 새로운 5개의 K1/K2/K3/K4/K5를 생성한다(S51). 그 생성된 K1/K2/K3/K4/K5중에서 K1/K2/K3값은 RSS-1, RSS-2, RSS-3에 하나씩 등록된다(S52).
다시 RSS는 개인키(비밀키)의 암호화를 위해 생성된 임시의 세션키를 비밀분산알고리즘(secret sharing algorithm)에 적용시켜 3개의 S1/S2/S3을 파생시킨다(S53). 그 생성된 S1/S2/S3값은 K1/K2/K3값과 쌍을 이루어 3개의 RSS-1, RSS-2, RSS-3에 하나씩 등록된다(S54).
또한 RSS는 K5값과 S3값을 배타적 논리합(XOR)의 논리연산을 통해 상관(Correlation) 연산하고(S55), 그 상관 값으로 개인키(비밀키)를 암호화한다 (S56).
이후에 그 암호화된 개인키 값은 K4값과 함께 RCS에 등록된다(S57).
이로써 사용자에 대한 키 위탁이 완료된다.
다음 키 복구 절차가 실시되면, 먼저 각 RSS들은 암호강화프로토콜(PHP)을 통해 등록된 비밀번호로부터 3개의 R1/R2/R3를 그 사용자 단말로 전달한다(S58).
사용자 단말에서는 전달받은 R1/R2/R3값을 키 파생함수(Key derivation function)에 적용시켜 5개의 K1/K2/K3/K4/K5를 생성시킨다(S59).
그에 따라 사용자 단말은 생성된 5개의 K1/K2/K3/K4/K5값들 중에서 K1/K2/K3값들을 각 RSS-1, RSS-2, RSS-3에 하나씩 전달한다(S60). 그러면 각 RSS들은 전달받은 K 값이 자신에게 등록된 값과 동일한지 확인하고(S61), 동일하면 자신에 등록된 K 값과 쌍을 이루는 S 값을 사용자 단말로 전달한다(S62). 또한 사용자 단말은 상기 생성된 K4값으로 RCS에 등록되어 있던 암호화된 개인키를 요청한다(S63). 그러면 RCS는 K4값에 대응되어 보관된 암호화 개인키를 사용자 단말로 전달한다(S64).
다시 사용자 단말에서는 각 RSS로부터 전달받은 S1/S2/S3값을 비밀분산알고리즘(secret sharing algorithm)에 역으로 적용시켜 개인키(비밀키)의 암호화에 사용된 임시의 세션키를 복원시킨다(S65).
사용자 단말에서는 또한 그 복원된 세션키과 R값으로부터 파생된 K5값을 배타적 논리합(XOR)의 논리연산을 통해 상관(Correlation) 연산한다(S66).
결국 사용자 단말에서는 복원 세션키와 K5값의 상관 값으로 미리 RCS로부터 전달받은 암호화 개인키가 복호화된다(S67).
이상에서 설명된 본 발명은 다음의 효과가 있다.
첫 째, PKI와 연동하여 언제 어디서나 강력한 보안을 유지해주며 동시에 사용자에게 이동성을 보장해 주기 때문에, 인터넷 사용자들에게 보다 편리한 보안 환경을 제공한다.
둘 째, 보다 강화된 보안 요소들을 통해 사용자가 직접 자신의 키를 관리하는 것(별도의 부가 하드웨어를 지니고 이동하는 것)보다 안전하게 보관해주다.
세 째, 가정이나 사무실 또는 여러 사람들이 이용하는 피씨(PC)방에서도 인터넷 뱅킹과 같이 보다 높은 보안이 요구되는 서비스를 이용할 수 있다. 즉 본 발명에서는 사용자의 인증서와 키를 서버에 위탁해 올려놓은 상태에서, 사용자가 그 서버에 접속한 후 자신의 식별자(ID)와 비밀번호를 사용하여 언제 어디서나 자신의 인증서와 키를 되돌려 받을 수 있기 때문에, 인터넷 뱅킹이과 같이 인증을 요구하는 시스템에 접속하고 그에 이어 받아온 인증서와 키를 사용하여 원하는 업무를 처리할 수 있게 된다. 이 때 사용자에게 전송된 개인키는 인터넷 뱅킹이나 전자서명과 같은 작업을 위해 그 사용자의 단말(또는 컴퓨터)에서 임시로 복호화되고 또한 해당사용자의 작업이 끝나면 자동으로 소멸되기 때문에, 원격지에서 사용하더라도 타인에게 유출될 염려가 전혀 없다.
네 째, 본 발명은 키 로밍(key roaming)을 지원하는데 있어서, 기본적으로 사용자의 암호화된 개인키를 위탁 보관하고 그 개인키의 암호화에 사용된 임시 세션키를 복수 개의 조각들로 분리하여 관리하기 때문에, 불법사용자가 추측에 의해 개인키를 불법 획득하는 것을 미연에 방지할 수 있다.

Claims (9)

  1. 특정 사용자의 개인키를 위탁받는 제1 단계와;
    상기 사용자의 요구에 따라, 상기 위탁된 개인키를 임시로 복구시키는 제2 단계와;
    상기 사용자에 의한 키 사용이 완료된 후에 상기 복구된 개인키를 소멸시키는 제3 단계로 이루어지는 것을 특징으로 하는 키 로밍 방법.
  2. 제 1 항에 있어서, 상기 제1 단계는,
    상기 사용자의 등록된 암호로부터 N개의 Ri(i=1~N) 값을 생성시키고,
    상기 개인키의 암호화를 위해 임시로 생성시킨 세션키로부터 N개의 Si(i=1~N) 값을 생성시키고,
    상기 생성된 Ri(i=1~N) 값을 N+M개의 Kj(j=1~(N+M), M>0) 값으로 파생시키고,
    상기 파생된 KN+M값과 상기 생성된 SN값을 배타적 논리합으로 상관(correlation) 연산시키고,
    상기 상관 값으로 상기 사용자의 개인키를 암호화하여 별도의 로밍 크리덴셜 서버에 등록시키는 것을 특징으로 하는 키 위탁 방법.
  3. 제 2 항에 있어서, 상기 Ri(i=1~N) 값은,
    상기 사용자의 등록된 식별자(ID)와 비밀번호(P)를 사용하여 공개키(PUK)와 공개키 인증서(PUC)를 생성하고,
    상기 생성된 공개키 인증서(PUC)로 임의의 값인 n 값과 e 값을 생성하고, 상기 생성된 공개키(PUK)로 임의의 값 d 값을 생성하고,
    미리 정해진 임의의 k 값에 대한 ke과 임의의 함수로 등록된 비밀번호(P)암호화한 f(P)를 곱한 값(f(P)*ke)에 대해, 상기 n 값으로 1차 mod 연산(f(P) * kemod n)하고,
    상기 1차 mod 연산의 결과 값(r)의 d 승수 값(rd)에 대해, 상기 n 값으로 2차 mod 연산(rdmod n)하고,
    상기 2차 mod 연산의 결과 값(s)을 상기 미리 정해진 임의의 k 값으로 나눈 값에 대해, 상기 n 값으로 3차 mod 연산(s/k mod n)하여 생성되는 것을 특징으로 하는 키 위탁 방법.
  4. 제 2 항에 있어서, 상기 생성된 S1~N값들과 상기 파생된 K1~N값들을 각각 쌍으로 하여 N개의 로밍 기밀 서버(RSS)들에 분리 등록시키는 것을 특징으로 하는 키 위탁 방법.
  5. 제 2 항에 있어서, 상기 암호화된 개인키를 상기 파생된 KN+M-X(X≥1) 값과 함께 상기 로밍 크리덴셜 서버에 등록시키는 것을 특징으로 하는 키 위탁 방법.
  6. 제 2 항에 있어서,
    상기 사용자가 등록된 암호를 사용하여 자신의 개인키의 복구를 요구함에 따라, 상기 암호로부터 N개의 Ri(i=1~N) 값을 복구시켜 사용자 단말로 전달하고,
    상기 사용자 단말에서, 상기 복구된 Ri(i=1~N) 값을 N+M개의 Kj(j=1~(N+M), M>0) 값으로 파생시키고,
    N개의 로밍 기밀 서버(RSS)들이, 상기 파생된 K1~N값들을 제공받아 그 K1~N값들과 쌍이되는 S1~N값들을 상기 사용자 단말로 전달하고,
    상기 사용자 단말에서, 상기 전달받은 N개의 Si(i=1~N) 값으로 상기 세션키를 복구하고,
    상기 사용자 단말에서, 상기 복구된 세션키와 상기 파생된 KN+M값을 배타적 논리합으로 상관(correlation) 연산시키고,
    상기 사용자 단말에서, 상기 상관 값으로 상기 암호화된 개인키를 복호화시키는 것을 특징으로 하는 키 복구 방법.
  7. 제 6 항에 있어서, 상기 암호화된 개인키는 상기 파생된 KN+M-X(X≥1) 값을 사용하여 상기 로밍 크리덴셜 서버로부터 전달받는 것을 특징으로 하는 키 복구 방법.
  8. 특정 사용자의 단말과;
    상기 사용자의 개인키를 암호화하고, 그 개인키의 암호화에 사용된 암호화 단서들을 분리 등록하는 로밍 기밀 서버들과;
    상기 로밍 기밀 서버들에서 암호화된 개인키를 보관하고, 가상스마트카드를 상기 단말로 자동 설치시킨 후 상기 가상스마트카드로 상기 암호화 개인키를 제공하는 로밍 크리덴셜 서버로 구성되는 것을 특징으로 하는 키 로밍 시스템.
  9. 제 1 항에 있어서, 상기 사용자 단말에 자동 설치된 가상스마트카드는 상기 사용자의 인증이 요구되는 특정 서비스 종료 후 상기 사용자 단말에서 자동 소멸되는 것을 특징으로 하는 키 로밍 시스템.
KR1020020022044A 2002-04-22 2002-04-22 키 로밍 방법 및 그를 위한 시스템 KR100681005B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020022044A KR100681005B1 (ko) 2002-04-22 2002-04-22 키 로밍 방법 및 그를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020022044A KR100681005B1 (ko) 2002-04-22 2002-04-22 키 로밍 방법 및 그를 위한 시스템

Publications (2)

Publication Number Publication Date
KR20030083857A true KR20030083857A (ko) 2003-11-01
KR100681005B1 KR100681005B1 (ko) 2007-02-08

Family

ID=32380017

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020022044A KR100681005B1 (ko) 2002-04-22 2002-04-22 키 로밍 방법 및 그를 위한 시스템

Country Status (1)

Country Link
KR (1) KR100681005B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100458255B1 (ko) * 2002-07-26 2004-11-26 학교법인 성균관대학 프록시서버를 이용한 키 분배 방법
KR100588302B1 (ko) * 2004-10-15 2006-06-09 학교법인 성균관대학 모바일 환경에서의 그룹통신을 위한 세션키 생성 방법
KR100764882B1 (ko) * 2006-09-29 2007-10-09 한국과학기술원 저성능 보안 단말기의 공개키 기반 싱글 사인온 인증 장치및 방법
KR101130415B1 (ko) * 2004-04-02 2012-03-27 마이크로소프트 코포레이션 비밀 데이터의 노출 없이 통신 네트워크를 통해 패스워드 보호된 비밀 데이터를 복구하는 방법 및 시스템
KR101458034B1 (ko) * 2012-11-30 2014-11-12 한국과학기술정보연구원 암호화 메세지 전송 방법, 암호화 메세지 전송 장치, 암호화 메세지를 전송하는 암호화 모듈 프로그램을 저장하는 저장매체

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100395161B1 (ko) * 1999-07-19 2003-08-19 한국전자통신연구원 이동통신망에서의 스마트 카드를 이용한 인증 방법 및 글로벌로밍 서비스 방법
KR100330418B1 (ko) * 2000-01-28 2002-03-27 오길록 이동통신 환경에서의 가입자 인증 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100458255B1 (ko) * 2002-07-26 2004-11-26 학교법인 성균관대학 프록시서버를 이용한 키 분배 방법
KR101130415B1 (ko) * 2004-04-02 2012-03-27 마이크로소프트 코포레이션 비밀 데이터의 노출 없이 통신 네트워크를 통해 패스워드 보호된 비밀 데이터를 복구하는 방법 및 시스템
KR100588302B1 (ko) * 2004-10-15 2006-06-09 학교법인 성균관대학 모바일 환경에서의 그룹통신을 위한 세션키 생성 방법
KR100764882B1 (ko) * 2006-09-29 2007-10-09 한국과학기술원 저성능 보안 단말기의 공개키 기반 싱글 사인온 인증 장치및 방법
KR101458034B1 (ko) * 2012-11-30 2014-11-12 한국과학기술정보연구원 암호화 메세지 전송 방법, 암호화 메세지 전송 장치, 암호화 메세지를 전송하는 암호화 모듈 프로그램을 저장하는 저장매체

Also Published As

Publication number Publication date
KR100681005B1 (ko) 2007-02-08

Similar Documents

Publication Publication Date Title
CN107810617B (zh) 机密认证和供应
US8724819B2 (en) Credential provisioning
US7689828B2 (en) System and method for implementing digital signature using one time private keys
KR100827650B1 (ko) 그룹에 참여하도록 초대된 잠재적 회원을 인증하는 방법
EP1556992B1 (en) Secure implementation and utilization of device-specific security data
CN101212293B (zh) 一种身份认证方法及系统
US8171527B2 (en) Method and apparatus for securing unlock password generation and distribution
US20100195824A1 (en) Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure
CN111159684B (zh) 一种基于浏览器的安全防护系统和方法
EP1501238B1 (en) Method and system for key distribution comprising a step of authentication and a step of key distribution using a KEK (key encryption key)
EP2553894A1 (en) Certificate authority
US20120124378A1 (en) Method for personal identity authentication utilizing a personal cryptographic device
CN112822021B (zh) 一种密钥管理方法和相关装置
KR100984275B1 (ko) 안전하지 않은 통신 채널에서 비인증서 공개키를 사용한 보안키 생성 방법
JP2007104118A (ja) 秘密情報の保護方法及び通信装置
KR100681005B1 (ko) 키 로밍 방법 및 그를 위한 시스템
KR100970552B1 (ko) 비인증서 공개키를 사용하는 보안키 생성 방법
KR100764882B1 (ko) 저성능 보안 단말기의 공개키 기반 싱글 사인온 인증 장치및 방법
JP2014022920A (ja) 電子署名システム、電子署名方法および電子署名プログラム
KR19990038925A (ko) 분산 환경에서 안전한 양방향 인증 방법
CN115801232A (zh) 一种私钥保护方法、装置、设备及存储介质
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
KR20210020851A (ko) 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법 및 장치
CN113886781B (zh) 基于区块链的多重认证加密方法、系统、电子设备及介质
WO2023043793A1 (en) System and method of creating symmetric keys using elliptic curve cryptography

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20130103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140121

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160129

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170202

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 13