KR101947871B1 - Function encryption system and method for outputting inner product values - Google Patents

Function encryption system and method for outputting inner product values Download PDF

Info

Publication number
KR101947871B1
KR101947871B1 KR1020160131302A KR20160131302A KR101947871B1 KR 101947871 B1 KR101947871 B1 KR 101947871B1 KR 1020160131302 A KR1020160131302 A KR 1020160131302A KR 20160131302 A KR20160131302 A KR 20160131302A KR 101947871 B1 KR101947871 B1 KR 101947871B1
Authority
KR
South Korea
Prior art keywords
secret key
user
legitimate user
function
generating
Prior art date
Application number
KR1020160131302A
Other languages
Korean (ko)
Other versions
KR20180039922A (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 KR1020160131302A priority Critical patent/KR101947871B1/en
Publication of KR20180039922A publication Critical patent/KR20180039922A/en
Application granted granted Critical
Publication of KR101947871B1 publication Critical patent/KR101947871B1/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
    • 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)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

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

Abstract

본 발명은 내적 값을 출력하는 함수 암호화 시스템 및 방법에 관한 것으로, 함수 암호화 시스템은 마스터 비밀키와 공개 파라미터를 생성하고, 상기 키 분배 장치에서 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성하고, 상기 키 분배 장치에서 상기 합법적인 사용자의 단말로 상기 사용자 비밀키를 제공하는 키 분배 장치, 상기 합법적인 사용자에게 보낼 메시지를 상기 공개 파라미터를 이용하여 암호문으로 생성하고, 상기 암호문을 상기 합법적인 사용자의 단말로 송신하는 암호화 장치 및 상기 사용자 비밀키를 이용해서 상기 암호문을 복호화하여 내적 함수의 결과인 내적 함수의 출력값을 획득하는 상기 합법적인 사용자의 단말을 포함한다.The present invention relates to a function encryption system and method for outputting an inner product value, wherein a function encryption system generates a master secret key and a public parameter, generates a user secret key which is a secret key for a legitimate user in the key distribution device A key distribution device for providing the user secret key from the key distribution device to the terminal of the legitimate user, a key distribution device for generating a message to be sent to the legitimate user as a cipher text using the public parameter, And a legitimate user terminal that decrypts the cipher text using the user secret key to obtain an output value of an inner product function resulting from an inner product function.

Description

내적 값을 출력하는 함수 암호화 시스템 및 방법{Function encryption system and method for outputting inner product values}{Function encryption system and method for outputting inner product values}

이하의 일 실시 예들은 암호화를 위한 장치 및 방법에 관한 것으로, 복호화 과정에서 데이터 그 자체의 값이 아닌 내적 값만이 출력되도록 하는 함수 암호화 기술에 관한 것이다. One embodiment of the present invention relates to an apparatus and method for encryption, and more particularly, to a function encryption technique that allows only an inner product value to be output, rather than a value of data itself, during a decryption process.

종래에 내적 값을 출력하는 함수 암호화에 관한 개념은 Abdalla, Bourse, De Caro, Pointcheval에 의해서 소개된 이후 다양한 함수 암호화 기법이 제안되었다. 제안된 함수 암호화 기법들은 하나의 메시지 집합을 암호화하여 안전하게 전송하되, 함수에 대한 비밀키를 가지고 있는 사용자가 메시지가 아닌 암호문의 메시지를 입력으로 받는 함수의 결과만을 얻도록 한다. 이때 비밀키를 가지고 있는 제한된 수의 사용자들이 담합하여 공모 공격을 하여도 암호문에 대한 원래 메시지 정보를 얻을 수 없는 제한된 공모 저항성을 제공한다.Conventionally, the concept of function encryption for outputting internal values has been proposed by Abdalla, Bourse, De Caro, and Pointcheval, and various function encryption schemes have been proposed. The proposed function encryption schemes encrypt a single message set and send it securely, but the user who has the secret key for the function obtains only the result of the function that receives the message of the cipher text rather than the message. At this time, even if a limited number of users having a secret key collide with each other and perform an open call attack, it provides a limited open calligraphy resistance in which original message information on a ciphertext can not be obtained.

그 이후로 많은 함수 암호화 기법이 제안되었는데, 특히 Okamoto 그룹에 의해서 제안된 함수 암호 기법은 Dual Pairing Vector Spaces 개념을 이용하여 높은 안전성을 가지는 기법을 제안하였다. 하지만 Dual Pairing Vector Spaces 자체가 비효율적이고, 공개키, 비밀키, 암호문, 암호화 및 복호화의 계산량 등이 함수의 차원의 수에 비례하여 선형적으로 증가하는 문제점이 있다. Since then, many function encryption schemes have been proposed. In particular, the proposed cryptographic scheme proposed by Okamoto group proposed a scheme with high security using the concept of Dual Pairing Vector Spaces. However, Dual Pairing Vector Spaces itself is inefficient, and there is a problem that the amount of computation of public key, secret key, ciphertext, encryption and decryption increases linearly in proportion to the number of dimensions of the function.

기존의 함수 암호화 기법들은 증명상의 안전성을 높이는데 중점을 두고 개발이 되었다. 하지만 그 과정에서 함수의 차원의 수에 비례하는 만큼의 타원곡선 상의 지수 연산 또는 유한체 상의 지수 연산을 요구하거나 키를 저장해야 하는 경우도 있고 또한 다량의 통신량이 발생되는 문제가 있었다. Conventional function encryption techniques have been developed with a focus on enhancing the security of the proof. However, in the process, there is a problem that an exponential operation on an elliptic curve or an exponential operation on a finite field as much as proportional to the number of dimensions of a function is required, or a key is stored and a large amount of traffic is generated.

또한 시스템이 생성할 수 있는 비밀키의 수가 한정되어야 한다는 문제도 있다. 이것은 함수 암호화 기법을 활용한 실제적인 애플리케이션 개발에 문제가 될 수 있다.There is also the problem that the number of secret keys that the system can create is limited. This can be a problem for practical application development using function encryption techniques.

따라서 이러한 문제를 해결하기 위한 암호화와 복호화의 연산 시간 및 통신량을 줄이고, 보안의 강화를 위해 완전한 공모 저항성을 제공하는 함수 암호화 기법을 개발하는 것이 요구되고 있다.Therefore, it is required to reduce the computation time and communication amount of encryption and decryption in order to solve such a problem, and to develop a function encryption technique which provides complete invocation resistance for security enhancement.

본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 내적 값을 출력하는 함수 암호화 시스템 및 방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a function encryption system and method for outputting an inner product value.

구체적으로, 본 발명은 암호화된 데이터에 대한 기밀성을 보장하기 위해 복호화 과정에서 데이터 그 자체의 값이 아닌 내적 값만이 출력되도록 하는 함수 암호화 기법으로써 효율성 및 안전성을 높여 현실에서 사용할 수 있도록 빠른 암복호화 성능을 가지며, 낮은 통신량, 제한되지 않는 공모에 대한 저항성을 제공하는 것을 목적으로 한다.More specifically, the present invention provides a function encryption method that outputs only an inner product value, not a value of data itself, in a decoding process in order to ensure confidentiality with respect to encrypted data, thereby improving efficiency and safety, And it is intended to provide a low communication amount and resistance to unlimited open competition.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 함수 암호화 시스템에서 암호화를 위한 키 생성 방법은, 키 분배 장치에서 마스터 비밀키와 공개 파라미터를 생성하는 단계; 상기 키 분배 장치에서 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성하는 단계; 및 상기 키 분배 장치에서 상기 합법적인 사용자의 단말로 상기 사용자 비밀키를 제공하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of generating a key for encryption in a function encryption system, the method comprising: generating a master secret key and a public parameter in a key distribution apparatus; Generating a user secret key that is a secret key for a legitimate user in the key distribution apparatus; And providing the user secret key from the key distribution apparatus to the terminal of the legitimate user.

이때, 상기 마스터 비밀키와 상기 공개 파라미터를 생성하는 단계는, 비대칭 겹선형 맵(Asymmetric bilinear map) 그룹인 B=(p, G1, G2, GT, e(·,·))를 선택하는 단계; (여기서, p는 소수이고, G1과 G2는 타원곡선의 서브그룹이고, GT는 확장체의 서브그룹이고, G1의 생성자가 g이고, G2의 생성자가 h일 때, e(ga, hb)는 e(g, h)ab를 만족한다.) a1, a2,…, an ∈ Zp를 선택하는 단계;

Figure 112016098336684-pat00001
를 계산해서 상기 공개 파라미터에 해당하는 (g, g1, g2, …, gn)을 생성하는 단계; 및
Figure 112016098336684-pat00002
를 계산해서 상기 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))을 생성하는 단계를 포함할 수 있다.The generating of the master secret key and the public parameters may include selecting an asymmetric bilinear map group B = (p, G 1 , G 2 , G T , e (·, ·) ; (Wherein, p is when the prime number, and G 1 and G 2 is a subgroup of an elliptic curve, G T is a subgroup of the expansion body, and a generator of G 1 g, generator of G 2 is h, e ( g a , h b ) satisfies e (g, h) ab .) a 1 , a 2 , ... , a n ∈ Z p ;
Figure 112016098336684-pat00001
(G, g 1 , g 2 , ..., g n ) corresponding to the disclosure parameter; And
Figure 112016098336684-pat00002
(H, h 1 , h 2 , ..., h n , e (g, h)) corresponding to the master secret key.

이때, 상기 합법적인 사용자에 대한 비밀키인 상기 사용자 비밀키를 생성하는 단계는, 상기 합법적인 사용자의 함수 집합에 대한 임의의 난수 R ∈ Z*p을 선택하는 단계: 및 상기 합법적인 사용자의 함수 집합, 상기 난수 R, 상기 마스터 비밀키 및 상기 공개 파라미터를 이용해서 상기 사용자 비밀키(

Figure 112016098336684-pat00003
)에 해당하는
Figure 112016098336684-pat00004
를 생성하는 단계(여기서, 상기 합법적인 사용자의 함수 집합은
Figure 112016098336684-pat00005
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이고, 상기 마스터 비밀키는 (h, h1, h2, …, hn, e(g, h))이고,
Figure 112016098336684-pat00006
이고,
Figure 112016098336684-pat00007
이고,
Figure 112016098336684-pat00008
이다.)를 포함할 수 있다.The step of generating the user secret key, which is a secret key for the legitimate user, comprises: selecting a random number R ∈ Z * p for the legitimate user's function set; Using the random number R, the master secret key, and the public parameter,
Figure 112016098336684-pat00003
Equivalent to
Figure 112016098336684-pat00004
, Wherein the legitimate user's set of functions is
Figure 112016098336684-pat00005
, And the public parameters is (g, g 1, g 2 , ..., g n) , and wherein the master secret key (h, h 1, h 2 , ..., h n, e (g, h)),
Figure 112016098336684-pat00006
ego,
Figure 112016098336684-pat00007
ego,
Figure 112016098336684-pat00008
). ≪ / RTI >

이때, 함수 암호화 시스템에서 암호화 하는 방법은, 암호화 장치에서 상기 합법적인 사용자에게 보낼 메시지를 상기 공개 파라미터를 이용하여 암호문으로 생성하는 단계; 및 상기 암호화 장치에서 상기 암호문을 상기 합법적인 사용자의 단말로 송신하는 단계를 더 포함할 수 있다.At this time, the method of encrypting in the function encrypting system includes: generating a message to be sent to the legitimate user in the encrypting device as a cipher text using the open parameter; And transmitting the ciphertext from the ciphering device to the terminal of the legitimate user.

이때, 상기 합법적인 사용자에게 보낼 메시지를 상기 공개 파라미터를 이용하여 상기 암호문으로 생성하는 단계는, 임의의 난수 s ∈ Z*p을 선택하는 단계; 및 상기 난수 s, 상기 공개 파라미터를 이용해서 상기 합법적인 사용자에게 보낼 메시지에 해당하는 메시지 집합(

Figure 112016098336684-pat00009
)을 암호화하여 상기 암호문에 해당하는
Figure 112016098336684-pat00010
을 생성하는 단계(여기서,
Figure 112016098336684-pat00011
,
Figure 112016098336684-pat00012
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이다.)를 포함할 수 있다.At this time, the step of generating a message to be sent to the legitimate user as the cipher text using the public parameter includes: selecting an arbitrary random number s ∈ Z * p; And a random number s, a message set corresponding to a message to be sent to the legitimate user using the public parameter
Figure 112016098336684-pat00009
) Corresponding to the ciphertext
Figure 112016098336684-pat00010
≪ / RTI >
Figure 112016098336684-pat00011
,
Figure 112016098336684-pat00012
, And the public parameters may include a.) (G, g 1, g 2, ..., g n).

이때, 함수 암호화 시스템에서 복호화하는 방법은, 상기 합법적인 사용자의 단말에서 상기 사용자 비밀키를 이용해서 상기 암호문을 복호화하여 내적 함수의 결과인 내적 함수의 출력값을 획득하는 단계를 더 포함할 수 있다.In this case, the method of decrypting in the function encrypting system may further include decrypting the cipher text using the user secret key in the terminal of the legitimate user, and obtaining an output value of the inner function resulting from the inner function.

이때, 상기 암호문을 상기 복호화 하는 단계는, 상기 합법적인 사용자의 함수 집합인

Figure 112016098336684-pat00013
과 상기 암호문(
Figure 112016098336684-pat00014
) 중에서
Figure 112016098336684-pat00015
를 이용하여
Figure 112016098336684-pat00016
를 계산하는 단계; 상기 사용자 비밀키(
Figure 112016098336684-pat00017
), 상기 D0, 및 상기 암호문(
Figure 112016098336684-pat00018
) 중에서 c1을 이용해서
Figure 112016098336684-pat00019
를 계산하는 단계; 및 상기 사용자 비밀키(
Figure 112016098336684-pat00020
)에 포함된 k3를 이용하여
Figure 112016098336684-pat00021
로부터 함수(
Figure 112016098336684-pat00022
)의 결과 값인
Figure 112016098336684-pat00023
를 복호화된 결과로서 추출하는 단계를 포함할 수 있다.At this time, the step of decrypting the ciphertext may include:
Figure 112016098336684-pat00013
And the cipher text (
Figure 112016098336684-pat00014
) Between
Figure 112016098336684-pat00015
Using
Figure 112016098336684-pat00016
; The user secret key (
Figure 112016098336684-pat00017
), D 0 , and the cipher text (
Figure 112016098336684-pat00018
) Using c 1
Figure 112016098336684-pat00019
; And the user secret key (
Figure 112016098336684-pat00020
) Using the k 3 included in the
Figure 112016098336684-pat00021
Function (
Figure 112016098336684-pat00022
) Is the result of
Figure 112016098336684-pat00023
As a decoded result.

본 발명의 일 실시 예에 따른 함수 암호화 시스템은, 마스터 비밀키와 공개 파라미터를 생성하고, 상기 키 분배 장치에서 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성하고, 상기 키 분배 장치에서 상기 합법적인 사용자의 단말로 상기 사용자 비밀키를 제공하는 키 분배 장치; 상기 합법적인 사용자에게 보낼 메시지를 상기 공개 파라미터를 이용하여 암호문으로 생성하고, 상기 암호문을 상기 합법적인 사용자의 단말로 송신하는 암호화 장치; 및 상기 사용자 비밀키를 이용해서 상기 암호문을 입력으로 하는 내적 함수의 출력값을 획득하여 상기 암호문을 복호화 하는 상기 합법적인 사용자의 단말을 포함한다.A function encryption system according to an embodiment of the present invention generates a master secret key and a public parameter, generates a user secret key that is a secret key for a legitimate user in the key distribution apparatus, A key distribution device for providing the user secret key to a terminal of the user; An encryption device for generating a message to be sent to the legitimate user as a cipher text using the public parameter and transmitting the cipher text to the terminal of the legitimate user; And a legitimate user terminal that obtains an output value of an inner product function that receives the ciphertext using the user secret key to decrypt the ciphertext.

이때, 상기 키 분배 장치는, 상기 마스터 비밀키와 상기 공개 파라미터를 생성할 때, 비대칭 겹선형 맵(Asymmetric bilinear map) 그룹인 B=(p, G1, G2, GT, e(·,·))를 선택하고,(여기서, p는 소수이고, G1과 G2는 타원곡선의 서브그룹이고, GT 는 확장체의 서브그룹이고, G1의 생성자가 g이고, G2의 생성자가 h일 때, e(ga, hb)는 e(g, h)ab를 만족한다.) a1, a2, …, an ∈ Zp를 선택하고,

Figure 112016098336684-pat00024
를 계산해서 상기 공개 파라미터에 해당하는 (g, g1, g2, …, gn)을 생성하고,
Figure 112016098336684-pat00025
를 계산해서 상기 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))을 생성할 수 있다.In this case, when generating the master secret key and the public parameters, the key distribution apparatus generates an asymmetric bilinear map group B = (p, G 1 , G 2 , G T , e )), Where p is a prime number, G 1 and G 2 are subgroups of an elliptic curve, G T is a subgroup of an extension, G 1 is a generator, G 2 is a generator when the h, e (g a, h b) is e (g, h) satisfies ab.) a 1, a 2 , ... , select a n ∈ Z p ,
Figure 112016098336684-pat00024
(G, g 1 , g 2 , ..., g n ) corresponding to the disclosure parameters,
Figure 112016098336684-pat00025
(H, h 1 , h 2 , ..., h n , e (g, h)) corresponding to the master secret key.

이때, 상기 키 분배 장치는, 상기 합법적인 사용자에 대한 비밀키인 상기 사용자 비밀키를 생성할 때, 상기 합법적인 사용자의 함수 집합에 대한 임의의 난수 R ∈ Z*p을 선택하고, 상기 합법적인 사용자의 함수 집합, 상기 난수 R, 상기 마스터 비밀키 및 상기 공개 파라미터를 이용해서 상기 사용자 비밀키(

Figure 112016098336684-pat00026
)에 해당하는
Figure 112016098336684-pat00027
를 생성할 수 있다. (여기서, 상기 합법적인 사용자의 함수 집합은
Figure 112016098336684-pat00028
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이고, 상기 마스터 비밀키는 (h, h1, h2, …, hn, e(g, h))이고,
Figure 112016098336684-pat00029
이고,
Figure 112016098336684-pat00030
이고,
Figure 112016098336684-pat00031
이다.)At this time, when generating the user secret key, which is a secret key for the legitimate user, the key distribution apparatus selects an arbitrary random number R ∈ Z * p for the legitimate user's function set, Using the set of functions of the user, the random number R, the master secret key and the public parameters,
Figure 112016098336684-pat00026
Equivalent to
Figure 112016098336684-pat00027
Lt; / RTI > (Where the legitimate user's set of functions is
Figure 112016098336684-pat00028
, And the public parameters is (g, g 1, g 2 , ..., g n) , and wherein the master secret key (h, h 1, h 2 , ..., h n, e (g, h)),
Figure 112016098336684-pat00029
ego,
Figure 112016098336684-pat00030
ego,
Figure 112016098336684-pat00031
to be.)

이때, 상기 암호화 장치는, 상기 암호문을 생성할 때, 임의의 난수 s ∈ Z*p을 선택하고, 상기 난수 s, 상기 공개 파라미터를 이용해서 상기 합법적인 사용자에게 보낼 메시지에 해당하는 메시지 집합(

Figure 112016098336684-pat00032
)을 암호화하여 상기 암호문에 해당하는
Figure 112016098336684-pat00033
을 생성할 수 있다. (여기서,
Figure 112016098336684-pat00034
,
Figure 112016098336684-pat00035
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이다.)At this time, when the ciphertext is generated, the encryption apparatus selects a random number s ∈ Z * p, generates a message set corresponding to a message to be sent to the legitimate user using the random number s,
Figure 112016098336684-pat00032
) Corresponding to the ciphertext
Figure 112016098336684-pat00033
Can be generated. (here,
Figure 112016098336684-pat00034
,
Figure 112016098336684-pat00035
, And the public parameters is (g, g 1, g 2 , ..., g n).)

이때, 상기 합법적인 사용자의 단말은, 상기 암호문을 복호화 할 때, 상기 합법적인 사용자의 함수 집합인

Figure 112016098336684-pat00036
과 상기 암호문(
Figure 112016098336684-pat00037
) 중에서
Figure 112016098336684-pat00038
를 이용하여
Figure 112016098336684-pat00039
를 계산하고, 상기 사용자 비밀키(
Figure 112016098336684-pat00040
), 상기 D0, 및 상기 암호문(
Figure 112016098336684-pat00041
) 중에서 c1을 이용해서
Figure 112016098336684-pat00042
를 계산하고, 상기 사용자 비밀키(
Figure 112016098336684-pat00043
)에 포함된 k3를 이용하여
Figure 112016098336684-pat00044
로부터 함수(
Figure 112016098336684-pat00045
)의 결과 값인
Figure 112016098336684-pat00046
를 복호화된 결과로서 추출할 수 있다. At this time, when the legitimate user's terminal decrypts the ciphertext, the legitimate user's function set
Figure 112016098336684-pat00036
And the cipher text (
Figure 112016098336684-pat00037
) Between
Figure 112016098336684-pat00038
Using
Figure 112016098336684-pat00039
, And the user secret key (
Figure 112016098336684-pat00040
), D 0 , and the cipher text (
Figure 112016098336684-pat00041
) Using c 1
Figure 112016098336684-pat00042
, And the user secret key (
Figure 112016098336684-pat00043
) Using the k 3 included in the
Figure 112016098336684-pat00044
Function (
Figure 112016098336684-pat00045
) Is the result of
Figure 112016098336684-pat00046
Can be extracted as a decoded result.

본 발명은 내적 값을 출력하는 함수 암호화 방법에서 사용자가 저장해야 하는 키의 양, 계산량, 통신량 측면에서 기존의 기법에 비해서 효율적이기 때문에 암호화된 정량적 데이터로부터 내적 값을 출력하기 위한 효율적이고 안전한 통신 애플리케이션 개발에 효과적인 방법을 제공할 수 있다. 구체적으로 암호화 및 복호화 과정에서 필요로 하는 페어링 연산의 횟수는 함수의 차원의 수에 비례하지 않고 상수이다. 또한 사용자가 저장해야 하는 키의 사이즈 역시 사용자 수에 비례하지 않고 상수이다. 비밀키를 랜덤한 값을 이용해 생성시킴으로써 완전한 공모 저항성을 보장하는 효과를 가진다. 따라서, 본 발병은 높은 데이터 프라이버시를 제공하기 위해 복호화 과정에서 데이터가 아닌 내적 값만이 출력되는 함수 암호화 기법으로써 완전한 공모 저항성을 제공하고 빠른 연산 속도를 가짐으로써 효율적이면서도 안전성을 보장할 수 있다.The present invention is an efficient and secure communication application for outputting an inner product value from encrypted quantitative data because it is more efficient than a conventional technique in terms of the amount of keys, It can provide an effective way to develop. Specifically, the number of pairing operations required in the encryption and decryption process is a constant, not proportional to the number of dimensions of the function. Also, the size of the key that the user must store is also a constant, not proportional to the number of users. By generating a secret key using a random value, it has an effect of ensuring complete ARC. Therefore, the present invention is a function encryption method in which only the inner product value is outputted in the decryption process in order to provide high data privacy, and thus it is possible to guarantee the efficiency and safety by providing the complete subscription resistance and the fast operation speed.

도 1은 본 발명의 일 실시 예에 따라 내적 값을 출력하도록 하는 함수 암호화 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 함수 암호화 시스템에서 장치의 동작과 메시지 흐름을 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 함수 암호화 시스템에서 암호화하고 복호화하는 과정을 도시한 흐름도이다.
1 is a diagram showing a schematic configuration of a function encryption system for outputting an inner product value according to an embodiment of the present invention.
2 is a diagram illustrating an operation of a device and a message flow in a function encryption system according to an embodiment of the present invention.
3 is a flowchart illustrating a process of encrypting and decrypting in a function encryption system according to an embodiment of the present invention.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are only for the purpose of illustrating embodiments of the inventive concept, But may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. However, it is not intended to limit the embodiments according to the concepts of the present invention to the specific disclosure forms, but includes changes, equivalents, or alternatives falling within the spirit and scope of the present invention.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, for example, "between" and "immediately" or "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms " comprises ", or " having ", and the like, are used to specify one or more other features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.

이하에서는, 본 발명의 일 실시 예에 따른 내적 값을 출력하는 함수 암호화 시스템 및 방법을 첨부된 도 1 내지 도 3을 참조하여 상세히 설명한다.Hereinafter, a function encryption system and method for outputting an inner product value according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 to 3 attached hereto.

도 1은 본 발명의 일 실시 예에 따라 내적 값을 출력하도록 하는 함수 암호화 시스템의 개략적인 구성을 도시한 도면이다.1 is a diagram showing a schematic configuration of a function encryption system for outputting an inner product value according to an embodiment of the present invention.

도 1을 참조하면, 본원발명의 함수 암호화 시스템은 크게 키를 생성하고 분배하는 키 분배 장치(110), 송신할 메시지를 암호화 하는 암호화 장치(120) 및 암호문을 수신하여 복호화 하는 복호화 장치(130)을 포함할 수 있다.1, the function encryption system according to the present invention includes a key distribution apparatus 110 for generating and distributing a key, a cryptographic apparatus 120 for encrypting a message to be transmitted, and a decryption apparatus 130 for receiving and decoding a cryptogram, . ≪ / RTI >

키 분배 장치(110)는 마스터 비밀키와 공개 파라미터를 생성하고, 키 분배 장치(110)에서 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성하고, 키 분배 장치(110)에서 합법적인 사용자의 단말(130)로 사용자 비밀키를 제공한다.The key distribution apparatus 110 generates a master secret key and a public parameter, generates a user secret key, which is a secret key for a legitimate user, in the key distribution apparatus 110, And provides the user secret key to the terminal 130.

보다 구체적으로, 키 분배 장치(110)는 마스터 비밀키와 공개 파라미터를 생성할 때, 비대칭 겹선형 맵(Asymmetric bilinear map) 그룹인 B=(p, G1, G2, GT, e(·,·))를 선택하고, a1, a2,…, an ∈ Zp를 선택하고,

Figure 112016098336684-pat00047
를 계산해서 공개 파라미터에 해당하는 (g, g1, g2, …, gn)을 생성하고,
Figure 112016098336684-pat00048
를 계산해서 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))을 생성할 수 있다. 여기서, B=(p, G1, G2, GT, e(·,·))는 비대칭 겹선형 맵에 대한 타원 곡선에서 페어링(pairing) 연산을 지원하는 그룹으로, p는 소수이고, G1과 G2는 타원곡선의 서브그룹이고, GT 는 확장체의 서브그룹이고, G1의 생성자가 g(G1의 집합의 원소가 g)이고, G2의 생성자가 h(G2의 집합의 원소가 h)일 때, e(ga, hb)는 e(g, h)ab를 만족한다. 그리고, a1, a2,…, an ∈ Zp를 선택할 때, a1, a2,…, an는 p보다 작은 서로 다른 양의 정수이다.More specifically, when generating the master secret key and the public parameters, the key distribution apparatus 110 generates an asymmetric bilinear map group B = (p, G 1 , G 2 , G T , e , ·)) Are selected, and a 1 , a 2 , ... , select a n ∈ Z p ,
Figure 112016098336684-pat00047
(G, g 1 , g 2 , ..., g n ) corresponding to the public parameters,
Figure 112016098336684-pat00048
(H, h 1 , h 2 , ..., h n , e (g, h)) corresponding to the master secret key. Here, B = (p, G 1 , G 2 , G T , e (·, ·)) is a group that supports pairing operation in an elliptic curve for an asymmetric folded linear map, p is a prime number, G 1, and g 2 is a subgroup of an elliptic curve, g T is a subgroup of the expansion body, the generator of g 1 and g (a set of an element of g 1 g), the constructor of g 2 h (the g 2 When the element of the set is h), e (g a , h b ) satisfies e (g, h) ab . Then, a 1 , a 2 , ... When choosing a n ∈ Z p , a 1 , a 2 , ... , and a n are different positive integers smaller than p.

또한, 키 분배 장치(110)는 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성할 때, 합법적인 사용자의 함수 집합에 대한 임의의 난수 R ∈ Z*p을 선택하고, 합법적인 사용자의 함수 집합, 난수 R, 마스터 비밀키 및 공개 파라미터를 이용해서 사용자 비밀키(

Figure 112016098336684-pat00049
)에 해당하는
Figure 112016098336684-pat00050
를 생성할 수 있다. 여기서, Z*p는 0보다 크지만 p보다 작은 정수 집합으로, p는 암호화 시스템 또는 암호화 시스템을 운영하는 보안 기관에서 권고하는 기설정한 값을 사용할 수 있다.In addition, when generating the user secret key, which is a secret key for a legitimate user, the key distribution apparatus 110 selects a random number R ∈ Z * p for a legitimate user's function set, Set, a random number R, a master secret key, and a public parameter,
Figure 112016098336684-pat00049
Equivalent to
Figure 112016098336684-pat00050
Lt; / RTI > Where Z * p is a set of integers greater than 0 but smaller than p, where p can be any predefined value recommended by the cryptographic system or security authority operating the cryptographic system.

합법적인 사용자의 함수 집합은

Figure 112016098336684-pat00051
이고, 공개 파라미터는 (g, g1, g2, …, gn)이고, 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))이고,
Figure 112016098336684-pat00052
이고,
Figure 112016098336684-pat00053
이고,
Figure 112016098336684-pat00054
이다. 여기서, 합법적인 사용자의 함수 집합(
Figure 112016098336684-pat00055
)은 키 분배 장치(110) 또는 사용자 단말에 포함된 복호화 장치(130)에 의해 기설정된 값으로 p보다 작은 양의 정수이다. 예를 들어, 상당히 민감한 개인 정보를 다루어 프라이버시가 중요시되는 결혼정보회사에서, 각 개인의 정보를 암호화해서 보관한다고 가정할 때, 개인 프라이버시가 중요하므로, 개인 정보 자체는 알 수 없어야 한다. 이때, 이 회사는 y1을 개인 소득 수준 등급에 따른 가중치, y2을 직장 등급에 따른 가중치, 등으로 지정하여 정수로 저장하고, 암호문의 메시지인 x1을 개인 소득 수준 등급, x2을 직장 등급, 등으로 지정하여 정수로 저장하면, 복호화를 통해, 암호화된 개인 데이터를 직접 보지 않아도 개인의 평가 지표를 알 수 있다. The set of legitimate user functions
Figure 112016098336684-pat00051
And, a public parameter (g, g 1, g 2 , ..., g n) , and (h, h 1, h 2, ..., h n, e (g, h)) corresponding to the master secret key, and
Figure 112016098336684-pat00052
ego,
Figure 112016098336684-pat00053
ego,
Figure 112016098336684-pat00054
to be. Here, a set of legitimate users' functions (
Figure 112016098336684-pat00055
Is a positive integer smaller than p by a predetermined value by the key distribution apparatus 110 or the decoding apparatus 130 included in the user terminal. For example, in a privacy-conscious marriage information company dealing with sensitive personal information, it is important to keep individual information encrypted so that individual privacy is important. In this case, the company has a weight, designated as a weight, such as along the y2 to work rates and stored as integers, and personal income rates the message, which is x1 for the ciphertext, x 2 along the y 1 to the personal income level rating work rating, Etc., and stored as an integer, it is possible to know the evaluation index of an individual without directly viewing the encrypted personal data through the decryption.

암호화 장치(120)는 합법적인 사용자에게 보낼 메시지를 공개 파라미터를 이용하여 암호문으로 생성하고, 암호문을 합법적인 사용자의 단말로 송신한다.The encryption apparatus 120 generates a message to be sent to a legitimate user as a cipher text using a public parameter, and transmits the cipher text to a terminal of a legitimate user.

보다 구체적으로, 암호화 장치(120)는 암호문을 생성할 때, 임의의 난수 s ∈ Z*p을 선택하고, 상기 난수 s, 상기 공개 파라미터를 이용해서 합법적인 사용자에게 보낼 메시지에 해당하는 메시지 집합(

Figure 112016098336684-pat00056
)을 암호화하여 암호문에 해당하는
Figure 112016098336684-pat00057
을 생성할 수 있다. 여기서,
Figure 112016098336684-pat00058
,
Figure 112016098336684-pat00059
이고, 공개 파라미터는 (g, g1, g2, …, gn)이다.More specifically, when generating the ciphertext, the encryption apparatus 120 selects a random number s ∈ Z * p, generates a message set corresponding to the message to be sent to the legitimate user using the random number s,
Figure 112016098336684-pat00056
) Corresponding to the ciphertext
Figure 112016098336684-pat00057
Can be generated. here,
Figure 112016098336684-pat00058
,
Figure 112016098336684-pat00059
, And the public parameters is (g, g 1, g 2 , ..., g n).

복호화 장치(130)는 합법적인 사용자 단말에 해당하며, 사용자 비밀키를 이용해서 암호문을 복호화하여 내적 함수의 결과인 내적 함수의 출력값을 획득할 수 있다. 다시 말해 복호화 장치(130)는 사용자 비밀키를 이용해서 암호문을 입력으로 하는 내적 함수의 출력값을 획득할 수 있다.The decryption apparatus 130 corresponds to a legitimate user terminal and can decrypt a cipher text using a user secret key to obtain an output value of the inner product function resulting from the inner product function. In other words, the decryption apparatus 130 can obtain the output value of the inner product function which inputs the ciphertext using the user secret key.

보다 구체적으로, 복호화 장치(130)는 암호문을 복호화 할 때, 합법적인 사용자의 함수 집합인

Figure 112016098336684-pat00060
과 암호문(
Figure 112016098336684-pat00061
) 중에서
Figure 112016098336684-pat00062
를 이용하여
Figure 112016098336684-pat00063
를 계산하고, 사용자 비밀키(
Figure 112016098336684-pat00064
), D0, 및 암호문(
Figure 112016098336684-pat00065
) 중에서 c1을 이용해서
Figure 112016098336684-pat00066
를 계산하고, 사용자 비밀키(
Figure 112016098336684-pat00067
)에 포함된 k3를 이용하여
Figure 112016098336684-pat00068
로부터 함수(
Figure 112016098336684-pat00069
)의 결과 값인
Figure 112016098336684-pat00070
를 복호화된 결과로서 추출할 수 있다. More specifically, when decrypting the ciphertext, the decryption apparatus 130 decrypts the ciphertext using a function set of a legitimate user
Figure 112016098336684-pat00060
And ciphertext (
Figure 112016098336684-pat00061
) Between
Figure 112016098336684-pat00062
Using
Figure 112016098336684-pat00063
And the user secret key (
Figure 112016098336684-pat00064
), D 0 , and ciphertext (
Figure 112016098336684-pat00065
) Using c 1
Figure 112016098336684-pat00066
And the user secret key (
Figure 112016098336684-pat00067
) Using the k 3 included in the
Figure 112016098336684-pat00068
Function (
Figure 112016098336684-pat00069
) Is the result of
Figure 112016098336684-pat00070
Can be extracted as a decoded result.

사용자에게 송신할 메시지 집합(

Figure 112016098336684-pat00071
)과 사용자 함수 집합인
Figure 112016098336684-pat00072
의 내적값
Figure 112016098336684-pat00073
는 작은 정수가 되어야 빠른 계산이 가능하다. The set of messages to send to the user (
Figure 112016098336684-pat00071
) And a set of user functions
Figure 112016098336684-pat00072
Inner value of
Figure 112016098336684-pat00073
Must be a small integer to enable fast calculation.

따라서, 암호화 장치(120)는 메시지 집합을 생성할 때 작은 정수로 생성되도록 할 수 있고, 키 분배 장치(110) 또는 복호화 장치(130)도 사용자 함수 집합을 생성할 때 작은 정수로 생성되도록 수 있다. 여기서 작은 정수는 복호화 장치(130)의 최소 사양을 고려해서 정해질 수 있다. 작은 정수는 복호화 장치가 (1 - log연산을 제외한 복호화 연산 시간)초 미만의 시간내로 완료할 수 있는 log 연산의 횟 수로 정의하는 것이 적합하다. 예를 들어, 최소 사양의 복호화 장치가 log연산을 제외한 복호화 연산 시간이 0.5초 일 때, log연산을 0.5초내에 1000번 할 수 있다고 하면 1000보다 적은 값을 선택하는 것이 적당할 것이다. 위 예에서, 정수를 100으로 선택한다면, 정확하지는 않지만 대략 내적 값을 얻는데 0.55초 정도가 걸릴 것이므로 약 45% 더 빨라질 수 있다.Thus, the encryption device 120 may be generated as a small integer when generating a message set, and the key distribution device 110 or the decryption device 130 may be generated as a small integer when generating a set of user functions . Here, the small integer can be determined in consideration of the minimum specification of the decoding apparatus 130. The small integer is preferably defined as the number of log operations that the decoding apparatus can complete within less than a second of the decryption operation time (excluding the 1-log operation). For example, if the minimum specification decoding apparatus can perform the log operation 1000 times within 0.5 second when the decoding operation time excluding the log operation is 0.5 second, it is appropriate to select a value smaller than 1000. In the above example, if you choose an integer of 100, it will take about 0.55 seconds to get the approximate inner value, although it is not accurate, so it can be about 45% faster.

도 2는 본 발명의 일 실시 예에 따른 함수 암호화 시스템에서 장치의 동작과 메시지 흐름을 도시한 도면이다.2 is a diagram illustrating an operation of a device and a message flow in a function encryption system according to an embodiment of the present invention.

도 2를 참조하면, 키 분배 장치(110)에서 마스터 비밀키와 공개 파라미터를 생성한다(210). 이때, 마스터 비밀키와 공개 파라미터를 생성하는 구체적인 방법은 도 1과 도 3을 통해 보다 상세히 설명한다.Referring to FIG. 2, the key distribution apparatus 110 generates a master secret key and a public parameter (210). A specific method of generating the master secret key and the public parameters will be described in more detail with reference to FIGS. 1 and 3. FIG.

그리고, 키 분배 장치(110)는 생성한 공개 파라미터를 암호화 장치(120)와 복호화 장치를 포함하는 합법적인 사용자 단말(130)로 제공한다(212, 214).The key distribution apparatus 110 then provides 212 the generated public parameters to the legitimate user terminal 130 including the encryption apparatus 120 and the decryption apparatus.

공개 파라미터를 제공하는 방법은 키 분배 장치(110)는 공개 파라미터를 암호화 장치(120)와 합법적인 사용자 단말(130)로 직접 송신할 수도 있지만, 암호화 장치(120)와 합법적인 사용자 단말(130)이 참조할 수 있는 저장 위치에 공개 파라미터를 저장함으로써, 암호화 장치(120)와 합법적인 사용자 단말(130)이 필요할 때 로드(load) 할 수 있도록 할 수도 있다.The method of providing the public parameters may be such that the key distribution device 110 may send the public parameters directly to the encryption device 120 and the legitimate user terminal 130, The encryption device 120 and the legitimate user terminal 130 may be loaded when needed by storing the public parameters in a referenceable storage location.

그리고, 키 분배 장치(110)는 합법적인 사용자의 함수 집합, 난수 R, 마스터 비밀키 및 공개 파라미터를 이용해서 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성한다(216). 이때, 사용자 비밀키를 생성하는 구체적인 방법은 도 1과 도 3을 통해 보다 상세히 설명한다.Then, the key distribution apparatus 110 generates a user secret key (216), which is a secret key for a legitimate user, using a function set of a legitimate user, a random number R, a master secret key, and a public parameter. A specific method of generating the user secret key will be described in more detail with reference to FIG. 1 and FIG.

그리고, 키 분배 장치(110)는 생성된 사용자 비밀키를 합법적인 사용자 단말(130)로 안전하게 제공한다(218). 이때, 합법적인 사용자의 단말(130)로 사용자 비밀키를 제공 방법은 합법적인 사용자의 단말(130)의 사용자가가 키 분배 장치(110)를 운영하는 센터에 방문하여 신분증을 제시하고 직접 사용자 비밀키를 발급받거나 또는 별도의 안전한 회선을 통해서 사용자 비밀키를 사용자 단말(130)로 전송하거나 또는 기타 응용에 따라 합법적인 사용자에게 안전하게 전달할 수도 있다. 즉, 사용자 비밀키를 합법적인 사용자 단말(130)로 안전하게 제공하는 방법은 다양한 방법이 가능하며, 본 발명에서는 특정한 방법을 한정하지는 않는다. Then, the key distribution apparatus 110 securely provides the generated user secret key to the legitimate user terminal 130 (218). At this time, in the method of providing the user secret key to the legitimate user terminal 130, the user of the legitimate user terminal 130 visits the center operating the key distribution apparatus 110 to present the ID card, The user secret key may be issued to the user terminal 130 via a secure key or may be transmitted to a legitimate user according to other applications. That is, various methods are available for securely providing the user private key to the legitimate user terminal 130, and the present invention is not limited to the specific method.

암호화 장치(120)는 합법적인 사용자에게 보낼 메시지에 해당하는 메시지 집합을 난수와 공개 파라미터를 이용해서 암호화 하여 암호문을 생성한다(220). 이때, 암호문을 생성하는 구체적인 방법은 도 1과 도 3을 통해 보다 상세히 설명한다.The encryption apparatus 120 encrypts a message set corresponding to a message to be sent to a legitimate user using a random number and a public parameter to generate a cipher text (220). A concrete method of generating a cipher text will be described in more detail with reference to FIG. 1 and FIG.

그리고, 암호화 장치(120)는 생성한 암호문(220)을 합법적인 사용자의 단말(130)로 송신한다(222).Then, the encryption apparatus 120 transmits the generated cipher text 220 to the legitimate user terminal 130 (222).

합법적인 사용자의 단말(130)은 암호문을 수신하면, 사용자 비밀키를 이용해서 암호문을 복호화하여 내적 함수의 결과인 내적 함수의 출력값을 획득 한다(224). 이때, 암호문을 복호화 하는 구체적인 방법은 도 1과 도 3을 통해 보다 상세히 설명한다.When the legitimate user terminal 130 receives the cipher text, it decrypts the cipher text using the user secret key to obtain the output value of the inner product function resulting from the inner product function (224). A concrete method of decrypting the ciphertext will now be described in more detail with reference to FIG. 1 and FIG.

이하, 상기와 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, a method according to the present invention constructed as above will be described with reference to the drawings.

도 3은 본 발명의 일 실시 예에 따른 함수 암호화 시스템에서 암호화하고 복호화하는 과정을 도시한 흐름도이다. 3 is a flowchart illustrating a process of encrypting and decrypting in a function encryption system according to an embodiment of the present invention.

도 3을 참조하면, 함수 암호화 시스템의 키 분배 장치(110)에서 마스터 비밀키와 공개 파라미터를 생성한다(310).Referring to FIG. 3, a key distribution apparatus 110 of a function encryption system generates a master secret key and a public parameter (310).

이때, 310단계는 비대칭 겹선형 맵(Asymmetric bilinear map) 그룹인 B=(p, G1, G2, GT, e(·,·))를 선택하는 단계(여기서, p는 소수이고, G1과 G2는 타원곡선의 서브그룹이고, GT 는 확장체의 서브그룹이고, G1의 생성자가 g이고, G2의 생성자가 h일 때, e(ga, hb)는 e(g, h)ab를 만족한다.), a1, a2,…, an ∈ Zp를 선택하는 단계,

Figure 112016098336684-pat00074
를 계산해서 공개 파라미터에 해당하는 (g, g1, g2, …, gn)을 생성하는 단계 및
Figure 112016098336684-pat00075
를 계산해서 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))을 생성하는 단계를 포함할 수 있다.In this case, step 310 is a step of selecting an asymmetric bilinear map group B = (p, G 1 , G 2 , G T , e (·, ·) 1 and G 2 are subgroups of elliptic curves, G T is a subgroup of the expansion, G 1 is the constructor of g, and G 2 is the constructor of h, e (g a , h b ) g, h) ab ), a 1 , a 2 , ... , selecting a n? Z p ,
Figure 112016098336684-pat00074
(G, g 1 , g 2 , ..., g n ) corresponding to the disclosure parameters, and
Figure 112016098336684-pat00075
Calculates a may include a step of generating a corresponding to the master secret key (h, h 1, h 2 , ..., h n, e (g, h)).

함수 암호화 시스템의 키 분배 장치(110)에서 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성 한다(320).A key distribution apparatus 110 of the function encryption system generates a user secret key (320) as a secret key for a legitimate user.

이때, 320단계는 합법적인 사용자의 함수 집합에 대한 임의의 난수 R ∈ Z*p을 선택하는 단계 및 합법적인 사용자의 함수 집합, 난수 R, 마스터 비밀키 및 공개 파라미터를 이용해서 사용자 비밀키(

Figure 112016098336684-pat00076
)에 해당하는
Figure 112016098336684-pat00077
를 생성하는 단계를 포함할 수 있다. (여기서, 합법적인 사용자의 함수 집합은
Figure 112016098336684-pat00078
이고, 공개 파라미터는 (g, g1, g2, …, gn)이고, 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))이고,
Figure 112016098336684-pat00079
이고,
Figure 112016098336684-pat00080
이고,
Figure 112016098336684-pat00081
이다.)In this case, step 320 includes the steps of selecting a random number R ∈ Z * p for a legitimate user's set of functions and using a legitimate user's function set, a random number R, a master secret key,
Figure 112016098336684-pat00076
Equivalent to
Figure 112016098336684-pat00077
For example. (Here, the set of legitimate user functions
Figure 112016098336684-pat00078
And, a public parameter (g, g 1, g 2 , ..., g n) , and (h, h 1, h 2, ..., h n, e (g, h)) corresponding to the master secret key, and
Figure 112016098336684-pat00079
ego,
Figure 112016098336684-pat00080
ego,
Figure 112016098336684-pat00081
to be.)

함수 암호화 시스템의 키 분배 장치(110)에서 합법적인 사용자의 단말로 사용자 비밀키를 제공 한다(330).The key distribution apparatus 110 of the function encryption system provides the user's private key to the legitimate user's terminal (330).

함수 암호화 시스템의 암호화 장치(120)에서 합법적인 사용자에게 보낼 메시지를 공개 파라미터를 이용하여 암호문으로 생성 한다(340).A message to be sent to the legitimate user in the encryption apparatus 120 of the function encryption system is generated as a cipher text using a public parameter (340).

이때, 340단계는 임의의 난수 s ∈ Z*p을 선택하는 단계 및 난수 s, 공개 파라미터를 이용해서 합법적인 사용자에게 보낼 메시지에 해당하는 메시지 집합(

Figure 112016098336684-pat00082
)을 암호화하여 암호문에 해당하는
Figure 112016098336684-pat00083
을 생성하는 단계를 포함할 수 있다. (여기서,
Figure 112016098336684-pat00084
,
Figure 112016098336684-pat00085
이고, 공개 파라미터는 (g, g1, g2, …, gn)이다.)Step 340 is a step of selecting random random numbers s ∈ Z * p and a random number s, a message set corresponding to a message to be sent to a legitimate user using public parameters
Figure 112016098336684-pat00082
) Corresponding to the ciphertext
Figure 112016098336684-pat00083
For example, (here,
Figure 112016098336684-pat00084
,
Figure 112016098336684-pat00085
, And the public parameters is (g, g 1, g 2 , ..., g n).)

함수 암호화 시스템의 암호화 장치(120)에서 암호문을 합법적인 사용자의 단말로 송신 한다(350).The encryption device 120 of the function encryption system transmits the cipher text to the terminal of the legitimate user (350).

함수 암호화 시스템의 합법적인 사용자의 단말(130)에서 사용자 비밀키를 이용해서 암호문을 복호화하여 내적 함수의 결과인 내적 함수의 출력값을 획득한다(360).The legitimate user terminal 130 of the function encryption system decrypts the cipher text using the user secret key to obtain the output value of the inner function resulting from the inner function (360).

이때, 360단계는 합법적인 사용자의 함수 집합인

Figure 112016098336684-pat00086
과 암호문(
Figure 112016098336684-pat00087
) 중에서
Figure 112016098336684-pat00088
를 이용하여
Figure 112016098336684-pat00089
를 계산하는 단계, 사용자 비밀키(
Figure 112016098336684-pat00090
), D0, 및 암호문(
Figure 112016098336684-pat00091
) 중에서 c1을 이용해서
Figure 112016098336684-pat00092
를 계산하는 단계 및 사용자 비밀키(
Figure 112016098336684-pat00093
)에 포함된 k3를 이용하여
Figure 112016098336684-pat00094
로부터 함수(
Figure 112016098336684-pat00095
)의 결과 값인
Figure 112016098336684-pat00096
를 복호화된 결과로서 추출하는 단계를 포함할 수 있다.In this case, step 360 is a function set of a legitimate user
Figure 112016098336684-pat00086
And ciphertext (
Figure 112016098336684-pat00087
) Between
Figure 112016098336684-pat00088
Using
Figure 112016098336684-pat00089
, A user secret key (
Figure 112016098336684-pat00090
), D 0 , and ciphertext (
Figure 112016098336684-pat00091
) Using c 1
Figure 112016098336684-pat00092
And a user secret key
Figure 112016098336684-pat00093
) Using the k 3 included in the
Figure 112016098336684-pat00094
Function (
Figure 112016098336684-pat00095
) Is the result of
Figure 112016098336684-pat00096
As a decoded result.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. The apparatus and components described in the embodiments may be implemented, for example, as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) unit, a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments and equivalents to the claims are within the scope of the following claims.

110; 키 분배 장치
120; 암호화 장치
130; 복호화 장치(합법적인 사용자 단말)
110; Key distribution device
120; Encryption device
130; Decryption device (legitimate user terminal)

Claims (13)

키 분배 장치에서 마스터 비밀키와 공개 파라미터를 생성하는 단계;
상기 키 분배 장치에서 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성하는 단계; 및
상기 키 분배 장치에서 상기 합법적인 사용자의 단말로 상기 사용자 비밀키를 제공하는 단계
를 포함하고,
상기 마스터 비밀키와 상기 공개 파라미터를 생성하는 단계는,
비대칭 겹선형 맵(Asymmetric bilinear map) 그룹인 B=(p, G1, G2, GT, e(·,·))를 선택하는 단계;
(여기서, p는 소수이고, G1과 G2는 타원곡선의 서브그룹이고, GT 는 확장체의 서브그룹이고, G1의 생성자가 g이고, G2의 생성자가 h일 때, e(ga, hb)는 e(g, h)ab를 만족한다.)
a1, a2,…, an ∈ Zp를 선택하는 단계;
Figure 112018039119040-pat00097
를 계산해서 상기 공개 파라미터에 해당하는 (g, g1, g2, …, gn)을 생성하는 단계; 및
Figure 112018039119040-pat00098
를 계산해서 상기 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))을 생성하는 단계
를 포함하는 함수 암호화 시스템에서 암호화 하는 방법.
Generating a master secret key and a public parameter in the key distribution apparatus;
Generating a user secret key that is a secret key for a legitimate user in the key distribution apparatus; And
And providing the user secret key to the terminal of the legitimate user in the key distribution apparatus
Lt; / RTI >
Wherein generating the master secret key and the public parameter comprises:
Selecting an asymmetric bilinear map group B = (p, G 1 , G 2 , G T , e (·, ·));
(Wherein, p is when the prime number, and G 1 and G 2 is a subgroup of an elliptic curve, G T is a subgroup of the expansion body, and a generator of G 1 g, generator of G 2 is h, e ( g a , h b ) satisfies e (g, h) ab .
a 1 , a 2 , ... , a n ∈ Z p ;
Figure 112018039119040-pat00097
(G, g 1 , g 2 , ..., g n ) corresponding to the disclosure parameter; And
Figure 112018039119040-pat00098
(H, h 1 , h 2 , ..., h n , e (g, h)) corresponding to the master secret key
Gt; a < / RTI >
삭제delete 제1항에 있어서,
상기 합법적인 사용자에 대한 비밀키인 상기 사용자 비밀키를 생성하는 단계는,
상기 합법적인 사용자의 함수 집합에 대한 임의의 난수 R ∈ Z*p을 선택하는 단계: 및
상기 합법적인 사용자의 함수 집합, 상기 난수 R, 상기 마스터 비밀키 및 상기 공개 파라미터를 이용해서 상기 사용자 비밀키에 해당하는
Figure 112018113883311-pat00100
를 생성하는 단계
(여기서, 상기 합법적인 사용자의 함수 집합은
Figure 112018113883311-pat00101
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이고, 상기 마스터 비밀키는 (h, h1, h2, …, hn, e(g, h))이고,
Figure 112018113883311-pat00102
이고,
Figure 112018113883311-pat00103
이고,
Figure 112018113883311-pat00104
이다.)
를 포함하는 함수 암호화 시스템에서 암호화 하는 방법.
The method according to claim 1,
Wherein the step of generating the user secret key, which is a secret key for the legitimate user,
Selecting an arbitrary random number R ∈ Z * p for the legitimate user's set of functions:
Using the function set of the legitimate user, the random number R, the master secret key, and the public parameter,
Figure 112018113883311-pat00100
≪ / RTI >
(Where the legitimate user's set of functions is
Figure 112018113883311-pat00101
, And the public parameters is (g, g 1, g 2 , ..., g n) , and wherein the master secret key (h, h 1, h 2 , ..., h n, e (g, h)),
Figure 112018113883311-pat00102
ego,
Figure 112018113883311-pat00103
ego,
Figure 112018113883311-pat00104
to be.)
Gt; a < / RTI >
제1항에 있어서,
암호화 장치에서 상기 합법적인 사용자에게 보낼 메시지를 상기 공개 파라미터를 이용하여 암호문으로 생성하는 단계; 및
상기 암호화 장치에서 상기 암호문을 상기 합법적인 사용자의 단말로 송신하는 단계
를 더 포함하는 함수 암호화 시스템에서 암호화 하는 방법.
The method according to claim 1,
Generating a message to be sent to the legitimate user as a cipher text in the encrypting device using the open parameter; And
And transmitting the ciphertext from the encryption apparatus to the terminal of the legitimate user
The method comprising the steps of:
제4항에 있어서,
상기 합법적인 사용자에게 보낼 메시지를 상기 공개 파라미터를 이용하여 상기 암호문으로 생성하는 단계는,
임의의 난수 s ∈ Z*p을 선택하는 단계; 및
상기 난수 s, 상기 공개 파라미터를 이용해서 상기 합법적인 사용자에게 보낼 메시지에 해당하는 메시지 집합(
Figure 112016098336684-pat00105
)을 암호화하여 상기 암호문에 해당하는
Figure 112016098336684-pat00106
을 생성하는 단계
(여기서,
Figure 112016098336684-pat00107
,
Figure 112016098336684-pat00108
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이다.)
를 포함하는 함수 암호화 시스템에서 암호화 하는 방법.
5. The method of claim 4,
Wherein the step of generating a message to be sent to the legitimate user as the cipher text using the public parameter comprises:
Selecting an arbitrary random number s? Z * p; And
A random number s, a message set corresponding to a message to be sent to the legitimate user using the public parameter
Figure 112016098336684-pat00105
) Corresponding to the ciphertext
Figure 112016098336684-pat00106
≪ / RTI >
(here,
Figure 112016098336684-pat00107
,
Figure 112016098336684-pat00108
, And the public parameters is (g, g 1, g 2 , ..., g n).)
Gt; a < / RTI >
제4항에 있어서,
상기 합법적인 사용자의 단말에서 상기 사용자 비밀키를 이용해서 상기 암호문을 복호화하여 내적 함수의 결과인 내적 함수의 출력값을 획득 하는 단계
를 더 포함하는 함수 암호화 시스템에서 암호화 하는 방법.
5. The method of claim 4,
Decrypting the cipher text using the user secret key from the legitimate user terminal and obtaining an output value of an inner product function resulting from the inner product function
The method comprising the steps of:
제6항에 있어서,
상기 암호문을 상기 복호화 하는 단계는,
상기 합법적인 사용자의 함수 집합인
Figure 112018113883311-pat00109
과 상기 암호문에 해당하는
Figure 112018113883311-pat00110
중에서
Figure 112018113883311-pat00111
를 이용하여
Figure 112018113883311-pat00112
를 계산하는 단계;
상기 사용자 비밀키에 해당하는
Figure 112018113883311-pat00113
, 상기 D0, 및 상기
Figure 112018113883311-pat00114
중에서 c1을 이용해서
Figure 112018113883311-pat00115
를 계산하는 단계; 및
상기 사용자 비밀키(
Figure 112018113883311-pat00116
)에 포함된 k3를 이용하여
Figure 112018113883311-pat00117
로부터 함수(
Figure 112018113883311-pat00118
)의 결과 값인
Figure 112018113883311-pat00119
를 복호화된 결과로서 추출하는 단계
를 포함하는 함수 암호화 시스템에서 암호화 하는 방법.
The method according to claim 6,
The step of decrypting the ciphertext includes:
The function set of the legitimate user
Figure 112018113883311-pat00109
And the corresponding ciphertext
Figure 112018113883311-pat00110
Between
Figure 112018113883311-pat00111
Using
Figure 112018113883311-pat00112
;
The user corresponding to the user secret key
Figure 112018113883311-pat00113
, D 0 , and D 0
Figure 112018113883311-pat00114
Using c 1 in
Figure 112018113883311-pat00115
; And
The user secret key (
Figure 112018113883311-pat00116
) Using the k 3 included in the
Figure 112018113883311-pat00117
Function (
Figure 112018113883311-pat00118
) Is the result of
Figure 112018113883311-pat00119
As a decoded result
Gt; a < / RTI >
제1항 및 제3항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
A computer-readable recording medium having recorded thereon a program for executing the method according to any one of claims 1 and 3 to 7.
마스터 비밀키와 공개 파라미터를 생성하고, 합법적인 사용자에 대한 비밀키인 사용자 비밀키를 생성하고, 상기 합법적인 사용자의 단말로 상기 사용자 비밀키를 제공하는 키 분배 장치;
상기 합법적인 사용자에게 보낼 메시지를 상기 공개 파라미터를 이용하여 암호문으로 생성하고, 상기 암호문을 상기 합법적인 사용자의 단말로 송신하는 암호화 장치; 및
상기 사용자 비밀키를 이용해서 상기 암호문을 복호화하여 내적 함수의 결과인 내적 함수의 출력값을 획득 하는 상기 합법적인 사용자의 단말
을 포함하고,
상기 키 분배 장치는,
상기 마스터 비밀키와 상기 공개 파라미터를 생성할 때,
비대칭 겹선형 맵(Asymmetric bilinear map) 그룹인 B=(p, G1, G2, GT, e(·,·))를 선택하고,(여기서, p는 소수이고, G1과 G2는 타원곡선의 서브그룹이고, GT 는 확장체의 서브그룹이고, G1의 생성자가 g이고, G2의 생성자가 h일 때, e(ga, hb)는 e(g, h)ab를 만족한다.)
a1, a2,…, an ∈ Zp를 선택하고,
Figure 112018113883311-pat00120
를 계산해서 상기 공개 파라미터에 해당하는 (g, g1, g2, …, gn)을 생성하고,
Figure 112018113883311-pat00121
를 계산해서 상기 마스터 비밀키에 해당하는 (h, h1, h2, …, hn, e(g, h))을 생성하는
함수 암호화 시스템.
A key distribution apparatus for generating a master secret key and a public parameter, generating a user secret key which is a secret key for a legitimate user, and providing the user secret key to the terminal of the legitimate user;
An encryption device for generating a message to be sent to the legitimate user as a cipher text using the public parameter and transmitting the cipher text to the terminal of the legitimate user; And
The legitimate user terminal that decrypts the cipher text using the user secret key to obtain an output value of the inner product function resulting from the inner product function,
/ RTI >
The key distribution apparatus includes:
When generating the master secret key and the public parameter,
(Where p is a prime number and G 1 and G 2 are integers) is selected as the asymmetric bilinear map group B = (p, G 1 , G 2 , G T , a subgroup of an elliptic curve, G T is a subgroup of the expansion body, and a generator of G 1 g, when the generator of G 2 is h, e (g a, h b) is e (g, h) ab .
a 1 , a 2 , ... , select a n ∈ Z p ,
Figure 112018113883311-pat00120
(G, g 1 , g 2 , ..., g n ) corresponding to the disclosure parameters,
Figure 112018113883311-pat00121
(H, h 1 , h 2 , ..., h n , e (g, h)) corresponding to the master secret key
Function encryption system.
삭제delete 제9항에 있어서,
상기 키 분배 장치는,
상기 합법적인 사용자에 대한 비밀키인 상기 사용자 비밀키를 생성할 때, 상기 합법적인 사용자의 함수 집합에 대한 임의의 난수 R ∈ Z*p을 선택하고,
상기 합법적인 사용자의 함수 집합, 상기 난수 R, 상기 마스터 비밀키 및 상기 공개 파라미터를 이용해서 상기 사용자 비밀키에 해당하는
Figure 112018113883311-pat00123
를 생성하는
(여기서, 상기 합법적인 사용자의 함수 집합은
Figure 112018113883311-pat00124
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이고, 상기 마스터 비밀키는 (h, h1, h2, …, hn, e(g, h))이고,
Figure 112018113883311-pat00125
이고,
Figure 112018113883311-pat00126
이고,
Figure 112018113883311-pat00127
이다.)
함수 암호화 시스템.
10. The method of claim 9,
The key distribution apparatus includes:
Selecting an arbitrary random number R ∈ Z * p for the legitimate user's function set when generating the user private key, which is a secret key for the legitimate user,
Using the function set of the legitimate user, the random number R, the master secret key, and the public parameter,
Figure 112018113883311-pat00123
To generate
(Where the legitimate user's set of functions is
Figure 112018113883311-pat00124
, And the public parameters is (g, g 1, g 2 , ..., g n) , and wherein the master secret key (h, h 1, h 2 , ..., h n, e (g, h)),
Figure 112018113883311-pat00125
ego,
Figure 112018113883311-pat00126
ego,
Figure 112018113883311-pat00127
to be.)
Function encryption system.
제9항에 있어서,
상기 암호화 장치는,
상기 암호문을 생성할 때,
임의의 난수 s ∈ Z*p을 선택하고,
상기 난수 s, 상기 공개 파라미터를 이용해서 상기 합법적인 사용자에게 보낼 메시지에 해당하는 메시지 집합(
Figure 112016098336684-pat00128
)을 암호화하여 상기 암호문에 해당하는
Figure 112016098336684-pat00129
을 생성하는
(여기서,
Figure 112016098336684-pat00130
,
Figure 112016098336684-pat00131
이고, 상기 공개 파라미터는 (g, g1, g2, …, gn)이다.)
함수 암호화 시스템.
10. The method of claim 9,
The encryption apparatus includes:
When generating the cipher text,
Select any random number s ∈ Z * p,
A random number s, a message set corresponding to a message to be sent to the legitimate user using the public parameter
Figure 112016098336684-pat00128
) Corresponding to the ciphertext
Figure 112016098336684-pat00129
To generate
(here,
Figure 112016098336684-pat00130
,
Figure 112016098336684-pat00131
, And the public parameters is (g, g 1, g 2 , ..., g n).)
Function encryption system.
제9항에 있어서,
상기 합법적인 사용자의 단말은,
상기 암호문을 복호화 할 때,
상기 합법적인 사용자의 함수 집합인
Figure 112018113883311-pat00132
과 상기 암호문에 해당하는
Figure 112018113883311-pat00133
중에서
Figure 112018113883311-pat00134
를 이용하여
Figure 112018113883311-pat00135
를 계산하고,
상기 사용자 비밀키에 해당하는
Figure 112018113883311-pat00136
, 상기 D0, 및 상기
Figure 112018113883311-pat00137
중에서 c1을 이용해서
Figure 112018113883311-pat00138
를 계산하고,
상기 사용자 비밀키(
Figure 112018113883311-pat00139
)에 포함된 k3를 이용하여
Figure 112018113883311-pat00140
로부터 함수(
Figure 112018113883311-pat00141
)의 결과 값인
Figure 112018113883311-pat00142
를 복호화된 결과로서 추출하는
함수 암호화 시스템.
10. The method of claim 9,
The terminal of the legitimate user,
When decrypting the cipher text,
The function set of the legitimate user
Figure 112018113883311-pat00132
And the corresponding ciphertext
Figure 112018113883311-pat00133
Between
Figure 112018113883311-pat00134
Using
Figure 112018113883311-pat00135
Lt; / RTI >
The user corresponding to the user secret key
Figure 112018113883311-pat00136
, D 0 , and D 0
Figure 112018113883311-pat00137
Using c 1 in
Figure 112018113883311-pat00138
Lt; / RTI >
The user secret key (
Figure 112018113883311-pat00139
) Using the k 3 included in the
Figure 112018113883311-pat00140
Function (
Figure 112018113883311-pat00141
) Is the result of
Figure 112018113883311-pat00142
As a decoded result
Function encryption system.
KR1020160131302A 2016-10-11 2016-10-11 Function encryption system and method for outputting inner product values KR101947871B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160131302A KR101947871B1 (en) 2016-10-11 2016-10-11 Function encryption system and method for outputting inner product values

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160131302A KR101947871B1 (en) 2016-10-11 2016-10-11 Function encryption system and method for outputting inner product values

Publications (2)

Publication Number Publication Date
KR20180039922A KR20180039922A (en) 2018-04-19
KR101947871B1 true KR101947871B1 (en) 2019-02-13

Family

ID=62088030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160131302A KR101947871B1 (en) 2016-10-11 2016-10-11 Function encryption system and method for outputting inner product values

Country Status (1)

Country Link
KR (1) KR101947871B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102143525B1 (en) 2019-12-04 2020-08-11 세종대학교산학협력단 Method for function encryption supporting set intersection operation and apparatus using the same
KR20210082019A (en) 2019-12-24 2021-07-02 삼성에스디에스 주식회사 Apparatus and method for set intersection operation

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101992325B1 (en) * 2018-10-31 2019-06-24 상명대학교 천안산학협력단 Session key establishment method based on elliptic curve cryptography using trusted execution environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8320559B1 (en) 2004-06-04 2012-11-27 Voltage Security, Inc. Identity-based-encryption system
KR101308023B1 (en) 2011-10-27 2013-09-26 국방과학연구소 Broadcast encryption method for securing recipient privacy

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8320559B1 (en) 2004-06-04 2012-11-27 Voltage Security, Inc. Identity-based-encryption system
KR101308023B1 (en) 2011-10-27 2013-09-26 국방과학연구소 Broadcast encryption method for securing recipient privacy

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102143525B1 (en) 2019-12-04 2020-08-11 세종대학교산학협력단 Method for function encryption supporting set intersection operation and apparatus using the same
KR20210082019A (en) 2019-12-24 2021-07-02 삼성에스디에스 주식회사 Apparatus and method for set intersection operation

Also Published As

Publication number Publication date
KR20180039922A (en) 2018-04-19

Similar Documents

Publication Publication Date Title
CN109417467A (en) Montgomery Algorithm with side-channel attacks countermeasure
KR102143525B1 (en) Method for function encryption supporting set intersection operation and apparatus using the same
JP6194886B2 (en) Encryption statistical processing system, decryption system, key generation device, proxy device, encrypted statistical data generation device, encryption statistical processing method, and encryption statistical processing program
KR101947871B1 (en) Function encryption system and method for outputting inner product values
Hodowu et al. An enhancement of data security in cloud computing with an implementation of a two-level cryptographic technique, using AES and ECC algorithm
Mendonca Data security in cloud using AES
Krishnamoorthy et al. Implementation and management of cloud security for industry 4. O-data using hybrid elliptical curve cryptography
EP3010173B1 (en) Key storage device, key storage method, and program therefor
KR20220079522A (en) Methods and systems for encryption using geometric algebra and Hansel codes and isomorphic encryption systems
KR101240247B1 (en) Proxy re-encryption Method using two secret key, Method for decrypting of Proxy re-encryption message
KR102284877B1 (en) Efficient functional encryption for set intersection
KR102281265B1 (en) Functional encryption for set intersection with time-constrained function keys
KR101812311B1 (en) User terminal and data sharing method of user terminal based on attributed re-encryption
CN111953480B (en) Key generation device and method, operation key generation device and method
Zaman et al. Distributed multi cloud storage system to improve data security with hybrid encryption
KR101445483B1 (en) Method and system for secure data transfer using conditional proxy re-encryption
KR102526114B1 (en) Apparatus and method for encryption and decryption
Jagadeesh et al. Hybrid AES-Modified ECC Algorithm for Improved Data Security over Cloud Storage
KR101865703B1 (en) Apparatus and method for generating key, apparatus and method for encryption
CN107483387A (en) A kind of method of controlling security and device
KR102593179B1 (en) Efficient decentralized functional encryption for set intersection
Zhang et al. Program obfuscator for privacy-carrying unidirectional one-hop re-encryption
CN109617876A (en) Data encryption, decryption method and system based on Http agreement
CN112989386B (en) Blacklist sharing method and system based on careless transmission
Jain Enhancing security in Tokenization using NGE for storage as a service

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