KR102474628B1 - Method for signcrytion using functional signature and computing device for executing the method - Google Patents

Method for signcrytion using functional signature and computing device for executing the method Download PDF

Info

Publication number
KR102474628B1
KR102474628B1 KR1020200161683A KR20200161683A KR102474628B1 KR 102474628 B1 KR102474628 B1 KR 102474628B1 KR 1020200161683 A KR1020200161683 A KR 1020200161683A KR 20200161683 A KR20200161683 A KR 20200161683A KR 102474628 B1 KR102474628 B1 KR 102474628B1
Authority
KR
South Korea
Prior art keywords
function
signature
key
message
value
Prior art date
Application number
KR1020200161683A
Other languages
Korean (ko)
Other versions
KR20220073530A (en
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 KR1020200161683A priority Critical patent/KR102474628B1/en
Publication of KR20220073530A publication Critical patent/KR20220073530A/en
Application granted granted Critical
Publication of KR102474628B1 publication Critical patent/KR102474628B1/en

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/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/72Signcrypting, i.e. digital signing and encrypting simultaneously

Abstract

함수 서명을 이용한 서명 암호화 방법 및 이를 수행하기 위한 컴퓨팅 장치가 개시된다. 개시되는 일 실시예에 따른 서명 암호화 방법은, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 서명 체계(Signature Scheme)의 셋업 알고리즘을 이용하여 마스터 사이닝키(master signing key: msk) 및 마스터 검증키(master verification key: mvk)의 쌍을 설정하는 동작, 마스터 사이닝키(msk) 및 함수 서명(Functional Signature)의 함수(f)를 기반으로 함수(f)에 대한 사이닝키(skf)를 생성하는 동작, 및 함수 서명의 함수(f), 함수(f)에 대한 사이닝키(skf), 및 메시지(m)에 기반하여 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작을 포함한다.A signature encryption method using a function signature and a computing device for performing the same are disclosed. A signature encryption method according to an embodiment disclosed herein is a method performed in a computing device having one or more processors and a memory for storing one or more programs executed by the one or more processors, and includes a signature scheme. Operation of setting a pair of master signing key (msk) and master verification key (mvk) using the setup algorithm of, master signing key (msk) and functional signature (Functional Signature) An operation of generating a signing key (sk f ) for function (f) based on function (f), and a function (f) of the function signature, a signing key (sk f ) for function ( f ), and a message and generating a function value (f(m)) and a final signature value (σ) for the message based on (m).

Description

함수 서명을 이용한 서명 암호화 방법 및 이를 수행하기 위한 컴퓨팅 장치{METHOD FOR SIGNCRYTION USING FUNCTIONAL SIGNATURE AND COMPUTING DEVICE FOR EXECUTING THE METHOD}Signature encryption method using function signature and computing device for performing the same

본 발명의 실시예는 서명 암호화 기술과 관련된다.Embodiments of the present invention relate to signature encryption techniques.

최근, 통신 기술이 발달하면서 디지털 메시지의 사용이 증가하고 있다. 즉, 인터넷의 발달로 언제 어디서나 이메일 또는 SNS 메시지 등을 주고 받고 있으며 인터넷을 통해 정보 수집 활동을 하고 있다. 이러한 인터넷의 이용으로 생활의 편익과 경제성 및 효율성은 증대되고 있으나, 인터넷의 개방성으로 인해 전자거래 정보의 위변조 및 개인 정보 유출 등의 위험성이 상존하고 있다. BACKGROUND OF THE INVENTION Recently, with the development of communication technology, the use of digital messages is increasing. In other words, with the development of the Internet, e-mails or SNS messages are exchanged anytime, anywhere, and information collection activities are carried out through the Internet. The use of the Internet has increased the convenience, economic feasibility, and efficiency of life, but the openness of the Internet remains at risk of forgery and falsification of electronic transaction information and leakage of personal information.

그에 따라, 보안 및 인증 통신을 위한 암호문이 사용되고 있는데 이는 메시지의 위조를 방지하고 메시지의 기밀성을 유지하기 위한 것이다. 또한, 이러한 암호화 기술과 함께 전자 서명(Electronic Signature)이 도입되고 있다. 전자 서명은 인터넷 등 통신망을 통하여 컴퓨터 시스템 간에 교환 및 전송되는 메시지 무결성을 보증하기 위한 메시지 인증과 해당 메시지에 대한 생성, 처리, 전송, 저장, 및 수신 등의 행위를 한 사용자를 보증하기 위한 사용자 인증의 기능을 겸하는 보안 기술 또는 수단으로 정의될 수 있다.Accordingly, cryptograms for secure and authenticated communication are used to prevent forgery of messages and to maintain confidentiality of messages. In addition, electronic signatures are being introduced along with these encryption technologies. Digital signatures are message authentication to ensure the integrity of messages exchanged and transmitted between computer systems through communication networks such as the Internet, and user authentication to guarantee the user who has performed actions such as creation, processing, transmission, storage, and reception of the message. It can be defined as a security technology or means that combines the functions of

한편, 전자 서명과 관련한 많은 연구들이 수행되고 있으나, 안전하면서도 편리하고 신뢰할 수 있으며 새롭고 효율적인 전자 서명의 검증과 이를 통한 전자 서명 방안이나 대책은 지속적으로 요구되고 있는 실정이다.On the other hand, many studies related to electronic signatures are being conducted, but there is a continuous demand for safe, convenient, reliable, new and efficient electronic signature verification and electronic signature measures or countermeasures through this.

한국등록특허공보 제10-1253683호(2013.04.11)Korea Patent Registration No. 10-1253683 (2013.04.11)

본 발명의 실시예는 새로운 기법의 함수 서명을 이용한 서명 암호화 방법 및 이를 수행하기 위한 컴퓨팅 장치를 제공하기 위한 것이다.An embodiment of the present invention is to provide a signature encryption method using a function signature of a new technique and a computing device for performing the same.

개시되는 일 실시예에 따른 서명 암호화 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 서명 체계(Signature Scheme)의 셋업 알고리즘을 이용하여 마스터 사이닝키(master signing key: msk) 및 마스터 검증키(master verification key: mvk)의 쌍을 설정하는 동작; 상기 마스터 사이닝키(msk) 및 함수 서명(Functional Signature)의 함수(f)를 기반으로 함수(f)에 대한 사이닝키(skf)를 생성하는 동작; 및 상기 함수 서명의 함수(f), 상기 함수(f)에 대한 사이닝키(skf), 및 메시지(m)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작을 포함한다.A signature encryption method according to an embodiment disclosed herein is a method performed in a computing device having one or more processors and a memory storing one or more programs executed by the one or more processors, and includes a signature scheme (Signature Scheme Setting a pair of master signing key (msk) and master verification key (mvk) using a setup algorithm of ); generating a signing key (sk f ) for the function (f) based on the master signing key (msk) and the function (f) of the functional signature; and a function value f(m) for the message based on the function f of the function signature, the signing key sk f for the function f, and the message m, and a final signature value ( σ).

상기 함수 서명의 함수(f)는, 암호화를 위한 공개키 또는 대칭키로 설정될 수 있다.The function (f) of the function signature may be set as a public key or a symmetric key for encryption.

상기 함수(f)에 대한 사이닝키(skf)를 생성하는 동작은, 상기 서명 체계의 셋업 알고리즘을 이용하여 사이닝키(signing key: sk) 및 검증키(verification key: vk)의 쌍을 설정하는 동작; 상기 마스터 사이닝키(msk), 상기 함수 서명의 함수(f), 및 상기 검증키(vk)에 상기 서명 체계의 서명(Signature) 알고리즘을 적용하여 상기 검증키에 대한 서명값(σvk)을 산출하는 동작; 상기 함수 서명의 함수(f), 상기 검증키(vk), 및 상기 검증키에 대한 서명값(σvk)에 기초하여 인증서(c)를 생성하는 동작; 및 상기 사이닝키(sk) 및 상기 인증서(c)에 기반하여 상기 함수(f)에 대한 사이닝키(skf)를 생성하는 동작을 포함할 수 있다.The operation of generating the signing key (sk f ) for the function (f) uses a setup algorithm of the signature scheme to generate a pair of a signing key (sk) and a verification key (vk) action to set; A signature value (σ vk ) of the verification key is obtained by applying the signature algorithm of the signature system to the master signing key (msk), the function (f) of the function signature, and the verification key ( vk ). action to calculate; generating a certificate (c) based on the function (f) of the function signature, the verification key (vk), and a signature value (σ vk ) for the verification key; and generating a signing key (sk f ) for the function (f) based on the signing key (sk) and the certificate (c).

상기 검증키에 대한 서명값(σvk)을 산출하는 동작은, 상기 마스터 사이닝키(msk)로 상기 함수(f)에 상기 검증키(vk)를 연결한(Concatenated) 값(f|vk)을 서명하여 상기 검증키에 대한 서명값(σvk)을 산출할 수 있다.The operation of calculating the signature value (σ vk ) for the verification key is a value (f|vk) obtained by concatenating the verification key (vk) to the function (f) with the master signing key (msk). It is possible to calculate a signature value (σ vk ) for the verification key by signing .

상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작은, 상기 메시지(m) 및 상기 사이닝키(sk)에 상기 서명 체계의 서명 알고리즘을 적용하여 상기 메시지에 대한 서명값(σm)을 산출하는 동작; 상기 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하는 동작; 및 상기 메시지(m), 상기 인증서(c), 및 상기 메시지에 대한 서명값(σm)에 기반하여 상기 최종 서명값(σ)을 생성하는 동작을 포함할 수 있다.The operation of generating the function value (f(m)) and the final signature value (σ) for the message is performed by applying the signature algorithm of the signature scheme to the message (m) and the signing key (sk). Calculating a signature value (σ m ) for ; applying the message (m) to the function (f) to generate a function value (f(m)) for the message; and generating the final signature value (σ) based on the message (m), the certificate (c), and the signature value (σ m ) for the message.

상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작은, 상기 함수(f)에 대한 사이닝키(skf)를 상기 사이닝키(sk)와 상기 인증서(c)로 파싱하는 동작을 더 포함할 수 있다.The operation of generating the function value (f(m)) and the final signature value (σ) for the message is to set the signing key (sk f ) for the function (f) to the signing key (sk) and the certificate. An operation of parsing with (c) may be further included.

상기 서명 암호화 방법은, 상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 다른 컴퓨팅 장치로 전송하는 동작을 더 포함하고, 상기 다른 컴퓨팅 장치는, 상기 마스터 검증키(mvk)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 검증하는 동작을 수행할 수 있다.The signature encryption method further includes transmitting the function value (f(m)) and the final signature value (σ) of the message to another computing device, wherein the other computing device includes the master verification key ( Based on mvk), an operation of verifying the function value (f(m)) and the final signature value (σ) of the message may be performed.

상기 검증하는 동작은, 상기 최종 서명값(σ)을 상기 메시지(m), 상기 인증서(c = (f, vk, σvk)), 및 상기 메시지에 대한 서명값(σm)으로 파싱하는 동작; 상기 파싱한 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하는 동작; 및 상기 생성한 메시지에 대한 함수 값(f(m))이 상기 컴퓨팅 장치로부터 수신한 메시지에 대한 함수 값(f(m))과 일치하는지를 확인하는 동작을 포함할 수 있다.The verifying operation may include parsing the final signature value σ into the message m, the certificate c = (f, vk, σ vk ), and the signature value σ m of the message. ; generating a function value (f(m)) for the message by applying the parsed message (m) to the function (f); and checking whether the function value f(m) of the generated message matches the function value f(m) of the message received from the computing device.

상기 검증하는 동작은, 상기 메시지(m) 및 상기 검증키(vk)를 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 메시지에 대한 서명값(σm)을 검증하는 동작을 더 포함할 수 있다.The verifying operation may further include verifying the signature value σ m of the parsed message by applying the message m and the verification key vk to a verification algorithm of the signature scheme. .

상기 검증하는 동작은, 상기 마스터 검증키(mvk) 및 상기 검증키(vk)에 함수(f)를 연결한(Concatenated) 값(f|vk)을 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 검증키에 대한 서명값(σvk)을 검증하는 동작을 더 포함할 수 있다.The verifying operation is performed by applying a value (f|vk) obtained by concatenating a function (f) to the master verification key (mvk) and the verification key (vk) to the verification algorithm of the signature scheme and performing the parsing. An operation of verifying the signature value (σ vk ) of the verification key may be further included.

개시되는 일 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서들; 메모리; 및 하나 이상의 프로그램들을 포함하고, 상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며, 상기 하나 이상의 프로그램들은, 서명 체계(Signature Scheme)의 셋업 알고리즘을 이용하여 마스터 사이닝키(master signing key: msk) 및 마스터 검증키(master verification key: mvk)의 쌍을 설정하기 위한 명령; 상기 마스터 사이닝키(msk) 및 함수 서명(Functional Signature)의 함수(f)를 기반으로 함수(f)에 대한 사이닝키(skf)를 생성하기 위한 명령; 및 상기 함수 서명의 함수(f), 상기 함수(f)에 대한 사이닝키(skf), 및 메시지(m)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하기 위한 명령을 포함한다.A computing device according to an embodiment disclosed herein includes one or more processors; Memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs are mastered using a setup algorithm of a signature scheme. instructions for establishing a pair of master signing key (msk) and master verification key (mvk); a command for generating a signing key (sk f ) for the function (f) based on the master signing key (msk) and the function (f) of the functional signature; and a function value f(m) for the message based on the function f of the function signature, the signing key sk f for the function f, and the message m, and a final signature value ( σ).

상기 함수 서명의 함수(f)는, 암호화를 위한 공개키 또는 대칭키로 설정될 수 있다.The function (f) of the function signature may be set as a public key or a symmetric key for encryption.

상기 함수(f)에 대한 사이닝키(skf)를 생성하기 위한 명령은, 상기 서명 체계의 셋업 알고리즘을 이용하여 사이닝키(signing key: sk) 및 검증키(verification key: vk)의 쌍을 설정하기 위한 명령; 상기 마스터 사이닝키(msk), 상기 함수 서명의 함수(f), 및 상기 검증키(vk)에 상기 서명 체계의 서명(Signature) 알고리즘을 적용하여 상기 검증키에 대한 서명값(σvk)을 산출하기 위한 명령; 상기 함수 서명의 함수(f), 상기 검증키(vk), 및 상기 검증키에 대한 서명값(σvk)에 기초하여 인증서(c)를 생성하기 위한 명령; 및 상기 사이닝키(sk) 및 상기 인증서(c)에 기반하여 상기 함수(f)에 대한 사이닝키(skf)를 생성하기 위한 명령을 포함할 수 있다.The command for generating the signing key (sk f ) for the function (f) is a pair of a signing key (sk) and a verification key (vk) using the setup algorithm of the signature scheme command to set; A signature value (σ vk ) of the verification key is obtained by applying the signature algorithm of the signature system to the master signing key (msk), the function (f) of the function signature, and the verification key ( vk ). command to calculate; an instruction for generating a certificate (c) based on the function (f) of the function signature, the verification key (vk), and a signature value (σ vk ) for the verification key; and a command for generating a signing key (sk f ) for the function (f) based on the signing key (sk) and the certificate (c).

상기 검증키에 대한 서명값(σvk)을 산출하기 위한 명령은, 상기 마스터 사이닝키(msk)로 상기 함수(f)에 상기 검증키(vk)를 연결한(Concatenated) 값(f|vk)을 서명하여 상기 검증키에 대한 서명값(σvk)을 산출할 수 있다.The command for calculating the signature value (σ vk ) for the verification key is the concatenated value (f|vk) of the verification key (vk) to the function (f) with the master signing key (msk). ) can be signed to calculate the signature value (σ vk ) for the verification key.

상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하기 위한 명령은, 상기 메시지(m) 및 상기 사이닝키(sk)에 상기 서명 체계의 서명 알고리즘을 적용하여 상기 메시지에 대한 서명값(σm)을 산출하기 위한 명령; 상기 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하기 위한 명령; 및 상기 메시지(m), 상기 인증서(c), 및 상기 메시지에 대한 서명값(σm)에 기반하여 상기 최종 서명값(σ)을 생성하기 위한 명령을 포함할 수 있다.The command for generating the function value (f(m)) and the final signature value (σ) for the message applies the signature algorithm of the signature scheme to the message (m) and the signing key (sk), instructions for calculating a signature value (σ m ) for the message; instructions for applying the message (m) to the function (f) to produce a function value (f(m)) for the message; and a command for generating the final signature value σ based on the message m, the certificate c, and the signature value σ m for the message.

상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하기 위한 명령은, 상기 함수(f)에 대한 사이닝키(skf)를 상기 사이닝키(sk)와 상기 인증서(c)로 파싱하기 위한 명령을 더 포함할 수 있다.The command for generating the function value (f(m)) and the final signature value (σ) for the message includes the signing key (sk f ) for the function (f) and the signing key (sk ) . It may further include a command for parsing with certificate (c).

상기 하나 이상의 프로그램들은, 상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 다른 컴퓨팅 장치로 전송하기 위한 명령을 더 포함하고, 상기 다른 컴퓨팅 장치는, 상기 마스터 검증키(mvk)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 검증할 수 있다.The one or more programs further include instructions for transmitting the function value (f(m)) and the final signature value (σ) for the message to another computing device, wherein the other computing device, the master verification key Based on (mvk), the function value f(m) for the message and the final signature value σ can be verified.

상기 다른 컴퓨팅 장치는, 상기 최종 서명값(σ)을 상기 메시지(m), 상기 인증서(c = (f, vk, σvk)), 및 상기 메시지에 대한 서명값(σm)으로 파싱하고, 상기 파싱한 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하며, 상기 생성한 메시지에 대한 함수 값(f(m))이 상기 컴퓨팅 장치로부터 수신한 메시지에 대한 함수 값(f(m))과 일치하는지를 확인할 수 있다.The other computing device parses the final signature value (σ) into the message (m), the certificate (c = (f, vk, σ vk )), and the signature value (σ m ) for the message, The function value (f(m)) for the message is generated by applying the parsed message (m) to the function (f), and the function value (f(m)) for the generated message is the computing device It can be checked whether it matches the function value (f(m)) for the message received from .

상기 다른 컴퓨팅 장치는, 상기 메시지(m) 및 상기 검증키(vk)를 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 메시지에 대한 서명값(σm)을 검증할 수 있다.The other computing device may verify the signature value σ m of the parsed message by applying the message m and the verification key vk to a verification algorithm of the signature scheme.

상기 다른 컴퓨팅 장치는, 상기 마스터 검증키(mvk) 및 상기 검증키(vk)에 함수(f)를 연결한(Concatenated) 값(f|vk)을 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 검증키에 대한 서명값(σvk)을 검증할 수 있다.The other computing device applies a value (f|vk) obtained by concatenating a function (f) to the master verification key (mvk) and the verification key (vk) to the verification algorithm of the signature scheme to perform the parsing. The signature value (σ vk ) for the verification key can be verified.

개시되는 실시예에 의하면, 함수 서명의 함수(f)를 공개키 또는 대칭키로 설정하고, 함수(f)에 대한 사이닝키(skf)로 메시지(m)를 서명하여 메시지에 대한 함수 값(f(m))(즉, 메시지(m)를 공개키 또는 대칭키인 함수(f)로 암호화한 값) 및 최종 서명값(σ)을 생성함으로써, 메시지를 암호화함과 동시에 서명을 수행할 수 있게 된다.According to the disclosed embodiment, the function (f) of the function signature is set as a public key or a symmetric key, and the message (m) is signed with the signing key (sk f ) for the function (f), and the function value ( f(m)) (that is, a value obtained by encrypting the message (m) with a function (f), which is a public key or a symmetric key) and a final signature value (σ), the message can be encrypted and signed at the same time. there will be

도 1은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 본 발명의 일 실시예에 따른 암호화 서명 처리 방법을 설명하기 위한 흐름도
도 3은 개시되는 일 실시예에서, 함수에 대한 사이닝키를 생성하는 과정을 나타낸 흐름도
도 4는 개시되는 일 실시예에서, 메시지에 대한 함수 값 및 최종 서명값을 생성하는 과정을 나타낸 흐름도
도 5는 일 실시예에 따른 다른 컴퓨팅 장치에서 마스터 검증키에 기반하여 메시지에 대한 함수 값 및 최종 서명값을 검증하는 과정을 나타낸 흐름도
1 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments;
2 is a flowchart for explaining a method for processing a cryptographic signature according to an embodiment of the present invention.
3 is a flowchart illustrating a process of generating a signing key for a function in an embodiment disclosed herein;
4 is a flowchart illustrating a process of generating a function value and a final signature value for a message in an embodiment disclosed herein.
5 is a flowchart illustrating a process of verifying a function value and a final signature value for a message based on a master verification key in another computing device according to an embodiment.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The detailed descriptions that follow are provided to provide a comprehensive understanding of the methods, devices and/or systems described herein. However, this is only an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to the intention or custom of a user or operator. Therefore, the definition should be made based on the contents throughout this specification. Terminology used in the detailed description is only for describing the embodiments of the present invention and should in no way be limiting. Unless expressly used otherwise, singular forms of expression include plural forms. In this description, expressions such as "comprising" or "comprising" are intended to indicate any characteristic, number, step, operation, element, portion or combination thereof, one or more other than those described. It should not be construed to exclude the existence or possibility of any other feature, number, step, operation, element, part or combination thereof.

이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다. 특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다. In the following description, terms such as "transmission", "communication", "transmission", "reception" and other similar meanings of signals or information refer not only to direct transmission of signals or information from one component to another, but also to It also includes passing through other components. In particular, "transmitting" or "transmitting" a signal or information as a component indicates the final destination of the signal or information, and does not mean a direct destination. The same is true for "reception" of signals or information. Also, in this specification, two or more data or information being “related” means that when one data (or information) is obtained, at least a portion of other data (or information) can be obtained based thereon.

또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Also, terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention.

도 1은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.1 is a block diagram illustrating and illustrating a computing environment 10 including a computing device suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 본 발명의 일 실시예에 따른 암호화 서명 처리를 수행하기 위한 장치일 수 있다.The illustrated computing environment 10 includes a computing device 12 . In one embodiment, computing device 12 may be a device for performing cryptographic signature processing in accordance with one embodiment of the present invention.

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one processor 14 , a computer readable storage medium 16 and a communication bus 18 . Processor 14 may cause computing device 12 to operate according to the above-mentioned example embodiments. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16 . The one or more programs may include one or more computer-executable instructions, which when executed by processor 14 are configured to cause computing device 12 to perform operations in accordance with an illustrative embodiment. It can be.

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. Program 20 stored on computer readable storage medium 16 includes a set of instructions executable by processor 14 . In one embodiment, computer readable storage medium 16 includes memory (volatile memory such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other forms of storage media that can be accessed by computing device 12 and store desired information, or any suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communications bus 18 interconnects various other components of computing device 12, including processor 14 and computer-readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . An input/output interface 22 and a network communication interface 26 are connected to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output devices 24 include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or a photographing device. input devices, and/or output devices such as display devices, printers, speakers, and/or network cards. The exemplary input/output device 24 may be included inside the computing device 12 as a component constituting the computing device 12, or may be connected to the computing device 12 as a separate device distinct from the computing device 12. may be

도 2는 본 발명의 일 실시예에 따른 암호화 서명 처리 방법(200)을 설명하기 위한 흐름도이다. 전술한 바와 같이, 본 발명의 일 실시예에 따른 암호화 서명 처리 방법(200)은 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치(12)에서 수행될 수 있다. 이를 위하여, 암호화 서명 처리 방법(200)은 하나 이상의 컴퓨터 실행 가능 명령어를 포함하는 프로그램 내지 소프트웨어의 형태로 구현되어 상기 메모리상에 저장될 수 있다. 2 is a flowchart illustrating a method 200 for processing an encryption signature according to an embodiment of the present invention. As described above, the cryptographic signature processing method 200 according to an embodiment of the present invention is a computing device 12 having one or more processors and a memory for storing one or more programs executed by the one or more processors. ) can be performed. To this end, the cryptographic signature processing method 200 may be implemented in the form of a program or software including one or more computer executable instructions and stored on the memory.

또한, 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.In addition, although the method is divided into a plurality of steps in the illustrated flowchart, at least some of the steps are performed in reverse order, combined with other steps, performed together, omitted, performed in detailed steps, or shown. One or more steps not yet performed may be added and performed.

단계 202에서, 컴퓨팅 장치(12)는 서명 체계(Signature Scheme)를 이용하여 마스터 키 쌍을 설정한다. 서명 체계는 기 공지된 기술이므로 이에 대한 자세한 설명은 생략하기로 한다. 여기서, 마스터 키 쌍은 마스터 사이닝키(master signing key: msk) 및 마스터 검증키(master verification key: mvk)를 포함할 수 있다. In step 202, the computing device 12 establishes a master key pair using a signature scheme. Since the signature system is a known technology, a detailed description thereof will be omitted. Here, the master key pair may include a master signing key (msk) and a master verification key (mvk).

예시적인 실시예에서, 컴퓨팅 장치(12)는 서명 체계의 셋업(Setup) 알고리즘을 이용하여 마스터 사이닝키 및 마스터 검증키의 쌍을 설정할 수 있다. 이때, 단계 202의 과정은 아래 수학식 1로 표현할 수 있다. In an exemplary embodiment, computing device 12 may establish a pair of master signing key and master verification key using a setup algorithm of the signature scheme. At this time, the process of step 202 can be expressed by Equation 1 below.

(수학식 1)(Equation 1)

(msk, mvk) ← Sig.Setup(1k)(msk, mvk) ← Sig.Setup(1 k )

단계 204에서, 컴퓨팅 장치(12)는 마스터 사이닝키(msk) 및 함수 서명의 함수(f)를 기반으로 함수(f)에 대한 사이닝키(skf)를 생성한다. In step 204, the computing device 12 generates a signing key (sk f ) for the function (f) based on the master signing key (msk) and the function (f) of the function signature.

여기서, 함수 서명(Functional Signature)은 비밀키의 복호화 권한을 제한하여 비밀키를 가진 사람이 암호문의 모든 정보에 접근할 수 있는 것이 아니라 암호문의 특정 함수 값에만 접근할 수 있도록 하고, 데이터에 대한 함수 연산의 무결성 기능을 제공하며, 메시지가 정당한 함수를 사용하여 연산이 수행되었음을 검증할 수 있는 서명 기법의 일종이다. Here, Functional Signature restricts the decryption authority of the secret key so that the person who has the secret key can access only specific function values of the ciphertext, not all information of the ciphertext, and functions for data It provides operation integrity function and is a kind of signature technique that can verify that the operation was performed using a legitimate function in the message.

개시되는 실시예에서, 함수 서명의 함수(f)는 암호화를 위한 공개키 또는 대칭키로 설정될 수 있다. 이때, 단계 204는 공개키 또는 대칭키인 함수(f)에 대응하는 사이닝키를 생성하는 과정이 된다. 함수(f)에 대한 사이닝키(skf)를 생성하는 구체적인 과정은 도 3을 참조하여 후술하기로 한다.In the disclosed embodiment, the function (f) of the function signature can be set as a public key or symmetric key for encryption. At this time, step 204 is a process of generating a signing key corresponding to the function f, which is a public key or a symmetric key. A detailed process of generating the signing key sk f for the function f will be described later with reference to FIG. 3 .

도 3은 개시되는 일 실시예에서, 함수(f)에 대한 사이닝키(skf)를 생성하는 과정을 나타낸 흐름도이다. 3 is a flowchart illustrating a process of generating a signing key (sk f ) for a function (f) in an embodiment disclosed herein.

단계 302에서, 컴퓨팅 장치(12)는 서명 체계(Signature Scheme)의 셋업 알고리즘를 이용하여 새로운 키 쌍(즉, 사용자의 키 쌍)을 설정한다. 즉, 컴퓨팅 장치(12)는 마스터 사이닝키 및 마스터 검증키의 쌍을 설정할 때 사용한 서명 체계의 셋업 알고리즘를 이용하여 새로운 키 쌍을 설정할 수 있다. In step 302, the computing device 12 establishes a new key pair (ie, a user's key pair) using a setup algorithm of a signature scheme. That is, the computing device 12 may set a new key pair using the setup algorithm of the signature scheme used when setting the pair of master signing key and master verification key.

여기서, 새로운 키 쌍은 사이닝키(signing key: sk) 및 검증키(verification key: vk)를 포함할 수 있다. 단계 302의 과정은 아래 수학식 2로 표현할 수 있다. Here, the new key pair may include a signing key (sk) and a verification key (vk). The process of step 302 can be expressed by Equation 2 below.

(수학식 2)(Equation 2)

(sk, vk) ← Sig.Setup(1k)(sk, vk) ← Sig.Setup(1 k )

단계 304에서, 컴퓨팅 장치(12)는 마스터 사이닝키(msk), 함수 서명(Functional Signature)의 함수(f), 및 검증키(vk)에 서명 체계의 서명(Signature) 알고리즘을 적용하여 검증키에 대한 서명값(σvk)을 산출한다. In step 304, the computing device 12 applies the signature algorithm of the signature scheme to the master signing key (msk), the function (f) of the function signature (Functional Signature), and the verification key (vk) to obtain a verification key. Calculate the signature value (σ vk ) for

예시적인 실시예에서, 컴퓨팅 장치(12)는 마스터 사이닝키(msk)로 함수(f)에 검증키(vk)를 연결한(Concatenated) 값(f|vk)을 서명(Signature)하여 검증키에 대한 서명값(σvk)을 산출할 수 있다. 여기서, 함수(f)는 공개키 또는 대칭키로 사용될 수 있다. 이 경우, 공개키 또는 대칭키에 검증키(vk)를 연결한 값을 마스터 사이닝키(msk)로 서명하여 검증키에 대한 서명값(σvk)을 산출할 수 있다. 단계 304의 과정은 아래 수학식 3으로 표현할 수 있다. In an exemplary embodiment, the computing device 12 signs the value f|vk concatenated with the verification key vk to the function f with the master signing key msk to sign the verification key. A signature value (σ vk ) for can be calculated. Here, function f can be used as a public key or a symmetric key. In this case, a value obtained by connecting the verification key (vk) to the public key or symmetric key may be signed with the master signing key (msk) to calculate the signature value (σ vk ) for the verification key. The process of step 304 can be expressed by Equation 3 below.

(수학식 3)(Equation 3)

σvk ← Sig.Sign(msk, f|vk)σ vk ← Sig. Sign(msk, f|vk)

단계 306에서, 컴퓨팅 장치(12)는 함수 서명의 함수(f), 검증키(vk), 및 검증키에 대한 서명값(σvk)에 기초하여 인증서(c)를 생성한다. 단계 306의 과정은 아래 수학식 4로 표현할 수 있다. In step 306, the computing device 12 generates the certificate c based on the function f of the function signature, the verification key vk, and the signature value σ vk for the verification key. The process of step 306 can be expressed by Equation 4 below.

(수학식 4)(Equation 4)

c = (f, vk, σvk)c = (f, vk, σ vk )

단계 308에서, 컴퓨팅 장치(12)는 사이닝키(sk) 및 인증서(c)에 기반하여 함수(f)에 대한 사이닝키(skf)를 생성한다. 단계 308의 과정은 아래 수학식 5로 표현할 수 있다. In step 308 , the computing device 12 generates a signing key (sk f ) for the function (f) based on the signing key (sk) and the certificate (c). The process of step 308 can be expressed by Equation 5 below.

(수학식 5)(Equation 5)

skf = (sk, c)sk f = (sk, c)

다시 도 2를 참조하면, 단계 206에서 컴퓨팅 장치(12)는 함수 서명의 함수(f), 함수(f)에 대한 사이닝키(skf), 및 메시지(m)에 기반하여 메시지에 대한 함수 값(f(m))(즉, 메시지(m)를 공개키 또는 대칭키인 함수(f)로 암호화한 값) 및 최종 서명값(σ)을 생성한다. Referring again to FIG. 2 , in step 206, computing device 12 determines a function for a message based on function f of the function signature, a signing key sk f for function f, and a message m. A value (f(m)) (ie, a value obtained by encrypting the message (m) with a public key or a symmetric key function (f)) and a final signature value (σ) are generated.

여기서, 함수(f)가 공개키인 경우, RSA(Rivest Shamir Adleman) 기반의 공개키 암호화 방식을 사용할 수 있다. 또한, 함수(f)가 대칭키인 경우, AES(Advanced Encryption Standard Algorithm) 기반의 대칭키 암호화 방식을 사용할 수 있다. Here, when the function f is a public key, a public key encryption method based on Rivest Shamir Adleman (RSA) may be used. In addition, when the function f is a symmetric key, a symmetric key encryption method based on AES (Advanced Encryption Standard Algorithm) may be used.

메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 구체적인 과정은 도 4를 참조하여 후술하기로 한다. 도 4는 개시되는 일 실시예에서, 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 과정을 나타낸 흐름도이다. A detailed process of generating the function value f(m) and the final signature value σ for the message will be described later with reference to FIG. 4 . 4 is a flowchart illustrating a process of generating a function value (f(m)) and a final signature value (σ) for a message, in one disclosed embodiment.

단계 402에서, 컴퓨팅 장치(12)는 메시지(m) 및 사이닝키(sk)에 서명 체계의 서명(Signature) 알고리즘을 적용하여 메시지에 대한 서명값(σm)을 산출한다. 여기서, 컴퓨팅 장치(12)는 함수(f)에 대한 사이닝키(skf)를 사이닝키(sk)와 인증서(c)로 파싱할 수 있다. In step 402, the computing device 12 calculates a signature value σ m of the message by applying a signature algorithm of the signature system to the message m and the signing key sk. Here, the computing device 12 may parse the signing key sk f for the function f into the signing key sk and the certificate c.

예시적인 실시예에서, 컴퓨팅 장치(12)는 사이닝키(sk)로 메시지(m)를 서명(Signature)하여 메시지에 대한 서명값(σm)을 산출할 수 있다. 단계 402의 과정은 아래 수학식 6으로 표현할 수 있다. In an exemplary embodiment, the computing device 12 may sign the message m with the signing key sk to calculate the signature value σ m for the message. The process of step 402 can be expressed by Equation 6 below.

(수학식 6)(Equation 6)

σm ← Sig.Sign(sk, m)σ m ← Sig. Sign(sk, m)

단계 404에서, 컴퓨팅 장치(12)는 메시지(m)를 함수(f)에 적용하여 메시지에 대한 함수 값(f(m))을 생성하고, 메시지(m), 인증서(c), 및 메시지에 대한 서명값(σm)에 기반하여 최종 서명값(σ)을 생성한다. 여기서, 최종 서명값(σ)은 아래 수학식 7로 표현될 수 있다. At step 404, computing device 12 applies message m to function f to generate a function value f(m) for the message, and to message m, certificate c, and message The final signature value (σ) is generated based on the signature value (σ m ) for Here, the final signature value σ can be expressed by Equation 7 below.

(수학식 7)(Equation 7)

σ = (m, c, σm)σ = (m, c, σ m )

다시 도 2를 참조하면, 단계 208에서 컴퓨팅 장치(12)는 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 다른 컴퓨팅 장치(12)로 전송한다. 그러면, 다른 컴퓨팅 장치(12)는 마스터 검증키(mvk)에 기반하여 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 검증할 수 있다. Referring back to FIG. 2 , at step 208 , computing device 12 transmits the function value f(m) and the final signature value σ for the message to another computing device 12 . Then, the other computing device 12 can verify the function value f(m) and the final signature value σ for the message based on the master verification key mvk.

다른 컴퓨팅 장치(12)가 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 검증하는 과정은 도 5를 참조하여 후술하기로 한다. 도 5는 일 실시예에 따른 다른 컴퓨팅 장치(12)에서 마스터 검증키(mvk)에 기반하여 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 검증하는 과정을 나타낸 흐름도이다. A process of verifying the function value f(m) and the final signature value σ of the message by the other computing device 12 will be described later with reference to FIG. 5 . 5 is a flowchart illustrating a process of verifying a function value (f(m)) and a final signature value (σ) for a message based on a master verification key (mvk) in another computing device 12 according to an embodiment. .

단계 502에서, 다른 컴퓨팅 장치(12)는 최종 서명값(σ)을 메시지(m), 인증서(c = (f, vk, σvk)), 및 메시지에 대한 서명값(σm)으로 파싱한다. 단계 502의 과정은 아래 수학식 8로 표현할 수 있다. In step 502, another computing device 12 parses the final signature value σ into message m, certificate c = (f, vk, σ vk ), and signature value for message σ m . The process of step 502 can be expressed by Equation 8 below.

(수학식 8)(Equation 8)

σ = (m, c = (f, vk, σvk), σm)σ = (m, c = (f, vk, σ vk ), σ m )

단계 504에서, 다른 컴퓨팅 장치(12)는 파싱한 메시지(m)를 함수(f)에 적용하여 메시지에 대한 함수 값(f(m))을 생성하며, 생성한 메시지에 대한 함수 값(f(m))이 컴퓨팅 장치(12)로부터 수신한 메시지에 대한 함수 값(f(m))과 일치하는지를 확인하여 검증한다.In step 504, the other computing device 12 applies the parsed message m to a function f to generate a function value f(m) for the message, and a function value f(m) for the generated message. m)) is matched with the function value f(m) of the message received from the computing device 12 to verify.

단계 506에서, 다른 컴퓨팅 장치(12)는 메시지(m) 및 검증키(vk)를 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 메시지에 대한 서명값(σm)을 검증한다. 단계 506의 과정은 아래 수학식 9로 표현할 수 있으며, 수학식 9의 값이 1이면 상기 파싱한 메시지에 대한 서명값(σm)이 유효함을 확인하게 된다.In step 506, the other computing device 12 verifies the signature value σ m of the parsed message by applying the message m and the verification key vk to the verification algorithm of the signature scheme. The process of step 506 can be expressed by Equation 9 below. If the value of Equation 9 is 1, it is confirmed that the signature value (σ m ) of the parsed message is valid.

(수학식 9)(Equation 9)

Sig.Verify(vk, m, σm) → 1Sig.Verify(vk, m, σ m ) → 1

단계 508에서, 다른 컴퓨팅 장치(12)는 마스터 검증키(mvk), 검증키(vk), 및 함수(f)를 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 검증키에 대한 서명값(σvk)을 검증한다. 구체적으로, 다른 컴퓨팅 장치(12)는 마스터 검증키(mvk) 및 검증키(vk)에 함수(f)를 연결한(Concatenated) 값(f|vk)을 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 검증키에 대한 서명값(σvk)을 검증할 수 있다. 단계 508의 과정은 아래 수학식 10로 표현할 수 있으며, 수학식 10의 값이 1이면 상기 파싱한 검증키에 대한 서명값(σvk)이 유효함을 확인하게 된다.In step 508, the other computing device 12 applies the master verification key (mvk), the verification key (vk), and the function (f) to the verification algorithm of the signature scheme to obtain a signature value (σ vk) for the parsed verification key. ) to verify. Specifically, the other computing device 12 applies the value (f|vk) obtained by concatenating the function (f) to the master verification key (mvk) and the verification key (vk) to the verification algorithm of the signature scheme to perform the parsing. The signature value (σ vk ) for one verification key can be verified. The process of step 508 can be expressed by Equation 10 below. If the value of Equation 10 is 1, it is confirmed that the signature value (σ vk ) for the parsed verification key is valid.

개시되는 실시예에서, 서명 알고리즘은 DSA(Digital Signature Algorithm), ECDSA(Elliptic Curve Digital Signature Algorithm), RSA(Rivest Shamir Adleman), ElGamal 등이 사용될 수 있다. In the disclosed embodiment, digital signature algorithms (DSA), elliptic curve digital signature algorithms (ECDSA), Rivest Shamir Adleman (RSA), ElGamal, and the like may be used.

개시되는 실시예에 의하면, 함수 서명의 함수(f)를 공개키 또는 대칭키로 설정하고, 함수(f)에 대한 사이닝키(skf)로 메시지(m)를 서명하여 메시지에 대한 함수 값(f(m))(즉, 메시지(m)를 공개키 또는 대칭키인 함수(f)로 암호화한 값) 및 최종 서명값(σ)을 생성함으로써, 메시지를 암호화함과 동시에 서명을 수행할 수 있게 된다.According to the disclosed embodiment, the function (f) of the function signature is set as a public key or a symmetric key, and the message (m) is signed with the signing key (sk f ) for the function (f), and the function value ( f(m)) (that is, a value obtained by encrypting the message (m) with a function (f), which is a public key or a symmetric key) and a final signature value (σ), the message can be encrypted and signed at the same time. there will be

이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Although representative embodiments of the present invention have been described in detail above, those skilled in the art will understand that various modifications are possible to the above-described embodiments without departing from the scope of the present invention. . Therefore, the scope of the present invention should not be limited to the described embodiments and should not be defined, and should be defined by not only the claims to be described later, but also those equivalent to these claims.

10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
10: Computing environment
12: computing device
14: Processor
16: computer readable storage medium
18: communication bus
20: program
22: input/output interface
24: input/output device
26: network communication interface

Claims (21)

하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
서명 체계(Signature Scheme)의 셋업 알고리즘을 이용하여 마스터 사이닝키(master signing key: msk) 및 마스터 검증키(master verification key: mvk)의 쌍을 설정하는 동작;
상기 마스터 사이닝키(msk) 및 함수 서명(Functional Signature)의 함수(f)를 기반으로 함수(f)에 대한 사이닝키(skf)를 생성하는 동작; 및
상기 함수 서명의 함수(f), 상기 함수(f)에 대한 사이닝키(skf), 및 메시지(m)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작을 포함하고,
상기 함수 서명의 함수(f)는, 암호화를 위한 공개키 또는 대칭키로 설정되며,
공개키 또는 대칭키인 상기 함수(f)에 대한 사이닝키(skf)를 생성하는 동작은,
상기 서명 체계의 셋업 알고리즘을 이용하여 사이닝키(signing key: sk) 및 검증키(verification key: vk)의 쌍을 설정하는 동작;
상기 마스터 사이닝키(msk), 상기 함수 서명의 함수(f), 및 상기 검증키(vk)에 상기 서명 체계의 서명(Signature) 알고리즘을 적용하여 상기 검증키에 대한 서명값(σvk)을 산출하는 동작;
상기 함수 서명의 함수(f), 상기 검증키(vk), 및 상기 검증키에 대한 서명값(σvk)에 기초하여 인증서(c)를 생성하는 동작; 및
상기 사이닝키(sk) 및 상기 인증서(c)에 기반하여 상기 함수(f)에 대한 사이닝키(skf)를 생성하는 동작을 포함하고,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작은, 상기 함수(f)가 공개키인 경우 RSA(Rivest Shamir Adleman) 기반의 공개키 암호화 방식을 사용하고, 상기 함수(f)가 대칭키인 경우 AES(Advanced Encrytion Standard Algorithm) 기반의 대칭키 암호화 방식을 사용하며,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작은,
상기 메시지(m) 및 상기 사이닝키(sk)에 상기 서명 체계의 서명 알고리즘을 적용하여 상기 메시지에 대한 서명값(σm)을 산출하는 동작;
상기 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하는 동작; 및
상기 메시지(m), 상기 인증서(c), 및 상기 메시지에 대한 서명값(σm)에 기반하여 상기 최종 서명값(σ)을 생성하는 동작을 포함하는, 서명 암호화 방법.
one or more processors; and
A method performed in a computing device having a memory storing one or more programs executed by the one or more processors,
setting a pair of a master signing key (msk) and a master verification key (mvk) using a setup algorithm of a signature scheme;
generating a signing key (sk f ) for the function (f) based on the master signing key (msk) and the function (f) of the functional signature; and
Based on the function f of the function signature, the signing key sk f for the function f, and the message m, the function value f(m) for the message and the final signature value σ ),
The function (f) of the function signature is set as a public key or symmetric key for encryption,
The operation of generating a signing key (sk f ) for the function (f), which is a public key or a symmetric key,
setting a pair of a signing key (sk) and a verification key (vk) using a setup algorithm of the signature scheme;
A signature value (σ vk ) of the verification key is obtained by applying the signature algorithm of the signature system to the master signing key (msk), the function (f) of the function signature, and the verification key ( vk ). action to calculate;
generating a certificate (c) based on the function (f) of the function signature, the verification key (vk), and a signature value (σ vk ) for the verification key; and
Generating a signing key (sk f ) for the function (f) based on the signing key (sk) and the certificate (c),
The operation of generating the function value (f(m)) and the final signature value (σ) for the message uses a Rivest Shamir Adleman (RSA)-based public key encryption method when the function (f) is a public key, , When the function (f) is a symmetric key, a symmetric key encryption method based on AES (Advanced Encrytion Standard Algorithm) is used,
The operation of generating the function value (f(m)) and the final signature value (σ) for the message,
calculating a signature value (σ m ) of the message by applying the signature algorithm of the signature scheme to the message (m) and the signing key (sk);
applying the message (m) to the function (f) to generate a function value (f(m)) for the message; and
and generating the final signature value (σ) based on the message (m), the certificate (c), and the signature value (σ m ) for the message.
삭제delete 삭제delete 청구항 1에 있어서,
상기 검증키에 대한 서명값(σvk)을 산출하는 동작은,
상기 마스터 사이닝키(msk)로 상기 함수(f)에 상기 검증키(vk)를 연결한(Concatenated) 값(f|vk)을 서명하여 상기 검증키에 대한 서명값(σvk)을 산출하는, 서명 암호화 방법.
The method of claim 1,
The operation of calculating the signature value (σ vk ) for the verification key,
Calculating a signature value (σ vk ) for the verification key by signing a value (f|vk) obtained by concatenating the verification key (vk) to the function (f) with the master signing key (msk) , the signature encryption method.
삭제delete 청구항 1에 있어서,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작은,
상기 함수(f)에 대한 사이닝키(skf)를 상기 사이닝키(sk)와 상기 인증서(c)로 파싱하는 동작을 더 포함하는, 서명 암호화 방법.
The method of claim 1,
The operation of generating the function value (f(m)) and the final signature value (σ) for the message,
Further comprising parsing the signing key (sk f ) for the function (f) into the signing key (sk) and the certificate (c).
청구항 1에 있어서,
상기 서명 암호화 방법은,
상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 다른 컴퓨팅 장치로 전송하는 동작을 더 포함하고,
상기 다른 컴퓨팅 장치는,
상기 마스터 검증키(mvk)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 검증하는 동작을 수행하는, 서명 암호화 방법.
The method of claim 1,
The signature encryption method,
Further comprising transmitting the function value (f(m)) and the final signature value (σ) for the message to another computing device,
The other computing device,
An operation of verifying the function value (f (m)) and the final signature value (σ) for the message based on the master verification key (mvk).
청구항 7에 있어서,
상기 검증하는 동작은,
상기 최종 서명값(σ)을 상기 메시지(m), 상기 인증서(c = (f, vk, σvk)), 및 상기 메시지에 대한 서명값(σm)으로 파싱하는 동작;
상기 파싱한 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하는 동작; 및
상기 생성한 메시지에 대한 함수 값(f(m))이 상기 컴퓨팅 장치로부터 수신한 메시지에 대한 함수 값(f(m))과 일치하는지를 확인하는 동작을 포함하는, 서명 암호화 방법.
The method of claim 7,
The verification operation is
parsing the final signature value (σ) into the message (m), the certificate (c = (f, vk, σ vk )), and the signature value (σ m ) for the message;
generating a function value (f(m)) for the message by applying the parsed message (m) to the function (f); and
and checking whether the function value (f(m)) of the generated message matches the function value (f(m)) of the message received from the computing device.
청구항 8에 있어서,
상기 검증하는 동작은,
상기 메시지(m) 및 상기 검증키(vk)를 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 메시지에 대한 서명값(σm)을 검증하는 동작을 더 포함하는, 서명 암호화 방법.
The method of claim 8,
The verification operation is
and verifying a signature value (σ m ) of the parsed message by applying the message (m) and the verification key (vk) to a verification algorithm of the signature scheme.
청구항 9에 있어서,
상기 검증하는 동작은,
상기 마스터 검증키(mvk) 및 상기 검증키(vk)에 함수(f)를 연결한(Concatenated) 값(f|vk)을 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 검증키에 대한 서명값(σvk)을 검증하는 동작을 더 포함하는, 서명 암호화 방법.
The method of claim 9,
The verification operation is
The signature value for the verification key parsed by applying the value (f|vk) obtained by concatenating the function (f) to the master verification key (mvk) and the verification key (vk) to the verification algorithm of the signature scheme. The signature encryption method further comprising verifying (σ vk ).
하나 이상의 프로세서들;
메모리; 및
하나 이상의 프로그램들을 포함하고,
상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
상기 하나 이상의 프로그램들은,
서명 체계(Signature Scheme)의 셋업 알고리즘을 이용하여 마스터 사이닝키(master signing key: msk) 및 마스터 검증키(master verification key: mvk)의 쌍을 설정하기 위한 명령;
상기 마스터 사이닝키(msk) 및 함수 서명(Functional Signature)의 함수(f)를 기반으로 함수(f)에 대한 사이닝키(skf)를 생성하기 위한 명령; 및
상기 함수 서명의 함수(f), 상기 함수(f)에 대한 사이닝키(skf), 및 메시지(m)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하기 위한 명령을 포함하고,
상기 함수 서명의 함수(f)는, 암호화를 위한 공개키 또는 대칭키로 설정되며,
공개키 또는 대칭키인 상기 함수(f)에 대한 사이닝키(skf)를 생성하기 위한 명령은,
상기 서명 체계의 셋업 알고리즘을 이용하여 사이닝키(signing key: sk) 및 검증키(verification key: vk)의 쌍을 설정하기 위한 명령;
상기 마스터 사이닝키(msk), 상기 함수 서명의 함수(f), 및 상기 검증키(vk)에 상기 서명 체계의 서명(Signature) 알고리즘을 적용하여 상기 검증키에 대한 서명값(σvk)을 산출하기 위한 명령;
상기 함수 서명의 함수(f), 상기 검증키(vk), 및 상기 검증키에 대한 서명값(σvk)에 기초하여 인증서(c)를 생성하기 위한 명령; 및
상기 사이닝키(sk) 및 상기 인증서(c)에 기반하여 상기 함수(f)에 대한 사이닝키(skf)를 생성하기 위한 명령을 포함하고,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)의 생성은, 상기 함수(f)가 공개키인 경우 RSA(Rivest Shamir Adleman) 기반의 공개키 암호화 방식을 사용하고, 상기 함수(f)가 대칭키인 경우 AES(Advanced Encrytion Standard Algorithm) 기반의 대칭키 암호화 방식을 사용하며,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하기 위한 명령은,
상기 메시지(m) 및 상기 사이닝키(sk)에 상기 서명 체계의 서명 알고리즘을 적용하여 상기 메시지에 대한 서명값(σm)을 산출하기 위한 명령;
상기 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하기 위한 명령; 및
상기 메시지(m), 상기 인증서(c), 및 상기 메시지에 대한 서명값(σm)에 기반하여 상기 최종 서명값(σ)을 생성하기 위한 명령을 포함하는, 컴퓨팅 장치.
one or more processors;
Memory; and
contains one or more programs;
the one or more programs are stored in the memory and configured to be executed by the one or more processors;
The one or more programs,
instructions for setting up a pair of master signing key (msk) and master verification key (mvk) using a setup algorithm of a signature scheme;
a command for generating a signing key (sk f ) for the function (f) based on the master signing key (msk) and the function (f) of the functional signature; and
Based on the function f of the function signature, the signing key sk f for the function f, and the message m, the function value f(m) for the message and the final signature value σ ), and
The function (f) of the function signature is set as a public key or symmetric key for encryption,
The command for generating a signing key (sk f ) for the function (f), which is a public key or a symmetric key,
a command for setting a pair of a signing key (sk) and a verification key (vk) using a setup algorithm of the signature scheme;
A signature value (σ vk ) of the verification key is obtained by applying the signature algorithm of the signature system to the master signing key (msk), the function (f) of the function signature, and the verification key ( vk ). command to calculate;
an instruction for generating a certificate (c) based on the function (f) of the function signature, the verification key (vk), and a signature value (σ vk ) for the verification key; and
A command for generating a signing key (sk f ) for the function (f) based on the signing key (sk) and the certificate (c),
The generation of the function value (f (m)) and the final signature value (σ) for the message uses a public key encryption method based on RSA (Rivest Shamir Adleman) when the function (f) is a public key, and the When function (f) is a symmetric key, AES (Advanced Encryption Standard Algorithm)-based symmetric key encryption is used.
The command for generating the function value (f(m)) and the final signature value (σ) for the message is
a command for calculating a signature value (σ m ) for the message by applying the signature algorithm of the signature scheme to the message (m) and the signing key (sk);
instructions for applying the message (m) to the function (f) to produce a function value (f(m)) for the message; and
and instructions for generating the final signature value (σ) based on the message (m), the certificate (c), and the signature value (σ m ) for the message.
삭제delete 삭제delete 청구항 11에 있어서,
상기 검증키에 대한 서명값(σvk)을 산출하기 위한 명령은,
상기 마스터 사이닝키(msk)로 상기 함수(f)에 상기 검증키(vk)를 연결한(Concatenated) 값(f|vk)을 서명하여 상기 검증키에 대한 서명값(σvk)을 산출하는, 컴퓨팅 장치.
The method of claim 11,
The command for calculating the signature value (σ vk ) for the verification key is,
Calculating a signature value (σ vk ) for the verification key by signing a value (f|vk) obtained by concatenating the verification key (vk) to the function (f) with the master signing key (msk) , computing device.
삭제delete 청구항 11에 있어서,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하기 위한 명령은,
상기 함수(f)에 대한 사이닝키(skf)를 상기 사이닝키(sk)와 상기 인증서(c)로 파싱하기 위한 명령을 더 포함하는, 컴퓨팅 장치.
The method of claim 11,
The command for generating the function value (f(m)) and the final signature value (σ) for the message is
The computing device further comprises a command for parsing the signing key (sk f ) for the function (f) into the signing key (sk) and the certificate (c).
청구항 11에 있어서,
상기 하나 이상의 프로그램들은,
상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 다른 컴퓨팅 장치로 전송하기 위한 명령을 더 포함하고,
상기 다른 컴퓨팅 장치는,
상기 마스터 검증키(mvk)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 상기 최종 서명값(σ)을 검증하는, 컴퓨팅 장치.
The method of claim 11,
The one or more programs,
Further comprising instructions for transmitting the function value (f(m)) and the final signature value (σ) for the message to another computing device,
The other computing device,
Verification of the function value (f (m)) and the final signature value (σ) for the message based on the master verification key (mvk).
청구항 17에 있어서,
상기 다른 컴퓨팅 장치는,
상기 최종 서명값(σ)을 상기 메시지(m), 상기 인증서(c = (f, vk, σvk)), 및 상기 메시지에 대한 서명값(σm)으로 파싱하고, 상기 파싱한 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하며, 상기 생성한 메시지에 대한 함수 값(f(m))이 상기 컴퓨팅 장치로부터 수신한 메시지에 대한 함수 값(f(m))과 일치하는지를 확인하는, 컴퓨팅 장치.
The method of claim 17
The other computing device,
The final signature value (σ) is parsed into the message (m), the certificate (c = (f, vk, σ vk )), and the signature value (σ m ) for the message, and the parsed message (m ) is applied to the function f to generate a function value f(m) for the message, and the function value f(m) for the generated message corresponds to a value for the message received from the computing device. A computing device that checks whether it matches the function value f(m).
청구항 18에 있어서,
상기 다른 컴퓨팅 장치는,
상기 메시지(m) 및 상기 검증키(vk)를 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 메시지에 대한 서명값(σm)을 검증하는, 컴퓨팅 장치.
The method of claim 18
The other computing device,
A computing device that verifies a signature value (σ m ) of the parsed message by applying the message (m) and the verification key (vk) to a verification algorithm of the signature scheme.
청구항 19에 있어서,
상기 다른 컴퓨팅 장치는,
상기 마스터 검증키(mvk) 및 상기 검증키(vk)에 함수(f)를 연결한(Concatenated) 값(f|vk)을 상기 서명 체계의 검증 알고리즘에 적용하여 상기 파싱한 검증키에 대한 서명값(σvk)을 검증하는, 컴퓨팅 장치.
The method of claim 19
The other computing device,
The signature value for the verification key parsed by applying the value (f|vk) obtained by concatenating the function (f) to the master verification key (mvk) and the verification key (vk) to the verification algorithm of the signature scheme. A computing device that verifies (σ vk ).
비일시적 컴퓨터 판독 가능한 저장 매체(non-transitory computer readable storage medium)에 저장된 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은 하나 이상의 명령어들을 포함하고, 상기 명령어들은 하나 이상의 프로세서들을 갖는 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금,
서명 체계(Signature Scheme)의 셋업 알고리즘을 이용하여 마스터 사이닝키(master signing key: msk) 및 마스터 검증키(master verification key: mvk)의 쌍을 설정하는 동작;
상기 마스터 사이닝키(msk) 및 함수 서명(Functional Signature)의 함수(f)를 기반으로 함수(f)에 대한 사이닝키(skf)를 생성하는 동작; 및
상기 함수 서명의 함수(f), 상기 함수(f)에 대한 사이닝키(skf), 및 메시지(m)에 기반하여 상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작을 수행하도록 하고,
상기 함수 서명의 함수(f)는, 암호화를 위한 공개키 또는 대칭키로 설정되며,
공개키 또는 대칭키인 상기 함수(f)에 대한 사이닝키(skf)를 생성하는 동작은,
상기 서명 체계의 셋업 알고리즘을 이용하여 사이닝키(signing key: sk) 및 검증키(verification key: vk)의 쌍을 설정하는 동작;
상기 마스터 사이닝키(msk), 상기 함수 서명의 함수(f), 및 상기 검증키(vk)에 상기 서명 체계의 서명(Signature) 알고리즘을 적용하여 상기 검증키에 대한 서명값(σvk)을 산출하는 동작;
상기 함수 서명의 함수(f), 상기 검증키(vk), 및 상기 검증키에 대한 서명값(σvk)에 기초하여 인증서(c)를 생성하는 동작; 및
상기 사이닝키(sk) 및 상기 인증서(c)에 기반하여 상기 함수(f)에 대한 사이닝키(skf)를 생성하는 동작을 포함하고,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작은, 상기 함수(f)가 공개키인 경우 RSA(Rivest Shamir Adleman) 기반의 공개키 암호화 방식을 사용하고, 상기 함수(f)가 대칭키인 경우 AES(Advanced Encrytion Standard Algorithm) 기반의 대칭키 암호화 방식을 사용하며,
상기 메시지에 대한 함수 값(f(m)) 및 최종 서명값(σ)을 생성하는 동작은,
상기 메시지(m) 및 상기 사이닝키(sk)에 상기 서명 체계의 서명 알고리즘을 적용하여 상기 메시지에 대한 서명값(σm)을 산출하는 동작;
상기 메시지(m)를 상기 함수(f)에 적용하여 상기 메시지에 대한 함수 값(f(m))을 생성하는 동작; 및
상기 메시지(m), 상기 인증서(c), 및 상기 메시지에 대한 서명값(σm)에 기반하여 상기 최종 서명값(σ)을 생성하는 동작을 포함하는, 컴퓨터 프로그램.
A computer program stored in a non-transitory computer readable storage medium,
The computer program includes one or more instructions, which, when executed by a computing device having one or more processors, cause the computing device to:
setting a pair of a master signing key (msk) and a master verification key (mvk) using a setup algorithm of a signature scheme;
generating a signing key (sk f ) for the function (f) based on the master signing key (msk) and the function (f) of the functional signature; and
Based on the function f of the function signature, the signing key sk f for the function f, and the message m, the function value f(m) for the message and the final signature value σ ) to perform an operation that generates
The function (f) of the function signature is set as a public key or symmetric key for encryption,
The operation of generating a signing key (sk f ) for the function (f), which is a public key or a symmetric key,
setting a pair of a signing key (sk) and a verification key (vk) using a setup algorithm of the signature scheme;
A signature value (σ vk ) of the verification key is obtained by applying the signature algorithm of the signature system to the master signing key (msk), the function (f) of the function signature, and the verification key ( vk ). action to calculate;
generating a certificate (c) based on the function (f) of the function signature, the verification key (vk), and a signature value (σ vk ) for the verification key; and
Generating a signing key (sk f ) for the function (f) based on the signing key (sk) and the certificate (c),
The operation of generating the function value (f(m)) and the final signature value (σ) for the message uses a Rivest Shamir Adleman (RSA)-based public key encryption method when the function (f) is a public key, , When the function (f) is a symmetric key, a symmetric key encryption method based on AES (Advanced Encrytion Standard Algorithm) is used,
The operation of generating the function value (f(m)) and the final signature value (σ) for the message,
calculating a signature value (σ m ) of the message by applying the signature algorithm of the signature scheme to the message (m) and the signing key (sk);
applying the message (m) to the function (f) to generate a function value (f(m)) for the message; and
And generating the final signature value (σ) based on the message (m), the certificate (c), and the signature value (σ m ) for the message.
KR1020200161683A 2020-11-26 2020-11-26 Method for signcrytion using functional signature and computing device for executing the method KR102474628B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200161683A KR102474628B1 (en) 2020-11-26 2020-11-26 Method for signcrytion using functional signature and computing device for executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200161683A KR102474628B1 (en) 2020-11-26 2020-11-26 Method for signcrytion using functional signature and computing device for executing the method

Publications (2)

Publication Number Publication Date
KR20220073530A KR20220073530A (en) 2022-06-03
KR102474628B1 true KR102474628B1 (en) 2022-12-05

Family

ID=81982848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200161683A KR102474628B1 (en) 2020-11-26 2020-11-26 Method for signcrytion using functional signature and computing device for executing the method

Country Status (1)

Country Link
KR (1) KR102474628B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101253683B1 (en) 2011-02-09 2013-04-11 주식회사 국민은행 Digital Signing System and Method Using Chained Hash

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Elette Boyle 외 2명, Functional Signatures and Pseudorandom Functions, PKC 201, LNCS 8383 (2014.)*
Ioana Ivan, Functional Signatures, Massachusetts Institute of Technology 2013 (2013.06.)*

Also Published As

Publication number Publication date
KR20220073530A (en) 2022-06-03

Similar Documents

Publication Publication Date Title
EP3642997B1 (en) Secure communications providing forward secrecy
US10708072B2 (en) Mutual authentication of confidential communication
US9853816B2 (en) Credential validation
US10326753B2 (en) Authentication via revocable signatures
CN109818730B (en) Blind signature acquisition method and device and server
CN111769938B (en) Key management system and data verification system of block chain sensor
CN108768652A (en) It is a kind of can the attack of anti-quantum alliance's block chain bottom encryption method
US20150288527A1 (en) Verifiable Implicit Certificates
CN107360002B (en) Application method of digital certificate
JP2008512060A (en) Temporary signature scheme
US20160352525A1 (en) Signature protocol
CN106972924B (en) Method and device for encryption, decryption, electronic signature and verification signature
CN106936584B (en) Method for constructing certificateless public key cryptosystem
CN112380584B (en) Block chain data updating method and device, electronic equipment and storage medium
KR101253683B1 (en) Digital Signing System and Method Using Chained Hash
KR20200002501A (en) Method for certificating node of public blockchain, apparatus and system for executing the method
US10135621B2 (en) Method to reduce the latency of ECDSA signature generation using precomputation
CN112364335B (en) Identification identity authentication method and device, electronic equipment and storage medium
WO2016014048A1 (en) Attribute-based cryptography
CN110278073B (en) Group digital signature and verification method, and equipment and device thereof
KR102474628B1 (en) Method for signcrytion using functional signature and computing device for executing the method
JP5393594B2 (en) Efficient mutual authentication method, program, and apparatus
CN116896440B (en) Block chain-based declaration data verification method and device, equipment and medium
KR102005946B1 (en) System and method for providng anonymous identity-based signature using homomorphic encryption
JP3331329B2 (en) Public verification possible request restoration blind signature method, apparatus and program recording medium

Legal Events

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