WO2021054619A1 - 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법 - Google Patents

확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법 Download PDF

Info

Publication number
WO2021054619A1
WO2021054619A1 PCT/KR2020/010941 KR2020010941W WO2021054619A1 WO 2021054619 A1 WO2021054619 A1 WO 2021054619A1 KR 2020010941 W KR2020010941 W KR 2020010941W WO 2021054619 A1 WO2021054619 A1 WO 2021054619A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
information
function
certificate
server
Prior art date
Application number
PCT/KR2020/010941
Other languages
English (en)
French (fr)
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 (주)라닉스
Publication of WO2021054619A1 publication Critical patent/WO2021054619A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Definitions

  • the present invention relates to a system for issuing a plurality of implicit certificates using an extension function and a method for issuing the same.
  • a key pair is generated using an elliptic curve equation and used for the final public key generation.
  • the key pair means a random number and a value obtained by multiplying the random number by the base point, which is the coordinate of a point on the elliptic curve.
  • the public key is included in a certificate issued by an accredited certification authority.
  • butterfly key extension uses an extension function, and the element description of the extension function is a block encryption technique.
  • Korean Patent Publication No. 10-2018-0053066 discloses a method and system for issuing an implicit certificate applying a key expansion method.
  • Korean Laid-Open Patent Publication No. 10-2018-0053066 since a certificate is issued between the host that is the certificate requester and the server of the upper certification authority that finally issues a plurality of certificates, the higher certification authority And the corresponding certificate information, it may represent a vulnerability in terms of personal information protection.
  • the present invention is an invention aimed at solving the technical problem as described above, without acquiring the identification information of the certificate requester from a higher level certification authority, and the information of the final private key is known only to the certificate requester, and personal information Its purpose is to provide a system for issuing multiple implicit certificates using an extension function that can enhance protection and a method for issuing the same.
  • the certificate issuing system of the present invention includes a first user terminal; wherein the first user terminal calculates N inverse encryption function values using a random number p and a second expansion function, and calculates the N inverse encryption function values.
  • the encrypted N certificates and N private key reproduction information are reverse-encrypted to calculate N certificates and N private key reproduction information.
  • the information for reproducing the N pieces of private keys is characterized in that a value used by the first user terminal to calculate a final private key.
  • the second expansion function is calculated as a first second expansion function value by dividing the first second internal function value by the order value of the elliptic curve equation, and the first second internal function value, A value obtained by adding 1 to 3 to the second symmetric key and the first second information value, which is a random number, is each encrypted by the first encryption function, and then the value obtained by adding 1 to 3 to the first first information value and X- This is the value output by connecting the result of OR operation and X-OR operation.
  • the first second information value is a value calculated using first index information and second index information, which are information corresponding to indexes for N certificates.
  • the second expansion function is calculated as the w-th second expansion function value by dividing the w-th second internal function value by the order value of the elliptic curve equation, and the w-th second internal function value Is, a value obtained by adding 1 to 3 to the w-th second information value calculated using the second symmetric key and the w-1 second information value is each encrypted by the first encryption function, and then the w-th second information value is 2 A value obtained by adding 1 to 3 to the information value and each X-OR operation, and the result of the X-OR operation are concatenated and output, wherein w is a natural number that is 2 or more and N or less.
  • the encryption by the first encryption function (S100) using the S value, calculating the k-th round key (R k ); And (S200) generating an encrypted output using the k-th round key (R k) and T value calculated in step S100.
  • the S value is the second symmetric key value.
  • the T value is a value obtained by adding one of the first second information value to the N-th second information value and one of 1 to 3;
  • (S110) S is divided into 32-bit word units S b0 , S b0+1 , S b0+2 and S b0+3 , and S b0 , S b0+1 , S b0
  • S b0 By calculating +2 and S b0+3 respectively and preset values F b0 , F b0+1 , F b0+2 and F b0+3 respectively, the initial four keys U b0 , U b0+1 , U b0+2 And outputting U b0+3.
  • step S120 sequentially performing X-OR operations of U k+1 , U k+2 and U k+3 and the constant V k;
  • step S130 converting the result of step S120 by a nonlinear function;
  • step S140 converting the result of step S130 by a linear function;
  • S150 calculating U k+4 by performing an X-OR operation on the results of U k and S140 steps; including, but increasing k from b0 to (b0+31) by 1, steps S120 to S150 Steps are repeatedly performed, and U k+4 of step S150 is calculated as a corresponding k-th round key (R k ), wherein b0 is a preset integer.
  • the step S200 may include (S210) dividing T into 32-bit word units T d0 , T d0+1 , T d0+2 and T d0+3 ; (S220) T k+1 , T k+2 and T k+3 and the k-th round key (R k ) being continuously X-ORed; (S230) converting the result of step S220 by a nonlinear function; (S240) converting the result of step S230 by a linear function; And (S250) calculating T k+4 by performing an X-OR operation on T k and the result of the S240 step; including, and increasing k from d0 to (d0+31) by 1, from step S220 to Step S250 is repeatedly performed, and finally (T d0+31+4 , T d0+31+3 , T d0+31+2 , T d0+31+1 ) is output, wherein d0 is a preset integer
  • the first user terminal calculates a final private key using a random number a, a first extension function, a hash function value of N certificates, and information for reproducing the N private keys.
  • the first user terminal is characterized in that it transmits one certificate to the second user terminal.
  • the second user terminal calculates one final public key by using one certificate received from the first user terminal and a public key value of the second server known in advance.
  • the one final public key is a value obtained by multiplying a hash function value of the one certificate and a value calculated by decoding the one certificate; and a public key value of the second server. do.
  • the certificate issuing system of the present invention further includes the second server, wherein the second server is a value obtained by multiplying the base point G on the elliptic curve equation by a random number c, and N number of It is preferable to add each of the 2-1 keys to calculate N third keys.
  • the second server converts the values of the N third keys into N octets strings, which are N certificates, by encoding, and the hash function values of each of the N certificates and the second server Using the private key value, the information values for reproducing the N private keys are calculated.
  • each of the N private key reproduction information values is a value obtained by multiplying each hash function value of each of the N certificates by a random number c and a value obtained by adding the private key value of the second server.
  • the method for issuing a certificate of the present invention includes the steps of: (S13) calculating N inverse encryption function values by using a random number p and a second extension function, by a first user terminal; And (S14) the first user terminal reverse-encrypts the encrypted N certificates and N private key reproduction information using the N inverse encryption function values to obtain N certificates and N private key reproduction information. It includes; calculating step.
  • the N pieces of private key reproduction information are values used by the first user terminal to calculate a final private key.
  • the certificate issuing method of the present invention after the step (S14), (S15) the first user terminal, a random number a, a first extension function, a hash function value of N certificates, and the N private keys Calculating a final private key by using the reproduction information; (S16) transmitting, by the first user terminal, one certificate to the second user terminal; (S42) calculating, by the second user terminal, one final public key using one certificate received from the first user terminal and a public key value of the second server known in advance; It is characterized by that.
  • the one final public key is a value obtained by multiplying a hash function value of the one certificate and a value calculated by decoding the one certificate; and a public key value of the second server.
  • the certificate issuing method of the present invention prior to the step (S13), (S32) the second server multiplies the base point G on the elliptic curve equation by a random number c, and N received from the first server. Calculating N third keys by adding each of the 2-1 keys; And (S33) the second server converts the values of the N third keys into N octets strings, which are N certificates, by encoding, and hash function values of each of the N certificates and the second It characterized in that it further comprises; calculating the information values for the reproduction of the N private keys using the private key value of the server.
  • each of the N private key reproduction information values is a value obtained by multiplying each hash function value of each of the N certificates by a random number c and a value obtained by adding the private key value of the second server.
  • the identification information of the certificate requestor is not obtained from the upper certification authority, and the final private key information is known only to the certificate requester, Information protection can be strengthened.
  • FIG. 1 is a block diagram of a system for issuing a plurality of implicit certificates using an extension function according to a preferred embodiment of the present invention.
  • Fig. 2 is a flowchart of an operation by a first encryption function.
  • step S100 is a detailed flowchart of step S100.
  • step S200 is a detailed flowchart of step S200.
  • the system 100 for issuing a plurality of implicit certificates using an extension function using an extension function uses a butterfly key extension method.
  • FIG. 1 shows a configuration diagram of a plurality of implicit certificate issuing systems 100 using an extension function according to a preferred embodiment of the present invention.
  • a plurality of implicit certificate issuing systems 100 using an extension function include a first user terminal 10, a first server 20, and a second It may be configured to include a server 30 and a second user terminal 40.
  • the first user terminal 10, the first server 20, the second server 30, and the second user terminal 40, respectively, are computing devices having memory and communication functions.
  • the first user terminal 10 generates N final private keys
  • the second user terminal (40) generates one final public key.
  • the first server 20 is interposed between the first user terminal 10 and the second server 30. There is a feature of the present invention.
  • the first user terminal 10 may be, for example, a personal terminal such as a smartphone or a computer, and a vehicle terminal installed inside the vehicle.
  • the first user terminal 10 generates an arbitrary random number a in a range greater than 1 and smaller than an integer n, which can be referred to as the initial private key value for signature.
  • the first user terminal 10 generates a random number p in a range greater than a random value of 1, which is an initial private key value for data encryption, and less than an integer n.
  • the first server 20 uses aG that forms a pair with the random number a by multiplying the base point G as a coordinate of a point on the elliptic curve equation determined by the elliptic curve encryption algorithm for each of the random numbers a and p, A pair of pG is used with the random number p.
  • aG that forms a pair with the random number a by multiplying the base point G as a coordinate of a point on the elliptic curve equation determined by the elliptic curve encryption algorithm for each of the random numbers a and p.
  • the random numbers a and p are private keys because they are used by the first user terminal 10, and aG and pG are public keys because they are used by the first server 20.
  • aG and pG are public keys because they are used by the first server 20.
  • the private key and the public key have different values, they correspond to an asymmetric key.
  • the information of the base point is information known to all of the first user terminal 10, the first server 20, and the second server 30.
  • the first user terminal 10 generates a first symmetric key and a second symmetric key.
  • the generated first symmetric key and second symmetric key are transmitted to the first server 20 and used to generate a plurality of final private keys and a plurality of final public keys for key expansion, and are random numbers.
  • Each of the first symmetric key and the second symmetric key is transmitted to the first server 20 so that the first user terminal 10 and the first server 20 use the same first symmetric key and the second symmetric key. It is called a symmetric key.
  • the first user terminal 10 generates first index information and second index information.
  • the first index information and the second index information represent information corresponding to indexes for a plurality of certificates requested by the first user terminal 10, that is, index information, and are issued at 11 o'clock on March 8, 2019. This value gives the same meaning as 1 certificate, 2nd certificate, etc. That is, the first index information and the second index information use information about the issuance time of the certificate.
  • the first index information may correspond to the date and time of issuance information
  • the second index information may correspond to information for indexing the order of certificates issued on the corresponding issue date and time, and a serial number. That is, the first index information is upper index information, and the second index information represents lower index information for indexing the first index information more specifically.
  • the first user terminal 10 includes identification information of the first user terminal 10, aG, pG, a first symmetric key, a second symmetric key, first index information, second index information, and the number of required certificates.
  • the N value which is information, is transmitted to the first server 20.
  • the first server 20 includes identification information of the first user terminal 10 from the first user terminal 10, a value aG obtained by multiplying the random number a by the base point G on the elliptic curve equation, the random number p and the elliptic curve equation A value pG multiplied by the base point G of the image, a first symmetric key, a second symmetric key, first index information, second index information, and an N value, which is information on the number of certificates, are received.
  • the first server 20 includes: a first extension function for inputting a first symmetric key, first index information, second index information, and an N value, which is information on the number of certificates; And aG value; to generate N 2-1 keys.
  • the first server 20 includes: a second extension function for inputting a second symmetric key, first index information, second index information, and an N value, which is information on the number of certificates; And pG value; to generate N 2-2 keys.
  • the first expansion function f1(m) can be expressed as the following [Equation 1].
  • the meaning of the (A)mod(B) function in [Equation 1] is a modular operation function that calculates the remaining value obtained by dividing A by B as a result value.
  • Y is the order value of the elliptic curve equation used by the first user terminal 10 to generate a key pair of a and aG, and the same elliptic curve equation is also used in the first server 20. That is, Y is also the order value of the elliptic curve equation used in the first server 20.
  • This order value is a constant value that can be easily obtained from the elliptic curve equation defined by the first user terminal 10 and the first server 20.
  • f11(m) denotes a first internal function. Here, if m is set from 1 to N, N private keys by the N first expansion functions of the first first expansion function (f1(1)) to the Nth first expansion function (f1(N)) Can be created.
  • the first internal function f11(m) can be expressed as the following [Equation 2].
  • Enc means a first encryption function.
  • the first encryption function will be described later. here Denotes an X-OR (exclusive OR) operation.
  • represents a linking function, and as an example, A
  • ck means a first symmetric key.
  • the first expansion function is the residual value obtained by dividing the first internal function value by the order value of the elliptic curve equation, and the first expansion function value It is calculated as.
  • the first first internal function value is a first symmetric key, which is a random number, and a value obtained by adding 1 to 3 to the first first information value, respectively, after being encrypted by the first encryption function, and the first first information value It is the value obtained by adding 1 to 3 to X-OR operation, and connecting the result of the X-OR operation to the output value.
  • w-th first expansion function value a residual value obtained by dividing the w-th first internal function value by the order value of the elliptic curve equation is calculated as the w-th first expansion function value.
  • the w-th first internal function value is obtained by adding 1 to 3 to the w-th first information value calculated using the first symmetric key and the w-1 first information value, respectively, by the first encryption function.
  • an X-OR operation is performed with a value obtained by adding 1 to 3 to the w-th first information value, and the result of the X-OR operation is concatenated to be an output value.
  • w is characterized in that it is a natural number that is 2 or more and N or less.
  • o1(1) and o1(m) are first information values and can be expressed as the following [Equation 3] and [Equation 4].
  • i and j denote first index information and second index information, respectively.
  • o1(1) is defined by [Equation 3]
  • o1[2] to o1[N] are defined by [Equation 4].
  • 0 32 represents a value of 32-bit 0.
  • the second expansion function f2(m) can be expressed as the following [Equation 5].
  • the meaning of the (A)mod(B) function is a modular operation function that calculates the remaining value obtained by dividing A by B as a result value.
  • Y is the order value of the elliptic curve equation used by the first user terminal 10 to generate a key pair of p and pG, and the same elliptic curve equation is also used in the first server 20. That is, Y is also the order value of the elliptic curve equation used in the first server 20. This value is the same as the Y value in [Equation 1].
  • f21(m) denotes a second internal function. Here, if m is set from 1 to N, N number of public keys by the N second expansion functions of the first second expansion function (f2(1)) to the Nth second expansion function (f2(N)) Can be created.
  • the second internal function f21(m) can be expressed as the following [Equation 6].
  • Enc means the first encryption function.
  • the first encryption function will be described later. here Denotes an X-OR (exclusive OR) operation.
  • represents a linking function, and as an example, A
  • ek means a second symmetric key.
  • the second expansion function is the residual value obtained by dividing the first second internal function value by the order value of the elliptic curve equation, and the first second expansion function value It is calculated as.
  • the first second internal function value is a second symmetric key, which is a random number, and a value obtained by adding 1 to 3 to the first second information value, respectively, after being encrypted by the first encryption function, and the first second information value It is the value obtained by adding 1 to 3 to X-OR operation, and connecting the result of the X-OR operation to the output value.
  • a residual value obtained by dividing the w-th second internal function value by the second symmetric key is calculated as the w-th second expansion function value.
  • the w-th second internal function value is obtained by adding 1 to 3 to the w-th second information value calculated using the second symmetric key and the w-1 second information value, respectively, by the first encryption function.
  • the value obtained by adding 1 to 3 to the w-th second information value and each X-OR operation, and the result of the X-OR operation are concatenated and output.
  • w is characterized in that it is a natural number that is 2 or more and N or less.
  • o2(1) and o2(m) are second information values, and may be expressed as the following [Equation 7] and [Equation 8].
  • i and j denote first index information and second index information, respectively.
  • o2(1) is defined by [Equation 7]
  • o2[2] to o2[N] are defined by [Equation 8].
  • 1 32 represents a value of 32 bits 1
  • 0 32 represents a value of 32 bits 0.
  • the N number of 2-1 keys B2(m) generated by the first server 20 may be calculated as shown in [Equation 9] below.
  • each of the N-th 2-1 keys is on an elliptic curve determined by the elliptic curve encryption algorithm in each of the first to the N-th first expansion function value.
  • a value obtained by multiplying the base point, which is the coordinate of a point; and a value obtained by multiplying the random number a by the base point; can be expressed as a sum of.
  • the N number of 2-2 keys Q2(m) generated by the first server 20 may be calculated as shown in [Equation 10] below.
  • each of the N-th 2-2 keys is on the elliptic curve determined by the elliptic curve encryption algorithm in each of the first second expansion function value to the N-th second expansion function value. It can be expressed as a value obtained by adding a value obtained by multiplying the base point, which is a coordinate of a point; and a value obtained by multiplying the base point by the random number p.
  • the first server 20 transmits the N 2-1 keys and the N 2-2 keys to the second server 30.
  • the second server 30 is a server of an upper level certification authority of the first server 20 and is a server that issues a certificate.
  • the second server 30 generates N third keys D3(m) by the following [Equation 11].
  • the second server 30 multiplies the base point, which is the coordinate of a point on the elliptic curve determined by the elliptic curve encryption algorithm, by the random number c.
  • Each -1 key is added to calculate N third keys.
  • the second server 30 converts the values of the N third keys into N octets strings by encoding. These N octec strings are N implicit certificates. That is, N implicit certificates are generated by the N third keys.
  • N hash function values are obtained.
  • the second server 30 calculates N private key reproduction information values by using the hash function value of each of the N certificates and the private key value of the second server 30.
  • the second server 30 uses the hash function result value (e(m)), the random number c value, and the second server's own private key value (d CA ) to determine the public key built-in value (I_Q CA ). It can be calculated as the following [Equation 13].
  • the second server 30 adds the private key value (d CA ) of the second server 30 to the value obtained by multiplying the hash function value of each of the N certificates by a random number c, and thus reproducing N pieces of private key information.
  • the value (r(m)) can be calculated by the following [Equation 14].
  • the N private key reproduction information values use the private key value information of the second server 30.
  • the second server 30 encrypts N implicit certificates and N private key reproduction information values using N 2-2 keys and transmits them to the first server 20.
  • the first server 20 transmits the encrypted N implicit certificates and N private key reproduction information values received from the second server 30 to the first user terminal 10.
  • the first user terminal 10 calculates N inverse encryption function values Q4(m) using a random number p and a second extension function as shown in Equation 15 below.
  • the first user terminal 10 uses the N inverse encryption function values to reverse-encrypt the encrypted N certificates and N private key reproduction information to obtain N certificates and N private key reproduction information. Calculate.
  • the first user terminal 10 includes a random number a, a first extension function (f1(m)), a hash function value (e(m)) of N certificates, and N pieces of private key reproduction information (r( m)), the final private key (B(m)) is calculated as shown in [Equation 16] below.
  • the value obtained by multiplying the final private key value of [Equation 16] by the base point G becomes the public key built-in value (I_Q CA ) of [Equation 13]. That is, as can be seen from [Equation 16], the final private key value is the hash function value of the N implicit certificates received from the second server 40, and the first user terminal 10 for the N implicit certificates It is a new private key value obtained from the initially generated random number a and N private key reproduction information.
  • the first user terminal 10 may also calculate the first extension function and the second extension function.
  • the first and second extension functions calculated by the first user terminal 10 represent the same functions as the first and second extension functions calculated by the first server 20, respectively.
  • the first user terminal 10 receives the number of final implicit certificates and final private keys requested by itself from the second server 30, which is a higher level certification authority, while ensuring privacy. Issuance can be completed.
  • the N final private keys are keys used by the first user terminal 10 itself, they are private keys, and the N final implicit certificates are used by devices other than the first user terminal 10, so they become information for extracting public keys.
  • the second user terminal 40 which is another user terminal that has received the document, is an implicit certificate paired with the corresponding private key and a second server. Extracting the public key corresponding to the private key of the first user terminal 10 using the public key of, and verifying the integrity of the document using the extracted public key and authenticating the first user terminal 10 that is the other terminal Can be judged.
  • the second user terminal 40 transmits the public key from these information. Should be extracted. Examples of the information of the authenticated content include documents and music.
  • the second user terminal 40 uses one certificate received from the first user terminal 10 and public key information of the second server 30 that is known in advance to obtain one final public key (E_Q CA ). It is calculated as the following [Equation 17].
  • Q CA is the public key value of the second server 30 Show.
  • the third key value becomes a coordinate value obtained by decoding the implicit certificate. That is, one final public key is a value obtained by multiplying a hash function value of one certificate and a value calculated by decoding one certificate; and a public key value of the second server.
  • a third key value is converted into an octec string through an encoding process, and the converted octec string is One implicit certificate was created. Therefore, when the implicit certificate in the form of an octec string is decoded again, it is converted into an information value for the third key. After multiplying the converted third key value by the hash function value for the implicit certificate, the public key information value Q CA of the second server 30 is added to extract the final public key value. Most of the second user terminals 40 hold the public key certificate of the second server 30 and may extract the public key of the second server 30 from the public key certificate.
  • the second user terminal 40 can easily calculate the public key of the first user terminal 10 after receiving the implicit certificate from the first user terminal 10 to communicate with.
  • This method has the advantage of reducing the network burden because there is no signature information of the second server 30 in the implicit certificate, so that a certificate issuing system having a small amount of information can be created. Even if there is no public key certificate of the second server 30 in the implied certificate, the public key certificate of the second server 30 in order for the second user terminal 40 to extract the public key of the second user terminal 10 Since it can be stored and used, signature authentication of the second server 30 for the extracted public key can be performed.
  • FIG. 2 shows a flowchart of an operation by the first encryption function.
  • the encryption by the first encryption function includes: (S100) calculating a corresponding k-th round key (R k) using an S value; And (S200) generating an encrypted output using the k-th round key (R k) and T value calculated in step S100.
  • the S value is the first symmetric key value
  • the T value is the first first information value to the Nth first information value One of; and one of 1 to 3; is added together.
  • the S value is the second symmetric key value
  • the T value is the first second information value to the N-th second One of the information values; and one of 1 to 3; are added to each other. That is, the S value and the T value are given as inputs.
  • step S100 is a detailed flowchart of step S100.
  • step S100 (S110) S is divided into 32-bit word units S b0 , S b0+1 , S b0+2 and S b0+3 , and S b0 , S b0 By calculating +1, S b0+2 and S b0+3 respectively and preset values F b0 , F b0+1 , F b0+2 and F b0+3 respectively, the initial four keys U b0 , U b0+1 , Outputting U b0+2 and U b0+3; (S120) sequentially performing X-OR operations of U k+1 , U k+2 and U k+3 and the constant V k; (S130) converting the result of step S120 by a nonlinear function; (S140) converting the result of step S130 by a linear function; And (S150) calculating U k+4 by performing an X-OR operation on the results of U k and S140
  • U k+4 in step S150 is calculated as the k-th round key (R k ).
  • b0 is a preset integer. For example, b0 may be set to 0.
  • the initial four keys U b0 , U b0+1 , U b0+2 and U b0+3 in step S110 are respectively S b0 , S b0+1 , S b0+2 and S b0+3 respectively and preset values It is characterized in that it is calculated by an X-OR operation of F b0 , F b0+1 , F b0+2 and F b0+3.
  • the nonlinear function in step S130 may use, for example, a preset correspondence table.
  • the linear function in step S140 may be a shift operation.
  • step S100 after the conversion by the nonlinear function in step S130, the transformation by the linear function in step S140 can be performed, whereby stronger encryption performance can be exhibited.
  • step S200 is a detailed flowchart of step S200.
  • step S200 includes: (S210) dividing T into 32-bit word units T d0 , T d0+1 , T d0+2 and T d0+3; (S220) T k+1 , T k+2 and T k+3 and the k-th round key (R k ) being continuously X-ORed; (S230) converting the result of step S220 by a nonlinear function; (S240) converting the result of step S230 by a linear function; And (S250) calculating T k+4 by performing an X-OR operation on the results of steps T k and S240.
  • step S200 while increasing k by 1 from d0 to (d0+31) by steps S215, S260, and S270, steps S220 to S250 are repeatedly performed, and finally (T d0+31+) 4 , T d0+31+3 , T d0+31+2 , T d0+31+1 ) are output.
  • d0 is a preset integer and may be set to 0, for example.
  • the step S200 can exhibit stronger encryption performance by performing the transformation by the nonlinear function in the step S230 and then by the linear function in the step S240.
  • the nonlinear function in step S230 may use, for example, a preset correspondence table.
  • the linear function of step S240 may be a shift operation.
  • a method for issuing a plurality of implicit certificates using an extension function uses a plurality of implicit certificate issuing systems 100 using the above-described extension function, so even if there is no separate description, multiple implicit certificates are issued using the extension function. It goes without saying that it includes all the features of the implied certificate issuing system 100.
  • the first user terminal 10 includes identification information of the first user terminal 10, a random number a and an elliptic curve. AG multiplied by the basis point G on the equation, pG multiplied by the basis point G on the elliptic curve equation by the random number p, the first symmetric key, the second symmetric key, the first index information, the second index information, and the number of certificates And transmitting the N value to the first server 20.
  • a method for issuing a plurality of implicit certificates using an extension function includes (S21) the first server 20 from the first user terminal 10 to the first user terminal 10. Identification information, a value aG obtained by multiplying the random number a by the base point G on the elliptic curve equation, pG multiplying the random number p by the base point G on the elliptic curve equation, the first symmetric key, the second symmetric key, the first index information, Receiving second index information and a value of N, which is information on the number of certificates; (S22) the first server 20, a first extension function for inputting a first symmetric key, first index information, second index information, and an N value, which is information on the number of certificates; And generating N 2-1 keys using aG value; (S23) a second extension function in which the first server 20 inputs a second symmetric key, first index information, second index information, and a value of N, which is information on the number of certificates; And generating N
  • the method for issuing a plurality of implicit certificates using an extension function includes (S31) the second server 30, N number of 2-1 keys and N Receiving two 2-2 keys; (S32) The second server 30 adds N 2-1 keys to a value obtained by multiplying the base point, which is the coordinate of a point on the elliptic curve determined by the elliptic curve encryption algorithm, by a random number c, Calculating a third key; (S33) The second server 30 converts the values of the N third keys into N octets strings, which are N certificates, by encoding, and hash function values of each of the N certificates and the second server Calculating N private key reproduction information values by using the private key value of (30); And (S34) the second server 30 encrypting the N implicit certificates and N private key reproduction information values by the N 2-2 keys and transmitting the encrypted information to the first server 20; Characterized in that.
  • the N private key reproduction information values are a value obtained by multiplying a hash function value of each of the N certificates by a random number c, and a value obtained by adding the private key value of the second server 30.
  • the method for issuing a plurality of implicit certificates using an extension function includes (S25) the first server 20, N implicit certificates encrypted from the second server 30, and Receiving information values for reproduction of N private keys; And (S26) transmitting, by the first server 20, the encrypted N implicit certificates and N private key reproduction information values to the first user terminal 10.
  • a method for issuing a plurality of implicit certificates using an extension function includes (S12) N implicit certificates encrypted by the first user terminal 10 and information values for reproducing N private keys.
  • a method of issuing a plurality of implicit certificates using an extension function includes (S41) receiving, by the second user terminal 40, one certificate from the first user terminal 10. ; And (S42) the second user terminal 40 uses the one certificate received from the first user terminal 10 and the public key information of the second server 20, which is known in advance, to obtain one final public key. It is preferable to further include a; calculating step.
  • the second server 30 which is a higher level certification authority, which has received the keys of the N 2-1 keys and the N 2-2 keys, serves to issue a plurality of final public key certificates.
  • the second server 30 is in a situation where it is impossible to discern which first user terminal 10 has requested issuance of a certificate.
  • the first server 20 can know the identification information of the first user terminal 10 requesting the issuance of the certificate, the first symmetric key and the second symmetric key using the first expansion function and the second expansion function, This is a situation in which important information on the first user terminal 10 is secured. Accordingly, since a security problem in the first server 20 may occur, the second server 30 assigns a random number c to the base point, which is the coordinate of any one point on the elliptic curve, to the received N number 2-1 keys. By adding the multiplied value, security for the first server 20 is strengthened by setting a third key that is a new public key.
  • the first server 20 is not able to know the public key information finally issued by the first user terminal 10
  • the second server 30 is the second server, which is the public key transmitted by the first server 20.
  • the first user terminal 10 requesting a plurality of public key certificates for the first time may receive a final plurality of public key certificates from the second server 30, which is a higher level certification authority.
  • the first user terminal 10 may calculate and secure a plurality of corresponding private keys from a plurality of public key certificates.
  • the second server 30, which is a higher level certification authority, cannot distinguish between the first user terminals 10 that have requested for each of the plurality of certificates requested from the plurality of first user terminals 10. That is, the privacy of the first user terminal 10 is guaranteed.
  • the identification of the first user terminal 10 as the certificate requester in the second server 30 as a higher authentication authority As described above, according to the system 100 for issuing a plurality of implicit certificates using the extension function of the present invention and the issuing method thereof, the identification of the first user terminal 10 as the certificate requester in the second server 30 as a higher authentication authority. It can be seen that the information of the final private key can be known only to the certificate requester without obtaining any information, thereby enhancing the protection of personal information.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Telephone Function (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)

Abstract

인증서 발급 시스템은, 제 1 사용자 단말기;를 포함하되, 상기 제 1 사용자 단말기는, 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하고, 상기 N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 N개의 개인키 재생용 정보를 역암호화하여 N개의 인증서 및 N개의 개인키 재생용 정보를 산출하되, 상기 N개의 개인키 재생용 정보값은, 제 2 서버의 개인키값 정보를 이용하여 산출된다.

Description

확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법
본 발명은 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법에 관한 것이다.
일반적인 공개키 암호화 방식에서는 타원 곡선 방정식을 이용하여 키 쌍을 생성하여 최종적인 공개키 생성에 이용한다. 여기서 키 쌍이라는 것은 랜덤수와 그 랜덤수에 타원곡선 상의 어느 한점의 좌표인 기저점을 곱한 값을 이른다. 아울러, 공개키는 공인인증기관이 발급하는 인증서에 포함되게 된다.
복수의 공개키를 생성하여 복수의 인증서를 발급받는 경우, 제한된 통신 환경에서는 원활하지 못하는 경우가 발생할 수 있다. 이에 복수의 인증서의 발급을 위해, 버터플라이 키 확장을 이용한다. 버터플라이 키 확장에서는 확장함수를 사용하며, 확장함수의 요소 기술은 블록암호화 기술이다.
대한민국공개특허 제10-2018-0053066호에는 키 확장 방식을 적용한 묵시적 인증서 발급 방법 및 시스템이 개시되어 있다. 그런데, 대한민국공개특허 제10-2018-0053066호의 경우, 인증서 요청자인 호스트와 최종적으로 복수의 인증서를 발급하는 상위인증기관의 서버 사이에서 인증서 발급이 이루어지기 때문에, 상위인증기관은 인증서 요청자의 식별 정보와 해당 인증서 정보를 취득하게 되므로, 개인 정보 보호의 측면에서는 취약성을 나타낼 수 있다.
본 발명은 전술한 바와 같은 기술적 과제를 해결하는 데 목적이 있는 발명으로서, 상위인증기관에서 인증서 요청자의 식별 정보를 취득하지 않고, 최종적인 개인키의 정보는 인증서 요청자만이 알 수 있어, 개인 정보 보호를 강화할 수 있는 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법을 제공하는 것에 그 목적이 있다.
본 발명의 인증서 발급 시스템은, 제 1 사용자 단말기;를 포함하되, 상기 제 1 사용자 단말기는, 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하고, 상기 N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 N개의 개인키 재생용 정보를 역암호화하여 N개의 인증서 및 N개의 개인키 재생용 정보를 산출한다. 아울러, 상기 N개의 개인키 재생용 정보는, 상기 제 1 사용자 단말기가 최종 개인키를 산출하기 위해 이용하는 값인 것을 특징으로 한다.
구체적으로, 상기 제 2 확장함수는, 타원곡선 방정식의 차수 값으로 1 번째 제 2 내부 함수값을 나눈 나머지값을 1 번째 제 2 확장함수값으로 산출되되, 상기 1 번째 제 2 내부 함수값은, 랜덤수인 제 2 대칭키 및 1 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다. 또한, 상기 1 번째 제 2 정보값은, N개의 인증서에 대한 인덱스에 해당하는 정보인 제 1 인덱스 정보 및 제 2 인덱스 정보를 이용하여 산출된 값인 것을 특징으로 한다. 바람직하게는, 상기 제 2 확장함수는, 상기 타원곡선 방정식의 차수 값으로 w 번째 제 2 내부 함수값을 나눈 나머지값을 w 번째 제 2 확장함수값으로 산출되되, 상기 w 번째 제 2 내부함수값은, 상기 제 2 대칭키 및 w-1 번째 제 2 정보값을 이용하여 산출된 w 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고, 상기 w는, 2 이상이고 N 이하인 자연수인 것을 특징으로 한다.
또한, 상기 제 1 암호화 함수에 의한 암호화는, (S100) S값을 이용하여, 해당 k 번째 라운드키(Rk)를 산출하는 단계; 및 (S200) 상기 S100 단계에서 산출된 해당 k 번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함한다. 여기서, 상기 S값은, 상기 제 2 대칭키값이다. 또한, 상기 T값은, 1 번째 제 2 정보값 내지 N 번째 제 2 정보값 중 하나;와 1 내지 3 중 하나;를 더한 값인 것을 특징으로 한다.
구체적으로, 상기 S100 단계는, (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계; (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계; (S130) 상기 S120 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S140) 상기 S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함하되, k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하고, 상기 S150 단계의 Uk+4를 해당 k 번째 라운드키(Rk)로서 산출하되, 상기 b0는, 미리 설정된 정수인 것을 특징으로 한다.
또한, 상기 S200 단계는, (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계; (S220) Tk+1, Tk+2 및 Tk+3과 k 번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계; (S230) 상기 S220 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S240) 상기 S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함하고, k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고, 최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력하되, 상기 d0는, 미리 설정된 정수인 것을 특징으로 한다.
아울러, 상기 제 1 사용자 단말기는, 랜덤수 a, 제 1 확장함수, N개의 인증서의 해쉬 함수값 및 상기 N개의 개인키 재생용 정보를 이용하여, 최종 개인키를 산출하는 것이 바람직하다. 또한, 상기 제 1 사용자 단말기는, 제 2 사용자 단말기로, 1개의 인증서를 송신하는 것을 특징으로 한다.
바람직하게는 상기 제 2 사용자 단말기는, 상기 제 1 사용자 단말기로부터 수신한 1개의 인증서 및 미리 알고 있는 상기 제 2 서버의 공개키값을 이용하여, 1개의 최종 공개키를 산출하는 것을 특징으로 한다. 아울러, 상기 1개의 최종 공개키는, 상기 1개의 인증서의 해쉬 함수값과 상기 1개의 인증서의 디코딩에 의해 산출된 값을 곱한 값;과, 상기 제 2 서버의 공개키값;을 더한 값인 것을 특징으로 한다.
또한, 본 발명의 인증서 발급 시스템은, 상기 제 2 서버;를 더 포함하되, 상기 제 2 서버는, 타원곡선 방정식상의 기저점 G에 랜덤수 c를 곱한 값에, 제 1 서버로부터 수신한 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 것이 바람직하다.
아울러, 상기 제 2 서버는, N개의 제 3 키의 값을 인코딩에 의해 N개의 인증서인 N개의 옥텍 스트링(OCTET STRING)으로 변환하고, 상기 N개의 인증서 각각의 해쉬 함수값 및 상기 제 2 서버의 개인키값을 이용하여, 상기 N개의 개인키 재생용 정보값을 산출하는 것을 특징으로 한다. 또한, 상기 N개의 개인키 재생용 정보값은 각각, 상기 N개의 인증서 각각의 해쉬 함수값 각각에 랜덤수 c를 곱한 값에, 상기 제 2 서버의 개인키값을 더한 값이다.
본 발명의 인증서 발급 방법은, (S13) 제 1 사용자 단말기가, 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하는 단계; 및 (S14) 제 1 사용자 단말기가, 상기 N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 N개의 개인키 재생용 정보를 역암호화하여 N개의 인증서 및 N개의 개인키 재생용 정보를 산출하는 단계;를 포함한다. 여기서, 상기 N개의 개인키 재생용 정보는, 상기 제 1 사용자 단말기가 최종 개인키를 산출하기 위해 이용하는 값인 것을 특징으로 한다.
아울러, 본 발명의 인증서 발급 방법은, 상기 (S14) 단계 이후에, (S15) 상기 제 1 사용자 단말기가, 랜덤수 a, 제 1 확장함수, N개의 인증서의 해쉬 함수값 및 상기 N개의 개인키 재생용 정보를 이용하여, 최종 개인키를 산출하는 단계; (S16) 상기 제 1 사용자 단말기가 제 2 사용자 단말기로, 1개의 인증서를 송신하는 단계; (S42) 상기 제 2 사용자 단말기가, 상기 제 1 사용자 단말기로부터 수신한 1개의 인증서 및 미리 알고 있는 상기 제 2 서버의 공개키값을 이용하여, 1개의 최종 공개키를 산출하는 단계;를 더 포함하는 것을 특징으로 한다. 구체적으로, 상기 1개의 최종 공개키는, 상기 1개의 인증서의 해쉬 함수값과 상기 1개의 인증서의 디코딩에 의해 산출된 값을 곱한 값;과, 상기 제 2 서버의 공개키값;을 더한 값이다.
또한, 본 발명의 인증서 발급 방법은, 상기 (S13) 단계 이전에, (S32) 상기 제 2 서버가, 타원곡선 방정식상의 기저점 G에 랜덤수 c를 곱한 값에, 제 1 서버로부터 수신한 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 단계; 및 (S33) 상기 제 2 서버가, N개의 제 3 키의 값을 인코딩에 의해 N개의 인증서인 N개의 옥텍 스트링(OCTET STRING)으로 변환하고, 상기 N개의 인증서 각각의 해쉬 함수값 및 상기 제 2 서버의 개인키값을 이용하여, 상기 N개의 개인키 재생용 정보값을 산출하는 단계;를 더 포함하는 것을 특징으로 한다. 여기서, 상기 N개의 개인키 재생용 정보값은 각각, 상기 N개의 인증서 각각의 해쉬 함수값 각각에 랜덤수 c를 곱한 값에, 상기 제 2 서버의 개인키값을 더한 값이다.
본 발명의 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법에 따르면, 상위인증기관에서 인증서 요청자의 식별 정보를 취득하지 않고, 최종적인 개인키의 정보는 인증서 요청자만이 알 수 있어, 개인 정보 보호를 강화할 수 있다.
도 1은 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템의 구성도.
도 2는 제 1 암호화 함수에 의한 연산 흐름도.
도 3은 S100 단계의 구체적인 흐름도.
도 4는 S200 단계의 구체적인 흐름도.
이하, 첨부된 도면을 참조하면서 본 발명의 실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법에 대해 상세히 설명하기로 한다.
본 발명의 하기의 실시예는 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
본 발명의 실시예에 따른 확장함수를 이용한 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100) 및 그 발급 방법은, 버터플라이 키 확장 방식을 이용한다.
먼저, 도 1은 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100)의 구성도를 나타낸다.
도 1로부터 알 수 있는 바와 같이, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100)은, 제 1 사용자 단말기(10), 제 1 서버(20), 제 2 서버(30) 및 제 2 사용자 단말기(40)를 포함하여 구성될 수 있다.
제 1 사용자 단말기(10), 제 1 서버(20), 제 2 서버(30) 및 제 2 사용자 단말기(40)는 각각, 메모리 및 통신 기능을 구비한 컴퓨팅 장치이다.
본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100)의 동작을 간단히 설명하자면, 제 1 사용자 단말기(10)가 N개의 최종 개인키를 생성하고, 제 2 사용자 단말기(40)가 1개의 최종 공개키를 생성한다.
이러한 최종 공개키 및 N개의 최종 개인키의 발급 과정에서, 개인 정보에 대한 보안을 강화하기 위해, 제 1 서버(20)를 제 1 사용자 단말기(10)와 제 2 서버(30) 사이에 개재한 것에 본 발명의 특징이 있다.
제 1 사용자 단말기(10)는, 스마트폰, 컴퓨터 등과 같은 개인용 단말기 및 차량 내부에 설치된 차량용 단말기를 예로 들 수 있다.
제 1 사용자 단말기(10)는, 서명용 초기 개인키값이라고 할 수 있는 임의의 1 보다 크고 정수 n보다 작은 범위의 임의의 랜덤수 a를 생성한다. 아울러, 제 1 사용자 단말기(10)는, 데이터암호용 초기 개인키값인 임의의 1 보다 크고 정수 n보다 작은 범위의 임의의 랜덤수 p를 생성한다.
제 1 서버(20)는, 랜덤수 a와 p 각각에 대하여 타원곡선 암호 알고리즘에서 결정한 타원곡선 방정식 상의 어느 한점의 좌표로서 기저점 G를 곱하는 것에 의해 랜덤수 a와 한쌍을 이루는 aG를 이용하고, 랜덤수 p와 한쌍을 이루는 pG를 이용한다. 참고로, 랜덤수 a와 p 각각은, 동일한 타원곡선 방정식을 사용하므로, 그 기저점도 동일한 값이 된다.
여기서, 랜덤수 a와 p는 제 1 사용자 단말기(10)에서 이용하므로 개인키이고, aG 및 pG는 제 1 서버(20)에서 이용하므로 공개키가 된다. 아울러, 개인키와 공개키는 서로 상이한 값을 가지므로, 비대칭키에 해당한다.
기저점의 정보는, 제 1 사용자 단말기(10), 제 1 서버(20) 및 제 2 서버(30)가 모두 알고 있는 정보이다.
아울러, 제 1 사용자 단말기(10)는, 제 1 대칭키 및 제 2 대칭키를 생성한다.
생성된 제 1 대칭키 및 제 2 대칭키는, 제 1 서버(20)로 전송되어 키 확장을 위한 복수의 최종 개인키 및 복수의 최종 공개키를 생성하기 위해 사용되며, 랜덤수이다. 제 1 대칭키 및 제 2 대칭키 각각은, 제 1 서버(20)로 전송되어 동일한 제 1 대칭키 및 제 2 대칭키를 제 1 사용자 단말기(10) 및 제 1 서버(20)가 이용하게 되므로 대칭키라 칭한다.
또한, 제 1 사용자 단말기(10)는, 제 1 인덱스 정보 및 제 2 인덱스 정보를 생성한다.
제 1 인덱스 정보 및 제 2 인덱스 정보는, 제 1 사용자 단말기(10)가 요청하는 복수의 인증서에 대한 인덱스에 해당하는 정보, 즉 색인 정보를 나타내며, 2019년 3월 8일 11시에 발행한 제 1 인증서, 제 2 인증서 등과 같은 의미를 부여하는 값이다. 즉, 제 1 인덱스 정보 및 제 2 인덱스 정보는 인증서의 발행 시간 정보를 이용한다. 이때 제 1 인덱스 정보는 발행 연월일시 정보에 대응하고, 제 2 인덱스 정보는 해당 발행 연월일에 발행된 인증서의 순서를 인덱싱하는 정보, 일련번호에 대응할 수 있다. 즉, 제 1 인덱스 정보는 상위 색인 정보이고, 제 2 인덱스 정보는 제 1 인덱스 정보를 더욱 구체적으로 색인하는 하위 색인 정보를 나타낸다.
제 1 사용자 단말기(10)는, 제 1 사용자 단말기(10)의 식별 정보, aG, pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 필요로 하는 인증서의 개수 정보인 N값을 제 1 서버(20)로 전송한다.
제 1 서버(20)는, 제 1 사용자 단말기(10)로부터 제 1 사용자 단말기(10)의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 타원곡선 방정식 상의 기저점 G를 곱한 값 pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신한다.
구체적으로, 제 1 서버(20)는, 제 1 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 aG값;을 이용하여, N개의 제 2-1 키를 생성한다. 아울러, 제 1 서버(20)는, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 pG값;을 이용하여, N개의 제 2-2 키를 생성한다.
제 1 확장함수(f1(m))는 다음의 [수학식 1]과 같이 나타낼 수 있다.
Figure PCTKR2020010941-appb-M000001
[수학식 1]에서 (A)mod(B) 함수의 의미는, A를 B로 나눈 나머지 값을 결과값으로 산출하는 모듈러 연산 함수이다. 아울러, Y는 제 1 사용자 단말기(10)가 a와 aG의 키 쌍을 생성하기 위해 사용했던 타원곡선 방정식의 차수 값으로, 제 1 서버(20)에서도 동일한 타원곡선 방정식이 이용된다. 즉, Y는 제 1 서버(20)에서 사용하는 타원곡선 방정식의 차수 값이기도 하다. 이 차수 값은 제 1 사용자 단말기(10)와 제 1 서버(20)가 서로 정의한 타원곡선 방정식에서 용이하게 얻을 수 있는 상수 값이다. 또한, f11(m)는 제 1 내부 함수를 의미한다. 여기서, m을 1로부터 N까지로 설정하면, 1 번째 제 1 확장함수(f1(1)) 내지 N 번째 제 1 확장함수(f1(N))의 N개의 제 1 확장함수에 의해 N개의 개인키가 생성 가능하다.
구체적으로, 제 1 내부 함수(f11(m))은 다음의 [수학식 2]와 같이 나타낼 수 있다.
Figure PCTKR2020010941-appb-M000002
[수학식 2]에서 Enc는 제 1 암호화 함수를 의미한다. 제 1 암호화 함수에 대해서는, 후술하기로 한다. 여기서
Figure PCTKR2020010941-appb-I000001
는 X-OR(Exclusive OR, 배타적 논리합) 연산을 나타낸다. 아울러, ||는 연결 기능을 나타내며, 일례로 A||B||C 는 A, B, C 값을 차례로 연결한 하나의 값을 나타낸다. 또한, ck는 제 1 대칭키를 의미한다.
[수학식 1]과 [수학식 2]로부터 알 수 있는 바와 같이, 제 1 확장함수는, 타원곡선 방정식의 차수 값으로 1 번째 제 1 내부 함수값을 나눈 나머지값을 1 번째 제 1 확장함수값으로 산출한다. 여기서, 1 번째 제 1 내부 함수값은, 랜덤수인 제 1 대칭키 및 1 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다.
또한, 제 1 확장함수는, 타원곡선 방정식의 차수 값으로 w 번째 제 1 내부 함수값을 나눈 나머지값을 w 번째 제 1 확장함수값으로 산출한다. 여기서, w 번째 제 1 내부함수값은, 제 1 대칭키 및 w-1 번째 제 1 정보값을 이용하여 산출된 w 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, w 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이 된다. 아울러, w는, 2 이상이고 N 이하인 자연수인 것을 특징으로 한다.
또한, o1(1) 및 o1(m)은 제 1 정보값으로, 다음의 [수학식 3] 및 [수학식 4]와 같이 나타낼 수 있다.
Figure PCTKR2020010941-appb-M000003
Figure PCTKR2020010941-appb-M000004
참고로, o1(1)은, m=1인 경우의 o1(m) 값으로, o1(m)의 초기값을 나타낸다. 아울러, i와 j는 각각 제 1 인덱스 정보 및 제 2 인덱스 정보를 나타낸다.
즉, [수학식 3]에 의해 o1(1)가 정의되고, [수학식 4]에 의해 o1[2] 내지 o1[N]이 정의된다. 아울러, 032 는 32비트 0의 값을 나타낸다.
제 2 확장함수(f2(m))는 다음의 [수학식 5]와 같이 나타낼 수 있다.
Figure PCTKR2020010941-appb-M000005
[수학식 5]에서 (A)mod(B) 함수의 의미는, A를 B로 나눈 나머지 값을 결과값으로 산출하는 모듈러 연산 함수이다. 아울러, Y는 제 1 사용자 단말기(10)가 p와 pG의 키 쌍을 생성하기 위해 사용했던 타원곡선 방정식의 차수 값으로, 제 1 서버(20)에서도 동일한 타원곡선 방정식이 이용된다. 즉, Y는 제 1 서버(20)에서 사용하는 타원곡선 방정식의 차수 값이기도 하다. 이 값은 [수학식 1]에서의 Y 값과 동일하다. 또한, f21(m)는 제 2 내부 함수를 의미한다. 여기서, m을 1로부터 N까지로 설정하면, 1 번째 제 2 확장함수(f2(1)) 내지 N 번째 제 2 확장함수(f2(N))의 N개의 제 2 확장함수에 의해 N개의 공개키가 생성 가능하다.
구체적으로, 제 2 내부 함수(f21(m))는 다음의 [수학식 6]과 같이 나타낼 수 있다.
Figure PCTKR2020010941-appb-M000006
[수학식 6]에서 Enc는 제 1 암호화 함수를 의미한다. 제 1 암호화 함수에 대해서는, 후술하기로 한다. 여기서
Figure PCTKR2020010941-appb-I000002
는 X-OR(Exclusive OR, 배타적 논리합) 연산을 나타낸다. 아울러, ||는 연결 기능을 나타내며, 일례로 A||B||C 는 A, B, C 값을 차례로 연결한 하나의 값을 나타낸다. 또한, ek는 제 2 대칭키를 의미한다.
[수학식 5]와 [수학식 6]으로부터 알 수 있는 바와 같이, 제 2 확장함수는, 타원곡선 방정식의 차수 값으로 1 번째 제 2 내부 함수값을 나눈 나머지값을 1 번째 제 2 확장함수값으로 산출한다. 여기서, 1 번째 제 2 내부 함수값은, 랜덤수인 제 2 대칭키 및 1 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다.
또한, 제 2 확장함수는, 제 2 대칭키로 w 번째 제 2 내부 함수값을 나눈 나머지값을 w 번째 제 2 확장함수값으로 산출한다. 여기서, w 번째 제 2 내부함수값은, 제 2 대칭키 및 w-1 번째 제 2 정보값을 이용하여 산출된 w 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, w 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다. 아울러, w는, 2 이상이고 N 이하인 자연수인 것을 특징으로 한다.
아울러, o2(1) 및 o2(m)은 제 2 정보값으로, 다음의 [수학식 7] 및 [수학식 8]과 같이 나타낼 수 있다.
Figure PCTKR2020010941-appb-M000007
Figure PCTKR2020010941-appb-M000008
참고로, o2(1)은, m=1인 경우의 o2(m) 값으로, o2(m)의 초기값을 나타낸다. 아울러, i와 j는 각각 제 1 인덱스 정보 및 제 2 인덱스 정보를 나타낸다.
즉, [수학식 7]에 의해 o2(1)가 정의되고, [수학식 8]에 의해 o2[2] 내지 o2[N]이 정의된다. 아울러, 132 는 32비트 1의 값을 나타내고, 032 는 32비트 0의 값을 나타낸다.
제 1 서버(20)에서 생성되는 N개의 제 2-1 키(B2(m))는 다음의 [수학식 9]과 같이 산출될 수 있다.
Figure PCTKR2020010941-appb-M000009
[수학식 9]로부터 알 수 있는 바와 같이, N개의 제 2-1 키 각각은, 1 번째 제 1 확장함수값 내지 N 번째 제 1 확장함수값 각각에, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점을 곱한 값;과 랜덤수 a와 기저점을 곱한 값;을 더한 값으로 나타낼 수 있다.
제 1 서버(20)에서 생성되는 N개의 제 2-2 키(Q2(m))는 다음의 [수학식 10]과 같이 산출될 수 있다.
Figure PCTKR2020010941-appb-M000010
[수학식 10]으로부터 알 수 있는 바와 같이, N개의 제 2-2 키 각각은, 1 번째 제 2 확장함수값 내지 N 번째 제 2 확장함수값 각각에, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점을 곱한 값;과 랜덤수 p와 기저점을 곱한 값;을 더한 값으로 나타낼 수 있다.
제 1 서버(20)는, N개의 제 2-1 키 및 N개의 제 2-2 키를 제 2 서버(30)로 전송한다.
제 2 서버(30)는, 제 1 서버(20)의 상위인증기관의 서버로서, 인증서를 발급하는 서버이다. 제 2 서버(30)는, 다음의 [수학식 11]에 의해 N개의 제 3 키(D3(m))를 생성한다.
Figure PCTKR2020010941-appb-M000011
[수학식 11]로부터 알 수 있는 바와 같이, 제 2 서버(30)는, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점에 랜덤수 c를 곱한 값에, N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출한다.
제 2 서버(30)는, N개의 제 3 키의 값을 인코딩에 의해 N개의 옥텍 스트링(OCTET STRING)으로 변환한다. 이 N개의 옥텍 스트링이 N개의 묵시적 인증서이다. 즉, N개의 제 3 키에 의해 N개의 묵시적 인증서가 생성된다.
메시지 정보(Msg)을 입력하면 다이제스트 정보 e를 출력하는 해쉬(HASH) 함수를 H(Msg)이라 정의하자. 즉, 메시지 정보(Msg)값으로 묵시적 인증서값(C-U)을 입력하여 얻은 해쉬 함수 결과(e(m))는 다음의 [수학식 12]로 표현될 수 있다.
Figure PCTKR2020010941-appb-M000012
[수학식 12]에서 m을 1로부터 N까지로 설정하면 N개의 해쉬 함수값이 얻어진다. 제 2 서버(30)는 N개의 인증서 각각의 해쉬 함수값 및 제 2 서버(30)의 개인키값을 이용하여, N개의 개인키 재생용 정보값을 산출하게 된다.
구체적으로, 제 2 서버(30)는, 해쉬 함수 결과값(e(m)), 랜덤수 c값, 제 2 서버 자신의 개인키값(dCA)를 이용하여 공개키 내장값(I_QCA)을 다음의 [수학식 13]과 같이 산출할 수 있다.
Figure PCTKR2020010941-appb-M000013
아울러, 제 2 서버(30)는, N개의 인증서 각각의 해쉬 함수값에 랜덤수 c를 곱한 값에, 제 2 서버(30)의 개인키값(dCA)을 더하여, N개의 개인키 재생용 정보값(r(m))을 다음의 [수학식 14]에 의해 산출할 수 있다.
Figure PCTKR2020010941-appb-M000014
[수학식 14]로부터 알 수 있는 바와 같이, N개의 개인키 재생용 정보값은, 제 2 서버(30)의 개인키값 정보를 이용하고 있다.
제 2 서버(30)는 N개의 묵시적 인증서 및 N개의 개인키 재생용 정보값을 N개의 제 2-2 키에 의해 암호화하여 제 1 서버(20)로 송신한다. 아울러, 제 1 서버(20)는, 제 2 서버(30)로부터 수신한 암호화된 N개의 묵시적 인증서 및 N개의 개인키 재생용 정보값을 제 1 사용자 단말기(10)로 송신한다.
제 1 사용자 단말기(10)는, 다음의 [수학식 15]와 같이 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값(Q4(m))을 산출한다.
Figure PCTKR2020010941-appb-M000015
아울러, 제 1 사용자 단말기(10)는, N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 N개의 개인키 재생용 정보를 역암호화하여 N개의 인증서 및 N개의 개인키 재생용 정보를 산출한다.
또한, 제 1 사용자 단말기(10)는, 랜덤수 a, 제 1 확장함수(f1(m)), N개의 인증서의 해쉬 함수값(e(m)) 및 N개의 개인키 재생용 정보(r(m))를 이용하여, 최종 개인키(B(m))를 다음의 [수학식 16]과 같이 산출한다.
Figure PCTKR2020010941-appb-M000016
[수학식 16]의 최종 개인키값에 기저점 G를 곱한 값이 [수학식 13]의 공개키 내장값(I_QCA)값이 된다. 즉, [수학식 16]으로부터 알 수 있는 바와 같이, 최종 개인키값은 제 2 서버(40)로부터 수신한 N개의 묵시적 인증서의 해쉬 함수값, N개의 묵시적 인증서를 위해 제 1 사용자 단말기(10)가 초기에 생성한 랜덤수 a 값, 그리고 N개의 개인키 재생용 정보로부터 얻은 새로운 개인키값이다.
[수학식 13]은 [수학식 16]의 최종 개인키에 대응하여 제 2 서버(40)가 발급한 공개키 내장값이 되는 것이다. 즉, I_QCA = B(m)×G 값과 동일하며, B(m)은 확장함수 변수인 m 값에 대해 유일하게 제 1 사용자 단말기(10)가 연산하여 소유하는 유일한 개인키값이다.
[수학식 15] 및 [수학식 16]으로부터 알 수 있는 바와 같이, 제 1 사용자 단말기(10)도 제 1 확장함수 및 제 2 확장함수를 연산할 수 있다. 제 1 사용자 단말기(10)에서 연산하는 제 1 확장함수 및 제 2 확장함수는 각각, 상술한 제 1 서버(20)에서 연산하는 제 1 확장함수 및 제 2 확장함수와 동일한 함수를 나타낸다.
[수학식 15] 및 [수학식 16]과 같이, 제 1 사용자 단말기(10)는 자신이 요청한 개수의 최종 묵시적 인증서 및 최종 개인키를 상위인증기관인 제 2 서버(30)로부터 프라이버시를 보장받으면서 그 발급을 완성할 수 있다.
여기서 N개의 최종 개인키는 제 1 사용자 단말기(10) 자체에서 이용하는 키이므로 개인키이고, N개의 최종 묵시적 인증서는 제 1 사용자 단말기(10)가 아닌 장치에서 이용하므로 공개키 추출을 위한 정보가 된다. 예를 들어, 제 1 사용자 단말기(10)가 문서에 개인키로 서명을 하면, 해당 문서를 전달받은 다른 사용자 단말기인 제 2 사용자 단말기(40)는 해당 개인키와 쌍을 이루는 묵시적 인증서와 제 2 서버의 공개키를 이용하여 제 1 사용자 단말기(10)의 개인키에 대응하는 공개키를 추출하고, 추출된 공개키를 이용하여 해당 문서의 무결성 검증 및 상대편 단말기인 제 1 사용자 단말기(10)의 인증을 판단할 수 있다.
제 1 사용자 단말기(10)가 하나의 묵시적 인증서, 인증 콘텐츠의 정보, 최종 개인키에 의한 서명 정보를 제 2 사용자 단말기(40)로 전송하면, 제 2 사용자 단말기(40)는 이들 정보로부터 공개키를 추출하여야 한다. 인증 콘텐츠의 정보의 예로는 문서, 음악 등을 들 수 있다. 제 2 사용자 단말기(40)는, 제 1 사용자 단말기(10)로부터 수신한 1개의 인증서 및 미리 알고 있는 제 2 서버(30)의 공개키 정보를 이용하여, 1개의 최종 공개키(E_QCA)를 다음의 [수학식 17]과 같이 산출한다.
Figure PCTKR2020010941-appb-M000017
[수학식 17]에서, e(n)은 m=n에서의 인증서의 해쉬 함수값, D3(n)는 m=n에서의 제 3 키값, QCA는 제 2 서버(30)의 공개키값을 나타낸다. 아울러, 제 3 키값은 묵시적 인증서를 디코딩하여 얻은 좌표값이 된다. 즉, 1개의 최종 공개키는, 1개의 인증서의 해쉬 함수값과 1개의 인증서의 디코딩에 의해 산출된 값을 곱한 값;과 제 2 서버의 공개키값;을 더한 값이 된다.
본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100)에서는, 묵시적 인증서의 발급을 위해, 제 3 키값을 인코딩 과정을 통해 옥텍 스트링으로 변환하고, 변환된 옥텍 스트링으로 하나의 묵시적 인증서를 생성하였다. 따라서, 옥텍 스트링 형태의 묵시적 인증서를 다시 디코딩하면 제 3 키에 대한 정보값으로 변환된다. 변환된 제 3 키값을 묵시적 인증서에 대한 해쉬 함수값과 곱한 후, 제 2 서버(30)의 공개키 정보값(QCA)을 더하여 최종적인 공개키값을 추출하게 된다. 대부분의 제 2 사용자 단말기(40)는 제 2 서버(30)의 공개키 인증서를 보유하게 되며, 공개키 인증서로부터 제 2 서버(30)의 공개키를 추출할 수 있다. 이로써 제 2 사용자 단말기(40)는 통신하고자 하는 제 1 사용자 단말기(10)로부터 묵시적 인증서를 수신한 후, 제 1 사용자 단말기(10)의 공개키를 용이하게 연산할 수 있다. 이러한 방법은 묵시적 인증서에 제 2 서버(30)의 서명 정보가 없어 적은 양의 정보를 가지는 인증서 발급 시스템을 만들 수 있기 때문에 네트워크 부담을 줄일 수 있는 장점이 있다. 비록 묵시적 인증서에 제 2 서버(30)의 공개키 인증서가 없다 하더라도, 제 2 사용자 단말기(40)가 제 2 사용자 단말기(10)의 공개키를 추출하기 위해 제 2 서버(30)의 공개키 인증서를 저장하고 있다가 사용할 수 있어 추출되는 공개키에 대한 제 2 서버(30)의 서명 인증은 이루어질 수 있다.
하기에 제 1 사용자 단말기(10) 및 제 1 서버(20)에 의해 연산되는 제 1 암호화 함수에 대해 구체적으로 설명하기로 한다.
도 2는 제 1 암호화 함수에 의한 연산 흐름도를 나타낸다.
도 2로부터 알 수 있는 바와 같이, 제 1 암호화 함수에 의한 암호화는, (S100) S값을 이용하여, 해당 k 번째 라운드키(Rk)를 산출하는 단계; 및 (S200) S100 단계에서 산출된 해당 k 번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함한다.
[수학식 2]로부터 알 수 있는 바와 같이, 제 1 확장함수가 제 1 암호화 함수를 이용시, S값은 제 1 대칭키값이고, T값은, 1 번째 제 1 정보값 내지 N 번째 제 1 정보값 중 하나;와 1 내지 3 중 하나;를 더한 값이 된다. 마찬가지로, [수학식 6]으로부터 알 수 있는 바와 같이, 제 2 확장함수가 제 1 암호화 함수를 이용시, S값은 제 2 대칭키값이고, T값은, 1 번째 제 2 정보값 내지 N 번째 제 2 정보값 중 하나;와 1 내지 3 중 하나;를 더한 값이 된다. 즉, S값과 T값은 입력으로서 주어진다.
도 3은 S100 단계의 구체적인 흐름도이다.
도 3으로부터 알 수 있는 바와 같이, S100 단계는, (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계; (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계; (S130) S120 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S140) S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함한다. S100 단계는, S115 단계, S160 단계 및 S170 단계에 의해 k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하게 된다..
아울러, S150 단계의 Uk+4를 해당 k 번째 라운드키(Rk)로서 산출한다. 또한, b0는 미리 설정된 정수인 것이 바람직하다. 예를 들면 b0는 0으로 설정될 수 있다.
S110 단계에서의 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3는 각각, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3의 X-OR 연산에 의해 산출되는 것을 특징으로 한다. S130 단계의 비선형 함수는, 예를 들면 미리 설정된 대응 테이블 등을 이용할 수 있다. 아울러, S140 단계의 선형 함수는, 시프트 연산을 예로 들 수 있다.
S100 단계는, S130 단계의 비선형 함수에 의한 변환 이후, S140 단계의 선형 함수에 의한 변환을 실시하는 것에 의해 더욱 강력한 암호화 성능을 발휘할 수 있다.
도 4는 S200 단계의 구체적인 흐름도이다.
도 4로부터 알 수 있는 바와 같이, S200 단계는, (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계; (S220) Tk+1, Tk+2 및 Tk+3과 k 번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계; (S230) S220 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S240) S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S250) Tk와 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함한다. 아울러, S200 단계는, S215 단계, S260 단계 및 S270 단계에 의해 k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고, 최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력한다. d0는 미리 설정된 정수로서, 예를 들면 0으로 설정될 수 있다.
S100 단계와 마찬가지로 S200 단계도, S230 단계의 비선형 함수에 의한 변환 이후, S240 단계의 선형 함수에 의한 변환을 실시하는 것에 의해 더욱 강력한 암호화 성능을 발휘할 수 있다.
S230 단계의 비선형 함수는, 예를 들면 미리 설정된 대응 테이블 등을 이용할 수 있다. 아울러, S240 단계의 선형 함수는, 시프트 연산을 예로 들 수 있다.
하기에 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법에 대해 설명하기로 한다.
본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법은 상술한 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100)을 이용하므로, 별도의 설명이 없더라도, 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100)의 특징을 모두 포함하고 있음은 물론이다.
본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법은, (S11) 제 1 사용자 단말기(10)가, 제 1 사용자 단말기(10)의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 타원곡선 방정식 상의 기저점 G를 곱한 값 pG, 제1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을, 제 1 서버(20)로 전송하는 단계;를 포함한다.
아울러, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법은, (S21) 제 1 서버(20)가, 제 1 사용자 단말기(10)로부터 제 1 사용자 단말기(10)의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 타원곡선 방정식 상의 기저점 G를 곱한 값 pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신하는 단계; (S22) 제 1 서버(20)가, 제 1 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 aG값;을 이용하여, N개의 제 2-1 키를 생성하는 단계; (S23) 제 1 서버(20)가, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 pG값;을 이용하여, N개의 제 2-2 키를 생성하는 단계; 및 (S24) 제 1 서버(20)가, N개의 제 2-1 키 및 N개의 제 2-2 키를 제 2 서버(30)로 전송하는 단계;를 더 포함한다.
또한, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법은, (S31) 제 2 서버(30)가, 제 1 서버(20)로부터 N개의 제 2-1 키 및 N개의 제 2-2 키를 수신하는 단계; (S32) 제 2 서버(30)가, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점에 랜덤수 c를 곱한 값에, N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 단계; (S33) 제 2 서버(30)가, N개의 제 3 키의 값을 인코딩에 의해 N개의 인증서인 N개의 옥텍 스트링(OCTET STRING)으로 변환하고, N개의 인증서 각각의 해쉬 함수값 및 제 2 서버(30)의 개인키값을 이용하여, N개의 개인키 재생용 정보값을 산출하는 단계; 및 (S34) 제 2 서버(30)가 N개의 묵시적 인증서 및 N개의 개인키 재생용 정보값을 N개의 제 2-2 키에 의해 암호화하여 제 1 서버(20)로 송신하는 단계;를 더 포함하는 것을 특징으로 한다.
아울러, N개의 개인키 재생용 정보값은, N개의 인증서 각각의 해쉬 함수값에 랜덤수 c를 곱한 값에, 제 2 서버(30)의 개인키값을 더한 값인 것을 특징으로 한다.
바람직하게는, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법은, (S25) 제 1 서버(20)가, 제 2 서버(30)로부터 암호화된 N개의 묵시적 인증서 및 N개의 개인키 재생용 정보값을 수신하는 단계; 및 (S26) 제 1 서버(20)가, 암호화된 N개의 묵시적 인증서 및 N개의 개인키 재생용 정보값을 제 1 사용자 단말기(10)로 전송하는 단계;를 더 포함하는 것을 특징으로 한다.
아울러, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법은, (S12) 제 1 사용자 단말기(10)가 암호화된 N개의 묵시적 인증서 및 N개의 개인키 재생용 정보값을 제 1 서버(20)로부터 수신하는 단계; (S13) 제 1 사용자 단말기(10)가, 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하는 단계; (S14) 제 1 사용자 단말기(10)가, N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 N개의 개인키 재생용 정보를 역암호화하여 N개의 인증서 및 N개의 개인키 재생용 정보를 산출하는 단계; (S15) 제 1 사용자 단말기(10)가, 랜덤수 a, 제 1 확장함수, N개의 인증서의 해쉬 함수값 및 N개의 개인키 재생용 정보를 이용하여, 최종 개인키를 산출하는 단계; 및 (S16) 제 1 사용자 단말기(10)가 제 2 사용자 단말기(40)로, 1개의 인증서를 송신하는 단계;를 더 포함하는 것을 특징으로 한다.
아울러, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 묵시적 인증서 발급 방법은, (S41) 제 2 사용자 단말기(40)가 제 1 사용자 단말기(10)로부터, 1개의 인증서를 수신하는 단계; 및 (S42) 제 2 사용자 단말기(40)가, 제 1 사용자 단말기(10)로부터 수신한 1개의 인증서 및 미리 알고 있는 제 2 서버(20)의 공개키 정보를 이용하여, 1개의 최종 공개키를 산출하는 단계;를 더 포함하는 것이 바람직하다.
본 발명의 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100) 및 그 발급 방법의 특징에 대해 하기에 정리하기로 한다.
본 발명에서는, N개의 제 2-1 키 및 N개의 제 2-2 키의 키를 전달받은 상위인증기관인 제 2 서버(30)는, 최종적인 복수의 공개키 인증서를 발급하는 역할을 한다. 제 2 서버(30)는, 어느 제 1 사용자 단말기(10)가 인증서 발급을 요청했는지 분별할 수 없는 상황이 된다.
이에 반해 제 1 서버(20)는, 인증서 발급을 요청한 제 1 사용자 단말기(10)의 식별 정보, 제 1 확장함수 및 제 2 확장함수를 이용하는 제 1 대칭키 및 제 2 대칭키를 알 수 있어, 제 1 사용자 단말기(10)에 대한 중요한 정보를 확보하고 있는 상황이다. 이에 따라 제 1 서버(20)에서의 보안의 문제가 발생할 수 있으므로, 제 2 서버(30)는 전달받은 N개의 제 2-1 키에 타원곡선 상의 어느 한점의 좌표인 기저점에 랜덤수 c를 곱한 값을 더하는 것에 의해, 새로운 공개키인 제 3 키를 설정하여 제 1 서버(20)에 대한 보안을 강화한다. 즉, 새로운 공개키인 제 3 키의 설정으로 제 1 서버(20)가 알고 있는 공개키인 제 2-2 키와는 다른 새로운 공개키 인증서를 제 1 사용자 단말기(10)에 전달할 수 있다. 따라서, 제 1 서버(20)는 결국 제 1 사용자 단말기(10)가 최종 발행한 공개키 정보를 알 수 없으며, 제 2 서버(30)는 제 1 서버(20)가 전송한 공개키인 제 2-2 키와 제 1 사용자 단말기(10)의 식별번호의 상관 관계를 알수 없어 어떤 제 1 사용자 단말기(10)에 해당하는 인증서인지를 알 수 없게 된다. 즉, 개인 정보 보호를 강화할 수 있다.
즉, 본 발명에 따르면 다음과 같은 목적을 달성할 수 있다.
(1) 최초로 복수의 공개키 인증서를 요청한 제 1 사용자 단말기(10)는, 상위인증기관인 제 2 서버(30)로부터 최종적인 복수의 공개키 인증서를 발급받을 수 있다.
(2) 또한, 제 1 사용자 단말기(10)는, 복수의 공개키 인증서에서 대응하는 복수의 개인키를 산출하여 확보할 수 있다.
(3) 아울러, 제 1 사용자 단말기(10)만이 최종적인 개인키에 대한 정보를 갖게 된다.
(4) 등록인증기관인 제 1 서버(20)는 최종 공개키 인증서의 공개키값을 전혀 알 수 없다.
(5) 상위인증기관인 제 2 서버(30)는 여러 제 1 사용자 단말기(10)로부터 요청받은 복수의 인증서에 각각에 대해 요청한 제 1 사용자 단말기(10)를 구분할 수 없다. 즉, 제 1 사용자 단말기(10)의 프라이버시가 보장된다.
상술한 바와 같이, 본 발명의 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템(100) 및 그 발급 방법에 따르면, 상위인증기관인 제 2 서버(30)에서 인증서 요청자인 제 1 사용자 단말기(10)의 식별 정보를 취득하지 않고, 최종적인 개인키의 정보는 인증서 요청자만이 알 수 있어, 개인 정보 보호를 강화할 수 있음을 알 수 있다.

Claims (26)

  1. 인증서 발급 시스템에 있어서,
    제 1 사용자 단말기;를 포함하되,
    상기 제 1 사용자 단말기는,
    랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하고,
    상기 N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 N개의 개인키 재생용 정보를 역암호화하여 N개의 인증서 및 N개의 개인키 재생용 정보를 산출하되,
    상기 N개의 개인키 재생용 정보는,
    상기 제 1 사용자 단말기가 최종 개인키를 산출하기 위해 이용하는 값인 것을 특징으로 하는 인증서 발급 시스템.
  2. 제1항에 있어서,
    상기 제 2 확장함수는,
    타원곡선 방정식의 차수 값으로 1 번째 제 2 내부 함수값을 나눈 나머지값을 1 번째 제 2 확장함수값으로 산출되되,
    상기 1 번째 제 2 내부 함수값은,
    랜덤수인 제 2 대칭키 및 1 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 1 번째 제 2 정보값은,
    N개의 인증서에 대한 인덱스에 해당하는 정보인 제 1 인덱스 정보 및 제 2 인덱스 정보를 이용하여 산출된 값인 것을 특징으로 하는 인증서 발급 시스템.
  3. 제2항에 있어서,
    상기 제 2 확장함수는,
    상기 타원곡선 방정식의 차수 값으로 w 번째 제 2 내부 함수값을 나눈 나머지값을 w 번째 제 2 확장함수값으로 산출되되,
    상기 w 번째 제 2 내부함수값은,
    상기 제 2 대칭키 및 w-1 번째 제 2 정보값을 이용하여 산출된 w 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 w는,
    2 이상이고 N 이하인 자연수인 것을 특징으로 하는 인증서 발급 시스템.
  4. 제3항에 있어서,
    상기 제 1 암호화 함수에 의한 암호화는,
    (S100) S값을 이용하여, 해당 k 번째 라운드키(Rk)를 산출하는 단계; 및
    (S200) 상기 S100 단계에서 산출된 해당 k 번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함하되,
    상기 S값은,
    상기 제 2 대칭키값이고,
    상기 T값은,
    1 번째 제 2 정보값 내지 N 번째 제 2 정보값 중 하나;와
    1 내지 3 중 하나;를 더한 값인 것을 특징으로 하는 인증서 발급 시스템.
  5. 제4항에 있어서,
    상기 S100 단계는,
    (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계;
    (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계;
    (S130) 상기 S120 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S140) 상기 S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함하되,
    k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하고,
    상기 S150 단계의 Uk+4를 해당 k 번째 라운드키(Rk)로서 산출하되,
    상기 b0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 시스템.
  6. 제4항에 있어서,
    상기 S200 단계는,
    (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계;
    (S220) Tk+1, Tk+2 및 Tk+3과 k 번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계;
    (S230) 상기 S220 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S240) 상기 S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함하고,
    k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고,
    최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력하되,
    상기 d0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 시스템.
  7. 제1항에 있어서,
    상기 제 1 사용자 단말기는,
    랜덤수 a, 제 1 확장함수, N개의 인증서의 해쉬 함수값 및 상기 N개의 개인키 재생용 정보를 이용하여, 최종 개인키를 산출하는 것을 특징으로 하는 인증서 발급 시스템.
  8. 제1항에 있어서,
    상기 제 1 사용자 단말기는,
    제 2 사용자 단말기로, 1개의 인증서를 송신하는 것을 특징으로 하는 인증서 발급 시스템.
  9. 제8항에 있어서,
    상기 제 2 사용자 단말기는,
    상기 제 1 사용자 단말기로부터 수신한 1개의 인증서 및 미리 알고 있는 상기 제 2 서버의 공개키값을 이용하여, 1개의 최종 공개키를 산출하는 것을 특징으로 하는 인증서 발급 시스템.
  10. 제9항에 있어서,
    상기 1개의 최종 공개키는,
    상기 1개의 인증서의 해쉬 함수값과 상기 1개의 인증서의 디코딩에 의해 산출된 값을 곱한 값;과,
    상기 제 2 서버의 공개키값;을 더한 값인 것을 특징으로 하는 인증서 발급 시스템.
  11. 제1항에 있어서,
    상기 인증서 발급 시스템은,
    상기 제 2 서버;를 더 포함하되,
    상기 제 2 서버는,
    타원곡선 방정식상의 기저점 G에 랜덤수 c를 곱한 값에, 제 1 서버로부터 수신한 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 것을 특징으로 하는 인증서 발급 시스템.
  12. 제11항에 있어서,
    상기 제 2 서버는,
    N개의 제 3 키의 값을 인코딩에 의해 N개의 인증서인 N개의 옥텍 스트링(OCTET STRING)으로 변환하고, 상기 N개의 인증서 각각의 해쉬 함수값 및 상기 제 2 서버의 개인키값을 이용하여, 상기 N개의 개인키 재생용 정보값을 산출하는 것을 특징으로 하는 인증서 발급 시스템.
  13. 제12항에 있어서,
    상기 N개의 개인키 재생용 정보값은 각각,
    상기 N개의 인증서 각각의 해쉬 함수값 각각에 랜덤수 c를 곱한 값에, 상기 제 2 서버의 개인키값을 더한 값인 것을 특징으로 하는 인증서 발급 시스템.
  14. 인증서 발급 방법에 있어서,
    (S13) 제 1 사용자 단말기가, 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하는 단계; 및
    (S14) 제 1 사용자 단말기가, 상기 N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 N개의 개인키 재생용 정보를 역암호화하여 N개의 인증서 및 N개의 개인키 재생용 정보를 산출하는 단계;를 포함하되,
    상기 N개의 개인키 재생용 정보는,
    상기 제 1 사용자 단말기가 최종 개인키를 산출하기 위해 이용하는 값인 것을 특징으로 하는 인증서 발급 방법.
  15. 제14항에 있어서,
    상기 제 2 확장함수는,
    타원곡선 방정식의 차수 값으로 1 번째 제 2 내부 함수값을 나눈 나머지값을 1 번째 제 2 확장함수값으로 산출되되,
    상기 1 번째 제 2 내부 함수값은,
    랜덤수인 제 2 대칭키 및 1 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 1 번째 제 2 정보값은,
    N개의 인증서에 대한 인덱스에 해당하는 정보인 제 1 인덱스 정보 및 제 2 인덱스 정보를 이용하여 산출된 값인 것을 특징으로 하는 인증서 발급 방법.
  16. 제15항에 있어서,
    상기 제 2 확장함수는,
    상기 타원곡선 방정식의 차수 값으로 w 번째 제 2 내부 함수값을 나눈 나머지값을 w 번째 제 2 확장함수값으로 산출되되,
    상기 w 번째 제 2 내부함수값은,
    상기 제 2 대칭키 및 w-1 번째 제 2 정보값을 이용하여 산출된 w 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 w는,
    2 이상이고 N 이하인 자연수인 것을 특징으로 하는 인증서 발급 방법.
  17. 제16항에 있어서,
    상기 제 1 암호화 함수에 의한 암호화는,
    (S100) S값을 이용하여, 해당 k 번째 라운드키(Rk)를 산출하는 단계; 및
    (S200) 상기 S100 단계에서 산출된 해당 k 번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함하되,
    상기 S값은,
    상기 제 2 대칭키값이고,
    상기 T값은,
    1 번째 제 2 정보값 내지 N 번째 제 2 정보값 중 하나;와
    1 내지 3 중 하나;를 더한 값인 것을 특징으로 하는 인증서 발급 방법.
  18. 제17항에 있어서,
    상기 S100 단계는,
    (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계;
    (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계;
    (S130) 상기 S120 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S140) 상기 S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함하되,
    k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하고,
    상기 S150 단계의 Uk+4를 해당 k 번째 라운드키(Rk)로서 산출하되,
    상기 b0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 방법.
  19. 제18항에 있어서,
    상기 S200 단계는,
    (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계;
    (S220) Tk+1, Tk+2 및 Tk+3과 k 번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계;
    (S230) 상기 S220 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S240) 상기 S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함하고,
    k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고,
    최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력하되,
    상기 d0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 방법.
  20. 제14항에 있어서,
    상기 인증서 발급 방법은, 상기 (S14) 단계 이후에,
    (S15) 상기 제 1 사용자 단말기가, 랜덤수 a, 제 1 확장함수, N개의 인증서의 해쉬 함수값 및 상기 N개의 개인키 재생용 정보를 이용하여, 최종 개인키를 산출하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  21. 제14항에 있어서,
    상기 인증서 발급 방법은, 상기 (S15) 단계 이후에,
    (S16) 상기 제 1 사용자 단말기가 제 2 사용자 단말기로, 1개의 인증서를 송신하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  22. 제21항에 있어서,
    상기 인증서 발급 방법은, 상기 (S16) 단계 이후에,
    (S42) 상기 제 2 사용자 단말기가, 상기 제 1 사용자 단말기로부터 수신한 1개의 인증서 및 미리 알고 있는 상기 제 2 서버의 공개키값을 이용하여, 1개의 최종 공개키를 산출하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  23. 제22항에 있어서,
    상기 1개의 최종 공개키는,
    상기 1개의 인증서의 해쉬 함수값과 상기 1개의 인증서의 디코딩에 의해 산출된 값을 곱한 값;과,
    상기 제 2 서버의 공개키값;을 더한 값인 것을 특징으로 하는 인증서 발급 방법.
  24. 제14항에 있어서,
    상기 인증서 발급 방법은, 상기 (S13) 단계 이전에,
    (S32) 상기 제 2 서버가, 타원곡선 방정식상의 기저점 G에 랜덤수 c를 곱한 값에, 제 1 서버로부터 수신한 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  25. 제24항에 있어서,
    상기 인증서 발급 방법은,
    (S33) 상기 제 2 서버가, N개의 제 3 키의 값을 인코딩에 의해 N개의 인증서인 N개의 옥텍 스트링(OCTET STRING)으로 변환하고, 상기 N개의 인증서 각각의 해쉬 함수값 및 상기 제 2 서버의 개인키값을 이용하여, 상기 N개의 개인키 재생용 정보값을 산출하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  26. 제25항에 있어서,
    상기 N개의 개인키 재생용 정보값은 각각,
    상기 N개의 인증서 각각의 해쉬 함수값 각각에 랜덤수 c를 곱한 값에, 상기 제 2 서버의 개인키값을 더한 값인 것을 특징으로 하는 인증서 발급 방법.
PCT/KR2020/010941 2019-09-17 2020-08-18 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법 WO2021054619A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190113925A KR102449817B1 (ko) 2019-09-17 2019-09-17 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법
KR10-2019-0113925 2019-09-17

Publications (1)

Publication Number Publication Date
WO2021054619A1 true WO2021054619A1 (ko) 2021-03-25

Family

ID=74883232

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/010941 WO2021054619A1 (ko) 2019-09-17 2020-08-18 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법

Country Status (2)

Country Link
KR (1) KR102449817B1 (ko)
WO (1) WO2021054619A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114785484B (zh) * 2022-04-06 2023-05-09 重庆葵林信息科技有限公司 一种大数据安全传输方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160042435A (ko) * 2013-08-16 2016-04-19 차이나 아이더블유엔콤 씨오., 엘티디 디지털 서명 생성 방법 및 장치
US20160164678A1 (en) * 2013-09-10 2016-06-09 M2M And Lot Technologies, Llc Secure PKI Communications for "Machine-To-Machine" Modules, Including Key Derivation by Modules and Authenticating Public Keys
KR20180053066A (ko) * 2016-11-11 2018-05-21 한밭대학교 산학협력단 키 확장 방식을 적용한 묵시적 인증서 발급 방법 및 시스템
KR20180066899A (ko) * 2015-11-12 2018-06-19 후아웨이 인터내셔널 피티이. 엘티디. 디피 헬먼(Diffie-Hellman) 절차를 이용한 세션 키 생성 방법 및 시스템
KR20180116278A (ko) * 2016-02-23 2018-10-24 엔체인 홀딩스 리미티드 안전한 정보 교환과 계층 구조적이고 결정론적인 암호키를 위한 공통 비밀 결정

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160042435A (ko) * 2013-08-16 2016-04-19 차이나 아이더블유엔콤 씨오., 엘티디 디지털 서명 생성 방법 및 장치
US20160164678A1 (en) * 2013-09-10 2016-06-09 M2M And Lot Technologies, Llc Secure PKI Communications for "Machine-To-Machine" Modules, Including Key Derivation by Modules and Authenticating Public Keys
KR20180066899A (ko) * 2015-11-12 2018-06-19 후아웨이 인터내셔널 피티이. 엘티디. 디피 헬먼(Diffie-Hellman) 절차를 이용한 세션 키 생성 방법 및 시스템
KR20180116278A (ko) * 2016-02-23 2018-10-24 엔체인 홀딩스 리미티드 안전한 정보 교환과 계층 구조적이고 결정론적인 암호키를 위한 공통 비밀 결정
KR20180053066A (ko) * 2016-11-11 2018-05-21 한밭대학교 산학협력단 키 확장 방식을 적용한 묵시적 인증서 발급 방법 및 시스템

Also Published As

Publication number Publication date
KR102449817B1 (ko) 2022-09-30
KR20210032647A (ko) 2021-03-25

Similar Documents

Publication Publication Date Title
WO2017003243A1 (ko) 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법
WO2016101745A1 (zh) 一种激活移动终端令牌的方法
WO2011079753A1 (zh) 认证方法、认证交易系统和认证装置
WO2020101325A1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
WO2014040501A1 (zh) 一种动态口令的生成及认证方法与系统
WO2014069783A1 (ko) 패스워드 기반 인증 방법 및 이를 수행하기 위한 장치
WO2010124565A1 (zh) 签名方法、设备及系统
EP3241129A1 (en) User terminal, service providing apparatus, driving method of user terminal, driving method of service providing apparatus, and encryption indexing-based search system
WO2015158038A1 (zh) 可抵御差分功耗分析攻击的加密处理装置及方法
CN107113171A (zh) 安全通信系统、方法及装置
WO2021075867A1 (ko) 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
WO2015194836A1 (ko) 키 공유 방법 및 장치
WO2020186775A1 (zh) 业务数据提供方法、装置、设备及计算机可读存储介质
WO2021080316A1 (ko) 권한 정보에 기초한 인증서를 사용하여 액세스 컨트롤하는 방법 및 장치
WO2018034491A1 (en) A primary device, an accessory device, and methods for processing operations on the primary device and the accessory device
CN107113177A (zh) 数据连接、传送、接收、交互的方法及系统,及存储器、飞行器
WO2021054619A1 (ko) 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법
WO2020116807A1 (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
WO2017188497A1 (ko) 무결성 및 보안성이 강화된 사용자 인증방법
WO2022114857A1 (ko) 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법
WO2020149500A1 (ko) 공유된 키를 등록하기 위한 방법 및 장치
WO2020246848A1 (ko) 근사 암호화된 암호문에 대한 정렬 장치 및 방법
WO2010147410A2 (en) Method and device for upgrading rights object that was stored in memory card
WO2021040303A1 (ko) 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법
WO2020218708A1 (ko) 홈 재활 서비스를 제공하기 위한 처방 정보를 암호화 및 복호화하는 방법 및 의사 단말

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20865444

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 22/06/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20865444

Country of ref document: EP

Kind code of ref document: A1