KR102310277B1 - 패스워드 암호화 시스템 및 그 방법 - Google Patents

패스워드 암호화 시스템 및 그 방법 Download PDF

Info

Publication number
KR102310277B1
KR102310277B1 KR1020200149409A KR20200149409A KR102310277B1 KR 102310277 B1 KR102310277 B1 KR 102310277B1 KR 1020200149409 A KR1020200149409 A KR 1020200149409A KR 20200149409 A KR20200149409 A KR 20200149409A KR 102310277 B1 KR102310277 B1 KR 102310277B1
Authority
KR
South Korea
Prior art keywords
key
encryption
password
module
mac
Prior art date
Application number
KR1020200149409A
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 KR1020200149409A priority Critical patent/KR102310277B1/ko
Application granted granted Critical
Publication of KR102310277B1 publication Critical patent/KR102310277B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 패스워드 암호화 시스템 및 그 방법을 개시한다. 상기 패스워드 암호화 시스템은, 아이디를 수신하여 개인키를 생성하는 키 모듈, 상기 아이디와 연동되는 제1 패스워드를 수신하여 제1 암호화 키를 생성하는 암호화 모듈, 상기 개인키 및 상기 제1 암호화 키를 이용하여 사이퍼 텍스트를 생성하는 양방향 알고리즘 모듈, 상기 제1 암호화 키와 상기 사이퍼 텍스트를 이용하여 제1 MAC를 생성하는 MAC 생성 모듈 및 상기 사이퍼 텍스트 및 상기 제1 MAC을 포함하는 키 스토어 파일을 생성하는 키 스토어 생성 모듈을 포함한다.

Description

패스워드 암호화 시스템 및 그 방법{System for encrypting password and method thereof}
본 발명은 패스워드 암호화 시스템 및 그 방법에 관한 것이다. 구체적으로, 본 발명은 시스템 내에 패스워드를 저장하지 않아 보안이 강화된 패스워드 암호화 시스템 및 그 방법에 관한 것이다.
기존의 온라인 시스템에서는 로그인을 위해서 패스워드를 저장하는 방식을 사용하고 있다. 즉, 사용자가 매번 로그인을 수행하기 위해서 패스워드를 입력하면 시스템 내부에서 저장된 패스워드를 통해서 사용자를 인증할 수 있다. 그러나, 이러한 방식은 해킹에 의해서 패스워드가 유출될 가능성이 있으므로 기존의 온라인 시스템은 패스워드를 그대로 저장하지 않고 변형하여 저장할 수 있다.
예를 들어, 패스워드는 시스템 내에서 단방향 알고리즘 즉, 해쉬 함수를 통해서 패스워드를 암호화한 후에 저장될 수 있다. 이러한 방식은 시스템 개발자도 해당 패스워드가 무엇인지 알 수 없다는 장점이 있다.
그러나, 이러한 단방향 해쉬 함수를 이용하는 방식도 레인보우 테이블 어택(rainbow table attack)과 같은 해킹 공격에는 취약할 수 있다. 레인보우 테이블이란 간단하게는 공개된 해쉬 함수의 해쉬값을 미리 계산해둔 테이블일 수 있다.
따라서, 이러한 해킹 공격을 방지하기 위해서 패스워드의 보안성을 높인 시스템이 필요한 실정이다.
본 발명의 과제는, 보안이 강화된 패스워드 암호화 시스템을 제공하는 것이다.
또한, 본 발명의 다른 과제는, 보안이 강화된 패스워드 암호화 방법을 제공하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 패스워드 암호화 시스템은 아이디를 수신하여 개인키를 생성하는 키 모듈, 상기 아이디와 연동되는 제1 패스워드를 수신하여 제1 암호화 키를 생성하는 암호화 모듈, 상기 개인키 및 상기 제1 암호화 키를 이용하여 사이퍼 텍스트를 생성하는 양방향 알고리즘 모듈, 상기 제1 암호화 키와 상기 사이퍼 텍스트를 이용하여 제1 MAC(message authentication code)를 생성하는 MAC 생성 모듈 및 상기 사이퍼 텍스트 및 상기 제1 MAC을 포함하는 키 스토어 파일을 생성하는 키 스토어 생성 모듈을 포함한다.
또한, 상기 암호화 모듈은 상기 아이디와 연동되는 제2 패스워드를 수신하여 제2 암호화 키를 생성하고, 상기 MAC 생성 모듈은 상기 제2 암호화 키와 상기 키 스토어 파일에 저장된 상기 사이퍼 텍스트를 이용하여 제2 MAC 생성 모듈을 생성할 수 있다.
또한, 상기 제1 MAC과 제2 MAC을 비교하여 동일한지 여부를 판단하여 패스워드 인증 정보를 생성하는 비교 모듈을 더 포함할 수 있다.
또한, 상기 양방향 알고리즘 모듈은 상기 패스워드 인증 정보를 수신하고, 상기 제2 암호화 키와 상기 사이퍼 텍스트를 이용하여 상기 개인키를 복호화할 수 있다.
또한, 상기 암호화 모듈이 상기 제1 암호화 키를 생성하기 위해서 사용한 암호화 알고리즘은 상기 키 스토어 파일에 저장될 수 있다.
또한, 상기 암호화 모듈은 상기 제2 암호화 키를 생성하기 위해 상기 키 스토어 파일에 저장된 상기 암호화 알고리즘을 사용할 수 있다.
또한, 상기 양방향 알고리즘 모듈은 AES 암호 알고리즘을 사용할 수 있다.
또한, 상기 제1 MAC은 상기 제1 암호화 키의 적어도 일부 및 상기 사이퍼 텍스트를 결합한 코드를 이용하여 생성되고, 상기 제2 MAC은 상기 제2 암호화 키의 적어도 일부 및 상기 사이퍼 텍스트를 결합한 코드를 이용하여 생성될 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 패스워드 암호화 방법은 아이디 및 제1 패스워드를 수신하는 단계, 상기 아이디에 대응하는 개인키를 생성하는 단계, 상기 제1 패스워드를 암호화 알고리즘을 통해서 암호화하여 제1 암호화 키를 생성하는 단계, 상기 개인키 및 제1 암호화 키를 이용하여 사이퍼 텍스트를 생성하는 단계, 상기 제1 암호화 키 및 상기 사이퍼 텍스트를 이용하여 제1 MAC을 생성하는 단계 및 상기 사이퍼 텍스트 및 상기 제1 MAC을 포함하는 키 스토어 파일을 생성하는 단계를 포함한다.
또한, 상기 아이디 및 제2 패스워드를 수신하는 단계와, 상기 제2 패스워드를 상기 암호화 알고리즘을 통해서 암호화하여 제2 암호화 키를 생성하는 단계와, 상기 사이퍼 텍스트 및 상기 제2 암호화 키를 이용하여 제2 MAC을 생성하는 단계와, 상기 제1 및 제2 MAC이 동일한지 비교하는 단계와, 상기 제1 및 제2 MAC이 동일한 경우, 상기 제2 암호화 키 및 상기 사이퍼 텍스트를 이용하여 상기 개인키를 복호화하는 단계를 더 포함할 수 있다.
본 발명의 패스워드 암호화 시스템 및 그 방법은, 시스템 내부에 패스워드를 저장하지 않아 해커에 의한 공격에도 사용자의 패스워드의 보안을 지킬 수 있다.
또한, 패스워드 암호화에 개인키를 이용하므로 복호화를 통한 개인키를 획득하여 블록체인 서비스에도 활용할 수 있다.
또한, 실제 시스템 내에서는 개인키를 직접 활용하지 않고 키 스토어 파일과 패스워드 조합을 이용하여 로그인을 수행하므로 시스템의 연산량이 낮아지고, 속도가 빨라질 수 있다.
상술한 내용과 더불어 본 발명의 구체적인 효과는 이하 발명을 실시하기 위한 구체적인 사항을 설명하면서 함께 기술한다.
도 1은 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 시스템을 설명하기 위한 개념도이다.
도 2는 도 1의 패스워드 암호화 서버가 키 스토어 파일을 생성하는 동작을 세부적으로 설명하기 위한 블록도이다.
도 3은 도 2의 패스워드 암호화 서버의 각 모듈의 동작을 설명하기 위한 순서도이다.
도 4는 도 2의 양방향 알고리즘 모듈이 사이퍼 텍스트를 생성하는 방식을 설명하기 위한 개념도이다.
도 5는 도 2의 MAC 생성 모듈이 MAC을 생성하는 방식을 설명하기 위한 개념도이다.
도 6은 도 2의 키 스토어 파일의 구성을 설명하기 위한 예시도이다.
도 7은 도 2의 키 스토어 파일이 포함하는 정보를 직관적으로 포함한 개념도이다.
도 8은 도 1의 패스워드 암호화 서버가 개인키를 복호화하는 동작을 세부적으로 설명하기 위한 블록도이다.
도 9는 도 2의 패스워드 암호화 서버의 각 모듈의 동작을 설명하기 위한 순서도이다.
도 10은 도 2의 양방향 알고리즘 모듈이 개인키를 복호화하는 방식을 설명하기 위한 개념도이다.
도 11은 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 방법의 키 스토어 파일 생성을 설명하기 위한 순서도이다.
도 12는 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 방법의 개인키 복호화를 설명하기 위한 순서도이다.
도 13은 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 시스템의 패스워드 암호화 서버의 하드웨어 구현을 설명하기 위한 도면이다.
본 명세서 및 특허청구범위에서 사용된 용어나 단어는 일반적이거나 사전적인 의미로 한정하여 해석되어서는 아니된다. 발명자가 그 자신의 발명을 최선의 방법으로 설명하기 위해 용어나 단어의 개념을 정의할 수 있다는 원칙에 따라, 본 발명의 기술적 사상과 부합하는 의미와 개념으로 해석되어야 한다. 또한, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명이 실현되는 하나의 실시예에 불과하고, 본 발명의 기술적 사상을 전부 대변하는 것이 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 및 응용 가능한 예들이 있을 수 있음을 이해하여야 한다.
본 명세서 및 특허청구범위에서 사용된 제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서 및 특허청구범위에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해서 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 본 발명의 각 실시예에 포함된 각 구성, 과정, 공정 또는 방법 등은 기술적으로 상호 간 모순되지 않는 범위 내에서 공유될 수 있다.
이하, 도 1 내지 도 10을 참조하여, 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 시스템을 설명한다.
도 1은 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 시스템을 설명하기 위한 개념도이고, 도 2는 도 1의 패스워드 암호화 서버가 키 스토어 파일을 생성하는 동작을 세부적으로 설명하기 위한 블록도이다. 도 3은 도 2의 패스워드 암호화 서버의 각 모듈의 동작을 설명하기 위한 순서도이고, 도 4는 도 2의 양방향 알고리즘 모듈이 사이퍼 텍스트를 생성하는 방식을 설명하기 위한 개념도이다. 도 5는 도 2의 MAC 생성 모듈이 MAC을 생성하는 방식을 설명하기 위한 개념도이고, 도 6은 도 2의 키 스토어 파일의 구성을 설명하기 위한 예시도이다. 도 7은 도 2의 키 스토어 파일이 포함하는 정보를 직관적으로 포함한 개념도이고, 도 8은 도 1의 패스워드 암호화 서버가 개인키를 복호화하는 동작을 세부적으로 설명하기 위한 블록도이다. 도 9는 도 2의 패스워드 암호화 서버의 각 모듈의 동작을 설명하기 위한 순서도이고, 도 10은 도 2의 양방향 알고리즘 모듈이 개인키를 복호화하는 방식을 설명하기 위한 개념도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 시스템은 클라이언트(100), 패스워드 암호화 서버(200) 및 블록체인(300)을 포함할 수 있다.
클라이언트(100)는 블록체인(300) 및 패스워드 암호화 서버(200)를 사용하는 사용자일 수 있다. 클라이언트(100)는 사용자 단말기를 이용할 수 있다. 사용자 단말기는 네트워크를 통하여 패스워드 암호화 서버(200)와 통신할 수 있다. 구체적으로, 사용자 단말기는 예를 들어, 개인 휴대용 정보 단말기(PDA, personal digital assistant) 포터블 컴퓨터(portable computer), 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 디지털 뮤직 플레이어(digital music player), 메모리 카드(memory card), 또는 정보를 무선환경에서 송신 및/또는 수신할 수 있는 모든 전자 제품에 적용될 수 있다.
클라이언트(100)는 패스워드 암호화 서버(200)로 아이디(ID) 및 패스워드(PW)를 전송할 수 있다. 이때, 패스워드(PW)는 아이디(ID)와 서로 일 대 일로 매칭되어 클라이언트(100)를 패스워드 암호화 시스템에 접속을 허용할지를 결정하는 코드일 수 있다. 패스워드(PW)는 미리 설정된 제한에 따라서 문자, 숫자 및/또는 기호의 조합으로 정해질 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
클라이언트(100)는 네트워크를 통해서 패스워드 암호화 서버(200)에 접속할 수 있다. 이때, 네트워크는 유선 인터넷 기술, 무선 인터넷 기술 및 근거리 통신 기술에 의한 네트워크를 포함할 수 있다. 유선 인터넷 기술은 예를 들어, 근거리 통신망(LAN, Local area network) 및 광역 통신망(WAN, wide area network) 중 적어도 하나를 포함할 수 있다.
무선 인터넷 기술은 예를 들어, 무선랜(Wireless LAN: WLAN), DLNA(Digital Living Network Alliance), 와이브로(Wireless Broadband: Wibro), 와이맥스(World Interoperability for Microwave Access: Wimax), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution: LTE), LTE-A(Long Term Evolution-Advanced), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service: WMBS) 및 5G NR(New Radio) 기술 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
근거리 통신 기술은 예를 들어, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association: IrDA), UWB(Ultra-Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication: NFC), 초음파 통신(Ultra Sound Communication: USC), 가시광 통신(Visible Light Communication: VLC), 와이 파이(Wi-Fi), 와이 파이 다이렉트(Wi-Fi Direct), 5G NR (New Radio) 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
네트워크를 통해서 통신하는 클라이언트(100) 및 패스워드 암호화 서버(200)는 이동통신을 위한 기술표준 및 표준 통신 방식을 준수할 수 있다. 예를 들어, 표준 통신 방식은 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTEA(Long Term Evolution-Advanced) 및 5G NR(New Radio) 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
패스워드 암호화 서버(200)는 클라이언트(100)로부터 아이디(ID)와 패스워드(PW)를 수신하여 패스워드(PW)가 올바른 지를 판단할 수 있다. 패스워드 암호화 서버(200)는 패스워드(PW)가 올바른 경우에는 로그인을 허용하고, 패스워드(PW)가 잘못된 경우에는 로그인을 허용하지 않을 수 있다. 패스워드 암호화 서버(200)는 패스워드(PW)가 올바른 경우에는 로그인을 허용하고, 블록체인(300)에 사용되는 개인키(Pv_key)를 블록체인(300)으로 제공할 수 있다.
블록체인(300)은 거래 즉, 트랜잭션을 블록 체인 형태로 저장할 수 있다. 블록체인(300)은 복수의 노드를 포함하여 각각의 거래를 복수의 노드 각각에 저장할 수 있다. 이를 통해서, 블록체인(300)은 거래의 위조를 방지할 수 있다.
도 2를 참조하면, 패스워드 암호화 서버(200)는 키 모듈(210), 암호화 모듈(220), 양방향 알고리즘 모듈(230), MAC(message authentication code) 생성 모듈(240), 키 스토어 생성 모듈(250), 키 스토어 데이터베이스(260) 및 비교 모듈(270)을 포함할 수 있다.
도 1 및 도 2를 참조하면, 키 모듈(210)은 클라이언트(100)로부터 아이디(ID)를 수신할 수 있다. 아이디(ID)는 패스워드 암호화 시스템 내에서 클라이언트(100)를 식별할 수 있는 식별자일 수 있다. 아이디는 미리 등록된 문자, 숫자 및/또는 기호의 조합으로 정해질 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
아이디(ID)는 클라이언트(100)의 입력을 통해서 키 모듈(210)로 전송될 수 있다. 키 모듈(210)은 아이디(ID)와 대응되는 개인키(Pv_key)를 생성할 수 있다. 개인키(Pv_key)는 블록체인(300)에서 사용될 수 있다. 개인키(Pv_key)는 키 모듈(210)에서 임의적으로(randomly) 생성될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
개인키(Pv_key)는 블록체인(300)에서 필수적으로 필요한 키로서 공개키와 한 쌍으로 구성될 수 있다. 개인키(Pv_key)와 공개키는 블록체인(300) 상에 거래를 기록하기 위한 유효한 서명(signature)일 수 있다. 공개키는 공개된 장부인 블록 상의 거래에서 공개키를 가지고 있는 사용자들의 거래들이 참인지 거짓인지를 확인하기 위해서 사용될 수 있다.
개인키(Pv_key)는 블록체인(300)에서 각각의 사용자들이 직접 거래를 발생시키기 위해서 사용할 수 있다. 따라서, 개인키(Pv_key)는 사용자를 제외한 타인에게 공개되지 않도록 보안이 유지되어야 한다.
일반적으로, 공개키는 개인키(Pv_key)를 통해서 생성될 수 있다. 개인키(Pv_key)는 단방향 암호화 알고리즘을 통해서 공개키를 생성할 수 있다. 따라서, 개인키(Pv_key)를 통해서는 공개키를 알 수 있지만, 공개키를 통해서는 개인키(Pv_key)를 알 수 없다. 상기 단방향 암호화 알고리즘은 예를 들어, ECDSA(Elliptic Curve Digital Signature Algorithm) 기술 및 소인수분해 문제 방식(RSA 방식) 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
유사하게, 공개키를 가지고 사용자 즉, 클라이언트(100)의 지갑의 주소를 생성할 수 있다. 주소 역시, 단방향 암호화 알고리즘을 통해서 공개키에 의해서 생성될 수 있다. 따라서, 공개키를 통해서는 주소를 알 수 있지만, 주소를 통해서는 공개키를 알 수 없다. 상기 단방향 암호화 알고리즘은 예를 들어, 해시 함수를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
본 실시예는 패스워드를 암호화하는데 블록체인(300)에서 사용하는 개인키(Pv_key)를 사용하여 보안을 강화하고, 사용된 개인키(Pv_key)를 블록체인(300)으로 제공하여 활용성도 높일 수 있다. 즉, 블록체인(300)에서 필수적으로 사용되는 개인키(Pv_key)를 이용하여 패스워드 암호화의 보안을 강화할 수 있다. 키 모듈(210)은 개인키(Pv_key)를 생성하여 양방향 알고리즘 모듈(230)로 전송할 수 있다.
암호화 모듈(220)은 클라이언트(100)로부터 제1 패스워드(PW1)를 수신할 수 있다. 제1 패스워드(PW1)는 클라이언트(100)가 패스워드(PW)를 등록하기 위해서 최초로 입력한 패스워드(PW)일 수 있다. 즉, 패스워드(PW)는 제1 패스워드(PW1)와 추후 도 8에서 설명할 제2 패스워드(PW2)를 포함할 수 있다.
제1 패스워드(PW1)는 아이디(ID)와 일 대 일로 매칭될 수 있다. 제1 패스워드(PW1)는 아이디(ID)와 같이 클라이언트(100)의 입력을 통해서 암호화 모듈(220)로 전송될 수 있다. 암호화 모듈(220)은 키 암호화 함수(KDF)를 이용하여 제1 패스워드(PW1)를 제1 암호화 키(D_key1)로 암호화를 수행할 수 있다. 키 암호화 함수(KDF)는 단방향 암호화 함수일 수 있다. 예를 들어, 키 암호화 함수는 MD5(Message-Digest algorithm 5), SHA1(Secure Hash Algorithm 1), SHA256(Secure Hash Algorithm 256), PBKDF2(Password-Based Key Derivation Function 2), Bcrypt, Scrypt 및 Argon2 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
암호화 모듈(220)은 제1 암호화 키(D_key1)를 양방향 알고리즘 모듈(230)로 전송할 수 있다. 암호화 모듈(220)은 또한, MAC 생성 모듈(240)로 제1 암호화 키를 전송할 수 있다.
암호화 모듈(220)은 제1 패스워드(PW1)를 암호화하여 제1 암호화 키(D_key1)를 생성할 때 사용한 키 암호화 함수(KDF)를 키 스토어 생성 모듈(250)로 전송할 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)에 키 암호화 함수(KDF)를 포함하여 생성할 수 있다.
도 2 및 도 4를 참조하면, 양방향 알고리즘 모듈(230)은 키 모듈(210)로부터 개인키(Pv_key)를 수신할 수 있다. 양방향 알고리즘 모듈(230)은 암호화 모듈(220)로부터 제1 암호화 키(D_key1)를 수신할 수 있다. 양방향 알고리즘 모듈(230)은 개인키(Pv_key)와 제1 암호화 키(D_key1)를 이용하여 사이퍼 텍스트(C_text)를 생성할 수 있다.
양방향 알고리즘 모듈(230)은 양방향 알고리즘(Al)을 이용하여 사이퍼 텍스트(C_text)를 생성할 수 있다. 이때, 양방향 알고리즘(Al)은 예를 들어, DES(Data Encryption Standard) 및/또는 AES(Advanced Encryption Standard)일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
개인키(Pv_key)는 추후 블록체인(300)에서 사용되어야 하기 때문에 양방향 알고리즘 모듈(230)은 단방향이 아닌 양방향 알고리즘(Al)을 사용할 수 있다. 즉, 양방향 알고리즘 모듈(230)은 개인키(Pv_key)를 이용하여 사이퍼 텍스트(C_text)를 생성하기도 하지만, 사이퍼 텍스트(C_text)를 이용하여 개인키(Pv_key)를 복호화하기도 할 수 있다.
양방향 알고리즘 모듈(230)은 사이퍼 텍스트(C_text)를 MAC 생성 모듈(240)에 전송할 수 있다. 양방향 알고리즘 모듈(230)은 사이퍼 텍스트(C_text)를 키 스토어 생성 모듈(250)로 전송할 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)이 사이퍼 텍스트(C_text)를 포함하도록 생성할 수 있다.
양방향 알고리즘 모듈(230)은 사이퍼 텍스트(C_text)의 생성에 개인키(Pv_key) 및 제1 암호화 키(D_key1)뿐만 아니라 초기 벡터(IV)를 사용할 수 있다. 양방향 알고리즘 모듈(230)은 초기 벡터(IV)를 키 스토어 생성 모듈(250)로 전송할 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)이 초기 벡터(IV)를 포함하도록 생성할 수 있다.
초기 벡터(IV)는 고정된 값일 수도 있고, 클라이언트(100)가 달라질 때마다 즉, 아이디(ID)가 달라질 때마다 변하는 값일 수 있다. 초기 벡터(IV)는 임의적으로 생성된 헥스(hex) 문자열일 수 있다. 예를 들어, 초기 벡터(IV)는 16바이트로서, 32자리의 헥스 문자열일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
도 2 및 도 5를 참조하면, MAC 생성 모듈(240)은 양방향 알고리즘 모듈(230)로부터 사이퍼 텍스트(C_text)를 수신하고, 암호화 모듈(220)로부터 제1 암호화 키(D_key1)를 수신할 수 있다. MAC 생성 모듈(240)은 제1 암호화 키(D_key1) 및 사이퍼 텍스트(C_text)를 이용하여 결합 코드를 생성할 수 있다. 이때, 결합 코드는 제1 암호화 키(D_key1)의 적어도 일부 및 사이퍼 텍스트(C_text)의 적어도 일부를 포함할 수 있다. 예를 들어, 결합 코드는 제1 암호화 키(D_key1)의 뒷 부분과 사이퍼 텍스트(C_text)의 전부를 포함할 수 있다. 이때, 제1 암호화 키(D_key1)의 뒷부분은 제1 암호화 키(D_key1)의 절반에 해당하는 뒷부분일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
MAC 생성 모듈(240)은 결합 코드를 암호화하여 제1 MAC(MAC1)을 생성할 수 있다. 제1 MAC(MAC1)은 예를 들어, 결합 코드를 해쉬 함수를 통해 암호화하여 생성될 수 있다. 상기 해쉬 함수는 예를 들어, SHA-0, SHA-1, SHA-2 및 SHA-3 중 적어도 하나일 수 있으나, 이에 제한되는 것은 아니다. 상기 해쉬 함수는 예를 들어, SHA-3 256일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
상기 해쉬 함수가 만일 SHA-3 256이면, 제1 MAC(MAC1)은 제3 길이(L3)일 수 있다. 예를 들어, 제3 길이(L3)는 32바이트일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
예를 들어, 제1 암호화 키(D_key1)는 일부분만 사용될 수 있다. 즉, 암호화 키 파트(rD_key)가 사용될 수 있다. 이때, 암호화 키 파트(rD_key)는 제1 암호화 키(D_key1)의 적어도 일부일 수 있다. 암호화 키 파트(rD_key)는 제1 암호화 키(D_key1)의 뒷 부분일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
암호화 키 파트(rD_key)는 제1 길이(L1)일 수 있다. 예를 들어, 제1 길이(L1)는 16바이트일 수 있다. 이 경우, 제1 암호화 키(D_key1)가 32바이트인 경우일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
사이퍼 텍스트(C_text)는 제2 길이(L2)일 수 있다. 예를 들어, 제2 길이(L2)는 32바이트일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
결합 코드는 제1 길이(L1)와 제2 길이(L2)의 합만큼의 길이를 가질 수 있다. 예를 들어, 결합 코드의 길이는 48바이트일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
MAC 생성 모듈(240)은 제1 MAC(MAC1)을 키 스토어 생성 모듈(250)로 전송할 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)이 제1 MAC(MAC1)을 포함하도록 생성할 수 있다.
도 2, 도 6 및 도 7을 참조하면, 키 스토어 생성 모듈(250)은 키 스토어 파일을 생성할 수 있다. 키 스토어 생성 모듈(250)은 암호화 모듈(220)로부터 키 암호화 함수(KDF)를 수신하고, 양방향 알고리즘 모듈(230)로부터 사이퍼 텍스트(C_text) 및 초기 벡터(IV)를 수신할 수 있다. 키 스토어 생성 모듈(250)은 MAC 생성 모듈(240)로부터 제1 MAC(MAC1)을 수신할 수 있다.
키 스토어 생성 모듈(250)은 키 스토어 파일(KS)을 생성할 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)에 키 암호화 함수(KDF), 사이퍼 텍스트(C_text), 초기 벡터(IV) 및 제1 MAC(MAC1)을 포함시킬 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)을 키 스토어 데이터베이스(260)로 전송할 수 있다.
키 스토어 데이터베이스(260)는 키 스토어 생성 모듈(250)로부터 키 스토어 파일(KS)을 수신할 수 있다. 키 스토어 데이터베이스(260)는 키 스토어 파일(KS)을 저장할 수 있다.
키 스토어 파일(KS)은 아이디(ID), 주소, 양방향 알고리즘(Al), 초기 벡터(IV), 사이퍼 텍스트(C_text), 키 암호화 함수(KDF), 키 암호화 함수 파라미터 및 제1 MAC(MAC1)을 포함할 수 있다.
도 6에서는 예를 들어, 양방향 알고리즘(Al)이 AES-128-ctr인 경우일 수 있다. 키 암호화 함수(KDF)는 scrypt이고, 키 암호화 함수 파라미터는 다이제스트 길이(dklen)가 32바이트이고, 추가되는 솔트(salt)의 값과, 8192의 CPU 비용(n, 값이 클수록 암호화 파워가 증가), 8의 블록 사이즈(r) 및 1의 병렬화(p, 값이 클수록 암호화 파워가 증가) 등을 표시할 수 있다. 단, 이는 예시에 불과하고, 파라미터의 형태 및 값은 얼마든지 달라질 수 있다.
도 7을 참조하면, 키 스토어 파일(KS)은 초기 벡터(IV), 키 암호화 함수(KDF), 사이퍼 텍스트(C_text) 및 제1 MAC(MAC1)을 포함하므로, 추후 로그인 과정에서 키 스토어 파일(KS)이 초기 벡터(IV), 키 암호화 함수(KDF), 사이퍼 텍스트(C_text) 및 제1 MAC(MAC1)을 제공하기 위해서 로드(load)될 수 있다.
도 2 및 도 3을 참조하면, 클라이언트(100)는 키 모듈(210)로 아이디(ID)를 제공하고(S11), 암호화 모듈(220)로 제1 패스워드(PW1)를 제공한다(S12). 이어서, 키 모듈(210)은 수신한 아이디(ID)를 이용하여 개인키(Pv_key)를 생성하고 이를 양방향 알고리즘 모듈(230)로 전송한다(S13). 암호화 모듈(220)은 제1 패스워드(PW1)를 키 암호화 함수(KDF)를 통해서 제1 암호화 키(D_key1)로 변환하고, 이를 양방향 알고리즘 모듈(230)로 전송한다(S14).
이때, S13 및 S14 단계는 도시된 바와 달리 순차적이지 않고 병렬적으로 수행될 수 있다.
암호화 모듈(220)은 제1 암호화 키(D_key1)를 MAC 생성 모듈(240)로도 전송한다(S15). 암호화 모듈(220)은 또한 키 암호화 함수(KDF)를 키 스토어 생성 모듈(250)로 전송할 수 있다(S16).
이때, S14 내지 S16 단계는 도시된 바와 달리 순차적이지 않고 병렬적으로 수행될 수 있다.
S14 단계 이후에, 양방향 알고리즘 모듈(230)은 사이퍼 텍스트(C_text)를 MAC 생성 모듈(240)로 전송한다(S17). 양방향 알고리즘 모듈(230)은 사이퍼 텍스트(C_text)를 키 스토어 생성 모듈(250)로도 전송한다(S18).
이때, S17 및 S18 단계는 도시된 바와 달리 순차적이지 않고 병렬적으로 수행될 수 있다.
S17 단계 이후에, MAC 생성 모듈(240)은 제1 MAC(MAC1)을 키 스토어 생성 모듈(250)로 전송한다(S19). 이어서, 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)을 키 스토어 데이터베이스(260)로 전송한다(S20).
위의 절차대로, 키 스토어 파일(KS)이 저장되고 난 후에 클라이언트가 로그인을 수행하는 과정을 아래에서 설명한다.
도 1 및 도 8을 참조하면, 클라이언트(100)는 아이디(ID)를 키 스토어 데이터베이스(260)로 전송하고, 제2 패스워드(PW2)를 암호화 모듈(220)로 전송할 수 있다. 이때, 제2 패스워드(PW2)는 아이디(ID)와 같이 클라이언트(100)가 입력하는 패스워드(PW)일 수 있다. 제2 패스워드(PW2)가 만일 제1 패스워드(PW1)와 동일한 경우에는 클라이언트(100)가 패스워드 암호화 서버(200)에 로그인이 허용되지만, 제2 패스워드(PW2)가 만일 제1 패스워드(PW1)와 다른 경우에는 클라이언트(100)의 로그인이 실패할 수 있다.
키 스토어 데이터베이스(260)는 아이디(ID)를 수신하고, 아이디(ID)에 대응하는 키 스토어 파일에 저장된 여러 정보를 다른 모듈로 전송할 수 있다. 구체적으로, 키 스토어 데이터베이스(260)는 키 암호화 함수(KDF)를 암호화 모듈(220)로 전송할 수 있다. 또한, 키 스토어 데이터베이스(260)는 사이퍼 텍스트(C_text)를 양방향 알고리즘 모듈(230) 및 MAC 생성 모듈(240)로 전송할 수 있다. 또한, 키 스토어 데이터베이스(260)는 제1 MAC(MAC1)을 비교 모듈(270)로 전송할 수 있다.
암호화 모듈(220)은 키 스토어 데이터베이스(260)로부터 키 암호화 함수(KDF)를 수신하고, 제2 패스워드(PW2)를 키 암호화 함수(KDF)를 이용하여 제2 암호화 키(D_key2)로 암호화할 수 있다. 암호화 모듈(220)은 제2 암호화 키(D_key2)를 양방향 알고리즘 모듈(230) 및 MAC 생성 모듈(240)로 전송할 수 있다.
MAC 생성 모듈(240)은 사이퍼 텍스트(C_text) 및 제2 암호화 키(D_key2)를 이용하여 제2 MAC(MAC2)을 생성할 수 있다. 제2 MAC(MAC2)을 생성하는 방식은 도 5의 제1 MAC(MAC1)을 생성하는 방식과 동일할 수 있다.
비교 모듈(270)은 키 스토어 데이터베이스(260)로부터 제1 MAC(MAC1)을 수신하고, MAC 생성 모듈(240)로부터 제2 MAC(MAC2)을 수신할 수 있다. 비교 모듈(270)은 제1 MAC(MAC1) 및 제2 MAC(MAC2)을 서로 비교할 수 있다. 비교 모듈(270)은 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 서로 동일한지를 판단하여 패스워드 인증 정보(Ipw)를 생성할 수 있다. 이때, 패스워드 인증 정보(Ipw)는 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 서로 동일한지 동일하지 않은지에 대한 정보일 수 있다. 비교 모듈(270)은 패스워드 인증 정보(Ipw)를 양방향 알고리즘 모듈(230)로 전송할 수 있다.
도 8 및 도 10을 참조하면, 양방향 알고리즘 모듈(230)은 패스워드 인증 정보(Ipw)를 수신하고, 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 동일한 경우에 개인키(Pv_key)를 복호화할 수 있다.
양방향 알고리즘 모듈(230)은 양방향 알고리즘(Al)에 사이퍼 텍스트(C_text), 초기 벡터(IV) 및 제2 암호화 키(D_key2)를 입력하여 개인키(Pv_key)를 복호화할 수 있다. 양방향 알고리즘(Al)을 개인키(Pv_key)를 암호화하여 사이퍼 텍스트(C_text)를 생성하기도 하고, 반대로 사이퍼 텍스트(C_text)를 복호화하여 개인키(Pv_key)를 생성할 수도 있다.
도 1 및 도 8을 참조하면, 양방향 알고리즘 모듈(230)은 생성된 개인키(Pv_key)를 블록체인(300)에 제공할 수 있다. 이를 통해서, 본 실시예에 따른 패스워드 암호화 시스템은 패스워드 암호화에 사용된 개인키(Pv_key)를 블록체인(300)에서도 활용할 수 있어 시스템의 효율성을 극대화할 수 있다.
도 8 및 도 9를 참조하면, 클라이언트(100)는 키 스토어 데이터베이스(260)에 아이디(ID)를 전송하고(S21), 암호화 모듈(220)로 제2 패스워드(PW2)를 전송한다(S22). 이때, S21 및 S22 단계는 도시된 바와 달리 순차적이지 않고 병렬적으로 수행될 수 있다.
이어서, 키 스토어 데이터베이스(260)는 암호화 모듈(220)로 키 암호화 함수(KDF)를 전송한다(S23). 키 암호화 함수(KDF)는 키 스토어 데이터베이스(260)가 저장하고 있는 키 스토어 파일(KS)에 포함되어 있을 수 있다.
이어서, 암호화 모듈(220)은 양방향 알고리즘 모듈(230)로 제2 암호화 키(D_key2)를 전송한다(S24). 암호화 모듈(220)은 MAC 생성 모듈(240)로 제2 암호화 키(D_key2)를 전송한다(S25). 이때, S24 및 S25 단계는 도시된 바와 달리 순차적이지 않고 병렬적으로 수행될 수 있다.
키 스토어 데이터베이스(260)는 양방향 알고리즘 모듈(230)로 사이퍼 텍스트(C_text)를 전송한다(S26). 사이퍼 텍스트(C_text)는 키 스토어 데이터베이스(260)가 저장한 키 스토어 파일(KS)에 포함되어 있을 수 있다. 키 스토어 데이터베이스(260)는 MAC 생성 모듈(240)로 사이퍼 텍스트(C_text)를 전송한다(S27).
키 스토어 데이터베이스(260)는 비교 모듈(270)로 제1 MAC(MAC1)을 전송한다(S28). 제1 MAC(MAC1)은 키 스토어 데이터베이스(260)가 저장한 키 스토어 파일(KS)에 포함되어 있을 수 있다. MAC 생성 모듈(240)은 사이퍼 텍스트(C_text) 및 제2 암호화 키(D_key2)를 이용하여 제2 MAC(MAC2)을 생성할 수 있다. MAC 생성 모듈(240)은 비교 모듈(270)로 제2 MAC(MAC2)을 전송한다(S29). 이때, S28 및 S29 단계는 도시된 바와 달리 순차적이지 않고 병렬적으로 수행될 수 있다.
키 스토어 데이터베이스(260)에서 키 스토어 파일(KS)에서 키 암호화 함수(KDF), 사이퍼 텍스트(C_text) 및 제1 MAC(MAC1)이 로드되는 S23, S26, S27 및 S28 단계는 도시된 바와 달리 순차적이지 않고 병렬적으로 수행될 수 있다.
이어서, 비교 모듈(270)은 제1 MAC(MAC1) 및 제2 MAC(MAC2)을 비교하여 패스워드 인증 정보(Ipw)를 생성할 수 있다. 비교 모듈(270)은 패스워드 인증 정보(Ipw)를 양방향 알고리즘 모듈(230)로 전송한다(S30). 이어서, 양방향 알고리즘 모듈(230)은 패스워드 인증 정보(Ipw)가 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 동일하다는 정보인 경우, 개인키(Pv_key)를 블록체인(300)으로 전송할 수 있다.
도 1 내지 도 10을 참조하면, 본 실시예에 따른 패스워드 암호화 시스템은 패스워드 암호화 서버(200)에 패스워드(PW) 자체가 저장되지 않아서 해커에 의해서 공격을 당하는 경우에도 패스워드(PW)가 노출되지 않을 수 있다. 즉, 패스워드(PW) 대신에 키 스토어 파일(KS)이 패스워드 암호화 서버(200)에 저장되어 있으므로, 패스워드(PW)가 직접 노출될 가능성이 전혀 없다.
패스워드(PW)가 직접 패스워드 암호화 서버(200)에 저장되지 않아도, 키 스토어 파일(KS)이 저장되어 있으므로, 클라이언트(100)가 패스워드(PW)를 입력하면 패스워드(PW)가 올바른 지 패스워드 암호화 서버(200)가 직접 판단할 수 있다.
또한, 본 실시예는 개인키(Pv_key)를 이용하여 패스워드(PW)를 암호화하므로 패스워드(PW)의 보안을 높일 수 있으며, 개인키(Pv_key)를 추후에 블록체인(300)에서 사용할 수 있어 활용성 또한 높을 수 있다.
이하, 도 1 내지 도 12를 참조하여 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 방법을 설명한다. 상술한 실시예와 중복되는 부분은 생략하거나 간략히 한다.
도 11은 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 방법의 키 스토어 파일 생성을 설명하기 위한 순서도이고, 도 12는 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 방법의 개인키 복호화를 설명하기 위한 순서도이다.
도 11을 참조하면, 아이디 및 제1 패스워드를 수신한다(S110).
구체적으로, 도 1 및 도 2를 참조하면, 클라이언트(100)는 패스워드 암호화 서버(200)로 아이디(ID) 및 제1 패스워드(PW1)를 전송할 수 있다. 이때, 제1 패스워드(PW1)는 아이디(ID)와 서로 일 대 일로 매칭되어 클라이언트(100)를 패스워드 암호화 시스템에 접속을 허용할지를 결정하는 코드일 수 있다. 키 모듈(210)은 클라이언트(100)로부터 아이디(ID)를 수신할 수 있다.
다시, 도 11을 참조하면, 개인키를 생성한다(S120).
구체적으로, 도 2를 참조하면, 키 모듈(210)은 아이디(ID)와 대응되는 개인키(Pv_key)를 생성할 수 있다. 개인키(Pv_key)는 추후에 블록체인(300)에서 사용될 수 있다. 개인키(Pv_key)는 블록체인(300)에서 사용될 수 있다. 개인키(Pv_key)는 키 모듈(210)에서 임의적으로 생성될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
다시, 도 11을 참조하면, 제1 암호화 키를 생성한다(S130).
구체적으로, 도 2를 참조하면, 암호화 모듈(220)은 클라이언트(100)로부터 제1 패스워드(PW1)를 수신할 수 있다. 암호화 모듈(220)은 키 암호화 함수(KDF)를 이용하여 제1 패스워드(PW1)를 제1 암호화 키(D_key1)로 암호화를 수행할 수 있다. 키 암호화 함수(KDF)는 단방향 암호화 함수일 수 있다.
다시, 도 11을 참조하면, 사이퍼 텍스트를 생성한다(S140).
구체적으로, 도 2를 참조하면, 양방향 알고리즘 모듈(230)은 키 모듈(210)로부터 개인키(Pv_key)를 수신할 수 있다. 양방향 알고리즘 모듈(230)은 암호화 모듈(220)로부터 제1 암호화 키(D_key1)를 수신할 수 있다. 양방향 알고리즘 모듈(230)은 개인키(Pv_key)와 제1 암호화 키(D_key1)를 이용하여 사이퍼 텍스트(C_text)를 생성할 수 있다. 양방향 알고리즘 모듈(230)은 양방향 알고리즘(Al)을 이용하여 사이퍼 텍스트(C_text)를 생성할 수 있다.
다시, 도 11을 참조하면, 제1 MAC을 생성한다(S150).
구체적으로, 도 2 및 도 5를 참조하면, MAC 생성 모듈(240)은 양방향 알고리즘 모듈(230)로부터 사이퍼 텍스트(C_text)를 수신하고, 암호화 모듈(220)로부터 제1 암호화 키(D_key1)를 수신할 수 있다. MAC 생성 모듈(240)은 제1 암호화 키(D_key1) 및 사이퍼 텍스트(C_text)를 이용하여 결합 코드를 생성할 수 있다. MAC 생성 모듈(240)은 결합 코드를 암호화하여 제1 MAC(MAC1)을 생성할 수 있다. 제1 MAC(MAC1)은 예를 들어, 결합 코드를 해쉬 함수를 통해 암호화하여 생성될 수 있다.
다시, 도 11을 참조하면, 키 스토어 파일을 저장한다(S160).
구체적으로, 도 2, 도 6 및 도 7을 참조하면, 키 스토어 생성 모듈(250)은 암호화 모듈(220)로부터 키 암호화 함수(KDF)를 수신하고, 양방향 알고리즘 모듈(230)로부터 사이퍼 텍스트(C_text) 및 초기 벡터(IV)를 수신할 수 있다. 키 스토어 생성 모듈(250)은 MAC 생성 모듈(240)로부터 제1 MAC(MAC1)을 수신할 수 있다.
키 스토어 생성 모듈(250)은 키 스토어 파일(KS)을 생성할 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)에 키 암호화 함수(KDF), 사이퍼 텍스트(C_text), 초기 벡터(IV) 및 제1 MAC(MAC1)을 포함시킬 수 있다. 키 스토어 생성 모듈(250)은 키 스토어 파일(KS)을 키 스토어 데이터베이스(260)로 전송할 수 있다. 키 스토어 데이터베이스(260)는 키 스토어 파일(KS)을 저장할 수 있다.
이어서, 도 12를 참조하여 패스워드 인증 절차를 설명한다.
다시, 도 12를 참조하면, 아이디 및 제2 패스워드를 수신한다(S210).
구체적으로, 도 8을 참조하면, 클라이언트(100)는 아이디(ID)를 키 스토어 데이터베이스(260)로 전송하고, 제2 패스워드(PW2)를 암호화 모듈(220)로 전송할 수 있다.
다시, 도 12를 참조하면, 키 스토어 파일을 로드하여 제2 암호화 키를 생성한다(S220).
구체적으로, 도 8을 참조하면, 키 스토어 데이터베이스(260)는 키 암호화 함수(KDF)를 암호화 모듈(220)로 전송할 수 있다. 암호화 모듈(220)은 키 스토어 데이터베이스(260)로부터 키 암호화 함수(KDF)를 수신하고, 제2 패스워드(PW2)를 키 암호화 함수(KDF)를 이용하여 제2 암호화 키(D_key2)로 암호화할 수 있다.
다시, 도 12를 참조하면, 제2 MAC을 생성한다(S230).
구체적으로, 도 8을 참조하면, 키 스토어 데이터베이스(260)는 사이퍼 텍스트(C_text)를 MAC 생성 모듈(240)로 전송할 수 있다. 암호화 모듈(220)은 제2 암호화 키(D_key2)를 MAC 생성 모듈(240)로 전송할 수 있다. MAC 생성 모듈(240)은 사이퍼 텍스트(C_text) 및 제2 암호화 키(D_key2)를 이용하여 제2 MAC(MAC2)을 생성할 수 있다.
다시, 도 12를 참조하면, 제1 MAC 및 제2 MAC이 동일한지 판단한다(S240).
구체적으로, 도 8을 참조하면, 키 스토어 데이터베이스(260)는 제1 MAC(MAC1)을 비교 모듈(270)로 전송할 수 있다. 비교 모듈(270)은 키 스토어 데이터베이스(260)로부터 제1 MAC(MAC1)을 수신하고, MAC 생성 모듈(240)로부터 제2 MAC(MAC2)을 수신할 수 있다. 비교 모듈(270)은 제1 MAC(MAC1) 및 제2 MAC(MAC2)을 서로 비교할 수 있다. 비교 모듈(270)은 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 서로 동일한지를 판단하여 패스워드 인증 정보(Ipw)를 생성할 수 있다.
도 8, 도 10 및 도 12를 참조하면, 만일, 패스워드 인증 정보(Ipw)가 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 동일한 것으로 판단될 때, 개인키(Pv_key)를 추출한다(S260).
양방향 알고리즘 모듈(230)은 패스워드 인증 정보(Ipw)를 수신하고, 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 동일한 경우에 개인키(Pv_key)를 복호화할 수 있다.
만일, 패스워드 인증 정보(Ipw)가 제1 MAC(MAC1) 및 제2 MAC(MAC2)이 동일하지 않은 것으로 판단될 때, 패스워드 에러를 출력한다(S250).
도 13은 본 발명의 몇몇 실시예들에 따른 패스워드 암호화 시스템의 패스워드 암호화 서버의 하드웨어 구현을 설명하기 위한 도면이다.
도 13을 참조하면, 도 1의 패스워드 암호화 서버(200)는 전자 장치(1000)로 구현될 수 있다. 전자 장치(1000)는 컨트롤러(1010), 입출력 장치(1020, I/O), 메모리 장치(1030, memory device), 인터페이스(1040) 및 버스(1050, bus)를 포함할 수 있다. 컨트롤러(1010), 입출력 장치(1020), 메모리 장치(1030) 및/또는 인터페이스(1040)는 버스(1050)를 통하여 서로 결합될 수 있다. 버스(1050)는 데이터들이 이동되는 통로(path)에 해당한다.
컨트롤러(1010)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), 마이크로프로세서, 디지털 신호 프로세스, 마이크로컨트롤러, 어플리케이션 프로세서(AP, application processor) 및 이들과 유사한 기능을 수행할 수 있는 논리 소자들 중에서 적어도 하나를 포함할 수 있다.
입출력 장치(1020)는 키패드(keypad), 키보드, 터치스크린 및 디스플레이 장치 중 적어도 하나를 포함할 수 있다. 메모리 장치(1030)는 데이터 및/또는 프로그램 등을 저장할 수 있다.
인터페이스(1040)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다. 인터페이스(1040)는 유선 또는 무선 형태일 수 있다. 예컨대, 인터페이스(1040)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다. 도시하지 않았지만, 메모리 장치(1030)는 컨트롤러(1010)의 동작을 향상시키기 위한 동작 메모리로서, 고속의 디램 및/또는 에스램 등을 더 포함할 수도 있다. 메모리 장치(1030)는 내부에 프로그램 또는 어플리케이션을 저장할 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (10)

  1. 아이디를 수신하여 개인키를 생성하는 키 모듈;
    상기 아이디와 매칭되는 제1 패스워드를 수신하여 제1 암호화 키를 생성하되, 상기 제1 암호화 키의 생성은 상기 아이디를 수신하지 않고 수행되는 암호화 모듈;
    상기 개인키 및 상기 제1 암호화 키를 이용하여 사이퍼 텍스트를 생성하는 양방향 알고리즘 모듈;
    상기 제1 암호화 키와 상기 사이퍼 텍스트를 이용하여 제1 MAC(message authentication code)를 생성하는 MAC 생성 모듈; 및
    상기 사이퍼 텍스트 및 상기 제1 MAC을 포함하는 키 스토어 파일을 생성하는 키 스토어 생성 모듈을 포함하고,
    상기 암호화 모듈은 상기 아이디와 연동되는 제2 패스워드를 수신하여 제2 암호화 키를 생성하고,
    상기 MAC 생성 모듈은 상기 제2 암호화 키와 상기 키 스토어 파일에 저장된 상기 사이퍼 텍스트를 이용하여 제2 MAC 생성 모듈을 생성하고,
    상기 제1 MAC과 제2 MAC을 비교하여 동일한지 여부를 판단하여 패스워드 인증 정보를 생성하는 비교 모듈을 더 포함하는 패스워드 암호화 시스템.
  2. 삭제
  3. 삭제
  4. 제1 항에 있어서,
    상기 양방향 알고리즘 모듈은 상기 패스워드 인증 정보를 수신하고, 상기 제2 암호화 키와 상기 사이퍼 텍스트를 이용하여 상기 개인키를 복호화하는 패스워드 암호화 시스템.
  5. 제1 항에 있어서,
    상기 암호화 모듈이 상기 제1 암호화 키를 생성하기 위해서 사용한 암호화 알고리즘은 상기 키 스토어 파일에 저장되는 패스워드 암호화 시스템.
  6. 제5 항에 있어서,
    상기 암호화 모듈은 상기 제2 암호화 키를 생성하기 위해 상기 키 스토어 파일에 저장된 상기 암호화 알고리즘을 사용하는 패스워드 암호화 시스템.
  7. 제1 항에 있어서,
    상기 양방향 알고리즘 모듈은 AES 암호 알고리즘을 사용하는 패스워드 암호화 시스템.
  8. 제1 항에 있어서,
    상기 제1 MAC은 상기 제1 암호화 키의 적어도 일부 및 상기 사이퍼 텍스트를 결합한 코드를 이용하여 생성되고,
    상기 제2 MAC은 상기 제2 암호화 키의 적어도 일부 및 상기 사이퍼 텍스트를 결합한 코드를 이용하여 생성되는 패스워드 암호화 시스템.
  9. 아이디 및 상기 아이디와 매칭되는 제1 패스워드를 수신하는 단계;
    상기 아이디에 대응하는 개인키를 생성하는 단계;
    상기 제1 패스워드를 암호화 알고리즘을 통해서 암호화하여 제1 암호화 키를 생성하되, 상기 제1 암호화 키의 생성은 상기 아이디를 수신하지 않고 수행되는 단계;
    상기 개인키 및 제1 암호화 키를 이용하여 사이퍼 텍스트를 생성하는 단계;
    상기 제1 암호화 키 및 상기 사이퍼 텍스트를 이용하여 제1 MAC을 생성하는 단계;
    상기 사이퍼 텍스트 및 상기 제1 MAC을 포함하는 키 스토어 파일을 생성하는 단계;
    상기 아이디 및 제2 패스워드를 수신하는 단계;
    상기 제2 패스워드를 상기 암호화 알고리즘을 통해서 암호화하여 제2 암호화 키를 생성하는 단계;
    상기 사이퍼 텍스트 및 상기 제2 암호화 키를 이용하여 제2 MAC을 생성하는 단계;
    상기 제1 및 제2 MAC이 동일한지 비교하는 단계; 및
    상기 제1 및 제2 MAC이 동일한 경우, 상기 제2 암호화 키 및 상기 사이퍼 텍스트를 이용하여 상기 개인키를 복호화하는 단계를 포함하는 패스워드 암호화 방법.
  10. 삭제
KR1020200149409A 2020-11-10 2020-11-10 패스워드 암호화 시스템 및 그 방법 KR102310277B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200149409A KR102310277B1 (ko) 2020-11-10 2020-11-10 패스워드 암호화 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200149409A KR102310277B1 (ko) 2020-11-10 2020-11-10 패스워드 암호화 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR102310277B1 true KR102310277B1 (ko) 2021-10-08

Family

ID=78115709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200149409A KR102310277B1 (ko) 2020-11-10 2020-11-10 패스워드 암호화 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102310277B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150080061A (ko) * 2013-12-30 2015-07-09 삼성에스디에스 주식회사 아이디 기반 키 관리 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150080061A (ko) * 2013-12-30 2015-07-09 삼성에스디에스 주식회사 아이디 기반 키 관리 시스템 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BA, Forouzan, Cryptography and network security, Special Indian Edition. Tata McGraw-Hill(2007.) 1부.* *
Douglas, R. STINSON, Cryptography Theory and Practice 3rd Edition(2006.) 1부.* *

Similar Documents

Publication Publication Date Title
KR101095239B1 (ko) 보안 통신
US11265929B2 (en) Methods and architectures for secure ranging
US10142107B2 (en) Token binding using trust module protected keys
US8331567B2 (en) Methods and apparatuses for generating dynamic pairwise master keys using an image
US9071426B2 (en) Generating a symmetric key to secure a communication link
US20160242030A1 (en) Key Configuration Method and Apparatus
CN109495250B (zh) 基于密钥卡的抗量子计算智能家庭通信方法及系统
US10650373B2 (en) Method and apparatus for validating a transaction between a plurality of machines
US8904195B1 (en) Methods and systems for secure communications between client applications and secure elements in mobile devices
CA2879910C (en) Terminal identity verification and service authentication method, system and terminal
Petrov et al. Towards the era of wireless keys: How the IoT can change authentication paradigm
CA2809144A1 (en) Encryption device and method
Cheng et al. Authenticated RFID security mechanism based on chaotic maps
Dey et al. Message digest as authentication entity for mobile cloud computing
Mumtaz et al. An RSA based authentication system for smart IoT environment
US9756504B2 (en) Security authentication method, device, and system
Zahednejad et al. A lightweight, secure big data-based authentication and key-agreement scheme for iot with revocability
ES2926968T3 (es) Una primera entidad, una segunda entidad, un nodo intermedio, métodos para establecer una sesión segura entre una primera y una segunda entidad, y productos de programa informático
KR102310277B1 (ko) 패스워드 암호화 시스템 및 그 방법
EP2965488B1 (en) Method and system for preparing a communication between a user device and a server
WO2015124798A2 (en) Method & system for enabling authenticated operation of a data processing device
Thakur et al. A Comprehensive Review of Wireless Security Protocols and Encryption Applications
Othman et al. Developing a secure mechanism for Bluetooth-based wireless personal area networks (WPANs)
TWI672653B (zh) 數位資料加密方法、數位資料解密方法及數位資料處理系統
Zhao Improvement on Security of SMS Verification Codes

Legal Events

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