KR20180108008A - 키 생성 장치 및 방법, 암호화 장치 및 방법 - Google Patents

키 생성 장치 및 방법, 암호화 장치 및 방법 Download PDF

Info

Publication number
KR20180108008A
KR20180108008A KR1020170037074A KR20170037074A KR20180108008A KR 20180108008 A KR20180108008 A KR 20180108008A KR 1020170037074 A KR1020170037074 A KR 1020170037074A KR 20170037074 A KR20170037074 A KR 20170037074A KR 20180108008 A KR20180108008 A KR 20180108008A
Authority
KR
South Korea
Prior art keywords
secret
public
key
user
bit string
Prior art date
Application number
KR1020170037074A
Other languages
English (en)
Other versions
KR102432356B1 (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 KR1020170037074A priority Critical patent/KR102432356B1/ko
Priority to US15/933,548 priority patent/US20180278417A1/en
Priority to CN201810243827.3A priority patent/CN108632031B/zh
Publication of KR20180108008A publication Critical patent/KR20180108008A/ko
Application granted granted Critical
Publication of KR102432356B1 publication Critical patent/KR102432356B1/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/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/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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
    • 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/3247Cryptographic 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 digital signatures

Landscapes

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

Abstract

본 발명의 일 실시예에 따른 키 생성 장치는, 키 요청 장치로부터 아이디를 포함하는 키 생성 요청을 수신하는 수신부, 상기 아이디를 임의의 비트 열로 변환하는 변환부 및 복수의 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합으로부터 상기 변환된 임의의 비트 열에 대응하는 하나 이상의 비밀 파라미터 값을 추출하고, 상기 추출된 하나 이상의 비밀 파라미터 값을 이용하여 상기 아이디에 대응하는 비밀키를 생성하는 비밀키 생성부를 포함한다.

Description

키 생성 장치 및 방법, 암호화 장치 및 방법{APPARATUS AND METHOD FOR GENERATING KEY, APPARATUS AND METHOD FOR ENCRYPTION}
본 발명의 실시예들은 암호화 및 암호화를 위한 키 생성 기술과 관련된다.
최근 컴퓨터 기술의 발달과 통신망의 급속한 확장으로 인해 컴퓨터 관련 자원과 전송되는 데이터들에 대한 보안 문제가 큰 이슈로 부각되고 있다. 이러한 문제를 해결할 수 있는 하나의 대안으로 암호 기반 시스템이 이용되고 있다. 현재까지 가장 크게 기여한 암호 시스템은 공개키 암호 시스템인데, 이와 같은 전통적 공개키 시스템에서는 사용자의 공개키를 미리 인증해야 하고 문제가 발생한 인증서는 유효기간 종료 전이라도 폐기해야 하므로 공개키의 인증서 관리에 관한 어려움이 발생한다. 따라서 개인의 아이디(identity, ID)를 기반으로 하는 아이디(ID) 기반 암호 시스템이 제안되었다.
공개키 기반 암호 시스템은 비밀키를 먼저 정하고 공개키를 계산하는 방식을 따른다. 반면, 아이디 기반 암호 시스템은 아이디를 먼저 선택하고 이로부터 비밀키를 계산하며, 비밀키 발급은 키 발행 기관(PKG, private key generator)이 아이디로부터 계산하여 안전한 채널을 통해 발급한다.
이와 관련하여, 선행 특허 문헌인 한국등록특허 제10-1301609호는 아이디 기반 암호 시스템에서 사전계산 테이블을 이용한 이산대수 계산 방법을 적용하여 아이디와 비밀키 간의 일대일로 대응하는 관계를 보장할 수 있는 비밀키를 계산하는 방법을 제안하고 있다. 그러나, 해당 선행 특허 문헌에서 제안하는 방법은 사전계산으로 인해 사용자들의 아이디에 대한 비밀키 생성을 위해 많은 시간과 많은 비용(Amazon EC2 기준 100 core로 100일)이 요구된다. 따라서 제공하는 서비스에 따라 별도의 키 생성이 필요한 경우 시간과 비용적으로 비효율적인 문제점이 있다.
한국등록특허 제10-1301609호 (2013.8.29. 공고)
본 발명의 실시예들은 아이디 기반 암호화를 위한 키 생성 장치 및 방법과 암호화 장치 및 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 키 생성 장치는, 키 요청 장치로부터 아이디를 포함하는 키 생성 요청을 수신하는 수신부, 상기 아이디를 임의의 비트 열로 변환하는 변환부 및 복수의 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합로부터 상기 변환된 임의의 비트 열에 대응하는 하나 이상의 비밀 파라미터 값을 추출하고, 상기 추출된 하나 이상의 비밀 파라미터 값을 이용하여 상기 아이디에 대응하는 비밀키를 생성하는 비밀키 생성부를 포함한다.
비밀키 생성부는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 비밀 파라미터 값을 추출할 수 있다.
상기 비밀 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 비밀 파라미터 값을 포함하고, 상기 비밀키 생성부는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 비밀 파라미터 값을 추출할 수 있다.
상기 비밀키 생성부는, 일 방향 함수를 이용하여 상기 추출된 비밀 파라미터 값으로부터 상기 아이디에 대응하는 비밀키를 생성할 수 있다.
상기 키 생성 장치는, 상기 비밀키를 상기 키 요청 장치로 제공하는 키 정보 제공부를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 키 생성 방법은, 키 요청 장치로부터 아이디를 포함하는 키 생성 요청을 수신하는 단계, 상기 아이디를 임의의 비트 열로 변환하는 단계, 복수의 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합으로부터 상기 변환된 임의의 비트 열에 대응하는 하나 이상의 비밀 파라미터 값을 추출하는 단계 및 상기 추출된 하나 이상의 비밀 파라미터 값을 이용하여 상기 아이디에 대응하는 비밀키를 생성하는 단계를 포함한다.
상기 추출하는 단계는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 비밀 파라미터 값을 추출할 수 있다.
상기 비밀 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 비밀 파라미터 값을 포함하고, 상기 추출하는 단계는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 비밀 파라미터 값을 추출할 수 있다.
상기 비밀키를 생성하는 단계는, 일 방향 함수를 이용하여 상기 추출된 비밀 파라미터 값으로부터 상기 아이디에 대응하는 비밀키를 생성할 수 있다.
상기 키 생성 방법은, 상기 비밀키를 상기 키 요청 장치로 제공하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 암호화 장치는, 키 발급 서버로부터 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합 및 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 키 정보 획득부, 상기 공개 파라미터 집합을 공유하는 외부 장치로부터 상기 외부 장치의 사용자 아이디를 수신하는 아이디 수신부, 상기 외부 장치의 사용자 아이디를 임의의 비트 열로 변환하는 변환부, 상기 공개 파라미터 집합으로부터 상기 변환된 임의의 비트 열에 대응되는 하나 이상의 공개 파라미터 값을 추출하고, 상기 추출된 공개 파라미터 값을 이용하여 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 생성하는 공개키 생성부 및 상기 공개키를 이용하여 상기 외부 장치로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 암호화부를 포함한다.
상기 공개키 생성부는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 공개 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 공개 파라미터 값을 추출할 수 있다.
상기 공개 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 공개 파라미터 값을 포함하고, 상기 공개키 생성부는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 공개 파라미터 집합으로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 공개 파라미터 값을 추출할 수 있다.
상기 공개키 생성부는, 일 방향 함수를 이용하여 상기 추출된 공개 파라미터 값으로부터 상기 아이디에 대응하는 공개키를 생성할 수 있다.
상기 암호화 장치는, 상기 외부 장치로 상기 암호화 장치의 사용자 아이디를 제공하는 아이디 제공부, 상기 외부 장치로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 전자 서명된 데이터를 수신하는 데이터 수신부 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 복호화부를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 암호화 방법은, 키 발급 서버로부터 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합 및 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 단계, 상기 공개 파라미터 집합을 공유하는 외부 장치로부터 상기 외부 장치의 사용자 아이디를 수신하는 단계, 상기 외부 장치의 사용자 아이디를 임의의 비트 열로 변환하는 단계, 상기 공개 파라미터 집합으로부터 상기 변환된 임의의 비트 열에 대응되는 하나 이상의 공개 파라미터 값을 추출하는 단계, 상기 추출된 공개 파라미터 값을 이용하여 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 생성하는 단계 및 상기 공개키를 이용하여 상기 외부 장치로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 단계를 포함한다.
상기 공개키를 생성하는 단계는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 공개 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 공개 파라미터 값을 추출할 수 있다.
상기 공개 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 공개 파라미터 값을 포함하고, 상기 공개키를 생성하는 단계는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 공개 파라미터 값을 추출할 수 있다.
상기 공개키를 생성하는 단계는, 일 방향 함수를 이용하여 상기 추출된 공개 파라미터 값으로부터 상기 아이디에 대응하는 공개키를 생성할 수 있다.
상기 암호화 방법은, 상기 외부 장치로 상기 암호화 장치의 사용자 아이디를 제공하는 단계, 상기 외부 장치로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 전자 서명된 데이터를 수신하는 단계 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 따르면, 아이디에 대응되는 암호키 생성을 위해 종래 기술에서 요구되는 사전 계산이 요구되지 않으며, 암호키 생성을 위해 이용 가능한 아이디에 대한 제약도 없으므로, 암호키 생성을 위해 요구되는 계산량과 처리 시간을 현저하게 줄일 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 암호화 시스템의 구성도
도 2는 본 발명의 일 실시예에 따른 키 생성 장치의 구성도
도 3은 비밀 파라미터 집합의 일 예를 나타낸 도면
도 4는 비밀 파라미터 값 추출의 일 예를 설명하기 위한 도면
도 5는 본 발명의 추가적인 실시예에 따른 키 생성 장치의 구성도
도 6은 도 3에 도시된 비밀 파라미터 집합에 대응되는 공개 파라미터 집합의 일 예를 나타낸 예시도
도 7은 본 발명의 일 실시예에 따른 암호화 장치의 구성도
도 8은 공개 파라미터 값 추출의 일 예를 설명하기 위한 도면
도 9는 본 발명의 일 실시예에 따른 비밀키 생성 과정을 나타낸 순서도
도 10은 본 발명의 일 실시예에 따른 비밀 파라미터 집합 및 공개 파라미터 집합 생성 과정을 나타낸 순서도
도 11은 본 발명의 일 실시예에 따른 암호화 과정을 나타낸 순서도
도 12는 본 발명의 일 실시예에 따른 복호화 과정을 나타낸 순서도
도 13은 본 발명의 일 실시예에 따른 전자 서명 생성 과정을 나타낸 순서도
도 14는 본 발명의 일 실시예에 따른 전자 서명된 데이터에 대한 검증 과정을 나타낸 순서도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 암호화 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 암호화 시스템(100)은 키 발급 서버(110) 및 사용자 단말(12, 130)을 포함한다.
키 발급 서버(110)는 예를 들어, 신뢰할 수 있는 기관이나 암호화 서비스 제공자 등에 의해 운영되는 서버로서, 사용자 단말(120, 130)의 키 생성 요청에 따라 암호화를 위한 키 정보를 생성할 수 있다. 또한, 키 발급 서버(110)는 생성된 키 정보를 안전한 채널을 통해 각 사용자 단말(120, 130)로 제공할 수 있다.
이때, 키 정보는 후술할 바와 같이 각 사용자 단말(120, 130)의 사용자 아이디에 대응되는 비밀키와 임의의 아이디에 대응되는 공개키를 생성하기 위한 복수의 공개 파라미터 값들을 포함하는 공개 파라미터 집합 중 적어도 하나를 포함할 수 있다.
한편, 각 사용자 단말(120, 130)은 키 발급 서버(110)로부터 키 정보를 제공받아 암복호화 내지는 데이터에 대한 전자 서명 및 검증을 수행하기 위한 장치일 수 있다. 예를 들어, 각 사용자 단말(120, 130)은 스마트폰, PDA, 패블릿(pablet), 데스크톱 PC, 랩톱 PC, 태블릿 PC, 서버, 센서 등과 같이 정보 처리 기능, 데이터 저장 기능 및 유선 또는 무선 네트워크를 통한 데이터 통신 기능을 구비한 다양한 형태의 컴퓨팅 장치일 수 있다.
각 사용자 단말(120, 130)은 사용자 아이디를 키 발급 서버(110)로 전송하여 키 생성을 요청할 수 있다. 또한, 각 사용자 단말(120, 130)은 키 발급 서버(110)로부터 공개 파라미터 집합과 사용자 아이디에 대응되는 비밀키를 수신할 수 있다.
한편, 키 발급 서버(110)로부터 각 사용자 단말(120, 130)로 전송되는 비밀키는 각 사용자 단말(120, 130)로부터 전송된 사용자 아이디에 따라 상이한 값을 가질 수 있다. 반면, 키 발급 서버(110)로부터 각 사용자 단말(120, 130)로 전송되는 공개 파라미터 집합은 각 사용자 단말(120, 130)로부터 전송된 사용자 아이디와 무관하게 동일할 수 있으며, 이에 따라, 각 사용자 단말(120, 130)은 동일한 공개 파라미터 집합을 공유할 수 있다.
한편, 키 발급 서버(110)로부터 비밀키 및 공개 파라미터 집합을 수신한 각 사용자 단말(120, 130)은 수신된 비밀키 및 공개 파라미터 집합을 이용하여 암복호화를 수행하거나, 데이터에 대한 전자 서명 및 전자 서명된 데이터에 대한 검증을 수행할 수 있다.
예를 들어, 사용자 단말(120)은 사용자 단말(130)의 사용자 아이디를 수신하고, 공개 파라미터 집합을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 또한, 사용자 단말(120)은 생성된 공개키를 이용하여 데이터를 암호화한 후 사용자 단말(130)로 전송할 수 있다.
이때, 사용자 단말(130)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 사용자 단말(120)로부터 수신된 암호화된 데이터를 복호화할 수 있다.
마찬가지로, 사용자 단말(130)은 사용자 단말(120)의 사용자 아이디를 수신하고, 공개 파라미터 집합을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 또한, 사용자 단말(130)은 생성된 공개키를 이용하여 데이터를 암호화한 후 사용자 단말(120)로 전송할 수 있다.
이때, 사용자 단말(120)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 사용자 단말(130)로부터 수신된 암호화된 데이터를 복호화할 수 있다.
다른 예로, 사용자 단말(120)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 데이터에 대한 전자 서명을 수행하고, 전자 서명된 데이터 및 사용자 단말(120)의 사용자 아이디를 사용자 단말(130)로 제공할 수 있다.
이때, 사용자 단말(120)로부터 전자 서명된 데이터와 사용자 단말(120)의 사용자 아이디를 수신한 사용자 단말(130)은 공개 파라미터 집합을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 이후, 사용자 단말(130)은 생성된 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행할 수 있다.
마찬가지로, 사용자 단말(130)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 데이터에 대한 전자 서명을 수행하고, 전자 서명된 데이터 및 사용자 단말(130)의 사용자 아이디를 사용자 단말(120)로 제공할 수 있다.
이때, 사용자 단말(130)로부터 전자 서명된 데이터와 사용자 단말(130)의 사용자 아이디를 수신한 사용자 단말(120)은 공개 파라미터 집합을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 이후, 사용자 단말(120)은 생성된 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 키 생성 장치의 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 키 생성 장치(200)는 수신부(210), 변환부(220), 비밀키 생성부(230) 및 키 정보 제공부(240)를 포함한다.
본 발명의 일 실시예에서, 키 생성 장치(200)는 예를 들어, 도 1에 도시된 키 발급 서버(110)의 일 구성으로 구현될 수 있다.
수신부(210)는 키 요청 장치(예를 들어, 도 1의 사용자 단말(120, 130))로부터 사용자 아이디를 포함하는 키 생성 요청을 수신한다.
변환부(220)는 키 요청 장치로부터 수신된 사용자 아이디를 임의의 비트 열로 변환한다.
구체적으로, 본 발명의 일 실시예에 따르면, 변환부(220)는 예를 들어, 해시 함수를 이용하여 키 요청 장치로부터 수신된 사용자 아이디를 기 설정된 크기의 임의의 비트 열로 변환할 수 있다. 그러나, 변환부(220)는 해시 함수 외에도 임의의 아이디로부터 기 설정된 크기의 임의의 비트 열을 생성할 수 있는 공지된 다양한 방식을 이용하여 키 요청 장치로부터 수신된 사용자 아이디를 임의의 비트 열로 변환할 수 있다.
비밀키 생성부(230)는 복수의 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합으로부터 변환부(220)에 의해 변환된 임의의 비트 열에 대응하는 하나 이상의 비밀 파라미터 값을 추출한다. 또한, 비밀키 생성부(230)는 추출된 비밀 파라미터 값을 이용하여 수신된 사용자 아이디에 대응하는 비밀키를 생성한다.
본 발명의 일 실시예에 따르면, 비밀키 생성부(230)는 변환부(220)에 의해 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 비밀 파라미터 집합으로부터 분할된 각 블록에 대응하는 복수의 비밀 파라미터 값을 추출할 수 있다.
구체적으로, 비밀키 생성부(230)는 변환부(220)에 의해 변환된 임의의 비트 열을 n비트 단위로 m개의 블록으로 분할하고, 비밀 파라미터 집합에 포함된 복수의 비밀 파라미터 값들 중에서 분할된 각 블록의 순서 및 분할된 각 블록에 포함된 n비트의 비트 열에 대응되는 비밀 파라미터 값을 추출할 수 있다.
이때, 비밀 파라미터 집합은 각각 n비트 길이의 2n 개의 서로 상이한 비트 열 중 하나의 비트 열과 m개의 블록 중 해당 비트 열을 포함하는 블록의 순서에 대응되는 2n×m개의 비밀 파라미터 값들을 포함할 수 있다.
도 3은 비밀 파라미터 집합의 일 예를 나타낸 도면이다.
도 3에 도시된 예에서, 비밀 파라미터 집합은 28×32개의 비밀 파라미터 값들을 포함하며, 각 비밀 파라미터 값들은 32개의 블록 중 하나의 블록과 서로 상이한 8비트 길이의 비트 열 중 하나의 비트 열에 대응된다.
구체적으로, S1,1은 '00000000'인 비트 열과 첫 번째 블록(즉, 1 block)에 대응되는 비밀 파라미터 값을 나타내며, S256,32는 '11111111'인 비트 열과 32 번째 블록(즉, 32 block)에 대응되는 비밀 파라미터 값을 나타낸다.
한편, 도 4는 비밀 파라미터 값 추출의 일 예를 설명하기 위한 도면이다.
도 4를 참조하면, 변환부(220)는 예를 들어, sha-256과 같은 해시 함수를 이용하여 키 요청 장치로부터 수신된 아이디를 256비트의 임의의 비트 열(410)로 변환할 수 있다.
이후, 비밀키 생성부(230)는 변환부(220)에서 변환된 비트 열(410)을 8비트 단위로 32개의 블록으로 분할한 후, 비밀 파라미터 집합(430)에 포함된 비밀 파라미터 값들 중 분할된 각 블록에 대응되는 파라미터 값을 추출할 수 있다.
구체적으로, 도 4에 도시된 예에서, 비트 열(410)로부터 분할된 32개의 블록들 중 첫 번째 블록에 포함된 비트 열은 '1111110'이므로, 비밀키 생성부(230)는 비밀 파라미터 집합(430)에서 '1 block'과 비트 열 '1111110'에 대응되는 비밀 파라미터 값인 S255,1을 추출할 수 있다.
또한, 비트 열(410)로부터 분할된 블록들 중 두 번째 블록에 포함된 비트 열은 '00000010'이므로, 비밀키 생성부(230)는 비밀 파라미터 집합(430)에서 '2 block'과 비트 열 '00000010'에 대응되는 비밀 파라미터 값인 S3,2를 추출할 수 있다.
이와 동일한 방식으로, 비밀키 생성부(230)는 비밀 파라미터 집합(430)에서 비트 열(410)로부터 분할된 32개의 블록 각각에 대응되는 비밀 파라미터 값을 추출할 수 있다.
이에 따라, 도 4에 도시된 예에서 비밀키 생성부(230)에 의해 추출되는 비밀 파라미터 값들은 {S255,1, S3,2, S1,3, …, S3,30, S256,31, S255,32}과 같다.
한편, 본 발명의 일 실시예에 따르면, 비밀키 생성부(230)는 비밀 파라미터 집합에서 추출된 비밀 파라미터 값들을 곱하거나 더하여 수신된 사용자 아이디에 대응되는 비밀키를 생성할 수 있다.
예를 들어, 비밀키 생성부(230)는 아래의 수학식 1 또는 2를 이용하여, 도 4에 도시된 예에서 추출된 비밀 파라미터 값들로부터 수신된 사용자 아이디에 대응되는 비밀키(sk)를 생성할 수 있다.
[수학식 1]
sk= S255,1+S3,2+S1,3+…+S3,30+S256,31+S255,32
[수학식 2]
sk= S255,1×S3,2×S1,3×…×S3,30×S256,31×S255,32
그러나, 비밀키 생성부(230)는 추출된 비밀 파라미터 값들의 곱 또는 덧셈 외에도, 추출된 비밀 파라미터 값들로부터 비밀키를 생성하기는 쉬우나 그 역을 구하는 것이 수학적으로 어려운 다양한 형태의 일 방향 함수(F1)들을 이용하여 비밀키를 생성할 수 있다.
다시 도 2를 참조하면, 키 정보 제공부(240)는 비밀키 생성부(230)에서 생성된 비밀키를 사용자 아이디를 전송한 키 요청 장치로 전송한다.
한편, 상술한 예에서, 수신된 아이디로부터 변환되는 임의의 비트 열의 크기, 변환된 임의의 비트 열로부터 분할되는 블록의 개수(m) 및 분할된 각 블록에 포함되는 비트 열의 크기(n)는 각각 암호학적 안전성과 연산량을 고려하여 적절한 값으로 미리 설정될 수 있다. 이하, m과 n은 동일한 의미로 해석된다.
한편, 일 실시예에서, 도 2에 도시된 수신부(210), 변환부(220), 비밀키 생성부(230) 및 키 정보 제공부(240)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 5는 본 발명의 추가적인 실시예에 따른 키 생성 장치의 구성도이다.
도 5를 참조하면, 본 발명의 추가적인 실시예에 따른 키 생성 장치(500)는 비밀 파라미터 생성부(250), 비밀 파라미터 집합 생성부(260) 및 공개 파라미터 집합 생성부(270)를 더 포함할 수 있다.
비밀 파라미터 생성부(250)는 복수의 비밀 파라미터 값을 생성한다.
이때, 비밀 파라미터 생성부(250)에서 생성되는 비밀 파라미터 값들은 임의로 생성된 값들일 수 있으며, 복수의 임의의 값을 생성할 수만 있다면 비밀 파라미터 값을 생성하기 위한 방식이 특정한 방식으로 제한되는 것은 아니다.
한편, 비밀 파라미터 집합에 포함되는 비밀 파라미터 값들의 개수는 변환부(220)에서 변환되는 임의의 비트 열의 길이 및 비밀키 생성부(230)에 의해 임의의 비트 열로부터 분할되는 블록의 수에 의해 결정될 수 있다.
구체적으로, 변환부(220)에서 변환되는 임의의 비트 열의 길이가 n×m 비트이고 해당 임의의 비트 열이 n비트 단위로 m개의 블록으로 분할되는 것으로 가정하면, 비밀 파라미터 집합에 포함되는 비밀 파라미터 값들의 개수는 2n×m개일 수 있다.
비밀 파라미터 집합 생성부(260)는 비밀 파라미터 생성부(250)에서 생성된 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합을 생성한다.
구체적으로, 비밀 파라미터 집합에 포함되는 2n×m개의 비밀 파라미터 값들 각각은 n비트 크기의 서로 상이한 2n개의 비트 열들 중 하나의 비트 열과 m개의 블록들 중 해당 비트 열을 포함하는 블록의 순서로 인덱싱될 수 있다.
예를 들어, 변환부(220)에서 변환된 임의의 비트 열의 길이가 256비트이며, 해당 임의의 비트 열이 8비트 단위로 32개의 블록으로 분할되도록 설정된 경우, 비밀 파라미터 집합 생성부(260)는 도 3 및 도 4에 도시된 예와 같이 각각 8비트 크기의 서로 상이한 28개 비트 열 중 하나 및 32개의 블록 중 하나로 인덱싱된 28×32개의 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합을 생성할 수 있다.
공개 파라미터 집합 생성부(270)는 비밀 파라미터 집합 생성부(260)에서 생성된 비밀 파라미터 집합에 포함된 복수의 비밀 파라미터 값 각각에 대응되며, 대응되는 비밀 파라미터 값과 동일하게 인덱싱된 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합을 생성한다.
구체적으로, 본 발명의 일 실시예에 따르면, 공개 파라미터 집합 생성부(270)는 비밀 파라미터 집합에 포함된 비밀 파라미터 값을 이용한 모듈러 지수 연산(modular exponentiation) 또는 스칼라 곱 연산(scalar multiplication)을 이용하여 공개 파라미터 값을 생성할 수 있다.
예를 들어, 공개 파라미터 집합 생성부(270)는 아래의 수학식 3 또는 4를 이용하여, 공개 파라미터 값을 생성할 수 있다.
[수학식 3]
R=gs mod p
이때, R은 공개 파라미터 값, S는 비밀 파라미터 값, p는 임의의 소수, g는 위수가 p인 곱셈군의 생성원(generator)을 나타낸다.
[수학식 4]
R=s·P
이때, P는 위수가 p인 덧셈군의 생성원을 나타낸다.
한편, 공개 파라미터 집합 생성부(270)는 상술한 예 외에도 비밀 파라미터 값으로부터 공개 파라미터 값을 생성하기는 쉬우나 그 역을 구하는 것이 수학적으로 어려운 다양한 형태의 일 방향 함수(F2)들을 이용하여 공개 파라미터 값을 생성할 수 있다. 이때, 공개 파라미터 값을 생성하기 위한 일 방향 함수(F2)는 상술한 비밀키를 생성하기 위한 일 방향 함수(F1)과 동일하거나 상이할 수 있다.
도 6은 도 3에 도시된 비밀 파라미터 집합에 대응되는 공개 파라미터 집합의 일 예를 나타낸 예시도이다.
도 6을 참조하면, 공개 파라미터 집합은 비밀 파라미터 집합에 포함된 비밀 파라미터 값들의 개수와 동일한 개수의 공개 파라미터 값들을 포함한다. 또한, 공개 파라미터 집합에 포함된 공개 파라미터 값들은 대응되는 비밀 파라미터 값과 동일하게 인덱싱된다.
구체적으로, 도 6에 도시된 공개 파라미터 집합에서 R1,1은 도 3에 도시된 비밀 파라미터 집합에 포함된 비밀 파라미터 값 S1,1로부터 생성된 공개 파라미터 값이며, S1,1과 동일하게 비트 열 '00000000'과 첫 번째 블록(즉, '1 block')으로 인덱싱된다.
다시 도 5를 참조하면, 키 정보 제공부(240)는 공개 파라미터 집합 생성부(270)에서 생성된 공개 파라미터 집합을 복수의 키 요청 장치로 제공할 수 있다. 이에 따라 복수의 키 요청 장치가 동일한 공개 파라미터 집합을 공유하게 된다.
한편, 일 실시예에서, 도 5에 도시된 수신부(210), 변환부(220), 비밀키 생성부(230), 키 정보 제공부(240), 비밀 파라미터 생성부(250), 비밀 파라미터 집합 생성부(260) 및 공개 파라미터 집합 생성부(270)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 7은 본 발명의 일 실시예에 따른 암호화 장치의 구성도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 암호화 장치(700)는 키 정보 획득부(710), 아이디 수신부(720), 변환부(730), 공개키 생성부(740), 암호화부(750), 아이디 제공부(760), 데이터 수신부(770) 및 복호화부(780)를 포함한다.
본 발명의 일 실시예에서, 암호화 장치(700)는 예를 들어, 도 1에 도시된 사용자 단말(120, 130)의 일 구성으로 구현될 수 있다.
키 정보 획득부(710)는 암호화 장치(700)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다. 또한, 키 정보 획득부(710)는 키 발급 서버(110)로부터 공개 파라미터 집합 및 암호화 장치(700)의 사용자 아이디에 대응되는 비밀키를 획득한다.
이때, 키 발급 서버(110)로부터 획득되는 공개 파라미터 집합 및 비밀키는 키 생성 장치(200, 500)와 관련하여 이미 상술하였으므로, 이에 대한 상세한 설명은 생략한다.
아이디 수신부(720)는 키 발급 서버(110)로부터 획득된 공개 파라미터 집합을 공유하는 외부 장치로부터 외부 장치의 사용자 아이디를 수신한다. 이때, 외부 장치는 예를 들어, 도 1에 도시된 사용자 장치(120, 130)일 수 있다.
변환부(730)는 수신된 외부 장치의 사용자 아이디를 임의의 비트 열로 변환한다.
구체적으로, 변환부(730)는 도 2 및 도 5에 도시된 변환부(220)와 동일한 방식을 이용하여 수신된 외부 장치의 사용자 아이디를 임의의 비트 열로 변환할 수 잇다.
공개키 생성부(740)는 공개 파라미터 집합에서 변환부(730)에 의해 변환된 임의의 비트 열에 대응되는 하나 이상의 공개 파라미터 값들을 추출한다. 또한, 공개키 생성부(740)는 추출된 공개 파라미터 값들을 이용하여 외부 장치의 사용자 아이디에 대응되는 공개키를 생성한다.
도 8은 공개 파라미터 값 추출의 일 예를 설명하기 위한 도면이다.
도 8을 참조하면, 변환부(730)는 예를 들어, sha-256과 같은 해시 함수를 이용하여 외부 장치로부터 수신된 아이디를 256비트의 임의의 비트 열(810)로 변환할 수 있다.
이후, 공개키 생성부(740)는 변환부(730)에서 변환된 비트 열(810)을 8비트 단위로 32개의 블록으로 분할한 후, 공개 파라미터 집합(830)에서 분할된 각 블록에 대응되는 파라미터 값을 추출할 수 있다.
구체적으로, 도시된 예에서, 분할된 블록들 중 첫 번째 블록에 포함된 비트 열은 '1111110'이므로, 공개키 생성부(740)는 공개 파라미터 집합(830)에서 '1 block'과 비트 열 '1111110'에 대응되는 비밀 파라미터 값인 R255,1을 추출할 수 있다.
또한, 분할된 블록들 중 두 번째 블록에 포함된 비트 열은 '00000010'이므로, 공개키 생성부(740)는 공개 파라미터 집합(830)에서 '2 block'과 비트 열 '00000010'에 대응되는 비밀 파라미터 값인 R3,2를 추출할 수 있다.
이와 동일한 방식으로, 공개키 생성부(740)는 공개 파라미터 집합(830)에 포함된 공개 파라미터 값들 중 임의의 비트 열(810)로부터 분할된 각 블록에 대응되는 공개 파라미터 값을 추출할 수 있다.
이에 따라, 도 8에 도시된 예에서 공개키 생성부(740)에 의해 추출되는 공개 파라미터 값들은 {R255,1, R3,2, S1,3, …, R3,30, R256,31, R255,32}과 같다.
한편, 본 발명의 일 실시예에 따르면, 공개키 생성부(740)는 공개 파라미터 집합에서 추출된 공개 파라미터 값을 곱하거나 더하여 외부 장치의 사용자 아이디에 대응되는 공개키를 생성할 수 있다.
예를 들어, 공개키 생성부(740)는 아래의 수학식 5 또는 6을 이용하여 도 8에 도시된 예에서 추출된 공개 파라미터 값들로부터 공개키(pk)를 생성할 수 있다.
[수학식 5]
pk= R255,1+R3,2+R1,3+…+R3,30+R256,31+R255,32
[수학식 6]
pk= R255,1×R3,2×R1,3×…×R3,30×R256,31×R255,32
그러나, 공개키 생성부(740)는 추출된 공개 파라미터 값들의 곱 또는 덧셈 외에도, 추출된 공개 파라미터 값들로부터 공개키를 생성하기는 쉬우나 그 역을 구하는 것이 수학적으로 어려운 다양한 형태의 일 방향 함수(F3)들을 이용하여 공개키를 생성할 수 있다. 이때, 공개키를 생성하기 위한 일 방향 함수(F3)는 상술한 비밀키를 생성하기 위한 일 방향 함수(F1) 또는 공개 파라미터 값을 생성하기 위한 일 방향 함수(F2)와 동일하거나 상이할 수 있다.
암호화부(750)는 공개키 생성부(740)에서 생성된 공개키를 이용하여 외부 장치로 전송할 데이터를 암호화하거나, 키 정보 획득부(710)에서 획득된 비밀키를 이용하여 외부 장치로 전송할 데이터에 대한 전자 서명을 생성한다.
예를 들어, 암호화부(750)는 임의의 난수 t를 선택하고, 아래의 수학식 7 및 8을 이용하여 외부 장치로 전송할 데이터 M에 대한 암호문 (C1, C2)을 생성할 수 있다.
[수학식 7]
C1= gt (mod p)
[수학식 8]
C2= pkt (mod p) XOR M
한편, 암호화부(750)에서 수행되는 암호화 내지는 전자 서명 생성 방식은 반드시 상술한 예에 한정되는 것은 아니므로, 상술한 예외에도 공지된 다양한 방식의 공개키 암호화 또는 전자 서명 방식이 이용될 수 있다.
아이디 제공부(760)는 암호화 장치(700)의 사용자 아이디를 외부 장치로 제공한다.
데이터 수신부(770)는 외부 장치로부터 암호화 장치(700)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 외부 장치의 비밀키를 이용하여 전자 서명된 데이터를 수신한다.
구체적으로, 암호화 장치(700)의 사용자 아이디를 수신한 외부 장치는 암호화 장치(700)와 공유하는 공개 파라미터 집합을 이용하여 상술한 방식과 동일한 방식으로 암호화 장치(700)의 사용자 아이디에 대응되는 공개키를 생성할 수 있으며, 생성된 공개키를 이용하여 데이터를 암호화한 후 암호화 장치(700)로 전송할 수 있다.
복호화부(780)는 외부 장치로부터 암호화된 데이터를 수신한 경우, 키 정보 획득부(710)에 의해 획득된 비밀키를 이용하여 암호화된 데이터를 복호화한다.
예를 들어, 외부 장치로부터 수신된 암호화된 데이터가 각각 상술한 수학식 7 및 8과 동일한 방식으로 생성된 암호문 C3, C4로 구성된 경우, 복호화부(780)는 키 정보 획득부(710)에 의해 획득된 비밀키(sk)를 이용하여 암호화된 데이터를 아래의 수학식 9와 같이 복호화할 수 있다.
[수학식 9]
M= C3sk (mod p) XOR C4
한편, 복호화부(780)는 외부 장치로부터 외부 장치의 비밀키를 이용하여 전자 서명된 데이터를 수신한 경우, 공개키 생성부(740)에서 생성된 외부 장치의 사용자 아이디에 대한 공개키를 이용하여 전자 서명에 대한 검증을 수행할 수 있다.
한편, 일 실시예에서, 도 7에 도시된 키 정보 획득부(710), 아이디 수신부(720), 변환부(730), 공개키 생성부(740), 암호화부(750), 아이디 제공부(760), 데이터 수신부(770) 및 복호화부(780)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 9는 본 발명의 일 실시예에 따른 비밀키 생성 과정을 나타낸 순서도이다.
도 9에 도시된 방법은 예를 들어, 도 2에 도시된 키 생성 장치(200)에 의해 수행될 수 있다.
도 9를 참조하면, 키 생성 장치(200)는 우선, 키 요청 장치로부터 키 요청 장치의 사용자 아이디를 포함하는 키 생성 요청을 수신한다(910).
이후, 키 생성 장치(200)는 수신된 사용자 아이디를 임의의 비트 열로 변환한다(920).
이후, 키 생성 장치(200)는 비밀 파라미터 집합에 포함된 복수의 비밀 파라미터 값들 중 변환된 임의의 비트 열에 대응하는 하나 이상의 비밀 파라미터 값을 추출한다(930).
이때, 본 발명의 일 실시예에 따르면, 키 생성 장치(200)는 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 비밀 파라미터 집합에 포함된 복수의 비밀 파라미터 값들 중 분할된 각 블록에 대응되는 복수의 비밀 파라미터 값을 추출할 수 있다.
이후, 키 생성 장치(200)는 추출된 비밀 파라미터 값들을 이용하여 수신된 사용자 아이디에 대응하는 비밀키를 생성한다(940).
이때, 본 발명의 일 실시예에 따르면, 키 생성 장치(200)는 일 방향 함수(F1)를 이용하여 추출된 복수의 비밀 파라미터 값으로부터 수신된 아이디에 대응하는 비밀 키를 생성할 수 있다.
이후, 키 생성 장치(200)는 생성된 비밀키를 키 요청 장치로 제공한다(950).
도 10은 본 발명의 일 실시예에 따른 비밀 파라미터 집합 및 공개 파라미터 집합 생성 과정을 나타낸 순서도이다.
도 10에 도시된 방법은 예를 들어, 도 5에 도시된 키 생성 장치(500)에 의해 수행될 수 있다.
도 10을 참조하면, 키 생성 장치(500)는 우선, 복수의 비밀 파라미터 값을 생성한다(1010).
이후, 키 생성 장치(500)는 생성된 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합을 생성한다(1020).
이때, 본 발명의 일 실시예에 따르면, 비밀 파라미터 집합에 포함되는 비밀 파라미터 값들 각각은 n비트 크기의 서로 상이한 2n개의 비트 열들 중 하나의 비트 열 및 m개의 블록들 중 해당 비트 열을 포함하는 블록의 순서로 인덱싱될 수 있다.
이후, 키 생성 장치(500)는 비밀 파라미터 집합에 포함된 복수의 비밀 파라미터 값 각각에 대응되는 복수의 공개 파라미터 값을 생성한다(1030).
이때, 본 발명의 일 실시예에 따르면, 키 생성 장치(500)는 일 방향 함수(F2)를 이용하여 비밀 파라미터 집합에 포함된 각 비밀 파라미터 값으로부터 대응되는 공개 파라미터 값을 생성할 수 있다.
이후, 키 생성 장치(500)는 생성된 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합을 생성한다(1040).
이때, 공개 파라미터 집합에 포함된 각 공개 파라미터 값은 대응되는 비밀 파라미터 값과 동일하게 인덱싱될 수 있다. 즉, 공개 파라미터 집합에 포함된 각 공개 파라미터 값은 비밀 파라미터 집합에 포함된 비밀 파라미터 값들 중 대응되는 비밀 파라미터 값과 동일한 비트 열과 블록의 순서로 인덱싱될 수 있다.
이후, 키 생성 장치(500)는 생성된 공개 파라미터 집합을 복수의 키 요청 장치로 전송한다(1050).
도 11은 본 발명의 일 실시예에 따른 암호화 과정을 나타낸 순서도이다.
도 11에 도시된 방법은 예를 들어, 도 7에 도시된 암호화 장치(700)에 의해 수행될 수 있다.
도 11을 참조하면, 암호화 장치(700)는 우선, 키 발급 서버(110)로부터 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합을 획득한다(1110).
이후, 암호화 장치(700)는 획득된 공개 파라미터 집합과 동일한 공개 파라미터 집합을 공유하는 외부 장치로부터 외부 장치의 사용자 아이디를 수신한다(1120).
이후, 암호화 장치(700)는 수신된 사용자 아이디를 임의의 비트 열로 변환한다(1130).
이후, 암호화 장치(700)는 공개 파라미터 집합에 포함된 복수의 비밀 파라미터 값들 중 변환된 임의의 비트 열에 대응되는 하나 이상의 공개 파라미터 값들을 추출한다(1140).
이때, 본 발명의 일 실시예에 따르면, 암호화 장치(700)는 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 비밀 파라미터 집합에 포함된 복수의 비밀 파라미터 값들 중 분할된 각 블록에 대응되는 복수의 비밀 파라미터 값을 추출할 수 있다.
이후, 암호화 장치(700)는 추출된 공개 파라미터 값들을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성한다(1150).
이때, 본 발명의 일 실시예에 따르면, 암호화 장치(700)는 일 방향 함수(F3)를 이용하여, 추출된 복수의 공개 파라미터 값으로부터 수신된 아이디에 대응하는 공개 키를 생성할 수 있다.
이후, 암호화 장치(700)는 생성된 공개키를 이용하여 외부 장치로 전송할 데이터를 암호화한다(1160).
도 12는 본 발명의 일 실시예에 따른 복호화 과정을 나타낸 순서도이다.
도 12에 도시된 방법은 예를 들어, 도 7에 도시된 암호화 장치(700)에 의해 수행될 수 있다.
도 12를 참조하면, 암호화 장치(700)는 우선, 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1210).
이후, 암호화 장치(700)는 키 발급 서버(110)로부터 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1220).
이후, 암호화 장치(700)는 공개 파라미터 집합을 공유하는 외부 장치로 암호화 장치(700)의 사용자 아이디를 제공한다(1230).
이후, 암호화 장치(700)는 외부 장치로부터 암호화 장치(700)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터를 수신한다(1240).
이후, 암호화 장치(800)는 획득된 비밀키를 이용하여 수신된 암호화된 데이터를 복호화한다(1250).
도 13은 본 발명의 일 실시예에 따른 전자 서명 생성 과정을 나타낸 순서도이다.
도 13에 도시된 방법은 예를 들어, 도 7에 도시된 암호화 장치(700)에 의해 수행될 수 있다.
도 13을 참조하면, 암호화 장치(700)는 우선, 암호화 장치(700)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1310).
이후, 암호화 장치(700)는 키 발급 서버(110)로부터 암호화 장치(700)의 사용자 아이디에 대응되는 비밀키를 획득한다(1320).
이후, 암호화 장치(700)는 획득된 비밀키를 이용하여 공개 파라미터 집합을 공유하는 외부 장치로 전송할 데이터에 대한 전자 서명을 생성한다(1330).
도 14는 본 발명의 일 실시예에 따른 전자 서명된 데이터에 대한 검증 과정을 나타낸 순서도이다.
도 14에 도시된 방법은 예를 들어, 도 7에 도시된 암호화 장치(700)에 의해 수행될 수 있다.
도 14를 참조하면, 암호화 장치(700)는 우선, 암호화 장치(700)는 키 발급 서버(110)로부터 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합을 획득한다(1410).
이후, 암호화 장치(700)는 공개 파라미터 집합을 공유하는 외부 장치로부터 외부 장치의 사용자 아이디 및 해당 사용자 아이디에 대응되는 비밀키를 이용하여 전자 서명된 데이터를 수신한다(1420).
이후, 암호화 장치(700)는 수신된 사용자 아이디를 임의의 비트 열로 변환한다(1430).
이후, 암호화 장치(700)는 공개 파라미터 집합에 포함된 복수의 공개 파라미터 값들 중 변환된 임의의 비트 열에 대응되는 하나 이상의 공개 파라미터 값들을 추출한다(1440).
이때, 본 발명의 일 실시예에 따르면, 암호화 장치(700)는 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 비밀 파라미터 집합에 포함된 복수의 비밀 파라미터 값들 중 분할된 각 블록에 대응되는 복수의 비밀 파라미터 값을 추출할 수 있다.
이후, 암호화 장치(700)는 추출된 공개 파라미터 값들을 이용하여 외부 장치의 사용자 아이디에 대응되는 공개키를 생성한다(1450).
이때, 본 발명의 일 실시예에 따르면, 암호화 장치(700)는 일 방향 함수(F3)를 이용하여, 추출된 복수의 공개 파라미터 값으로부터 수신된 아이디에 대응하는 공개 키를 생성할 수 있다.
이후, 암호화 장치(700)는 생성된 공개키를 이용하여 전자 서명에 대한 검증을 수행한다(1460).
한편, 도 9 내지 도 14에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 암호화 시스템
110: 키 발급 서버
120, 130: 사용자 단말
200, 500: 키 생성 장치
210: 수신부
220: 변환부
230: 비밀키 생성부
240: 키 정보 제공부
250: 비밀 파라미터 생성부
260: 비밀 파라미터 집합 생성부
260: 공개 파라미터 집합 생성부
700: 암호화 장치
710: 키 정보 획득부
720: 아이디 수신부
730: 변환부
740: 공개키 생성부
750: 암호화부
760: 아이디 제공부
770: 데이터 수신부
780: 복호화부

Claims (18)

  1. 키 요청 장치로부터 아이디를 포함하는 키 생성 요청을 수신하는 수신부;
    상기 아이디를 임의의 비트 열로 변환하는 변환부; 및
    복수의 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합으부터 상기 변환된 임의의 비트 열에 대응하는 하나 이상의 비밀 파라미터 값을 추출하고, 상기 추출된 하나 이상의 비밀 파라미터 값을 이용하여 상기 아이디에 대응하는 비밀키를 생성하는 비밀키 생성부를 포함하는 키 생성 장치.
  2. 청구항 1에 있어서,
    상기 비밀키 생성부는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 비밀 파라미터 값을 추출하는 키 생성 장치.
  3. 청구항 2에 있어서,
    상기 비밀 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 비밀 파라미터 값을 포함하고,
    상기 비밀키 생성부는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 비밀 파라미터 값을 추출하는 키 생성 장치.
  4. 청구항 1에 있어서,
    상기 비밀키 생성부는, 일 방향 함수를 이용하여 상기 추출된 비밀 파라미터 값으로부터 상기 아이디에 대응하는 비밀키를 생성하는 키 생성 장치.
  5. 키 요청 장치로부터 아이디를 포함하는 키 생성 요청을 수신하는 단계;
    상기 아이디를 임의의 비트 열로 변환하는 단계;
    복수의 비밀 파라미터 값들을 포함하는 비밀 파라미터 집합으로부터 상기 변환된 임의의 비트 열에 대응하는 하나 이상의 비밀 파라미터 값을 추출하는 단계; 및
    상기 추출된 하나 이상의 비밀 파라미터 값을 이용하여 상기 아이디에 대응하는 비밀키를 생성하는 단계를 포함하는 키 생성 방법.
  6. 청구항 5에 있어서,
    상기 추출하는 단계는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 비밀 파라미터 값을 추출하는 키 생성 방법.
  7. 청구항 6에 있어서,
    상기 비밀 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 비밀 파라미터 값을 포함하고,
    상기 추출하는 단계는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합으로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 비밀 파라미터 값을 추출하는 키 생성 방법.
  8. 청구항 5에 있어서,
    상기 비밀키를 생성하는 단계는, 일 방향 함수를 이용하여 상기 추출된 비밀 파라미터 값으로부터 상기 아이디에 대응하는 비밀키를 생성하는 키 생성 방법.
  9. 키 발급 서버로부터 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합 및 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 키 정보 획득부;
    상기 공개 파라미터 집합을 공유하는 외부 장치로부터 상기 외부 장치의 사용자 아이디를 수신하는 아이디 수신부;
    상기 외부 장치의 사용자 아이디를 임의의 비트 열로 변환하는 변환부;
    상기 공개 파라미터 집합으로부터 상기 변환된 임의의 비트 열에 대응되는 하나 이상의 공개 파라미터 값을 추출하고, 상기 추출된 공개 파라미터 값을 이용하여 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 생성하는 공개키 생성부; 및
    상기 공개키를 이용하여 상기 외부 장치로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 암호화부를 포함하는 암호화 장치.
  10. 청구항 9에 있어서,
    상기 공개키 생성부는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 공개 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 공개 파라미터 값을 추출하는 암호화 장치.
  11. 청구항 10에 있어서,
    상기 공개 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 공개 파라미터 값을 포함하고,
    상기 공개키 생성부는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 공개 파라미터 집합으로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 공개 파라미터 값을 추출하는 암호화 장치.
  12. 청구항 9에 있어서,
    상기 공개키 생성부는, 일 방향 함수를 이용하여 상기 추출된 공개 파라미터 값으로부터 상기 아이디에 대응하는 공개키를 생성하는 암호화 장치.
  13. 청구항 9에 있어서,
    상기 외부 장치로 상기 암호화 장치의 사용자 아이디를 제공하는 아이디 제공부;
    상기 외부 장치로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 전자 서명된 데이터를 수신하는 데이터 수신부; 및
    상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 복호화부를 더 포함하는 암호화 장치.
  14. 암호화 장치에서 수행되는 암호화 방법에 있어서,
    키 발급 서버로부터 복수의 공개 파라미터 값을 포함하는 공개 파라미터 집합 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 단계;
    상기 공개 파라미터 집합을 공유하는 외부 장치로부터 상기 외부 장치의 사용자 아이디를 수신하는 단계;
    상기 외부 장치의 사용자 아이디를 임의의 비트 열로 변환하는 단계;
    상기 공개 파라미터 집합으로부터 상기 변환된 임의의 비트 열에 대응되는 하나 이상의 공개 파라미터 값을 추출하는 단계;
    상기 추출된 공개 파라미터 값을 이용하여 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 생성하는 단계; 및
    상기 공개키를 이용하여 상기 외부 장치로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 단계를 포함하는 암호화 방법.
  15. 청구항 14에 있어서,
    상기 공개키를 생성하는 단계는, 상기 변환된 임의의 비트 열을 복수의 블록으로 분할하고, 상기 공개 파라미터 집합으로부터 상기 분할된 복수의 블록에 각각 대응하는 복수의 공개 파라미터 값을 추출하는 암호화 방법.
  16. 청구항 15에 있어서,
    상기 공개 파라미터 집합은, 각각 n 비트 길이의 서로 상이한 2n개의 비트 열 중 하나의 비트 열과 상기 하나의 비트 열을 포함하는 블록의 순서에 대응되는 복수의 공개 파라미터 값을 포함하고,
    상기 공개키를 생성하는 단계는, 상기 변환된 임의의 비트 열을 n비트 단위로 복수의 블록으로 분할하고, 상기 비밀 파라미터 집합로부터 상기 분할된 각 블록의 순서 및 상기 분할된 각 블록에 포함된 비트 열에 대응되는 공개 파라미터 값을 추출하는 암호화 방법.
  17. 청구항 14에 있어서,
    상기 공개키를 생성하는 단계는, 일 방향 함수를 이용하여 상기 추출된 공개 파라미터 값으로부터 상기 아이디에 대응하는 공개키를 생성하는 암호화 방법.
  18. 청구항 14에 있어서,
    상기 외부 장치로 상기 암호화 장치의 사용자 아이디를 제공하는 단계;
    상기 외부 장치로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 전자 서명된 데이터를 수신하는 단계; 및
    상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 장치의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 단계를 더 포함하는 암호화 방법.
KR1020170037074A 2017-03-23 2017-03-23 키 생성 장치 및 방법, 암호화 장치 및 방법 KR102432356B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170037074A KR102432356B1 (ko) 2017-03-23 2017-03-23 키 생성 장치 및 방법, 암호화 장치 및 방법
US15/933,548 US20180278417A1 (en) 2017-03-23 2018-03-23 Apparatus and method for generating key, and apparatus and method for encryption
CN201810243827.3A CN108632031B (zh) 2017-03-23 2018-03-23 密钥生成装置及方法、加密装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170037074A KR102432356B1 (ko) 2017-03-23 2017-03-23 키 생성 장치 및 방법, 암호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180108008A true KR20180108008A (ko) 2018-10-04
KR102432356B1 KR102432356B1 (ko) 2022-08-16

Family

ID=63583052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170037074A KR102432356B1 (ko) 2017-03-23 2017-03-23 키 생성 장치 및 방법, 암호화 장치 및 방법

Country Status (3)

Country Link
US (1) US20180278417A1 (ko)
KR (1) KR102432356B1 (ko)
CN (1) CN108632031B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101991775B1 (ko) * 2018-12-18 2019-06-21 (주)엘에스시스텍 Fpga기반의 데이터 암복호화 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3794765A1 (en) 2018-05-14 2021-03-24 Nchain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
JP2020167509A (ja) * 2019-03-29 2020-10-08 コベルコ建機株式会社 情報処理システム、情報処理方法、およびプログラム
KR102625088B1 (ko) * 2019-05-08 2024-01-16 삼성에스디에스 주식회사 데이터 공유 장치 및 방법
US20210160081A1 (en) * 2019-11-27 2021-05-27 Apple Inc. Multiple-Key Verification Information for Mobile Device Identity Document
CN113612599B (zh) * 2021-05-27 2023-09-26 国网浙江省电力有限公司台州供电公司 一种基于预置密钥本的轻量级电力物联网通信加密方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010036275A1 (en) * 2000-01-25 2001-11-01 Murata Kikai Kabushiki Kaisha And Masao Kasahara And Shigeo Tsujii Secret key generating method, common key generating method, encryption method, cryptographic communication method and cryptographic communication system
KR20070096014A (ko) * 2005-01-14 2007-10-01 베이징 이-헨센 오센티케이션 테크날러지 시오., 엘티디. 식별자 기반 키 생성 방법 및 장치
KR101301609B1 (ko) 2012-05-31 2013-08-29 서울대학교산학협력단 비밀키 생성 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101329007B1 (ko) * 2012-05-31 2013-11-12 삼성에스디에스 주식회사 아이디 기반 암호 시스템을 위한 비밀키 생성 장치 및 그 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101460541B1 (ko) * 2013-07-15 2014-11-11 고려대학교 산학협력단 사용자 아이디 기반 공개키 암호화 방법
KR20150081168A (ko) * 2014-01-03 2015-07-13 고려대학교 산학협력단 래티스에서의 아이디 기반 브로드캐스트 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958562B2 (en) * 2007-01-16 2015-02-17 Voltage Security, Inc. Format-preserving cryptographic systems
CN101340282B (zh) * 2008-05-28 2011-05-11 北京易恒信认证科技有限公司 复合公钥的生成方法
CN102170356B (zh) * 2011-05-10 2013-12-04 北京联合智华微电子科技有限公司 一种支持数字签名密钥专属控制的认证系统实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010036275A1 (en) * 2000-01-25 2001-11-01 Murata Kikai Kabushiki Kaisha And Masao Kasahara And Shigeo Tsujii Secret key generating method, common key generating method, encryption method, cryptographic communication method and cryptographic communication system
KR20070096014A (ko) * 2005-01-14 2007-10-01 베이징 이-헨센 오센티케이션 테크날러지 시오., 엘티디. 식별자 기반 키 생성 방법 및 장치
KR101301609B1 (ko) 2012-05-31 2013-08-29 서울대학교산학협력단 비밀키 생성 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101329007B1 (ko) * 2012-05-31 2013-11-12 삼성에스디에스 주식회사 아이디 기반 암호 시스템을 위한 비밀키 생성 장치 및 그 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101460541B1 (ko) * 2013-07-15 2014-11-11 고려대학교 산학협력단 사용자 아이디 기반 공개키 암호화 방법
KR20150081168A (ko) * 2014-01-03 2015-07-13 고려대학교 산학협력단 래티스에서의 아이디 기반 브로드캐스트 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101991775B1 (ko) * 2018-12-18 2019-06-21 (주)엘에스시스텍 Fpga기반의 데이터 암복호화 방법

Also Published As

Publication number Publication date
US20180278417A1 (en) 2018-09-27
CN108632031A (zh) 2018-10-09
KR102432356B1 (ko) 2022-08-16
CN108632031B (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
KR102432356B1 (ko) 키 생성 장치 및 방법, 암호화 장치 및 방법
CN101340279B (zh) 数据加密及解密方法、系统及设备
CN111510281B (zh) 一种同态加密方法及装置
US9698984B2 (en) Re-encrypted data verification program, re-encryption apparatus and re-encryption system
JP2015517685A (ja) メディアデータ処理を実装するための方法、装置およびシステム
US11528127B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
WO2018043573A1 (ja) 鍵交換方法、鍵交換システム
JP6368047B2 (ja) 鍵交換方法、鍵交換システム、鍵配送装置、代表通信装置、一般通信装置、およびプログラム
KR101621388B1 (ko) 래티스에서의 아이디 기반 브로드캐스트 방법
US20240048377A1 (en) Ciphertext conversion system, conversion key generation method, and non-transitory computer readable medium
JP6592851B2 (ja) 匿名ブロードキャスト方法、鍵交換方法、匿名ブロードキャストシステム、鍵交換システム、通信装置、プログラム
KR101790948B1 (ko) Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
KR101695361B1 (ko) 페어링 연산 및 비밀키를 이용한 술어 암호화 방법
US20170302444A1 (en) System and methods for keyed communications channel encryption and decryption
KR20140148295A (ko) 브로드캐스트 암호화 방법 및 시스템
JP2012029271A (ja) 暗号化装置、復号装置、暗号化システム、暗号化方法、プログラム
CN115412246A (zh) 不经意传输方法、装置、设备和存储介质
KR101865703B1 (ko) 키 생성 방법 및 장치, 암호화 장치 및 방법
KR20170087120A (ko) 무인증서 공개키 암호 시스템 및 수신 단말기
Dodmane A new hybrid symmetric-key technique to enhance data security of textual information using random number generator
KR101306211B1 (ko) 아이디 기반의 브로드캐스트 암호화 방법
CN111917698A (zh) 数据共享装置及其数据共享方法
CN115378588A (zh) 不经意传输方法、设备和存储介质
WO2021048341A1 (en) Methods and devices for secure data communication
JP2007013564A (ja) オンデマンド検索方法、オンデマンド検索システム及び利用端末

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