KR102120328B1 - Ecc 공개키 방식과 해시 값을 이용한 사용자 인증 방법 - Google Patents
Ecc 공개키 방식과 해시 값을 이용한 사용자 인증 방법 Download PDFInfo
- Publication number
- KR102120328B1 KR102120328B1 KR1020180077744A KR20180077744A KR102120328B1 KR 102120328 B1 KR102120328 B1 KR 102120328B1 KR 1020180077744 A KR1020180077744 A KR 1020180077744A KR 20180077744 A KR20180077744 A KR 20180077744A KR 102120328 B1 KR102120328 B1 KR 102120328B1
- Authority
- KR
- South Korea
- Prior art keywords
- hash value
- authentication
- key
- blockchain
- hash
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 블록체인(Block Chain)과 IoT(Internet of Things : 사물인터넷)이 통합된 융합 망에서 ECC(Elliptic Curve Cryptography) Key Pair, ECC의 Child Key(Hierarchical Deterministic Wallet : BIP32Wallet), 해시(Hash) 값을 이용하여 사용자(User) 인증을 수행하는 방법에 관한 것으로서, 인증 클라이언트가 자신이 생성한 ECC 공개키를 블록체인에 등록하고, 인증 클라이언트가 임의의 정수로부터 제 1 해시 값 및 차일드 키를 생성하고, 차일드 키로부터 제 2 해시 값을 생성하여 제 1 해시 값 및 제 2 해시 값을 이용하여 인증을 요청하면, 인증 서버가 블록체인으로부터 가져온 키와 제 1 해시 값을 기반으로 새로운 차일드 키를 생성하고, 새로운 차일드 키로부터 생성된 새로운 해시 값과 제 2 해시값을 비교하여 인증을 수행한다. 본 발명에 따르면, 하나의 키 값을 블록체인에 1회 등록한 후, 서로 다른 수개의 IoT 서비스 제공자의 응용 서비스 이용 시에도 모두 이용 가능한 장점이 있으며, 사용자의 개인 정보나 인증서 없이도 초기 등록한 등록자 인지를 안전하게 검증할 수 있는 장점이 있어 블록체인의 전자 계정과 연결되는 다양한 IoT 서비스에서 활용이 가능하다.
Description
본 발명은 사용자 인증 방법에 관한 것으로, 더욱 상세하게는 블록체인(Block chain)과 IoT(Internet of Things : 사물인터넷) 융합 망에서 사용자 인증을 수행하는 방법에 관한 것이다.
인증을 요청하는 인증 클라이언트가 특정 서버에 사용자 등록을 수행하면, 인증 서버는 인증 클라이언트의 ID/패스워드, 공인인증서, 혹은 기타 인증 키를 보관하였다가, 사용자 인증 요구 시 이를 비교하여 인증을 실행한다.
ID/패스워드 방식은, 사용자의 패스워드 혹은 인증에 관련된 내용을 서버에 보관한 후 이를 이용하여 인증을 수행한다. 그런데, 특정 사용자에 대한 개인 정보가 서버에 저장됨에 따라, 서버 저장소에 대한 공격이 잦아지고 있고, 최근에는 인증 시 네트워크 상에 전송되는 ID 정보에 대한 공격도 늘어나고 있다.
공인인증서 방식은, 특정 기관에서 발급된 인증서를 이용하여 인증을 수행한다. 인증서를 통해서만 인증이 가능하므로 절차가 복잡하지만 중요한 개인 정보를 많이 보관할 수 있다. 그런데, 개인 정보를 보호하기 위해 암호화 방식을 사용하므로 시스템의 부하가 증가되는 단점이 있다.
이에, 제 3 장소에 개인 정보를 등록하지 않으며, 인증 시에도 고정 ID를 사용하지 않고, 게다가 1회 키 등록만으로 모든 서비스에서 이용 가능한 사용자 인증 방법을 개발하여 종래 기술의 한계점을 극복할 필요성이 있다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 블록체인과 IoT 기술의 융합 망에서 응용 서비스를 제공할 때 개인 정보의 제공이 없으며 매번 다른 정보로 인증을 요청하고, 단 1회 사용자 등록만으로 모든 IoT 서비스에 대해 사용자 인증이 가능할 수 있도록 하는 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법은, 블록체인(Block chain)과 IoT(Internet of Things) 융합 망에서, (a) 인증 클라이언트가 자신이 생성한 ECC 공개키를 블록체인에 등록하는 단계; (b) 상기 인증 클라이언트가 생성한 ECC 키를 기반으로 선택한 임의의 정수로부터 제 1 해시 값 및 차일드 키를 생성하고, 상기 차일드 키로부터 제 2 해시 값을 생성하여, 상기 제 1 해시 값 및 제 2 해시 값을 이용하여 인증을 요청하는 단계; 및 (c) 인증 서버가 상기 블록체인으로부터 가져온 키와 상기 제 1 해시 값을 기반으로 새로운 차일드 키를 생성하고, 상기 새로운 차일드 키로부터 생성된 새로운 해시 값과 상기 제 2 해시값을 비교하여 인증을 수행하는 단계;를 포함하는 것을 특징으로 한다.
상기 (a) 단계는, EC 도메인 파라미터(T = (p,a,b,G,n.h))를 생성하는 단계; 상기 파라미터 중 n을 기반으로 정수 d^를 선택하는 단계; 상기 정수 d^와 G를 기반으로 Q^를 생성하는 단계; ECC 기반의 공개키 쌍(d^, Q^)을 생성하는 단계; 및 상기 공개키 쌍 중에서 d^를 인증 키로 블록체인에 등록하는 단계;를 포함한다.
상기 (b) 단계는, 임의의 정수 j를 선택하는 단계; 상기 임의의 정수 j로부터 제 1 해시 값(H1 = hash(j, Q^)) 및 차일드 키{dj = (d^ + H1 mod p)}를 생성하는 단계; 상기 차일드 키로부터 제 2 해시 값{H2 = hash(dj)}을 생성하는 단계; 및 상기 제 1 해시 값 및 제 2 해시 값을 이용하여 인증을 요청하는 단계;를 포함한다.
상기 (c) 단계는, 상기 블록체인으로부터 키(d^)를 가져오는 단계; 상기 제 1 해시 값을 기반으로 새로운 차일드 키{*dj = (d^ + H1 mod p)}를 생성하는 단계; 상기 새로운 차일드 키로부터 새로운 해시 값{*H2 = hash(*dj)}을 생성하는 단계; 상기 새로운 해시 값과 제 2 해시값을 비교하는 단계; 및 상기 새로운 해시 값과 제 2 해시값이 동일하면 인증을 완료하는 단계;를 포함한다.
상술한 바와 같이, 본 발명에 의한 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법에 따르면, 제 3 장소에 개인 정보를 등록하지 않으므로 개인 정보 유출의 위험성을 원천적으로 방지할 수 있다.
또한, 인증 시에 매번 다른 해시 값을 이용하므로 네트워크 공격에 유출되더라도 해시 값을 기반으로 인증에 필요한 키를 역으로 추출할 수 없기 때문에 네트워크 공격에 안전하다.
그리고, 1회 키 등록으로 네트워크에 등록된 블록체인 노드를 사용하는 모든 IoT 서비스에서 사용자 인증을 받을 수 있으므로 사용자 편의성을 향상시킬 수 있을 뿐 아니라, 인증 키가 공개되더라도 인증에 필요한 키를 생성할 수 없기 때문에 인증 안전성을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예로서, 블록체인과 IoT 융합 망에서 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법의 개념도이다.
도 2는 본 발명의 일 실시예로서, 블록체인과 IoT 융합 망에서 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법의 흐름도이다.
도 2는 본 발명의 일 실시예로서, 블록체인과 IoT 융합 망에서 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법의 흐름도이다.
이하에서는 본 발명의 바람직한 실시예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조 부호는 동일한 구성 요소를 지칭함을 전제하여 설명하기로 한다.
발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성 요소가 다른 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성 요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성 요소들을 더 포함할 수 있는 것으로 이해되어야 한다.
본 발명에서는, 블록체인과 IoT 융합 망에서 ECC 공개키 방식과 해시 값을 이용하여 사용자 인증을 수행하는 방법(User Authentication using ECC and Hash in the Convergence of Block chain and IoT)을 제시한다.
본 발명에서는, 블록체인과 IoT 기술의 융합 망에서 응용 서비스를 제공할 때 서비스의 개인 정보의 제공 없이 단 1회 사용자 등록으로 모든 IoT 서비스에서 사용자 인증이 가능한 방안을 제시한다.
즉, 사용자는 개인 정보의 등록 없이 자신의 블록체인 계정(Account)에 하나의 인증 키를 등록함으로써 같은 블록체인을 공유하는 IoT 서비스 제공자들에게 사용자 인증을 받을 수 있도록 한다.
이러한 서비스를 제공받기 위한 사용자 인증을 받기 위해, 사용자는 자신의 어떠한 개인 정보도 등록하지 않으며, 인증 시에도 차일드 키를 생성하는 단서가 되는 핵심 키(Q^)의 네트워크 공격 등을 방어하기 위하여, 고정된 ID나 개인 정보 등을 전송하지 않고, 일회용 키를 기반으로 하는 단방향 해시 함수로 만들어 전송하는 방법을 이용하도록 한다.
또한 서비스 이용 중에도 주기적으로 키 셋트를 교환할 수 있으며, 블록체인에 등록된 키를 변경하여도 다른 인증 서버에게 통보할 필요가 없으며, 이러한 사용자 인증을 수행함에 있어 무거운 암호화 방식이나 복잡한 절차가 필요하지 않도록 하여, 안전하면서도 시스템 부하가 적어 다양한 IoT 응용 서비스에 다양하게 사용될 수 있는 사용자 인증 방법을 제시한다.
도 1은 본 발명의 일 실시예로서, ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법의 개념도이다.
도 1을 참조하면, 본 발명의 사용자 인증 시스템은, 사용자 인증을 신청하는 주체로서, 인증 키를 등록하고 서비스를 이용하는 인증 클라이언트(1)와, 네트워크에 분산되어 동일한 블록을 저장하는 수개의 블록체인 노드를 포함하는 키 저장소(2)와, 사용자가 서비스 이용 시 인증을 수행하는 인증 서버(3)를 포함한다.
여기서, 인증 클라이언트(1)는 인증을 위한 응용 로직을 포함한다.
키 저장소(2)는 사용자가 키를 등록하면 블록으로 저장하고 관리하는 블록체인을 의미한다.
인증 서버(3)는 IoT 응용을 제공하는 서비스를 의미하며, 인증을 수행하는 인증 서버 로직을 포함한다.
이와 같이 구성된 본 발명의 사용자 인증 시스템에서는, 인증 클라이언트(1)가 ECC 공개키 쌍(d^, Q^)생성하여 그 중 d^만 블록체인에 등록한다(키 등록 단계).
이어서, 인증 클라이언트(1)에서는 인증을 요청하기 위해 임의의 정수 j를 선택하여 차일드 키를 생성하고 2개의 해시 값을 생성하여 인증을 요청한다(인증 요청 단계).
이에, 인증 서버(3)에서는 사용자 인증을 위하여 해당 사용자의 인증 키를 블록체인에서 가져와 해시 값을 생성한 후, 사용자가 전송한 해시 값과 동일한지 확인하고 사용자를 인증한다(키 확인 및 인증 단계).
여기서, 공개키와 비밀키(개인키)를 생성하는데 타원곡선을 사용하는 ECC(Elliptic Curve Crypto system) 암호 알고리즘은 타원곡선을 활용할 수 있음에 따라 안전하고 다양한 암호시스템 설계가 가능한 기술로서, ECC 암호 알고리즘은 이미 잘 알려져 있으므로, 상세한 설명은 생략하기로 한다.
그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법에 대해 설명하기로 한다.
도 2는 본 발명의 일 실시예로서, 블록체인과 IoT 융합 망에서 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법의 흐름도이다.
구체적으로, 블록체인에 인증 키를 등록하고 IoT 서비스를 이용하기 위해 사용자 인증을 받는 과정을 나타낸 순서도이다.
본 발명은 도 1에서와 같이, 크게 키 등록 단계, 인증 요청 단계, 키 확인 및 인증 단계를 포함한다.
도 2를 참조하면, 인증 클라이언트(1)에서는, 인증을 받고자 하는 사용자는 EC 도메인 파라미터(T = (p,a,b,G,n.h))를 생성하고(S1), 생성된 파라미터 중 n을 기반으로 정수 d^를 선택하고, d^와 G를 기반으로 Q^를 생성하여 ECC Key Pairs(d^, Q^)생성한 후(S2), 그 중 d^를 블록체인의 자신의 계정에 등록한다(S3 ~ S4).
인증 클라이언트(1)에서는, 사용자는 임의의 정수 j 선택하여(S5) 해시1{H1 = hash(j, Q^)}을 생성하고(S6), J번째 차일드 키 생성{dj = (d^ + H1 mod p)}한 후(S7), 생성된 차일드 키의 해시 값인 해시2{H2 = hash(dj)}를 생성하여(S8) 2개의 해시 값(H1, H2)을 전송하여 인증을 요청한다(S9).
인증 서버(3)(인증을 수행하는 IoT 서비스 등)에서는, 블록체인에 저장된 사용자의 d^를 가져와(S10) 전송받은 첫 번째 해시 값을 이용하여 뉴차일드 키{*dj = (d^ + H1 mod p)}를 생성하고, 생성된 뉴차일드 키를 이용하여 뉴해시2{*H2 = hash(*dj)}를 생성한 후(S11), 전송받은 해시2와 생성된 뉴해시2를 비교하여 동일성 여부를 검사한다. 동일하다면(H2 = *H2) 처음 등록한 사용자가 전송한 해시 값이고, 동일하지 않다면(H2 ≠ *H2) 사용자의 동일성이 확인되지 않아 인증에 실패한 것이다(S12).
이와 같이, 본 발명에서 블록체인(Block Chain)과 IoT(Internet of Things : 사물인터넷)이 통합된 융합 망에서 ECC(Elliptic Curve Cryptography) Key Pair, ECC의 Child Key(Hierarchical Deterministic Wallet : BIP32Wallet), 해시(Hash) 값을 이용하여 사용자(User) 인증을 수행하기 위한 방법을 제안하였다. 즉, 사용자는 ECC 공개키 방식의 키 쌍을 생성하여 그 중 1개의 값을 블록체인에 저장하는 등록 단계와, 사용자가 실제로 IoT 응용 서비스를 사용하기 위하여 사용자 인증을 받을 시 인증을 요청하는 단계와, 인증 서버(3)에서 사용자 인증을 수행하기 위하여 블록체인에서 키를 가져와 사용자 확인하는 단계를 포함하는 인증 방법을 제안하였다.
본 발명에 따르면, 블록체인과 IoT가 융합된 망에서, 하나의 키 값을 블록체인에 1회 등록한 후, 서로 다른 수개의 IoT 서비스 제공자의 응용 서비스 이용 시에도 모두 이용 가능한 장점이 있으며, 사용자의 개인 정보나 인증서 없이도 초기 등록한 등록자 인지를 안전하게 검증할 수 있는 장점이 있어 블록체인의 전자 계정과 연결되는 다양한 IoT 서비스에서 활용이 가능하다.
좀 더 구체적으로 설명하면, 사용자는 EC 도메인 파라미터를 기반으로 생성된 하나의 인증 키를 1회만 블록체인에 등록함으로써 같은 네트워크에 등록된 블록체인 노드를 사용하는 모든 IoT 서비스에서 블록체인 사용자 ID(User Account) 만으로 사용자 인증을 받을 수 있다. 등록하는 인증 키는 공개가 되어도 인증에 필요한 키 생성할 수 있는 단서가 되지 못하여 의미 없는 난수일 뿐이다.
단 하나의 키만 저장하면 다른 개인 정보의 등록 없이 인증 키가 저장된 트랜잭션의 주소(블록체인 ID)만으로 처음 등록한 사용자가 맞는지 확인할 수 있으므로 개인 정보 유출 위험이 전혀 없고 서비스 이용에 익명성을 제공할 수 있다.
또한 주기적으로 블록체인에 등록된 키를 변경하더라도 시간의 순으로 블록을 정리하는 블록체인의 특징으로 가장 최근의 인증 값을 관리하게 되어 다른 IoT 서비스 제공자들에게 통지할 필요가 없다.
또한 매번 인증 시마다 다른 정수(j)를 선택하여 생성된 값을 기반으로 매번 다른 해시 값을 전송하므로 네트워크 공격에 유출된다 하여도 해시 값을 기반으로 인증에 필요한 키를 역으로 추출할 수 없어 네트워크 공격에도 안전한 인증 방법을 제공한다.
한편, 본 발명은 블록체인과 IoT 융합 망에서 사용자는 블록체인의 ID(전자지불 계좌의 User Account)를 이용하여 다양한 물품을 거래할 수도 있고, 응용 서비스를 이용할 수 있으며, 이때 어떤 개인 정보의 등록 및 저장이 필요 없어 완벽한 익명성을 제공할 수 있다.
하나 이상의 예시적인 구현에서, 여기서 제시된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 통해 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터 판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나, 또는 이들을 통해 전송될 수 있다. 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 일 장소에서 다른 장소로 컴퓨터 프로그램의 이전을 용이하게 하기 위한 임의의 매체를 포함하는 통신 매체를 포함한다. 저장 매체는 범용 컴퓨터 또는 특수 목적의 컴퓨터에 의해 액세스될 수 있는 임의의 가용한 매체일 수 있다. 예를 들어, 이러한 컴퓨터 판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장 매체, 자기 디스크 저장 매체 또는 다른 자기 저장 장치들, 또는 명령 또는 데이터 구조의 형태로 요구되는 프로그램 코드 수단을 저장하는데 사용될 수 있고, 범용 컴퓨터, 특수목적의 컴퓨터, 범용 프로세서, 또는 특별한 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다.
또한, 임의의 연결 수단이 컴퓨터 판독가능한 매체로 간주될 수 있다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 라인(DSL), 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들을 통해 전송되는 경우, 이러한 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들이 이러한 매체의 정의 내에 포함될 수 있다. 여기서 사용되는 disk 및 disc은 컴팩트 disc(CD), 레이저 disc , 광 disc, DVD, 플로피 disk, 및 블루-레이 disc를 포함하며, 여기서 disk는 데이터를 자기적으로 재생하지만, disc은 레이저를 통해 광학적으로 데이터를 재생한다. 상기 조합들 역시 컴퓨터 판독가능한 매체의 범위 내에 포함될 수 있다.
당업자는 상술한 다양한 예시적인 엘리먼트, 컴포넌트, 논리블록, 모듈 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있음을 잘 이해할 것이다. 하드웨어 및 소프트웨어의 상호 호환성을 명확히 하기 위해, 다양한 예시적인 소자들, 블록, 모듈 및 단계들이 그들의 기능적 관점에서 기술되었다. 이러한 기능이 하드웨어로 구현되는지, 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 대해 부가된 설계 제한들에 의존한다. 당업자는 이러한 기능들을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수 있지만, 이러한 구현 결정이 본 발명의 영역을 벗어나는 것은 아니다.
본 개시물과 관련하여 기재되는 다양한 예시적인 논리 블록들 및 모듈들은 범용 프로세서, 디지털 신호 처리기(DSP), 주문형 반도체(ASIC), 필드 프로그램어블 게이트 어레이(FPGA) 또는 다른 프로그램어블 논리 디바이스, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트들 또는 여기서 기재되는 기능들을 구현하도록 설계되는 임의의 조합을 통해 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로 프로세서 일 수 있지만; 대안적 실시예에서, 이러한 프로세서는 기존 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로 프로세서, 또는 이러한 구성들의 조합과 같이 계산 장치들의 조합으로서 구현될 수 있다.
하드웨어 구현에 대하여, 여기에서 개시되는 양상들과 관련하여 설명되는 프로세싱 유닛들의 다양한 예시적인 로직들, 로직 블록들 및 모듈들은, 하나 이상의 주문형 반도체(ASIC)들, 디지털 신호 처리기들(DSP)들, 디지털 신호 프로세싱 디바이스(DSPD)들, 프로그래밍가능한 로직 디바이스(PLD)들, 필드 프로그래밍가능한 게이트 어레이(FPGA)들, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 범용 목적의 프로세서들, 제어기들, 마이크로-컨트롤러들, 마이크로프로세서들, 여기에서 설명되는 기능들을 수행하도록 설계되는 다른 전자 유닛들, 또는 이들의 조합에서 구현될 수 있다. 범용-목적 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 임의의 기존의 프로세서, 제어기, 마이크로컨트롤러, 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합(예컨대, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 관련된 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 적절한 구성)으로 구현될 수 있다. 추가적으로, 적어도 하나의 프로세서는 여기에서 설명되는 단계들 및/또는 동작들 중 하나 이상을 구현할 수 있는 하나 이상의 모듈들을 포함할 수 있다.
게다가, 여기에서 설명되는 다양한 양상들 또는 특징들은 표준 프로그래밍 및/또는 엔지니어링 기법들을 사용하는 방법, 장치, 또는 제조물로서 구현될 수 있다. 또한, 여기에서 개시되는 양상들과 관련하여 설명되는 방법 또는 알고리즘의 단계들 및/또는 동작들은 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이들의 조합으로 직접 구현될 수 있다. 추가적으로, 몇몇의 양상들에서, 방법 또는 알고리즘의 단계들 또는 동작들은 기계-판독가능 매체, 또는 컴퓨터-판독가능 매체 상의 코드들 또는 명령들의 세트의 적어도 하나의 또는 임의의 조합으로서 존재할 수 있으며, 이는 컴퓨터 프로그램 물건으로 통합될 수 있다. 여기에서 사용되는 용어 제조물은 임의의 적절한 컴퓨터-판독가능 디바이스 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포함하도록 의도된다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
1 : 인증 클라이언트
2 : 키 저장소
3 : 인증 서버
2 : 키 저장소
3 : 인증 서버
Claims (4)
- 블록체인(Block chain)과 IoT(Internet of Things) 융합 망에서,
(a) 인증 클라이언트가 자신이 생성한 ECC 공개키를 블록체인에 등록하는 단계;
(b) 상기 인증 클라이언트가 생성한 ECC 키를 기반으로 선택한 임의의 정수로부터 제 1 해시 값 및 차일드 키를 생성하고, 상기 차일드 키로부터 제 2 해시 값을 생성하여, 상기 제 1 해시 값 및 제 2 해시 값을 이용하여 인증을 요청하는 단계; 및
(c) 인증 서버가 상기 블록체인으로부터 가져온 키와 상기 제 1 해시 값을 기반으로 새로운 차일드 키를 생성하고, 상기 새로운 차일드 키로부터 생성된 새로운 해시 값과 상기 제 2 해시값을 비교하여 인증을 수행하는 단계;를 포함하고,
상기 (b) 단계는,
임의의 정수 j를 선택하는 단계;
상기 임의의 정수 j로부터 제 1 해시 값{H1 = hash(j, Q^)} 및 차일드 키{dj = (d^ + H1 mod p)}를 생성하는 단계;
상기 차일드 키로부터 제 2 해시 값{H2 = hash(dj)}을 생성하는 단계; 및
상기 제 1 해시 값 및 제 2 해시 값을 이용하여 인증을 요청하는 단계;를 포함하는 것을 특징으로 하는 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법. - 제 1 항에 있어서,
상기 (a) 단계는,
EC 도메인 파라미터(T=(p,a,b,G,n.h))를 생성하는 단계;
상기 파라미터 중 n을 기반으로 정수 d^를 선택하는 단계;
상기 정수 d^와 G를 기반으로 Q^를 생성하는 단계;
ECC 기반의 공개키 쌍(d^, Q^)을 생성하는 단계; 및
상기 공개키 쌍 중에서 d^를 인증 키로 블록체인에 등록하는 단계;를 포함하는 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법. - 삭제
- 제 1 항에 있어서,
상기 (c) 단계는,
상기 블록체인으로부터 키(d^)를 가져오는 단계;
상기 제 1 해시 값을 기반으로 새로운 차일드 키{*dj = (d^ + H1 mod p)}를 생성하는 단계;
상기 새로운 차일드 키로부터 새로운 해시 값{*H2 = hash(*dj)}을 생성하는 단계;
상기 새로운 해시 값과 제 2 해시값을 비교하는 단계; 및
상기 새로운 해시 값과 제 2 해시값이 동일하면 인증을 완료하는 단계;를 포함하는 ECC 공개키 방식과 해시 값을 이용한 사용자 인증 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180077744A KR102120328B1 (ko) | 2018-07-04 | 2018-07-04 | Ecc 공개키 방식과 해시 값을 이용한 사용자 인증 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180077744A KR102120328B1 (ko) | 2018-07-04 | 2018-07-04 | Ecc 공개키 방식과 해시 값을 이용한 사용자 인증 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200004631A KR20200004631A (ko) | 2020-01-14 |
KR102120328B1 true KR102120328B1 (ko) | 2020-06-08 |
Family
ID=69152952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180077744A KR102120328B1 (ko) | 2018-07-04 | 2018-07-04 | Ecc 공개키 방식과 해시 값을 이용한 사용자 인증 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102120328B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100658301B1 (ko) * | 1999-11-22 | 2006-12-14 | 주식회사 케이티 | 무선통신시스템에서의 공개키 기반 상호 인증 방법 |
KR101678795B1 (ko) | 2015-11-30 | 2016-11-22 | 전삼구 | 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법 |
JP2017163612A (ja) | 2017-06-12 | 2017-09-14 | パナソニックIpマネジメント株式会社 | 端末認証システム、サーバ装置、及び端末認証方法 |
KR101800737B1 (ko) | 2016-06-27 | 2017-11-23 | 경북대학교 산학협력단 | 사용자 인증을 위한 스마트기기의 제어방법, 이를 수행하기 위한 기록매체 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101780636B1 (ko) | 2016-05-16 | 2017-09-21 | 주식회사 코인플러그 | 인증 정보의 발급 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
-
2018
- 2018-07-04 KR KR1020180077744A patent/KR102120328B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100658301B1 (ko) * | 1999-11-22 | 2006-12-14 | 주식회사 케이티 | 무선통신시스템에서의 공개키 기반 상호 인증 방법 |
KR101678795B1 (ko) | 2015-11-30 | 2016-11-22 | 전삼구 | 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법 |
KR101800737B1 (ko) | 2016-06-27 | 2017-11-23 | 경북대학교 산학협력단 | 사용자 인증을 위한 스마트기기의 제어방법, 이를 수행하기 위한 기록매체 |
JP2017163612A (ja) | 2017-06-12 | 2017-09-14 | パナソニックIpマネジメント株式会社 | 端末認証システム、サーバ装置、及び端末認証方法 |
Non-Patent Citations (1)
Title |
---|
Nazri Abdullah 외 2인, Blockchain based approach to enhance big data authentication in distributed environment, 2017 9th ICUFN, 2017.07.04. pp. 887-892. 1부.* |
Also Published As
Publication number | Publication date |
---|---|
KR20200004631A (ko) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11526879B2 (en) | Method and system for zero-knowledge and identity based key management for decentralized applications | |
US20210367795A1 (en) | Identity-Linked Authentication Through A User Certificate System | |
US11849029B2 (en) | Method of data transfer, a method of controlling use of data and cryptographic device | |
CN103051628B (zh) | 基于服务器获取认证令牌的方法及*** | |
US8196186B2 (en) | Security architecture for peer-to-peer storage system | |
US20190173873A1 (en) | Identity verification document request handling utilizing a user certificate system and user identity document repository | |
US20180241740A1 (en) | Certificate authority | |
KR20060101454A (ko) | 기기인증 시스템 | |
CN105409186A (zh) | 用于用户认证的***及方法 | |
US8397281B2 (en) | Service assisted secret provisioning | |
CN106464493B (zh) | 包含一次性通行码的持久性认证*** | |
CN113411187B (zh) | 身份认证方法和***、存储介质及处理器 | |
ES2665887T3 (es) | Sistema de datos seguro | |
US20220014354A1 (en) | Systems, methods and devices for provision of a secret | |
KR102157695B1 (ko) | 익명 디지털 아이덴티티 수립 방법 | |
KR102120327B1 (ko) | Ecc 기반의 차일드 키를 이용한 상호 인증 방법 | |
Das et al. | A decentralized open web cryptographic standard | |
RU2698424C1 (ru) | Способ управления авторизацией | |
US10902093B2 (en) | Digital rights management for anonymous digital content sharing | |
JP6174796B2 (ja) | セキュリティシステム、管理装置、許可装置、端末装置、セキュリティ方法、およびプログラム | |
KR20080005344A (ko) | 인증서버가 사용자단말기를 인증하는 시스템 | |
KR102120328B1 (ko) | Ecc 공개키 방식과 해시 값을 이용한 사용자 인증 방법 | |
KR102053993B1 (ko) | 인증서를 이용한 사용자 인증 방법 | |
KR20070035342A (ko) | 패스워드 기반의 경량화된 상호 인증 방법 | |
CN103916372B (zh) | 一种第三方登录信息托管方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |