[go: up one dir, main page]

KR20140071775A - Cryptography key management system and method thereof - Google Patents

Cryptography key management system and method thereof Download PDF

Info

Publication number
KR20140071775A
KR20140071775A KR1020120139744A KR20120139744A KR20140071775A KR 20140071775 A KR20140071775 A KR 20140071775A KR 1020120139744 A KR1020120139744 A KR 1020120139744A KR 20120139744 A KR20120139744 A KR 20120139744A KR 20140071775 A KR20140071775 A KR 20140071775A
Authority
KR
South Korea
Prior art keywords
key
secret key
user terminal
issuing server
message
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
KR1020120139744A
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 KR1020120139744A priority Critical patent/KR20140071775A/en
Publication of KR20140071775A publication Critical patent/KR20140071775A/en
Withdrawn legal-status Critical Current

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에서는 DRM, 게임, 인터넷 뱅킹, 온라인 쇼핑 등과 같이 서버에 의한 단말의 신뢰성을 필요로 하는 플랫폼 운용 환경에서, 사용자 단말에서 사용되는 암호키에 대해 소프트웨어 기반의 안전한 키 관리를 위하여 사용자 단말의 비밀키를 개별적인 비밀키 조각으로 분리하여 관리하도록 함으로써 단말 사용자 또는 내부 공격자에 의한 악의적인 사용을 방지시킬 수 있다. 또한 비밀키 노출이 아닌 보안 정책 및 기타 사유로 인하여 비밀키를 업데이트할 때 공개키 인증서를 폐기하지 않고도 비밀키 모듈만 별도로 업데이트할 수 있다.In the present invention, in a platform operating environment requiring reliability of a terminal by a server such as DRM, game, internet banking, online shopping, etc., a secret key of a user terminal By managing the keys by separating them into individual secret key fragments, malicious use by the terminal user or internal attacker can be prevented. Also, when updating the secret key due to a security policy and other reasons other than secret key exposures, the secret key module can be updated separately without revoking the public key certificate.

Description

암호키 관리 시스템 및 방법{CRYPTOGRAPHY KEY MANAGEMENT SYSTEM AND METHOD THEREOF}TECHNICAL FIELD [0001] The present invention relates to an encryption key management system,

본 발명은 암호키의 관리에 관한 것으로, 특히 DRM(digital rights management), 게임(game), 인터넷 뱅킹(internet banking), 온라인 쇼핑(online shopping) 등과 같이 서버(server)에 의한 단말(terminal)의 신뢰성을 필요로 하는 플랫폼(platform) 운용 환경에서, 사용자 단말에서 사용되는 암호키에 대해 소프트웨어(software) 기반의 안전한 키 관리를 위하여 사용자 단말의 비밀키를 개별적인 비밀키 조각으로 분리하여 관리하도록 함으로써 단말 사용자 또는 내부 공격자에 의한 악의적인 사용을 방지시킬 수 있도록 하는 암호키 관리 시스템 및 방법에 관한 것이다.
The present invention relates to the management of cryptographic keys, and more particularly to a method and apparatus for managing a cryptographic key using a terminal by a server such as digital rights management (DRM), game, internet banking, online shopping, In a platform operating environment requiring reliability, a secret key of a user terminal is separated and managed as separate secret key fragments for software-based secure key management on a cryptographic key used in a user terminal, The present invention relates to a cryptographic key management system and method for preventing malicious use by a user or an internal attacker.

일반적으로, 네트워크 상의 공개된 채널을 통하여 두 엔티티(entity)(서버-클라이언트 통신 혹은 P2P 통신)간에 안전하게 신원을 확인하고 데이터를 주고 받기 위하여 다양한 암호 기술들이 사용된다. 이러한 암호 기술 중 공개키 암호 기술은 상대적으로 키 관리 면에 있어서 대칭키 암호 기술에 우위를 보이고, 부인 방지와 같은 특별한 요구 사항을 만족시킬 수 있는 장점이 있다. 이때, 이와 같은 공개키 암호기술은 특정 엔티티의 공개키가 그 엔티티의 것이 맞는지를 확인하기 위하여 PKI(공개키 기반 구조) 기술과 함께 사용되어야 한다. PKI 기술은 전자금융거래, SSL 통신 등에서 사용되고 있으며, 최근 들어 OMA DRM과 같이 저작권보호기술 등에서도 채용되어 사용되는 추세이다. In general, various cryptographic techniques are used to securely authenticate and exchange data between two entities (server-client communication or P2P communication) through a public channel on the network. Among these cryptographic techniques, the public key cryptographic technique has an advantage over the symmetric key cryptographic technique in terms of the key management, and has a merit that it can satisfy special requirements such as non-repudiation. At this time, such a public key encryption technique should be used in conjunction with a public key infrastructure (PKI) technology to confirm whether the public key of the specific entity is correct for the entity. PKI technology is used in electronic financial transaction, SSL communication, etc. Recently, OMA DRM is also used in copyright protection technology.

이러한 전통적인 암호 기반 정보보안기술의 안전성은 키의 안전한 관리에 의존한다. 즉, 암호 알고리즘과 통신 채널 등이 모두 공개되더라도 키만 공격자에게 노출되지 않으면, 공격자는 암호학적으로(혹은 확률적으로) 안전성을 깰 수 없다. 이러한 모델은 기존의 네트워크 보안 기술에 있어서 타당한 것으로 인정되어 왔다. 공격자는 암호 연산이 이루어지는 시스템 내부에 있지 않고 외부에서만 공격할 수 있다고 보는 것이다. 이러한 공격 유형을 블랙박스 공격이라고 한다.The security of these traditional password-based information security technologies depends on the secure management of keys. That is, even if both the encryption algorithm and the communication channel are open, the attacker can not cryptographically (or probabilistically) break the security unless the key is exposed to the attacker. This model has been recognized as valid for existing network security technologies. The attacker sees that he can attack only outside, not inside the system where cryptographic operations are performed. This type of attack is called black box attack.

최근 들어 블랙박스 공격과는 다르게, 즉 암호 연산이 이루어지는 시스템 내부의 정보를 직간접적으로 확인할 수 있는 공격들이 등장하기 시작하였다. 예를 들어, 공격자가 보안 하드웨어의 내부를 확인할 수는 없지만 특정 입력에 따르는 연산 시간, 전력 소비량, 전자파 특성 등의 부가적인 정보를 모니터링하여 암호키의 일부 혹은 전체를 찾아내는 부채널 공격 등에 많은 연구가 이루어지고 있는데, 이와 같이 시스템 내부의 정보를 간접적으로 확인하는 공격을 그레이박스 공격이라고 부른다.In recent years, unlike black box attacks, attacks that can directly or indirectly check information inside a system where cryptographic operations are performed have appeared. For example, although an attacker can not identify the inside of security hardware, many studies have been conducted on subchannel attacks such as detecting partial or full cryptographic keys by monitoring additional information such as computation time, power consumption, In this way, an attack that indirectly checks information inside the system is called a gray box attack.

이와는 또 다르게 공격자가 암호 연산이 이루어지는 시스템 내부의 정보를 직접적으로 확인하는 공격을 화이트박스(white box) 공격이라고 칭한다. 예를 들어, 인터넷 뱅킹 등의 서비스를 받을 때 시스템 내부에 바이러스 혹은 악성 코드 형태로 침입하여 사용자의 키 입력을 빼돌리는 키로거(key logger)와 같은 프로그램도 일종의 화이트박스 공격이라고 할 수 있으며, DRM과 같은 특정 서비스에서 정상적으로 서비스를 받는 사용자가 DRM 콘텐츠에 걸린 락(Lock)을 풀기 위해 역공학(reverse engineering) 등의 기술을 활용하는 것도 또 다른 화이트박스 공격으로 볼 수 있다.Another attack is called white box attack in which an attacker directly verifies information inside the system in which a cryptographic operation is performed. For example, a program such as a key logger that breaks in the form of a virus or malicious code inside a system when a user receives a service such as Internet banking, etc., can be said to be a kind of white box attack. The use of reverse engineering techniques to unlock locks on DRM content can also be seen as another white box attack on users who normally receive services from the same specific service.

한편, 콘텐츠 기반 서비스에서 각종 이해관계자(콘텐츠 권리 소유자, 콘텐츠 제공 업체 등)들은 자신들이 클라이언트 소프트웨어(DRM 에이전트)를 제공한 단말이 자신들의 의도와 맞는 동작을 한다는 보장이 있을 때만 서비스를 할 수 있을 것이다. 이렇게 서버에 의한 단말의 신뢰성 확보는 2가지 방향에서 모두 이루어져야 한다. 첫째로는 서버가 단말에 제공한 클라이언트 소프트웨어가 변조되지 않고(integrity) 정상적으로 수행이 되어야 한다. 둘째로, 단말에서 클라이언트 소프트웨어에 의해 유지가 되어야 하는 민감한 정보는 공격자에게 노출되지 않아야 한다(confidentiality).On the other hand, in a content-based service, various stakeholders (content rights owner, content provider, etc.) can perform services only when the terminal providing the client software (DRM agent) guarantees that the terminal operates according to their intention will be. Thus, securing the reliability of the terminal by the server must be performed in both directions. First, the client software provided by the server to the terminal must be integrity-protected. Second, sensitive information that must be maintained by the client software in the terminal should not be exposed to the attacker (confidentiality).

예를 들어, OMA DRM에서는 단말을 인증하고 단말에게 안전한 권한 객체(rights object)를 내려주기 위해 PKI 기술을 사용한다. 즉, 단말 내부에 단말 인증서와 비밀키를 저장하고 있으며 라이선스 관리 서버가 암호화된 콘텐츠에 접근할 수 있는 권한 객체를 단말 인증서의 공개키로 암호화해서 전달하면 단말의 DRM 에이전트는 자신의 비밀키를 이용하여 권한 객체를 복호화한 정보를 이용하여 암호화된 콘텐츠를 이용할 수 있다. For example, OMA DRM uses PKI technology to authenticate a terminal and to provide a secure rights object to the terminal. That is, if the terminal certificate and the secret key are stored in the terminal and the license management server encrypts the rights object that can access the encrypted content using the public key of the terminal certificate, the DRM agent of the terminal uses the secret key of the terminal The encrypted content can be used by using the decrypted information of the rights object.

이때 만약, 단말의 DRM 에이전트가 공격자에 의해 변조된다면 특정 코드를 우회하거나 비밀키 정보 혹은 복호화된 콘텐츠를 의도적으로 유출시키는 등의 불법적인 이용이 가능하며, 또한 이 DRM 에이전트가 변조되지 않더라도 공격자가 비밀키 정보를 접근할 수 있는 방법이 있다면 역시 유사한 공격이 가능하게 된다.At this time, if the DRM agent of the terminal is modulated by the attacker, illegal use such as bypassing a specific code, intentionally leaking secret key information or decrypted content is possible. Also, even if this DRM agent is not tampered, If there is a way to access key information, similar attacks will be possible.

따라서, 단말에서 클라이언트 소프트웨어에 의해 유지되어야 하는 비밀키 등의 민감한 정보는 이 정보들이 유출될 경우의 공격 효과가 매우 크므로 반드시 안전하게 관리되어야 할 것이다. 또한, 이 정보들은 저장 장치에 저장이 될 때도 암호화한 형태로 저장이 되어야 하며, 실행 시 메모리에 적재될 경우에도 평문 형태로 적재되지 않거나 평문 형태로 적재되는 시간을 최소화하여야 한다. 이를 위하여 민감 정보를 안전하게 저장하고 암호 연산을 내부에서 해결하는 하드웨어 TPM 칩이나, 안전한 실행 환경을 보장해주는 Arm 계열 칩의 TrustZone 기술 등을 활용할 수 있다.
Therefore, sensitive information such as a secret key, which should be maintained by the client software in the terminal, must be safely managed because the attacking effect when the information is leaked is very large. Also, this information should be stored in an encrypted form when stored in a storage device, and should be minimized in the case of being loaded in a plain text form or in a plain text form even when loaded in a memory during execution. For this purpose, hardware TPM chip that stores sensitive information securely and solves cryptographic operation internally, and TrustZone technology of arm series chip that guarantees secure execution environment can be utilized.

대한민국 공개특허번호 10-2008-0031965호 공개일자 2008년 04월 11일에는 네트워크 사용자 인증 시스템 및 방법에 관한 기술이 개시되어 있다.Korean Patent Laid-Open No. 10-2008-0031965 Disclosure Date Apr. 11, 2008 discloses a technology related to a network user authentication system and method.

그러나, 스마트폰, 태블릿, 스마트TV 등 개방형 플랫폼을 이용하는 서비스가 늘어남에 따라 특정 하드웨어 칩을 이용하는 것이 어렵게 되면서 이를 소프트웨어적으로 해결하는 것이 요구되고 있는데, 아직까지 소프트웨어적으로 이러한 문제를 완벽하게 해결하는 것은 불가능하다고 알려져 있다. 이런 상황에서 최선은 완벽하게 해결하는 것은 불가능할지라도 공격자의 공격 비용과 시간을 증가시키는 기법들을 적용하여 공격을 어렵게 만드는 것이 된다. However, as services using open platforms such as smart phones, tablets, and smart TVs are increasing, it becomes difficult to use specific hardware chips and it is required to solve them by software. It is known to be impossible. In this situation, although it is not possible to solve it perfectly, it is difficult to attack by applying techniques that increase attack cost and time of attacker.

특정한 소프트웨어 코드의 분석을 어렵게 만들기 위해서 코드 난독화(Code Obfuscation), 코드 다양화(Code Diversity), 코드 암호화(Code Encryption) 등의 다양한 기술이 있으나, 비밀키와 같은 암호 정보를 소프트웨어적으로 안전하게 저장하고 관리하는 기술은 안전성이 완전히 검증되지 않은 화이트박스 암호 기술 외에는 알려져 있지 않다. 따라서, DRM 서비스 등과 같이 화이트박스 공격이 가능한 환경에서는 단말에 소프트웨어적으로 저장될 비밀키가 안전하게 저장되고 관리되어야 할 필요성이 있다.There are various techniques such as Code Obfuscation, Code Diversity, and Code Encryption in order to make analysis of specific software codes difficult. However, And management techniques are not known beyond white-box cryptography, which is not fully secure. Therefore, in an environment where a white box attack is possible, such as a DRM service, there is a need to securely store and manage a secret key to be stored in the terminal software.

이에 따라, 본 발명은 DRM, 게임, 인터넷 뱅킹, 온라인 쇼핑 등과 같이 서버에 의한 단말의 신뢰성을 필요로 하는 플랫폼 운용 환경에서, 사용자 단말에서 사용되는 암호키에 대해 소프트웨어 기반의 안전한 키 관리를 위하여 사용자 단말의 비밀키를 개별적인 비밀키 조각으로 분리하여 관리하도록 함으로써 단말 사용자 또는 내부 공격자에 의한 악의적인 사용을 방지시킬 수 있도록 하는 암호키 관리 시스템 및 방법을 제공하고자 한다.
Accordingly, in a platform operating environment requiring reliability of a terminal by a server such as DRM, game, internet banking, online shopping, etc., the present invention provides a software- The present invention provides a cryptographic key management system and method for preventing a malicious use by a terminal user or an internal attacker by separating and managing a secret key of a terminal into individual secret key fragments.

상술한 본 발명은 암호키 관리 시스템으로서, 암호화를 위한 키발급 요청이 수신되는 경우 상기 키발급 요청에 응답하여 비밀키를 생성하고 이를 암호화하여 암호화된 비밀키를 전송하는 키발급 서버와, 상기 키발급 서버로 상기 키발급 요청을 전송하여 상기 암호화된 비밀키를 수신하며, 암호화된 메시지가 수신되는 경우 상기 메시지를 상기 포장된 비밀키를 이용하여 복호화하는 사용자 단말을 포함한다.A key issuing server for generating a secret key in response to the key issuing request when the key issuing request for encryption is received and transmitting the encrypted secret key by encrypting the secret key; Receiving the encrypted private key by transmitting the key issuance request to the issuing server, and decrypting the encrypted message using the packed private key when the encrypted message is received.

또한, 상기 사용자 단말은, 상기 복호화된 메시지를 다시 화이트박스 암호기반 라이브러리를 이용하여 재복호화하여 원본 메시지를 복구시키는 것을 특징으로 한다.In addition, the user terminal may re-decrypt the decrypted message using a white box cryptography based library to recover the original message.

또한, 상기 화이트박스 암호기반 라이브러리는, 상기 키발급 서버로부터 상기 암호화된 비밀키와 함께 상기 사용자 단말로 전송되는 것을 특징으로 한다.The white box cryptography based library is transmitted from the key issuing server to the user terminal together with the encrypted secret key.

또한, 상기 암호화된 메시지는, 상기 사용자 단말의 공개키로 암호화되는 것을 특징으로 한다.In addition, the encrypted message is encrypted with the public key of the user terminal.

또한, 상기 키발급 서버는, 상기 비밀키의 생성 시 상기 비밀키와 함께 공개키를 생성하고, 상기 사용자 단말의 식별정보와 상기 공개키를 결합하여 공개키 인증서를 생성하는 것을 특징으로 한다.The key issuing server generates a public key together with the private key when generating the private key, and generates a public key certificate by combining the public key and the identification information of the user terminal.

또한, 상기 키발급 서버는, RSA방식을 이용하여 상기 비밀키와 공개키를 생성하는 것을 특징으로 한다.The key issuing server may generate the secret key and the public key using the RSA scheme.

또한, 상기 키발급 서버는, 상기 사용자 단말로부터 키업데이트 요청이 수신되는 경우 상기 사용자 단말에 대한 인증을 수행한 후, 상기 사용자 단말에게 제공할 새로운 비밀키를 생성하고, 이를 재암호화하여 전송하는 것을 특징으로 한다.Also, the key issuing server performs authentication for the user terminal when a key update request is received from the user terminal, generates a new secret key to be provided to the user terminal, re-encrypts the new secret key, and transmits the new secret key .

또한, 상기 키발급 서버는, 상기 새로운 비밀키의 전송 시 화이트박스 암호기반 라이브러리를 함께 전송하는 것을 특징으로 한다.In addition, the key issuing server may transmit a white box password based library when the new secret key is transmitted.

또한, 본 발명은 암호키 관리 시스템으로서, 암호화를 위한 키발급 요청이 수신되는 경우 상기 키발급 요청에 응답하여 비밀키를 생성하고, 이를 암호화하여 암호화된 비밀키를 전송하는 키발급 서버와,상기 키발급 서버로 상기 키발급 요청을 전송하여 상기 암호화된 비밀키를 수신하며, 암호화된 메시지가 수신되는 경우 상기 메시지를 상기 포장된 비밀키를 이용하여 복호화하고, 복호화된 메시지에 대해 키발급 서버로 전송하여 원본 메시지로 재복호화하는 사용자 단말을 포함한다.According to another aspect of the present invention, there is provided an encryption key management system, comprising: a key issuing server for generating a secret key in response to a key issuing request when a key issuing request for encryption is received and transmitting the encrypted secret key by encrypting the secret key; And transmits the key issuing request to the key issuing server to receive the encrypted private key. When the encrypted message is received, the message issuing unit decrypts the message using the packaged secret key, and transmits the decrypted message to the key issuing server And re-decodes the original message into the original message.

또한, 상기 복호화된 메시지는, 상기 사용자 단말의 인증서가 포함되어 상기 키발급 서버로 전송되는 것을 특징으로 한다.In addition, the decrypted message includes the certificate of the user terminal and is transmitted to the key issuing server.

또한, 본 발명은 사용자 단말과 키발급 서버를 포함하는 암호키 관리 시스템에서 암호키 관리 방법으로서, 상기 사용자 단말에서 상기 키발급 서버로 암호화를 위한 키발급을 요청하는 단계와, 상기 키발급 서버에서 상기 키발급 요청에 응답하여 비밀키를 생성하는 단계와, 상기 비밀키를 다시 암호화하여 암호화된 비밀키를 생성하고 상기 사용자 단말로 상기 암호화된 비밀키를 제공하는 단계와, 상기 사용자 단말로 암호화된 메시지 수신 시 상기 암호화된 비밀키를 이용하여 상기 메시지를 복호화하는 단계와, 상기 복호화된 메시지를 다시 화이트박스 암호기반 라이브러리를 이용하여 재복호화하여 원본 메시지를 복구시키는 단계를 포함한다.According to another aspect of the present invention, there is provided an encryption key management method in a cryptographic key management system including a user terminal and a key issuing server, the method comprising: requesting a key issuance server for encryption from the user terminal to the key issuing server; Generating a secret key in response to the key issuing request; encrypting the secret key again to generate an encrypted secret key and providing the encrypted secret key to the user terminal; Decrypting the message using the encrypted secret key upon receipt of the message, and re-decrypting the decrypted message using the white box cryptography based library to recover the original message.

또한, 상기 화이트박스 암호기반 라이브러리는, 상기 키발급 서버로부터 상기 암호화된 비밀키와 함께 상기 사용자 단말로 전송되는 것을 특징으로 한다.The white box cryptography based library is transmitted from the key issuing server to the user terminal together with the encrypted secret key.

또한, 상기 비밀키를 생성하는 단계에서, 상기 키발급 서버에서 상기 비밀키와 함께 공개키를 생성하고, 상기 사용자 단말의 식별정보와 상기 공개키를 결합하여 공개키 인증서를 생성하는 것을 특징으로 한다.In addition, in the step of generating the secret key, the key issuing server may generate a public key together with the secret key, and generate a public key certificate by combining the identification information of the user terminal and the public key .

또한, 상기 비밀키와 공개키는, RSA방식을 이용하여 생성되는 것을 특징으로 한다.Also, the secret key and the public key are generated using the RSA method.

또한, 상기 사용자 단말로부터 키업데이트 요청이 수신되는 경우 상기 키발급 서버에서 상기 사용자 단말에 대한 인증을 수행하는 단계와, 상기 키발급 서버에서 상기 사용자 단말에게 제공할 새로운 비밀키를 생성하고, 이를 재암호화하여 전송하는 단계를 더 포함하는 것을 특징으로 한다.The key issuing server may further include a step in which the key issuing server performs authentication with respect to the user terminal when a key update request is received from the user terminal, a new secret key to be provided to the user terminal from the key issuing server, And encrypting and transmitting the encrypted data.

또한, 상기 키발급 서버에서 상기 사용자 단말로 상기 새로운 비밀키의 전송 시 화이트박스 암호기반 라이브러리를 함께 전송하는 것을 특징으로 한다.In addition, the key issuing server may transmit the white box password based library when the new secret key is transmitted from the key issuing server to the user terminal.

또한, 본 발명은 사용자 단말과 키발급 서버를 포함하는 암호키 관리 시스템에서 암호키 관리 방법으로서, 상기 사용자 단말에서 상기 키발급 서버로 암호화를 위한 키발급을 요청하는 단계와, 상기 키발급 서버에서 상기 키발급 요청에 응답하여 비밀키를 생성하는 단계와, 상기 비밀키를 다시 암호화하여 암호화된 비밀키를 생성하고 상기 사용자 단말로 상기 암호화된 비밀키를 제공하는 단계와, 상기 사용자 단말로 암호화된 메시지 수신시 상기 암호화된 비밀키를 이용하여 상기 메시지를 복호화하는 단계와, 상기 복호화된 메시지에 대해 상기 키발급 서버로 전송하여 원본 메시지로 재복호화시키는 단계을 포함한다.
According to another aspect of the present invention, there is provided an encryption key management method in a cryptographic key management system including a user terminal and a key issuing server, the method comprising: requesting a key issuance server for encryption from the user terminal to the key issuing server; Generating a secret key in response to the key issuing request; encrypting the secret key again to generate an encrypted secret key and providing the encrypted secret key to the user terminal; Decrypting the message using the encrypted secret key upon receipt of the message, and transmitting the decrypted message to the key issuing server and re-decrypting the decrypted message into an original message.

본 발명은 DRM, 게임, 인터넷 뱅킹, 온라인 쇼핑 등과 같이 서버에 의한 단말의 신뢰성을 필요로 하는 플랫폼 운용 환경에서, 사용자 단말에서 사용되는 암호키에 대해 소프트웨어 기반의 안전한 키 관리를 위하여 사용자 단말의 비밀키를 개별적인 비밀키 조각으로 분리하여 관리하도록 함으로써 단말 사용자 또는 내부 공격자에 의한 악의적인 사용을 방지시킬 수 있는 이점이 있다. 또한 비밀키 노출이 아닌 보안 정책 및 기타 사유로 인하여 비밀키를 업데이트할 때 공개키 인증서를 폐기하지 않고도 비밀키 모듈만 별도로 업데이트할 수 있는 이점이 있다.
In a platform operating environment requiring reliability of a terminal by a server such as DRM, game, Internet banking, online shopping, etc., a secret key of a user terminal Keys are separated and managed by individual secret key fragments, thereby preventing malicious use by a terminal user or an internal attacker. Also, when the secret key is updated due to a security policy and other reasons other than a secret key exposure, there is an advantage that only the secret key module can be updated separately without revoking the public key certificate.

도 1은 본 발명의 실시예에 따른 암호키 관리 시스템의 구성도,
도 2는 본 발명의 다른 실시예에 따른 암호키 관리 시스템의 구성도.
1 is a configuration diagram of an encryption key management system according to an embodiment of the present invention;
2 is a configuration diagram of an encryption key management system according to another embodiment of the present invention;

이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, the operation principle of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intentions or customs of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.

PKI 환경에서 널리 사용되는 공개키 암호 알고리즘으로 RSA와 ECC 기술이 있다. 이 중에서도 RSA는 알고리즘이 매우 직관적이며 암호화와 서명을 동일한 알고리즘으로 처리할 수 있다는 장점으로 광범위하게 사용되고 있으며, OMA DRM에서도 암호화된 권한 객체에 대한 복호화 키를 단말의 RSA 공개키/비밀키 쌍으로 안전하게 암복호화를 하고 있다. RSA 공개키 알고리즘은 매우 큰 수의 소인수 분해가 어렵다는 가정에 기반을 둔 암호 기술로 기본적인 키 생성 및 암복호화 방법은 다음과 같다.Public-key cryptography algorithms widely used in PKI environments include RSA and ECC technologies. Among them, RSA is very intuitive, and it is used extensively because it has the advantage of being able to process encryption and signature with the same algorithm. OMA DRM also securely decrypts the decryption key for the encrypted rights object with RSA public key / I am doing encryption and decryption. The RSA public key algorithm is based on the assumption that it is difficult to decompose a very large number of prime numbers. The basic key generation and encryption / decryption methods are as follows.

1. One. RSARSA 암호 기술 (1024  Password Technology (1024 bitbit RSARSA ))

1) 키 생성1) Key generation

- 512bit의 큰 소수(prime number) p, q를 랜덤하게 선택- Select random prime numbers p and q of 512 bits

- n = p * q이라 하면 Φ(n) = (p-1)*(q-1) (Euler Totient Function에 의해)(n) = (p-1) * (q-1) (by Euler Totient Function)

- Φ(n)와 서로 소이면서 랜덤한 e를 선택- Select a random e with Φ (n)

- 아래의 [수학식 1]의 조건을 만족하는 d를 계산- Calculate d that satisfies the condition of [Equation 1] below

[수학식 1][Equation 1]

e * d = 1 mod Φ(n)
e * d = 1 mod? (n)

여기에서 RSA 공개키는 (e, n), 비밀키는 (d)가 된다.
Here, the RSA public key is (e, n) and the secret key is (d).

2) 암호화
2) Encryption

주어진 메시지 M에 대해, 만약 M이 n보다 클 경우 n의 크기를 가지는 블록(block) 단위로 분리하여 0 < M < n이 되도록 만든다. 이에 대하여 M을 암호화한 메시지 C는 아래의 [수학식 2]에서와 같이 계산한다.For a given message M, if M is larger than n, it is divided into blocks of size n to make 0 <M <n. On the other hand, the message C encrypted with M is calculated as shown in the following equation (2).

[수학식 2]&Quot; (2) &quot;

C = Me mod n
C = M e mod n

3) 복호화
3) Decryption

주어진 암호화된 메시지 C에 대해, 이의 원본 메시지 M은 비밀키를 이용하여 아래의 [수학식 3]에서와 같이 계산한다.For a given encrypted message C, its original message M is computed as in Equation (3) below using the secret key.

[수학식 3]&Quot; (3) &quot;

M = Cd mod n
M = C d mod n

이때, 특정한 메시지에 대한 전자 서명은 암복호화를 반대로 적용하면 된다.
At this time, digital signature for a specific message can be reversely applied to encryption decryption.

2. 화이트박스 암호 기술 (Whitebox Cryptography)2. Whitebox Cryptography

화이트박스 암호 기술은 앞서 언급한 화이트박스 공격과 같이, 공격자가 암호 연산이 이루어지는 시스템 내부의 정보를 직접적으로 확인하는 공격을 대응하기 위해 연구되어온 기술이다. 화이트박스 암호 기술에서는 암호 키가 소프트웨어로 구현된 암호 알고리즘 속에 섞여 있어(Obfuscation), 암호 알고리즘 및 실행 중 생성되는 중간 데이터값을 들여다 보더라도 암호키를 찾아내기 어렵다. White-box cryptography is a technology that has been studied to counter attacks in which an attacker directly verifies information inside a system where cryptographic operations are performed, like the above-mentioned white box attack. In white-box cryptography, cryptographic keys are blended into software-implemented cryptographic algorithms and it is difficult to find cryptographic keys even when looking at cryptographic algorithms and intermediate data values generated during execution.

즉, 화이트박스 암호는 키와 알고리즘을 평문과 암호문의 대응 테이블 형태로 만듦으로서, 내부 동작을 통하더라도 암호 키를 쉽게 유추하기 어렵게 만든다. 가장 이상적인 형태는 큰 대응 테이블 하나를 만드는 것이나, 이는 테이블의 크기가 매우 커지기 때문에 현실적으로 가능하지 않다. 따라서, 테이블을 암호학적인 기법으로 적절히 분리하되 중간값이 노출되지 않도록 인코딩/디코딩(encoding/decoding) 과정을 수행하게끔 두었다.In other words, white-box cryptography makes keys and algorithms correspond to tables of plaintext and ciphertext, making it difficult to easily guess the ciphertext even through internal operations. The ideal form is to make one big correspondence table, but this is not practically possible because the size of the table is very large. Therefore, the table is appropriately separated by a cryptographic technique, and an encoding / decoding process is performed so that the intermediate value is not exposed.

이에 대한 상세한 내용은 S. Chow 등의 "A white-box DES implementation for DRM application", "White-box cryptography and an AES implementation" 등의 논문을 참조할 수 있다.For details, see "White-box DES implementation for DRM application" by S. Chow et al., "White-box cryptography and an AES implementation".

그러나, 현재까지 논문을 통해 공개된 화이트박스 암호 기술은 주로 DES, AES 등 대칭키 암호 기술에 국한되어 있다. However, the white-box cryptographic technology disclosed through the paper to date is mainly limited to symmetric key cryptography such as DES and AES.

이하에서는 앞서 설명한 RSA 암호 기술과 화이트박스 암호 기술에 대한 설명을 기반으로 본 발명의 암호키 관리 방법에 대해 상세히 설명하기로 한다.Hereinafter, the encryption key management method of the present invention will be described in detail based on the RSA encryption technique and the white box encryption technology described above.

먼저, 단말에서 암호 알고리즘 및 이에 기반한 보안 프로토콜을 이용할 경우, 가장 중요한 것은 사용자의 비밀키 d를 공격자(사용자를 포함)가 쉽게 알 수 없도록 해야 한다는 것이다. 비밀키 d가 노출이 되면 그 단말의 공개키로 암호화된 권한 객체를 손쉽게 복호화할 수 있으므로 매우 위험하다.First, when using a cryptographic algorithm and a security protocol based on the encryption algorithm, the most important thing is to make sure that the secret key d of the user is not easily known by the attacker (including the user). When the secret key d is exposed, the rights object encrypted with the public key of the terminal can be easily decrypted, which is very dangerous.

비밀키를 특정 서버에 저장해두고, 암호 연산을 이 서버에서 모두 수행하게 하는 방법도 있을 수 있다. 그러나, 암호 연산이 필요할 때마다 이 서버에 접근을 해야 하는데, 이 경우 접근 권한 확인을 위하여 단말 혹은 사용자 인증을 받아야 할 것이며, 이렇게 되면 단말에 대한 인증서를 두 번 발급받아야 하거나 또 다른 인증방식을 사용하게 되어 매우 불편하다.There may be a way to store the secret key on a specific server and have the cryptographic operation performed on this server. However, it is necessary to access this server whenever a cryptographic operation is required. In this case, the terminal or the user must be authenticated in order to confirm the access authority. In this case, the terminal needs to be issued a certificate twice or another authentication method It is very uncomfortable.

이러한 키 관리 문제점을 해결하기 위하여 본 발명에서는 도 1과 같은 암호키 관리 시스템을 구성한다. In order to solve the problem of key management, the present invention constitutes an encryption key management system as shown in FIG.

도 1을 참조하면, 사용자 단말(100)은 키 발급 서버(110)에게 키를 발급 요청한다(S1). 이 작업은 단말의 생산 공정에서 펌웨어 및 OS 등 플랫폼 설치 단계에서 이루어질 수도 있으며, 온라인으로도 가능할 것이다. 다만, 온라인으로 키 발급 요청을 할 경우에는 별도의 인증 절차를 거친 후 키 발급 요청을 할 수 있어야 한다.Referring to FIG. 1, the user terminal 100 issues a key issuance request to the key issuing server 110 (S1). This work can be done at the platform installation stage such as firmware and OS in the production process of the terminal, or online. However, when requesting a key issuance online, it is necessary to be able to request a key issuance after a separate authentication procedure.

키 발급 서버(110)는 이 요청을 받고 RSA 비밀키와 공개키쌍을 생성한다. 이 값은 기존의 전통적인 RSA 키 생성과 동일하다. 이때 생성되는 공개키를 PKdevice{e, n}, 비밀키를 SKdevice{d}라고 하자. 먼저 단말의 식별(identity) 정보와 공개키를 결합하여 공개키 인증서CERTdevice를 만든다. 그리고 비밀키를 포장(wrapping) 즉, 암호화하여 비밀키가 그대로 드러나지 않도록 한다(S2).The key issuing server 110 receives the request and generates an RSA secret key and a public key pair. This value is identical to the traditional RSA key generation. Let PK device {e, n} be the generated public key and SK device {d} be the secret key. First, the public key certificate CERT device is created by combining the identity of the terminal and the public key. Then, the secret key is wrapped or encrypted so that the secret key is not exposed (S2).

이때, S2단계에서 비밀키를 암호화하는 방식은 다음과 같다.At this time, a method of encrypting the secret key in step S2 is as follows.

먼저, 키 발급 서버(110)는 RSA 공개키의 일부인 n을 생성할 때 필요로 하는 두 개의 소수 p, q를 알고 있으므로, 비밀키와 공개키쌍을 생성하는 것과 동일한 방식을 적용하여 아래의 [수학식 4]를 만족하는 랜덤한 두 수 e1, d1를 뽑는다.First, since the key issuing server 110 knows the two prime numbers p and q that are needed when generating n, which is a part of the RSA public key, the key issuing server 110 uses the same method as generating the secret key and the public key pair, The two random numbers e 1 and d 1 satisfying Eq. 4 are extracted.

[수학식 4]&Quot; (4) &quot;

e1 * d1 = 1 mod Φ(n)
e 1 * d 1 = 1 mod 陸 (n)

그런 후 단말의 비밀키를 e1를 이용하여 아래와 [수학식 5]에서와 같이 숨긴다.Then, the secret key of the terminal is hidden using e 1 as shown below and in Equation (5).

[수학식 5]&Quot; (5) &quot;

WrappedSKdevice{d'} = d * e1 mod Φ(n)
WrappedSKdevice {d '} = d * e 1 mod? (N)

d1을 이용하여 이 값이 드러나지 않도록 사용자 단말(100)에서 복호화 혹은 서명 때 적용 가능한 화이트박스 암호(whitebox cryptography) 기반 라이브러리 DEC_d1()를 만든다. 혹은 이와 다른 혼란(obfuscation) 방식을 활용할 수도 있으나 이 라이브러리로부터 d1을 쉽게 찾아낼 수 없어야 한다. 이 라이브러리는 주어진 입력값에 대해 d1 지수승을 하는 연산이다.d 1 to create a whitebox cryptography-based library DEC_d 1 () that is applicable at the time of decryption or signing at the user terminal 100 so that this value is not exposed. Or you can use another way of obfuscation, but you should not be able to find d 1 easily from this library. This library is an operation that performs a d 1 exponentiation on a given input value.

이렇게 해서 생성된 공개키 인증서 CERTdevice(이 안에는 단말의 공개키가 포함되어 있다), 암호화된 비밀키 값 WrappedSKdevice{d'}, 화이트박스 암호 기반 라이브러리 DEC_d1()을 사용자 단말(100)에게 전달한다(S3). 여기에서 비밀키 d는 사용자 단말(100)에 직접 저장되지 않으므로 이 값은 심지어 내부 공격자에게도 직접 노출되지 않는 장점이 발생한다.The encrypted public key value WrappedSK device {d '} and the white box password based library DEC_d 1 () are transmitted to the user terminal 100 in the generated public key certificate CERTdevice (including the public key of the terminal in this) (S3). Here, since the private key d is not directly stored in the user terminal 100, the value is not directly exposed to the internal attacker.

차후, 사용자 단말(100)의 공개키로 암호화된 메시지 C(= Me mod n)가 수신되는 경우(S4), 사용자 단말(100)은 이 메시지를 암호화된 비밀키 WrappedSKdevice{d'}값을 이용하여 먼저 복호화를 한다. 이때 복호화한 결과는 원본 메시지가 아닌 C'로 복구가 되며 이는 아래의 [수학식 6]과 같다.Later, the message C (= M e mod n) if received (S4), the user terminal 100 are encrypted secret key to the message WrappedSK device {d '} value encrypted with the public key of the user terminal 100 And decodes it first. At this time, the decoded result is restored to C 'instead of the original message, which is expressed by Equation (6) below.

[수학식 6]&Quot; (6) &quot;

Figure pat00001

Figure pat00001

이 메시지를 다시 화이트박스 암호 기반 라이브러리 DEC_d1()을 이용하여 재복호화를 하면 아래의 [수학식 7]에서와 같이 원본 메시지 M을 복구할 수 있게 되는 것이다(S5).If this message is re-decrypted using the white box password based library DEC_d 1 (), the original message M can be recovered as shown in Equation (7) below (S5).

[수학식 7]&Quot; (7) &quot;

Figure pat00002

Figure pat00002

이 기술의 장점은 비밀키 d가 노출된 경우를 제외하고 보안 정책상 비밀키 업데이트가 필요한 경우(예를 들어 보안 정책상 소프트웨어로 저장된 키는 한달에 한번 키 업데이트가 필요한 경우), 단말의 공개키 및 공개키 인증서를 바꾸지 않아도 손쉽게 비밀키를 업데이트할 수 있다는 점이다. 즉, 비밀키 d 자체를 화이트박스 암호 기술로 숨길 경우 d가 잘 드러나지는 않을 수 있으나, 비밀키 업데이트를 할 경우 단말의 공개키 인증서가 폐기되고 새로운 인증서를 설치하여야 하며, 이 인증서를 이용하여 받는 서비스에 모두 영향을 주므로 매우 불편할 수 있다. An advantage of this technique is that when a secret key update is required in the security policy (for example, a key stored in the software is required to be updated once a month in the security policy) except for the case where the secret key d is exposed, And easily update the secret key without changing the public key certificate. In other words, if the secret key d itself is hidden by the white box cryptosystem, d may not be revealed. However, when updating the secret key, the public key certificate of the terminal is revoked and a new certificate is installed. It can be very inconvenient because it affects all services.

이러한 장점을 가지도록 하기 위하여 사용자 단말(100) 혹은 키 관리 서비스의 보안 정책에 따라 비밀키 업데이트가 필요한 경우 사용자 단말(100)은 다음과 같은 절차를 통하여 키 업데이트를 수행한다. In order to have this advantage, when the secret key update is required according to the security policy of the user terminal 100 or the key management service, the user terminal 100 performs the key update through the following procedure.

첫째 사용자 단말(100)은 키 발급 서버(110)에게 키 업데이트 요청을 한다(S6). 이때에는 별도의 인증 절차를 거칠 수도 있고, 사용자의 암호화된 비밀키를 이용한 서명을 통하여 인증을 수행할 수도 있다. 키 발급 서버(110)는 e와 d1을 알고 있으므로, 사용자가 d'를 이용하여 서명을 하더라도 검증을 수행할 수 있다. First, the user terminal 100 sends a key update request to the key issuing server 110 (S6). At this time, a separate authentication process may be performed, or authentication may be performed through signature using the encrypted secret key of the user. Since the key issuing server 110 knows e and d 1 , it can perform verification even if the user signs it using d '.

인증이 완료된 후 키 발급 서버(110)는 키 업데이트를 위하여 다음과 같은 절차를 거쳐 키 재포장(re-wrapping) 작업 즉, 암호화 작업을 수행한다(S7). 이는 최초의 키 포장 작업과 유사하게 다음과 같은 과정을 거쳐 수행할 수 있다. 먼저 아래의 [수학식 8]을 만족하는 랜덤한 두 수 e2, d2를 뽑는다.After the authentication is completed, the key issuing server 110 carries out a re-wrapping operation (S7) for the key update through the following procedure. This can be accomplished through the following process, similar to the first key packaging operation. First, two random numbers e 2 and d 2 satisfying the following equation (8) are selected.

[수학식 8]&Quot; (8) &quot;

e2 * d2 = 1 mod Φ(n)
e 2 * d 2 = 1 mod? (n)

그런 후 사용자 단말(100)의 기존의 암호화된 비밀키를 e2를 이용하여 아래의 [수학식 9]에서와 같이 숨긴다.Then, the existing encrypted secret key of the user terminal 100 is hidden using e 2 as in the following equation (9).

[수학식 9]&Quot; (9) &quot;

WrappedSKdevice{d''} = d * e2 mod Φ(n)
WrappedSKdevice {d ''} = d * e 2 mod Φ (n)

이어, 도 1의 키 생성 및 포장 과정(S2)와 마찬가지로 d2을 이용하여 이 값이 드러나지 않도록 단말에서 복호화 혹은 서명 때 적용 가능한 화이트박스 암호 기반 라이브러리 DEC_d2()를 만든다. 이 라이브러리는 주어진 입력값에 대해 d2 지수승을 하는 연산이다.Next, as in the key generation and packaging process S2 of FIG. 1, the terminal generates a white box password based library DEC_d 2 () that can be applied at the time of decryption or signing so that the value is not revealed using d 2 . This library is an operation that performs a d 2 exponentiation on a given input value.

이렇게 해서 생성된 정보인 재포장된 비밀키 값 WrappedSKdevice{d''}, 화이트박스 암호 기반 라이브러리 DEC_d2()을 사용자 단말(100)에게 전달한다(S8).The repacked secret key value WrappedSK device {d ''} and the white box password based library DEC_d 2 () thus generated are transmitted to the user terminal 100 (S8).

이후 암호화 메시지가 왔을 때 복호화, 서명, 키 업데이트 절차는 지속적으로 동일하게 수행할 수 있다.When an encryption message arrives, the decryption, signature, and key update procedures can be continuously performed in the same manner.

위의 기술에서 사용자 단말(100)에게 WrappedSKdevice{d'}를 주는 대신 이 역시도 화이트박스 암호 기술을 이용한 라이브러리 형태로 전달할 수 있다. 단, 일반적으로 화이트박스 암호 기술의 성능이 키를 그대로 적용하는 것에 비해 상대적으로 느리고 모듈의 크기도 크므로, 성능을 고려하면 도 1을 통해 서술한 방식을 통해 적용하는 것이 더 바람직할 것이다.Instead of giving WrappedSKdevice {d '} to the user terminal 100 in the above description, this can also be transmitted in the form of a library using the white box encryption technique. However, in general, the performance of the white box cryptosystem is relatively slow and the size of the module is relatively large as compared with the case where the key is applied as it is. Therefore, it is more preferable to apply the white box cryptosystem through the method described with reference to FIG.

화이트박스 암호 기술에 대한 안전성을 인정하기 어렵거나 라이브러리를 전달하여 구동시키기 어려운 경우, 위에서 서술한 방식을 응용하여 유사하지만 화이트박스 암호 기반 라이브러리를 사용하지 않도록 하는 방법을 다음과 같이 생각할 수 있다. If it is difficult to recognize the security of the white box cryptographic technology, or if it is difficult to transfer and run the library, you can think of a way to avoid using the white box cryptography based library by applying the method described above.

여기에서는 화이트박스 암호 기반 라이브러리 DEC_d2()를 단말에 저장하지 않고, 이 동작을 d2의 지수승을 서버에서 수행하게 하는 원리이다. 이 과정을 도 2를 참조하여 자세히 설명하기로 한다.Here, the principle is that the server does not store the white-box password-based library DEC_d 2 () in the terminal, but performs the operation of exponentiation of d 2 on the server. This process will be described in detail with reference to FIG.

먼저, 사용자 단말(100)로부터 키발급 요청이 수신되는 경우(S11), 키 발급 서버(110)는 키 생성 및 포장 단계(S12)에서 DEC_d2()를 생성하는 대신 d2를 저장한다. 그리고, 포장된 키를 전달할 때(S13)도 도 1의 단계(S3)과 다르게 DEC_d2()를 사용자 단말(100)에게 저장하지 않는다.First, when receiving the key issuance request from the user terminal (100) (S11), the key issuing server 110 stores, instead of generating DEC_d d 2 2 () in the key generation and packaging step (S12). And, when delivering the packaged key (S13) steps (S3) in FIG. 1 and otherwise does not store DEC_d 2 () to the user terminal 100.

이어, 사용자 단말(100)로 암호화 메시지가 수신되는 경우(S14), 도 1의 복호화 과정(S5)에서의 DEC_d1()을 이용한 재복호화 과정을 생략한 채, 포장된 비밀키 WrappedSKdevice{d'}값을 이용하여 기본 복호화를 한다(S15). 이때 복호화한 결과는 원본 메시지가 아닌 C'로 복구가 되며 이는 아래의 [수학식 10]과 같다.Next, when the encryption message is received in the user terminal 100 (S14), the re-decryption process using the DEC_d 1 () in the decryption process (S5) of FIG. 1 is omitted and the wrapped secret key WrappedSK device {d '} Value (S15). At this time, the decoded result is restored to C 'instead of the original message, which is shown in Equation (10) below.

[수학식 10]&Quot; (10) &quot;

Figure pat00003

Figure pat00003

아직 원본 메시지로 완전하게 복호화가 되지 않았으므로, 사용자 단말(100)은 키 발급 서버(110)에게 이 메시지에 대한 복호화 요청을 수행한다(S16). 이 메시지에는 단말의 인증서 및 C'가 포함되어야 하며, 사용자 인증을 위해 WrappedSKdevice{d'}로 이 메시지에 대한 서명을 추가할 수도 있다. 또한 인증을 통하여 생성되는 세션은 안전하게 보호될 수 있어야 한다.Since the original message has not yet been completely decrypted, the user terminal 100 requests the key issuing server 110 to decrypt the message (S16). This message must include the certificate and C 'of the terminal and may be added to the WrappedSK device {d'} to authenticate the user. Also, the session created through authentication must be securely protected.

이어, 키 발급 서버(110)는 d1을 이용하여 이 메시지를 복호화하여 원본 메시지 M을 꺼낼 수 있다(S17). 그리고 이 메시지를 안전하게 사용자 단말(100)에게 전달하면 복호화가 완료된다(S18).Then, the key issuing server 110 can extract the original message M by decrypting the message using d1 (S17). When the message is securely transmitted to the user terminal 100, the decryption is completed (S18).

상기한 바와 같이, 본 발명에서는 DRM, 게임, 인터넷 뱅킹, 온라인 쇼핑 등과 같이 서버에 의한 단말의 신뢰성을 필요로 하는 플랫폼 운용 환경에서, 사용자 단말에서 사용되는 암호키에 대해 소프트웨어 기반의 안전한 키 관리를 위하여 사용자 단말의 비밀키를 개별적인 비밀키 조각으로 분리하여 관리하도록 함으로써 단말 사용자 또는 내부 공격자에 의한 악의적인 사용을 방지시킬 수 있다. 또한 비밀키 노출이 아닌 보안 정책 및 기타 사유로 인하여 비밀키를 업데이트할 때 공개키 인증서를 폐기하지 않고도 비밀키 모듈만 별도로 업데이트할 수 있다.As described above, in the present invention, software-based secure key management is performed on a cryptographic key used in a user terminal in a platform operating environment requiring reliability of a terminal by a server such as DRM, game, Internet banking, It is possible to prevent the malicious use by the terminal user or the internal attacker by separating and managing the secret key of the user terminal into individual secret key fragments. Also, when updating the secret key due to a security policy and other reasons other than secret key exposures, the secret key module can be updated separately without revoking the public key certificate.

한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention should not be limited by the described embodiments but should be defined by the appended claims.

100 : 사용자 단말 110 : 키 발급 서버100: user terminal 110: key issuing server

Claims (13)

암호화를 위한 키발급 요청이 수신되는 경우 상기 키발급 요청에 응답하여 비밀키를 생성하고 이를 암호화하여 암호화된 비밀키를 전송하는 키발급 서버와,
상기 키발급 서버로 상기 키발급 요청을 전송하여 상기 암호화된 비밀키를 수신하며, 암호화된 메시지가 수신되는 경우 상기 메시지를 상기 포장된 비밀키를 이용하여 복호화하며, 상기 복호화된 메시지를 다시 화이트박스 암호기반 라이브러리를 이용하여 재복호화하여 원본 메시지를 복구시키는 사용자 단말
을 포함하는 암호키 관리 시스템.
A key issuing server for generating a secret key in response to the key issuing request when the key issuing request for encryption is received and transmitting the encrypted secret key by encrypting the secret key;
Transmits the key issuance request to the key issuing server to receive the encrypted secret key, decrypts the message using the packed secret key when the encrypted message is received, and transmits the decrypted message back to the white- A user terminal for restoring an original message by re-decrypting using a password-based library
The encryption key management system comprising:
제 1 항에 있어서,
상기 화이트박스 암호기반 라이브러리는,
상기 키발급 서버로부터 상기 암호화된 비밀키와 함께 상기 사용자 단말로 전송되는 암호키 관리 시스템.
The method according to claim 1,
The white box password based library includes:
And is transmitted from the key issuing server to the user terminal together with the encrypted secret key.
제 1 항에 있어서,
상기 키발급 서버는,
상기 비밀키의 생성 시 상기 비밀키와 함께 공개키를 생성하고, 상기 사용자 단말의 식별정보와 상기 공개키를 결합하여 공개키 인증서를 생성하는 암호키 관리 시스템.
The method according to claim 1,
The key issuing server comprises:
Generating a public key together with the secret key when generating the secret key, and generating a public key certificate by combining the identification information of the user terminal and the public key.
제 1 항에 있어서,
상기 키발급 서버는,
상기 사용자 단말로부터 키업데이트 요청이 수신되는 경우 상기 사용자 단말에 대한 인증을 수행한 후, 상기 사용자 단말에게 제공할 새로운 비밀키를 생성하고, 이를 재암호화하여 전송하는 암호키 관리 시스템.
The method according to claim 1,
The key issuing server comprises:
And a new secret key to be provided to the user terminal, and re-encrypts and transmits the new secret key after authenticating the user terminal when the key update request is received from the user terminal.
제 4 항에 있어서,
상기 키발급 서버는,
상기 새로운 비밀키의 전송 시 화이트박스 암호기반 라이브러리를 함께 전송하는 암호키 관리 시스템.
5. The method of claim 4,
The key issuing server comprises:
And transmits the white-box password-based library together when the new secret key is transmitted.
암호화를 위한 키발급 요청이 수신되는 경우 상기 키발급 요청에 응답하여 비밀키를 생성하고, 이를 암호화하여 암호화된 비밀키를 전송하는 키발급 서버와,
상기 키발급 서버로 상기 키발급 요청을 전송하여 상기 암호화된 비밀키를 수신하며, 암호화된 메시지가 수신되는 경우 상기 메시지를 상기 포장된 비밀키를 이용하여 복호화하고, 복호화된 메시지에 대해 키발급 서버로 전송하여 원본 메시지로 재복호화하는 사용자 단말
을 포함하는 암호키 관리 시스템.
A key issuing server for generating a secret key in response to the key issuing request when the key issuing request for encryption is received and transmitting the encrypted secret key by encrypting the secret key;
And transmits the key issuance request to the key issuing server to receive the encrypted secret key. When the encrypted message is received, the message issuing server decrypts the message using the packed secret key, and transmits the decrypted message to the key issuing server And re-decodes the message into an original message
The encryption key management system comprising:
제 6 항에 있어서,
상기 복호화된 메시지는,
상기 사용자 단말의 인증서가 포함되어 상기 키발급 서버로 전송되는 암호키 관리 시스템.
The method according to claim 6,
Wherein the decrypted message comprises:
Wherein the key issuing server includes the certificate of the user terminal and is transmitted to the key issuing server.
사용자 단말과 키발급 서버를 포함하는 암호키 관리 시스템에서 암호키 관리 방법으로서,
상기 사용자 단말에서 상기 키발급 서버로 암호화를 위한 키발급을 요청하는 단계와,
상기 키발급 서버에서 상기 키발급 요청에 응답하여 비밀키를 생성하는 단계와,
상기 비밀키를 다시 암호화하여 암호화된 비밀키를 생성하고 상기 사용자 단말로 상기 암호화된 비밀키를 제공하는 단계와,
상기 사용자 단말로 암호화된 메시지 수신 시 상기 암호화된 비밀키를 이용하여 상기 메시지를 복호화하는 단계와,
상기 복호화된 메시지를 다시 화이트박스 암호기반 라이브러리를 이용하여 재복호화하여 원본 메시지를 복구시키는 단계
를 포함하는 암호키 관리 방법.
A method for managing an encryption key in an encryption key management system including a user terminal and a key issuing server,
Requesting the user terminal to issue a key for encryption to the key issuing server;
Generating a secret key in response to the key issuing request at the key issuing server;
Re-encrypting the secret key to generate an encrypted secret key and providing the encrypted secret key to the user terminal;
Decrypting the message using the encrypted secret key upon receipt of an encrypted message to the user terminal;
Decrypting the decrypted message again using the white box cryptography based library to restore the original message
The method comprising the steps of:
제 8 항에 있어서,
상기 화이트박스 암호기반 라이브러리는,
상기 키발급 서버로부터 상기 암호화된 비밀키와 함께 상기 사용자 단말로 전송되는 암호키 관리 방법.
9. The method of claim 8,
The white box password based library includes:
And the encrypted secret key is transmitted from the key issuing server to the user terminal together with the encrypted secret key.
제 8 항에 있어서,
상기 비밀키를 생성하는 단계에서,
상기 키발급 서버에서 상기 비밀키와 함께 공개키를 생성하고, 상기 사용자 단말의 식별정보와 상기 공개키를 결합하여 공개키 인증서를 생성하는 암호키 관리 방법.
9. The method of claim 8,
In the step of generating the secret key,
Generating a public key together with the secret key in the key issuing server, and combining the identification information of the user terminal and the public key to generate a public key certificate.
제 8 항에 있어서,
상기 사용자 단말로부터 키업데이트 요청이 수신되는 경우 상기 키발급 서버에서 상기 사용자 단말에 대한 인증을 수행하는 단계와,
상기 키발급 서버에서 상기 사용자 단말에게 제공할 새로운 비밀키를 생성하고, 이를 재암호화하여 전송하는 단계
를 더 포함하는 암호키 관리 방법.
9. The method of claim 8,
Performing authentication for the user terminal in the key issuing server when a key update request is received from the user terminal;
Generating a new secret key to be provided to the user terminal by the key issuing server, re-encrypting it, and transmitting
Further comprising the steps of:
제 11 항에 있어서,
상기 키발급 서버에서 상기 사용자 단말로 상기 새로운 비밀키의 전송 시 화이트박스 암호기반 라이브러리를 함께 전송하는 암호키 관리 방법.
12. The method of claim 11,
And transmitting the white-box password-based library together with the transmission of the new secret key from the key issuing server to the user terminal.
사용자 단말과 키발급 서버를 포함하는 암호키 관리 시스템에서 암호키 관리 방법으로서,
상기 사용자 단말에서 상기 키발급 서버로 암호화를 위한 키발급을 요청하는 단계와,
상기 키발급 서버에서 상기 키발급 요청에 응답하여 비밀키를 생성하는 단계와,
상기 비밀키를 다시 암호화하여 암호화된 비밀키를 생성하고 상기 사용자 단말로 상기 암호화된 비밀키를 제공하는 단계와,
상기 사용자 단말로 암호화된 메시지 수신시 상기 암호화된 비밀키를 이용하여 상기 메시지를 복호화하는 단계와,
상기 복호화된 메시지에 대해 상기 키발급 서버로 전송하여 원본 메시지로 재복호화시키는 단계
을 포함하는 암호키 관리 방법.
A method for managing an encryption key in an encryption key management system including a user terminal and a key issuing server,
Requesting the user terminal to issue a key for encryption to the key issuing server;
Generating a secret key in response to the key issuing request at the key issuing server;
Re-encrypting the secret key to generate an encrypted secret key and providing the encrypted secret key to the user terminal;
Decrypting the message using the encrypted secret key upon receipt of an encrypted message to the user terminal;
Transmitting the decrypted message to the key issuing server and re-decrypting the decrypted message into an original message
The method comprising the steps of:
KR1020120139744A 2012-12-04 2012-12-04 Cryptography key management system and method thereof Withdrawn KR20140071775A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120139744A KR20140071775A (en) 2012-12-04 2012-12-04 Cryptography key management system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120139744A KR20140071775A (en) 2012-12-04 2012-12-04 Cryptography key management system and method thereof

Publications (1)

Publication Number Publication Date
KR20140071775A true KR20140071775A (en) 2014-06-12

Family

ID=51126004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120139744A Withdrawn KR20140071775A (en) 2012-12-04 2012-12-04 Cryptography key management system and method thereof

Country Status (1)

Country Link
KR (1) KR20140071775A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101714306B1 (en) * 2016-03-14 2017-03-08 동국대학교 경주캠퍼스 산학협력단 Security system and method for information of moving object
WO2020130348A1 (en) * 2018-12-18 2020-06-25 시큐리티플랫폼 주식회사 Device-specific encryption key generator and method
US11329835B2 (en) 2019-08-01 2022-05-10 Electronics And Telecommunications Research Institute Apparatus and method for authenticating IoT device based on PUF using white-box cryptography
US11449644B2 (en) 2019-08-07 2022-09-20 Samsung Electronics Co., Ltd. Electronic device operating encryption for user data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101714306B1 (en) * 2016-03-14 2017-03-08 동국대학교 경주캠퍼스 산학협력단 Security system and method for information of moving object
WO2020130348A1 (en) * 2018-12-18 2020-06-25 시큐리티플랫폼 주식회사 Device-specific encryption key generator and method
US11329835B2 (en) 2019-08-01 2022-05-10 Electronics And Telecommunications Research Institute Apparatus and method for authenticating IoT device based on PUF using white-box cryptography
US11449644B2 (en) 2019-08-07 2022-09-20 Samsung Electronics Co., Ltd. Electronic device operating encryption for user data

Similar Documents

Publication Publication Date Title
US10880100B2 (en) Apparatus and method for certificate enrollment
US12244721B2 (en) Advanced crypto token authentication
RU2584500C2 (en) Cryptographic authentication and identification method with real-time encryption
WO2020114377A1 (en) Secure distributed key management system
CN110868291B (en) Data encryption transmission method, device, system and storage medium
US10824737B1 (en) Protecting data from brute force attack
CN102986161B (en) Method and system for password protecting an application
JPH11122240A (en) Decoder, decoding method, access right authentication system and method therefor
CA2990656A1 (en) Mutual authentication of confidential communication
WO2006010007A1 (en) Systems and methods for binding a hardware component and a platform
CN110889696A (en) Storage method, device, equipment and medium for alliance block chain secret key based on SGX technology
JP2007511810A (en) Proof of execution using random number functions
US12210658B2 (en) Executing entity-specific cryptographic code in a cryptographic
CN101296083A (en) An encrypted data transmission method and system
KR20130093557A (en) System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
JP5324813B2 (en) Key generation apparatus, certificate generation apparatus, service provision system, key generation method, certificate generation method, service provision method, and program
CN116244750A (en) Secret-related information maintenance method, device, equipment and storage medium
KR20140071775A (en) Cryptography key management system and method thereof
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
JP3868218B2 (en) Content-restricted content display method and apparatus
KR20090024482A (en) Key management system and method for using content
JP7385025B2 (en) Execution of Entity-Specific Cryptographic Code in a Cryptographic Coprocessor
JP7559841B2 (en) Information processing device, program execution system, information processing method, and program
KR101146509B1 (en) Internet banking transaction system and the method that use maintenance of public security card to be mobile
KR101188659B1 (en) Method for protecting the digital contents between player and cartridges

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20121204

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid