KR102056612B1 - 임시 익명 인증서 생성 방법 - Google Patents

임시 익명 인증서 생성 방법 Download PDF

Info

Publication number
KR102056612B1
KR102056612B1 KR1020180067294A KR20180067294A KR102056612B1 KR 102056612 B1 KR102056612 B1 KR 102056612B1 KR 1020180067294 A KR1020180067294 A KR 1020180067294A KR 20180067294 A KR20180067294 A KR 20180067294A KR 102056612 B1 KR102056612 B1 KR 102056612B1
Authority
KR
South Korea
Prior art keywords
value
program module
user terminal
encryption
work program
Prior art date
Application number
KR1020180067294A
Other languages
English (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 KR1020180067294A priority Critical patent/KR102056612B1/ko
Application granted granted Critical
Publication of KR102056612B1 publication Critical patent/KR102056612B1/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
    • H04L9/3268Cryptographic 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 using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

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

Abstract

본 발명에 의한 임시 익명 인증서를 생성하기 위한 사전 처리 방법은, 사용자 단말기가, 공개키 및 비밀키를 생성하는 제1 단계와; 사용자 단말기가, 작업 프로그램 모듈의 ID(V_ID)를 상기 비밀키로 전자서명하여 제1 유효성 검증값(Sign_1)을 생성하는 제2 단계와; 사용자 단말기가, 작업 프로그램 모듈의 ID와 제1 유효성 검증값을 인증 기관의 공개키(CA Public Key)로 암호화하여 제1 암호화값(E_1)을 생성하는 제3 단계와; 사용자 단말기가, 제1 어카운트 ID(A_ID)와, 제1 암호화값(E_1)을 어카운트 모듈로 전송하는 제4 단계와; 어카운트 모듈이, 제2 어카운트 ID(AA_ID)를 동형 암호화한 값인 제2 암호화값(E_2)을 생성하는 제5 단계와; 어카운트 모듈이, 제1 암호화값(E_1)을 전자 서명하여 제2 유효성 검증값(Sign_2)을 생성하는 제6 단계와; 어카운트 모듈이, 제1 암호화값(E_1) 및 제2 유효성 검증값(Sign_2)을 포함하는 허가값(permission)을 생성하는 제7 단계와; 어카운트 모듈이, 제2 암호화값(E_2)과 허가값을 전자 서명하여 제3 유효성 검증값(Sign_3)을 생성하는 제8 단계와; 어카운트 모듈이, 제2 암호화값(E_2)과, 허가값과, 제3 유효성 검증값(Sign_3)을 사용자 단말기로 전송하는 제9 단계를 포함한다.

Description

임시 익명 인증서 생성 방법{Method for Generating Temporary Anonymous Certificate}
본 발명은, 온라인에서 익명성이 보장되어야 하는 활동이나 작업에서 사용자의 익명성을 보장하면서도 사용자의 작업 결과가 위변조되지 않았음을 보증하기 위한 임시 익명 인증서를 생성하는 방법에 대한 것이다.
온라인의 발달과 더불어 오프라인에서 하던 많은 활동이나 작업들이 온라인으로 옮겨 오고 있는 실정이다. 예를 들어, 온라인상에서 금융 거래를 하거나, 상품 구매를 하거나, 전자 투표와 같은 의사 표시를 하는 등 온라인에서의 활동이나 작업들이 늘어나고 있는 추세이다.
통상의 온라인 활동이나 작업은 사용자의 신원확인과 부인 방지를 위한 조치가 필요한 경우가 많다. 예를 들어 온라인상의 금융 거래에서 정당한 사용자인지 확인하고, 온라인상의 금융 거래 내역을 차후에 사용자가 부인하지 못하도록 해야 하는 조치가 필요하다. 이러한 조치를 위해서 온라인상의 거래, 활동, 작업 등에 디지털 인증서가 도입되어 사용되고 있다. 대표적인 것이 공인인증서인데, 이 공인인증서는 사용자의 비밀키와 공개키를 포함하고 있어서, 온라인으로 전송하는 거래, 활동, 작업의 내역을 암호화하여 상대방에게 전송할 수 있고, 관련 내역이 위변조되지 않았음을 상대방이 증명할 수 있는 전자서명을 가능하게 한다.
그런데 온라인상의 활동이나 작업에서 사용자의 신원이 노출되지 않아야 하는 경우가 있다. 대표적인 예로, 익명성이 보장되어야 하는 전자 투표와 같은 의사표시활동이 온라인에서 진행되는 경우에, 투표 결과가 위변조되지 않았음을 증명하기 위해 종래 기술에 의한 인증서를 도입하면 투표자의 신원이 노출되는 등의 한계가 있어서 적용하기 어려웠다.
본 발명은 온라인상에서 수행되는 활동이나 작업의 결과의 무결성을 증명할 수 있으면서도 익명성을 보장할 수 있는 임시 익명 인증서를 생성하는 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 임시 익명 인증서를 생성하기 위한 사전 처리 방법은, 어카운트 모듈 및 작업 프로그램 모듈이 포함된 블록 체인과, 사용자 단말기와, 인증 기관 서버(CA)를 포함하는 환경에서 수행된다.
상기 사전 처리 방법은, 사용자 단말기가, 공개키 및 비밀키를 생성하는 제1 단계와; 사용자 단말기가, 작업 프로그램 모듈의 ID(V_ID)를 상기 비밀키로 전자서명하여 제1 유효성 검증값(Sign_1)을 생성하는 제2 단계와; 사용자 단말기가, 작업 프로그램 모듈의 ID와 제1 유효성 검증값을 인증 기관의 공개키(CA Public Key)로 암호화하여 제1 암호화값(E_1)을 생성하는 제3 단계와; 사용자 단말기가, 제1 어카운트 ID(A_ID)와, 제1 암호화값(E_1)을 어카운트 모듈로 전송하는 제4 단계와; 어카운트 모듈이, 제2 어카운트 ID(AA_ID)를 동형 암호화한 값인 제2 암호화값(E_2)을 생성하는 제5 단계와; 어카운트 모듈이, 제1 암호화값(E_1)을 전자 서명하여 제2 유효성 검증값(Sign_2)을 생성하는 제6 단계와; 어카운트 모듈이, 제1 암호화값(E_1) 및 제2 유효성 검증값(Sign_2)을 포함하는 허가값(permission)을 생성하는 제7 단계와; 어카운트 모듈이, 제2 암호화값(E_2)과 허가값을 전자 서명하여 제3 유효성 검증값(Sign_3)을 생성하는 제8 단계와; 어카운트 모듈이, 제2 암호화값(E_2)과, 허가값과, 제3 유효성 검증값(Sign_3)을 사용자 단말기로 전송하는 제9 단계를 포함한다.
제2 암호화값은, 제1 신원 확인 ID와, 어카운트 모듈이 생성한 랜덤값과, 사용자 단말기가 생성한 랜덤값을 동형 암호화한 값에 단방향 함수 연산을 수행하여 산출된 값일 수 있다.
상기 사전 처리 방법이 수행된 후에 사용자 단말기가 수행한 작업 결과를 작업 프로그램 모듈에 저장하는 방법은, 작업 프로그램 모듈이, 작업 프로그램 모듈의 ID와, 공개키와, 제2 암호화값(E_2)과, 허가값과, 제3 유효성 검증값(Sign_3)을, 사용자 단말기로부터 수신하는 제1-1 단계와; 작업 프로그램 모듈이, 제2 암호화값(E_2)과, 허가값을 검증하는 제2-1 단계와; 작업 프로그램 모듈이, 임시 익명 인증서의 ID를 생성하는 제3-1 단계와; 작업 프로그램 모듈이, 임시 익명 인증서의 ID와, 작업 프로그램 모듈 ID와, 허가값과, 공개키를, 인증 기관 서버로 전송하는 제4-1 단계와; 인증 기관 서버가, 어카운트 모듈의 인증서로 허가값을 검증하는 제5-1 단계와; 인증 기관 서버가, 허가값을 복호화하여, 작업 프로그램 모듈의 ID와(V_ID), 제1 유효성 검증값(Sign_1)을 획득하는 제6-1 단계와; 인증 기관 서버가, 임시 익명 인증서를 생성하는 제7-1 단계와; 작업 프로그램 모듈이, 임시 익명 인증서를, 인증 기관 서버로부터 수신하는 제8-1 단계와; 작업 프로그램 모듈이, 작업 식별 ID를 동형 암호화한 값인 제3 암호화값(E_3)을 생성하는 제9-1 단계와; 작업 프로그램 모듈이, 랜덤값을 제3 암호화값(E_3)과 제1 수식에 의해 연산한 값을, 태그값(tag)을 동형 암호화한 제4 암호화값(E_4)으로 산출하는 제10-1 단계와; 작업 프로그램 모듈이, 제3 암호화값(E_3)과, 제4 암호화값(E_4)과, 임시 익명 인증서를, 사용자 단말기로 전송하는 제11-1 단계와; 사용자 단말기가, 제3 암호화값(E_3)과 제4 암호화값(E_4)을 복호화하여, 작업 식별 ID와, 태그값을 획득하는 제12-1 단계와; 사용자 단말기가, 작업 식별 ID와, 태그값과, 작업 결과를 임시 익명 인증서의 비밀키로 전자서명하여 제4 유효성 검증값(Sign_4)을 생성하는 제13-1 단계와; 작업 프로그램 모듈이, 작업 프로그램 모듈 ID(V_ID)와, 작업 식별 ID(Ballot Stamp)와, 태그값과, 작업 결과(voting)와, 제4 유효성 검증값(Sign_4)과, 임시 익명 인증서의 ID와, 임시 익명 인증서를, 사용자 단말기로부터 수신하는 제14-1 단계와; 작업 프로그램 모듈이, 제4 유효성 검증값(Sign_4)과 태그값을 검증하여 성공하면 작업 결과를 저장하고, 그렇지 않으면 작업 결과를 저장하지 않는 제15-1 단계를 포함한다.
제3 암호화값은, 제2 암호화값(E_2)과 작업 프로그램 모듈 ID에 대해 단방향 함수 연산을 수행하여 산출한 값일 수 있다.
본 발명과 같이 임시 익명 인증서를 사용하여 온라인상의 활동이나 작업 결과의 무결성을 확인하고 저장하게 하면 작업 프로그램 모듈에 위변조된 작업 결과를 저장할 수 없게 된다.
도 1은 임시 익명 인증서 발급을 위한 사전 처리 과정의 흐름도.
도 2는 도 1의 변형 실시예의 흐름도.
도 3은 임시 익명 인증서 발급 및 작업 결과 저장의 흐름도.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 자세하게 설명한다.
본 명세서에서 수행되는 정보(데이터) 전송/수신 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것 만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서 "모듈"이라 함은 범용적인 하드웨어와 그 기능을 수행하는 소프트웨어의 논리적 결합을 의미한다.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 필수적이지 않은 특정 구성요소를 배제하거나 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
본 발명은 전자적 연산이 가능한 컴퓨터 등의 전자적 연산 장치에 의해서 수행되며, 후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터 및 행렬, 텐서, 다항식도 포함하는 광의의 개념으로 정의된다.
본 명세서에서 HE(**)은 괄호 안의 값을 동형 암호화한 값을 의미한다.
본 명세서에서는 설명의 편의를 위해 "전자 서명값" 또는 "전자 서명"이라는 용어를 사용하지만, 정보의 위변조 여부를 판단할 수 있는 값(유효성 검증값)이라면 어느 것이든 유효성 검증값으로 사용할 수 있으며, 통상의 전자 서명 이외에도 어느 방식이든 유효성 검증값의 생성에 사용할 수 있는 것으로 이해되어야 한다.
본 발명에 의한 방법은, 사용자 단말기(10)와, 어카운트 모듈(20)과, 작업 프로그램 모듈(30)과, 인증기관 서버(40)를 포함하는 환경에서 수행된다. 인증기관 서버(40)는 온라인에서 작업을 수행할 때에 필요한 임시 익명 인증서를 발급받을 때에 사용된다. 어카운트 모듈(20)과 작업 프로그램 모듈(30)은 블록체인에 포함되는 구성요소일 수 있다.
도 1에는 본 발명에 의한 임시 익명 인증서(Temporary Anonymous Certificate; TAC)의 발급을 위한 사전 처리 방법의 흐름도가 도시되어 있다. 본 발명에 의한 임시 익명 인증서는, 인증서에 의한 작업 결과 검증이 필요한 작업에 대해서 1회 또는 미리 정해진 횟수 또는 시간 내에서만 유효하며, 사용자의 신원에 관련된 정보를 식별할 수 없는 디지털 인증서로 정의된다.
사용자 단말기(10)는 임시 익명 인증서와 사용될 공개키와 비밀키를 생성한다(단계 100). 사용자 단말기(10)는 생성한 비밀키로 작업 프로그램 모듈 ID(V_ID)를 전자서명하여 제1 전자서명값(Sign_1)을 생성한다(단계 101).
사용자 단말기(10)는 인증 기관 서버의 공개키로 작업 프로그램 모듈 ID와 제1 전자서명값(Sign_1)을 암호화하여 제1 암호화값(E_1)을 생성한다(단계 102).
사용자 단말기(10)는 어카운트 모듈에서 사용자별로 고유하게 부여되는 제1 신원 확인 ID(A_ID)와 제1 암호화값(E_1)을 어카운트 모듈(20)로 전송하여 제2 신원 확인 ID(AA_ID)를 요청한다(단계 103).
어카운트 모듈(20)은 제2 신원 확인 ID(AA_ID)의 동형 암호화값(HE(AA_ID))인 제2 암호화값(E_2)을 생성한다(단계 109). 제2 암호화값(E_2 = HE(AA_ID))은 제1 신원 확인 ID(A_ID)을 포함하는 값에 단방향 함수 연산을 수행하여 산출될 수 있다. 제2 신원 확인 ID(AA_ID)의 무작위성 담보를 위해서 위 값에는 랜덤값 및/또는 랜덤값의 동형 암호화값이 포함될 수 있다.
제2 암호화값(E_2)은 예를 들어 다음과 같은 관계를 가지도록 산출될 수 있다.
HE(AA_ID) = Hash[A_ID, Ra, HE(Re)] = HE[Hash(A_ID, Ra, Re)]
Re는 사용자 단말기측에서 생성한 랜덤값이고, Ra는 어카운트 모듈이 생성한 랜덤값이 될 수 있다.
어카운트 모듈(20)은 제1 암호화값(E_1)에 대해 전자서명을 하여 제2 전자서명값(Sign_2)을 생성한다(단계 110).
어카운트 모듈(20)은 단계(111)에서 허가값(permission)을 생성한다. 허가값은, 제1 암호화값(E_1)과, 제2 전자서명값(Sign_2)을 포함한다.
어카운트 모듈(20)은, 제2 암호화값(E_2)과 허가값에 대해서 전자서명을 수행하여 제3 전자서명값(Sign_3)을 생성한다(단계 112).
어카운트 모듈(20)은 제2 암호화값(E_2)과, 허가값과, 제3 전자서명값(Sign_3)을 사용자 단말기(10)로 전송한다(단계 113).
도 2에는 사용자 단말기(10)에 랜덤값(Re)의 동형암호화값(HE(Re))이 없는 경우의 사전 처리 과정이 도시되어 있다.
단계(103)에서 사용자 단말기(10)로부터 제2 신원 확인 ID(AA_ID)의 요청을 받고 제2 신원 확인 ID의 동형 암호화값(HE(AA_ID)을 생성하기 위해서는 전술한 바와 같이 HE(Re)값이 필요한데, 만약 그 값을 갖고 있지 않다면 사용자 단말기(10)에 랜덤값(Re)의 리셋을 요청한다(단계 104).
사용자 단말기(10)는, 랜덤값(Re)을 생성하고 그 랜덤값에 대해 동형 암호화를 수행한다(단계 105).
사용자 단말기(10)는 랜덤값의 동형 암호화값(HE(Re))을 어카운트 모듈(20)로 전송하고(단계 106), 어카운트 모듈(20)은 또 다른 랜덤값(Ra)을 생성한다(단계 107).
이어서 어카운트 모듈은 제1 신원 확인 ID(A_ID)와, 랜덤값(Ra)과, 사용자 단말기로부터 수신한 랜덤값의 동형암호화값(HE(Re))을 저장하고(단계 108), 전술한 예시와 같은 관계를 통해서 제2 암호화값(E_2)을 생성한다(단계 109). 그 이후의 과정은 도 1의 단계(110) 내지 단계(113)과 동일하다.
도 1 또는 도 2와 같은 과정이 완료된 후에, 사용자가 온라인에서 소정의 작업을 하는 경우에 그 작업 결과의 무결성을 검증하고 저장하는 방법에 대해서 도 3을 참조하여 설명한다. 온라인상의 작업은 예를 들어 익명성이 보장되어야 하는 전자 투표가 될 수 있다.
도 3의 과정에 앞서서 사용자 단말기(10)와 작업 프로그램 모듈(30)간에는 익명 통신 채널이 개통되어 있다고 가정한다.
사용자 단말기(10)는 먼저 작업 프로그램 모듈(30)에 작업 프로그램 모듈 ID(V_ID)와, 인증서의 공개키와, 제2 암호화값(E_2)과, 허가값과, 제3 전자서명값(Sign_3)을 전송하여 작업 식별 ID(BallotStamp)의 동형 암호화값(HE(BallotStamp)을 요청한다(단계 300).
작업 프로그램 모듈(30)은, 제2 암호화값(E_2)과 허가값을 검증하고(단계 301), 검증에 성공하면 임시 익명 인증서 ID(TAC_ID)를 생성한다(단계 302).
작업 프로그램 모듈(30)은, 임시 익명 인증서 ID와, 작업 프로그램 모듈 ID(V_ID)와, 허가값과, TAC의 공개키를 인증기관 서버(40)로 전송하여 임시 익명 인증서를 요청한다(단계 303).
인증기관 서버(40)는, 어카운트 모듈의 인증서로 허가값을 검증한다(단계 304).
인증기관 서버(40)는 허가값을 복호화하여, 작업 프로그램 모듈 ID(V_ID)와, 제1 전자서명값(Sign_1)을 획득한다(단계 305).
인증기관 서버(40)는, 작업 프로그램 모듈 ID(V_ID)를 검증한다(단계 306).
작업 프로그램 모듈 ID(V_ID) 검증은, 단계(303)에서 수신한 V_ID와 단계(305)에서 허가값 복호화를 통해 획득한 V_ID를 비교해서 양자가 같은지를 통해서 수행된다.
작업 프로그램 모듈 ID(V_ID) 검증에 성공하면 인증기관 서버(40)는 인증서를 생성하고(단계 307), 생성된 인증서(TAC)를 작업 프로그램 모듈(40)로 전송한다(단계 308).
작업 프로그램 모듈(30)은, 작업 식별 ID(BallotStamp)를 동형 암호화한 값으로 설정되는 제3 암호화값(E_3)을 생성하고, 랜덤값과 제3 암호화값(E_3)을 제1 수식에 의해 연산한 값을 태그값(tag)의 동형 암호화값인 제4 암호화값(E_4)으로 생성한다(단계 309).
제3 암호화값(E_3)는, 제2 암호화값(E_2)을 포함하는 값에 단방향 함수 연산을 수행하여 산출될 수 있으며, 무작위성을 담보하기 위해 상기 값에 랜덤값 및/또는 랜덤값의 동형 암호화값을 포함할 수 있다. 예를 들어 제3 암호화값은 다음과 같은 관계에 의해서 산출될 수 있다.
E_3 = HE(BallotStamp) = Hash[HE(AA_ID), V_ID] = HE[Hash(AA_ID, V_ID)]
제1 수식은 예를 들어, 제1 랜덤값(r1)과 제3 암호화값(E_3)을 곱한 후 제2 랜덤값(r2)을 더하는 수식이 될 수 있다.
그러면 다음과 같은 관계가 성립한다.
r1*E_3+r2 = HE(r1*BallotStamp+r2) = HE(tag) = E_4
제1 수식은 XOR 연산이 포함될 수 있다. 그러한 경우 다음과 같은 관계가 성립한다.
XOR(r1, E_3) = HE(XOR(r1, BallotStamp)
작업 프로그램 모듈(30)은, 임시 익명 인증서 ID(TAC_ID)와, 제3 암호화값(E_3)을 생성하는데 사용한 랜덤값을 저장한다(단계 310).
작업 프로그램 모듈(30)은, 제3 암호화값(E_3)과, 제4 암호화값(E_4)과, 임시 익명 인증서(TAC)를 사용자 단말기(10)로 전송한다(단계 312).
사용자 단말기(10)는, 제3 및 제4 암호화값(E_3, E_4)을 복호화하여 작업 식별 ID(BallotStamp)와, 태그값을 획득하여 저장한다(단계 313 및 314).
사용자 단말기(10)는, 작업 식별 ID(BallotStamp)와, 태그값과, 작업 결과(예를 들어 투표 결과)에 대해서 임시 익명 인증서(TAC)의 비밀키를 사용하여 전자서명하여 제4 전자서명값(Sign_4)을 생성한다(단계 315).
사용자 단말기(10)은, 작업 프로그램 모듈 ID(V_ID)와, 작업 식별 ID(BallotStamp)와, 태그값과, 작업 결과와, 제4 전자서명값(Sign_4)과, 임시 익명 인증서 ID(TAC_ID)와, 임시 익명 인증서(TAC)를 작업 프로그램 모듈(30)로 전송한다(단계 316).
작업 프로그램 모듈(30)은, 단계(317)에서 수신한 태그값과, 제4 전자서명값(Sign_4)을 검증하여 성공하면 작업 식별 ID(BallotStamp)와, 태그값과, 작업 결과와, 랜덤값과, 제4 전자서명값(Sign_4)과, 임시 익명 인증서를 저장하고, 그렇지 않으면 작업 결과 저장을 거절한다.
단계(316)에서 수신한 태그값이 랜덤값과 제3 암호화값(E_3)을 제1 수식에 의해서 연산한 값과 동일하면 검증에 성공한 것으로, 그렇지 않으면 검증에 실패한 것으로 판단한다.
본 발명과 같이 임시 익명 인증서를 사용하여 온라인상의 활동이나 작업 결과의 무결성을 확인하고 저장하게 하면 작업 프로그램 모듈에 위변조된 작업 결과를 저장할 수 없게 된다. 작업 프로그램 모듈(30)이 작업 결과를 위변조하기 위해서는, 어카운트 모듈(20)로부터 허가값과 제3 전자서명값(Sign_3)을 받아야 하기 때문에 작업 프로그램 모듈(30)의 자의적인 위변조가 불가능해지는 효과가 있다.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
10: 사용자 단말기
20: 어카운트 모듈
30: 작업 프로그램 모듈
40: 인증기관 서버

Claims (4)

  1. 어카운트 모듈 및 작업 프로그램 모듈이 포함된 블록 체인과, 사용자 단말기와, 인증 기관 서버(CA)를 포함하는 환경에서 사용자의 임시 익명 인증서를 생성하기 위한 사전 처리 방법에 있어서,
    사용자 단말기가, 공개키 및 비밀키를 생성하는 제1 단계와,
    사용자 단말기가, 작업 프로그램 모듈의 ID(V_ID)를 상기 비밀키로 전자서명하여 제1 유효성 검증값(Sign_1)을 생성하는 제2 단계와,
    사용자 단말기가, 작업 프로그램 모듈의 ID와 제1 유효성 검증값을 인증 기관의 공개키(CA Public Key)로 암호화하여 제1 암호화값(E_1)을 생성하는 제3 단계와,
    사용자 단말기가, 제1 어카운트 ID(A_ID)와, 제1 암호화값(E_1)을 어카운트 모듈로 전송하는 제4 단계와,
    어카운트 모듈이, 제2 어카운트 ID(AA_ID)를 동형 암호화한 값인 제2 암호화값(E_2)을 생성하는 제5 단계와,
    어카운트 모듈이, 제1 암호화값(E_1)을 전자 서명하여 제2 유효성 검증값(Sign_2)을 생성하는 제6 단계와,
    어카운트 모듈이, 제1 암호화값(E_1) 및 제2 유효성 검증값(Sign_2)을 포함하는 허가값(permission)을 생성하는 제7 단계와,
    어카운트 모듈이, 제2 암호화값(E_2)과 허가값을 전자 서명하여 제3 유효성 검증값(Sign_3)을 생성하는 제8 단계와,
    어카운트 모듈이, 제2 암호화값(E_2)과, 허가값과, 제3 유효성 검증값(Sign_3)을 사용자 단말기로 전송하는 제9 단계를 포함하는,
    임시 익명 인증서 생성을 위한 사전 처리 방법.
  2. 청구항 1에 있어서,
    제2 암호화값은, 제1 신원 확인 ID와, 어카운트 모듈이 생성한 랜덤값과, 사용자 단말기가 생성한 랜덤값을 동형 암호화한 값에 단방향 함수 연산을 수행하여 산출된 값인,
    임시 익명 인증서 생성을 위한 사전 처리 방법.
  3. 청구항 1 또는 청구항 2 중 어느 하나의 사전 처리 방법이 수행된 후에 사용자 단말기가 수행한 작업 결과를 작업 프로그램 모듈에 저장하는 방법에 있어서,
    작업 프로그램 모듈이, 작업 프로그램 모듈의 ID와, 공개키와, 제2 암호화값(E_2)과, 허가값과, 제3 유효성 검증값(Sign_3)을, 사용자 단말기로부터 수신하는 제1-1 단계와,
    작업 프로그램 모듈이, 제2 암호화값(E_2)과, 허가값을 검증하는 제2-1 단계와,
    작업 프로그램 모듈이, 임시 익명 인증서의 ID를 생성하는 제3-1 단계와,
    작업 프로그램 모듈이, 임시 익명 인증서의 ID와, 작업 프로그램 모듈 ID와, 허가값과, 공개키를, 인증 기관 서버로 전송하는 제4-1 단계와,
    인증 기관 서버가, 어카운트 모듈의 인증서로 허가값을 검증하는 제5-1 단계와,
    인증 기관 서버가, 허가값을 복호화하여, 작업 프로그램 모듈의 ID와(V_ID), 제1 유효성 검증값(Sign_1)을 획득하는 제6-1 단계와,
    인증 기관 서버가, 임시 익명 인증서를 생성하는 제7-1 단계와,
    작업 프로그램 모듈이, 임시 익명 인증서를, 인증 기관 서버로부터 수신하는 제8-1 단계와,
    작업 프로그램 모듈이, 작업 식별 ID를 동형 암호화한 값인 제3 암호화값(E_3)을 생성하는 제9-1 단계와,
    작업 프로그램 모듈이, 랜덤값을 제3 암호화값(E_3)과 제1 수식에 의해 연산한 값을, 태그값(tag)을 동형 암호화한 제4 암호화값(E_4)으로 산출하는 제10-1 단계와,
    작업 프로그램 모듈이, 제3 암호화값(E_3)과, 제4 암호화값(E_4)과, 임시 익명 인증서를, 사용자 단말기로 전송하는 제11-1 단계와,
    사용자 단말기가, 제3 암호화값(E_3)과 제4 암호화값(E_4)을 복호화하여, 작업 식별 ID와, 태그값을 획득하는 제12-1 단계와,
    사용자 단말기가, 작업 식별 ID와, 태그값과, 작업 결과를 임시 익명 인증서의 비밀키로 전자서명하여 제4 유효성 검증값(Sign_4)을 생성하는 제13-1 단계와,
    작업 프로그램 모듈이, 작업 프로그램 모듈 ID(V_ID)와, 작업 식별 ID(Ballot Stamp)와, 태그값과, 작업 결과(voting)와, 제4 유효성 검증값(Sign_4)과, 임시 익명 인증서의 ID와, 임시 익명 인증서를, 사용자 단말기로부터 수신하는 제14-1 단계와,
    작업 프로그램 모듈이, 제4 유효성 검증값(Sign_4)과 태그값을 검증하여 성공하면 작업 결과를 저장하고, 그렇지 않으면 작업 결과를 저장하지 않는 제15-1 단계를 포함하는,
    작업 결과 저장 방법.
  4. 청구항 3에 있어서,
    제3 암호화값은, 제2 암호화값(E_2)과 작업 프로그램 모듈 ID에 대해 단방향 함수 연산을 수행하여 산출한 값인,
    작업 결과 저장 방법.
KR1020180067294A 2018-06-12 2018-06-12 임시 익명 인증서 생성 방법 KR102056612B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180067294A KR102056612B1 (ko) 2018-06-12 2018-06-12 임시 익명 인증서 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180067294A KR102056612B1 (ko) 2018-06-12 2018-06-12 임시 익명 인증서 생성 방법

Publications (1)

Publication Number Publication Date
KR102056612B1 true KR102056612B1 (ko) 2019-12-17

Family

ID=69056646

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180067294A KR102056612B1 (ko) 2018-06-12 2018-06-12 임시 익명 인증서 생성 방법

Country Status (1)

Country Link
KR (1) KR102056612B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021090975A1 (ko) * 2019-11-06 2021-05-14 한국스마트인증 주식회사 임시 익명 인증서 생성 방법
CN114900313A (zh) * 2022-04-18 2022-08-12 中国科学院大学 一种保护隐私的匿名工作证书生成和验证方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101833323B1 (ko) 2018-01-12 2018-02-28 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101833323B1 (ko) 2018-01-12 2018-02-28 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021090975A1 (ko) * 2019-11-06 2021-05-14 한국스마트인증 주식회사 임시 익명 인증서 생성 방법
CN114900313A (zh) * 2022-04-18 2022-08-12 中国科学院大学 一种保护隐私的匿名工作证书生成和验证方法

Similar Documents

Publication Publication Date Title
US11770369B2 (en) System and method for identity verification across mobile applications
US11856104B2 (en) Methods for secure credential provisioning
US20220321359A1 (en) Methods and systems for ownership verification using blockchain
KR101863953B1 (ko) 전자 서명 서비스 시스템 및 방법
TWI454111B (zh) 用於確保通訊之鑑別及完備性的技術
US8843415B2 (en) Secure software service systems and methods
CN110519309B (zh) 数据传输方法、装置、终端、服务器及存储介质
CN109905360B (zh) 数据验证方法及终端设备
US11436597B1 (en) Biometrics-based e-signatures for pre-authorization and acceptance transfer
GB2398713A (en) Anonymous access to online services for users registered with a group membership authority
KR101879758B1 (ko) 사용자 단말기별 사용자 디지털 인증서 발급 방법 및 그 인증서에 의한 인증 방법
CN111105235A (zh) 基于区块链的供应链交易隐私保护系统、方法及相关设备
US11070378B1 (en) Signcrypted biometric electronic signature tokens
KR102056612B1 (ko) 임시 익명 인증서 생성 방법
CN112948789B (zh) 身份认证方法及装置、存储介质及电子设备
KR20200016506A (ko) 익명 디지털 아이덴티티 수립 방법
KR101856530B1 (ko) 사용자 인지 기반 암호화 프로토콜을 제공하는 암호화 시스템 및 이를 이용하는 온라인 결제 처리 방법, 보안 장치 및 거래 승인 서버
CN109981667B (zh) 一种用户数据传输方法和装置
KR101868564B1 (ko) 사용자 본인 확인(identification) 등록과 로컬 인증을 연계한 사용자 인증 장치 및 방법
CN115442037A (zh) 一种账号管理方法、装置、设备及存储介质
JPH10240826A (ja) 電子契約方法
KR20180058996A (ko) 전자 서명 제공 방법 및 그 서버
JP5768543B2 (ja) 電子署名システム、署名サーバ、署名者クライアント、電子署名方法、およびプログラム
KR20200053225A (ko) 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법
CN116071071B (zh) 基于区块链的数据要素交易方法、系统、存储介质及设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant