KR102182894B1 - 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법 - Google Patents

패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법 Download PDF

Info

Publication number
KR102182894B1
KR102182894B1 KR1020140024427A KR20140024427A KR102182894B1 KR 102182894 B1 KR102182894 B1 KR 102182894B1 KR 1020140024427 A KR1020140024427 A KR 1020140024427A KR 20140024427 A KR20140024427 A KR 20140024427A KR 102182894 B1 KR102182894 B1 KR 102182894B1
Authority
KR
South Korea
Prior art keywords
password
extended
user
authentication
user device
Prior art date
Application number
KR1020140024427A
Other languages
English (en)
Other versions
KR20150102827A (ko
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 KR1020140024427A priority Critical patent/KR102182894B1/ko
Priority to US14/602,825 priority patent/US10044703B2/en
Publication of KR20150102827A publication Critical patent/KR20150102827A/ko
Application granted granted Critical
Publication of KR102182894B1 publication Critical patent/KR102182894B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using 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/31User authentication
    • 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
    • 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
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN

Abstract

본 발명에 따른 패스워드 기반의 인증 방식을 사용하는 사용자 장치의 패스워드 등록 방법은, 입력된 패스워드에 솔트를 부가하여 조합 패스워드를 생성하는 단계, 상기 조합 패스워드에 대한 확장 연산을 수행하여 데이터 길이가 확장된 확장 패스워드를 생성하는 단계, 상기 확장된 패스워드를 압축하여 인증 정보로 생성하는 단계, 그리고 상기 인증 정보를 인증 데이터 베이스에 저장하는 단계를 포함한다.

Description

패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법{USER DEVICE PERFORMING PASSWROD BASED AUTHENTICATION AND PASSWORD Registration AND AUTHENTICATION METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 패스워드 기반의 사용자 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 및 인증 방법에 관한 것이다.
최근에는 인터넷, 통신 회선, 컴퓨터, 모바일 기기 등의 급속한 발달로 유무선 인터넷을 이용한 쇼핑, 게임 및 채팅, 전자 결제와 같은 서비스가 제공되고 있다. 또한, 휴대용 개인 단말의 급속한 보급 및 무선 환경의 발전으로 사용자들은 모바일 기기를 통한 게임이나 결재, 인터넷 접속 등이 급격히 증가하고 있다. 더불어, 보안이 요구되는 다양한 전자 장치들에 대한 수요가 증가하고 있는 실정이다.
이와 같이, 사용자가 유선 또는 무선 네트워크나 단말을 사용한 서비스를 이용하기 위해서 반드시 거쳐야 할 절차가 사용자 인증(User Authentication)이다. 즉, 장치나 네트워크의 사용, 출입에 대한 허가 여부를 사용자 인증 절차에서 판단하고 인증된 사용자에게만 해당 서비스를 제공하게 된다. 이러한 사용자 인증 시스템에서 가장 보편적인 방식이 사용자의 계정(ID)과 패스워드(Password)를 사용하는 패스워드 기반의 인증 시스템이다.
패스워드 기반의 사용자 인증은 사용자 등록(User Registration) 과정과 사용자 인증(User Authentication) 과정으로 이루어진다. 사용자 등록은 사용자가 시스템에 계정(ID)과 패스워드(Password)를 등록하는 절차이다. 사용자 등록시, 입력된 패스워드는 암호 알고리즘에 따라 가공되어 인증 정보로 생성된다. 그리고 인증 정보(Authentication data)와 계정(ID)은 시스템의 인증 데이터 베이스(DB)에 저장된다. 이후, 사용자가 해당 시스템의 서비스를 이용할 때에 사용자의 계정과 패스워드를 입력하면, 사용자 인증 과정이 진행된다. 사용자 인증을 위해서 사용자가 계정과 패스워드를 시스템에 입력하면, 사용자 등록시와 동일한 암호 알고리즘에 따라 패스워드가 처리된다. 그리고 데이터 베이스에 저장된 해당 계정의 인증 정보와의 비교를 통해서 사용자의 인증 여부가 결정된다.
하지만, 패스워드를 사용하는 사용자 인증 방식에서, 패스워드를 처리하는 암호 알고리즘이나, 암호 알고리즘에 의해서 생성된 인증 정보는 공격자에게 쉽게 노출될 수 있다. 이러한 노출된 암호 알고리즘이나 인증 정보는 사용자의 패스워드를 복구하는 전수 조사 공격(Exhaustive Search Attack)의 대상이 될 수 있다. 특히, 최근 GPU(Graphics Processing Unit), FPGA(Field Programmable Gate Array) 기술과 같은 병렬 컴퓨팅 환경이 발전하고 있다. 따라서, 병렬적으로 동시에 수행할 수 있는 패스워드 복구 프로세스의 수가 증가함에 따라 전수 조사 공격 시간이 단축되고 있다. 따라서, 패스워드 기반의 사용자 인증 시스템의 전수 조사 공격에 대한 취약성을 극복하기 위한 기술이 절실한 실정이다.
본 발명의 목적은 패스워드 기반의 사용자 인증 시스템에서 전수 조사 공격과 같은 보안 공격을 무력화할 수 있는 사용자 장치 및 그것의 패스워드 등록 및 인증 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 패스워드 기반의 인증 방식을 사용하는 사용자 장치의 패스워드 등록 방법은, 입력된 패스워드에 솔트를 부가하여 조합 패스워드를 생성하는 단계, 상기 조합 패스워드에 대한 확장 연산을 수행하여 데이터 길이가 확장된 확장 패스워드를 생성하는 단계, 상기 확장된 패스워드를 압축하여 인증 정보로 생성하는 단계, 그리고 상기 인증 정보를 인증 데이터 베이스에 저장하는 단계를 포함한다.
상기 목적을 달성하기 위한 패스워드 기반의 인증 방식을 사용하는 사용자 장치의 패스워드 인증 방법은, 사용자의 계정에 대응하는 제 1 인증 정보 및 솔트를 인증 데이터 베이스로부터 읽어오는 단계, 사용자의 패스워드에 상기 솔트를 부가하여 조합 패스워드를 생성하는 단계, 상기 조합 패스워드에 대한 확장 연산을 수행하여 데이터 길이가 확장된 확장 패스워드를 생성하는 단계, 상기 확장된 패스워드에 대한 압축 연산을 적용하여 제 2 인증 정보로 생성하는 단계, 그리고 상기 제 1 인증 정보와 상기 제 2 인증 정보를 비교하여 상기 사용자의 패스워드의 유효성을 인증하는 단계를 포함한다.
상기 목적을 달성하기 위한 패스워드 기반의 사용자 인증을 수행하는 사용자 장치는, 사용자의 계정 및 패스워드를 입력받는 입출력 인터페이스, 그리고 상기 패스워드에 대한 확장 연산을 수행하여 확장 패스워드로 생성하고, 상기 확장 패스워드에 대한 압축 연산을 수행하여 인증 정보로 생성하는 확장 암호화 유닛을 포함한다.
이상과 같은 본 발명의 실시 예에 따르면, 전수 조사 공격에 소요되는 메모리 자원의 사이즈를 획기적으로 증가시켜, 실질적으로 전수 조사 공격에 사용되는 프로세스의 수를 줄일 수 있다. 패스워드 복구를 위해 실행 가능한 병렬 프로세스의 수가 급격히 감소할 수 있으므로, 인증 정보나 인증 알고리즘의 유출시에도 패스워드 복구를 위한 전수 조사 공격으로부터 안전한 사용자 장치 및 시스템을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 사용자 장치(100)를 보여주는 블록도이다.
도 2는 본 발명의 사용자 장치(100)를 예시적으로 보여주는 블록도이다.
도 3은 본 발명의 제 1 실시 예에 따른 사용자 등록 방법을 간략히 보여주는 순서도이다.
도 4는 본 발명의 제 1 실시 예에 따른 사용자 등록 절차에서 데이터의 가공 과정을 예시적으로 보여주는 도면이다.
도 5는 본 발명의 제 1 실시 예에 따른 사용자 인증 방법을 보여주는 순서도이다.
도 6은 본 발명의 제 2 실시 예에 따른 사용자 등록 방법을 보여주는 순서도이다.
도 7은 본 발명의 제 2 실시 예에 따른 사용자 등록 절차에서 데이터의 가공 과정을 보여주는 도면이다.
도 8은 본 발명의 제 2 실시 예에 따른 사용자 인증 방법을 보여주는 순서도이다.
도 9a 및 도 9b는 본 발명의 효과를 보여주는 블록도들이다.
도 10은 본 발명의 다른 실시 예에 따른 패스워드 기반의 인증을 수행하는 사용자 장치를 보여주는 블록도이다.
도 11은 본 발명의 다른 실시 예에 따른 네트워크 기반의 사용자 인증 시스템을 보여주는 블록도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 사용자 장치 또는 디바이스가 본 발명의 특징 및 기능을 설명하기 위한 단위의 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명의 실시 예에 따른 사용자 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 사용자 장치(100)는 사용자(10)에 의해서 제공되는 계정(ID)과 패스워드(PW)를 확장 암호화 알고리즘(122)에 따라 처리하는 사용자 등록 및 사용자 인증을 수행한다. 좀더 자세히 설명하면 다음과 같다.
사용자 등록시, 사용자(10)는 사용자 장치(100)에 계정(ID)과 패스워드(PW)를 입력할 것이다. 그러면, 사용자 장치(100)는 입력된 사용자(10)의 패스워드(PW)를 확장 암호화 알고리즘(122)에 따라 인증 정보(Authentication Data: ADr)로 생성한다. 그리고 사용자 장치(100)는 사용자의 계정(ID)과 인증 정보(ADr)를 인증 데이터 베이스(130)에 저장함으로써 사용자 등록을 완료한다. 인증 데이터 베이스(130)는 보안 영역이 제공되는 불휘발성 저장 장치로 제공될 수 있다.
확장 암호화 알고리즘(122)은 패스워드(PW)의 암호화 과정에서 발생하는 연산 복잡도 또는 연산에 소요되는 메모리 자원의 크기를 증가시키는 암호화 알고리즘일 수 있다. 확장 암호화 알고리즘(122)은 예를 들면 사용자(10)가 입력한 패스워드(PW)의 비트열 길이를 수 배 내지 수백 또는 수천 배 이상으로 확장할 수 있는 알고리즘일 수 있다. 패스워드(PW)를 복구하기 위한 전수 조사 공격시, 확장 암호화 알고리즘(122)을 사용하는 전수 조사 공격에 소요되는 메모리 자원이 너무 커지게 된다. 따라서, 확장 암호화 알고리즘(122)을 사용하는 패스워드 복구를 위한 각각의 병렬 프로세스에서는 확장 암호화 알고리즘(122)이 적용되지 않은 경우에 비하여 수 배 내지 수천 배 증가한 메모리 자원이 요구된다. 따라서, 확장 암호화 알고리즘(122)을 사용하여 전수 조사 공격을 수행하는 시스템에서 수행 가능한 병렬 프로세스의 수는 상대적으로 급격히 감소하게 된다.
확장 암호화 알고리즘(122)에는 패스워드(PW)의 길이를 증가시키는 암호화 알고리즘뿐만 아니라, 길이가 증가된 패스워드(PW)의 배열을 재구성하는 믹싱 연산이(Mixing Operation) 추가적으로 포함될 수 있다. 확장 암호화 알고리즘(122)에는 패스워드(PW)의 길이 확장 또는 확장된 패스워드의 배열 재구성 외에도 메모리 자원의 사용을 증가시키는 다양한 알고리즘들이 사용될 수 있음은 잘 이해될 것이다. 여기서, 패스워드(PW)의 길이를 증가시키고, 복잡도를 증가시키기 위해서 솔트(Salt)가 추가될 수 있음은 잘 이해될 것이다. 솔트는 예를 들면, 사용자마다 다른 값으로 생성된 난수열로 제공될 수 있을 것이다.
확장 암호화 알고리즘(122)에는 패스워드의 가공 연산에 의해서 생성된 데이터를 고정 길이의 코드로 생성하는 압축 연산(Compressing Operation)이 수행될 수 있다. 패스워드(PW)의 확장된 암호화 연산 절차의 최종 단계에서 생성된 데이터는 압축 연산에 의해서 상대적으로 짧은 길이의 인증 정보(ADr)로 출력될 것이다. 그러면, 사용자 장치(100)는 생성된 인증 정보(ADr)를 해당 사용자 계정(ID)과 함께 인증 데이터 베이스(130)에 저장한다. 그러면, 사용자(10)의 패스워드(PW)를 등록하는 사용자 등록이 완료된다.
사용자 인증 과정에서도, 사용자 등록 과정에서 수행된 패스워드(PW)에 대한 확장된 암호화 과정이 동일하게 수행된다. 사용자가 입력한 패스워드(PW)에 대한 확장 암호화 알고리즘(122)을 적용한 결과 값(ADi)과 인증 데이터 베이스(130)에 등록된 인증 정보(ADr)와 동일한지 비교될 것이다.
사용자(10)는 사용자 장치(100)를 사용하기 위해서 사용자 장치(100)에 계정(ID)과 패스워드(PW)를 입력할 것이다. 그러면, 사용자 장치(100)는 입력된 사용자(10)의 패스워드(PW)를 확장 암호화 알고리즘(122)에 따라 인증 정보(ADi)로 생성한다. 즉, 사용자 장치(100)는 사용자(10)로부터 입력받은 계정(ID)을 인증 데이터 베이스(130)에 등록된 해당 사용자의 인증 정보(ADr)와 비교할 것이다. 만일, 사용자 인증을 위해 생성한 인증 정보(ADi)와 등록된 인증 정보(ADr)가 동일하면, 사용자 장치(100)는 사용자(10)의 접속이나 사용을 허가할 것이다.
이상에서는 하나의 사용자 장치(100)에서 수행되는 패스워드(PW)에 대한 확장 암호화 알고리즘(122) 및 그것을 사용한 인증 절차가 간략히 설명되었다. 확장 암호화 알고리즘(122)에 따르면, 패스워드(PW)의 암호화 과정에서 패스워드(PW)의 길이 또는 배열의 업데이트 횟수가 획기적으로 증가한다. 따라서, 확장 암호화 알고리즘(122)이 노출되더라도, 전수 조사 공격을 수행하는 과정에서 패스워드를 복구하는 하나의 단위 프로세서에 소요되는 메모리 자원의 크기는 급격히 증가하게 된다. 따라서, 전수 조사 공격 수행시 패스워드(PW)를 복구하기 위한 병렬 프로세스에 소요되는 메모리 자원의 제한에 따라 동시에 구동될 수 있는 병렬 프로세스들의 수가 제한된다. 따라서, 본 발명의 확장 암호화 알고리즘(122)을 적용하면, 전수 조사 공격에 소요되는 시간을 급격히 증가시킬 수 있어 패스워드 복구 연산이 무력화될 수 있다.
도 2는 본 발명의 사용자 장치(100)를 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 사용자 장치(100)는 CPU(Central Processing Unit, 110), 램(120), 저장 장치(130), 입출력 인터페이스(140)를 포함할 수 있다. 이들 각각의 구성은 시스템 버스(150)에 의해서 전기적으로 연결될 수 있다.
CPU(110)는 사용자 장치(100)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행한다. CPU(110)는 램(120)에 로드되는 운영 체제(OS)를 실행할 것이다. CPU(110)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 것이다. CPU(110)는 특히, 램(120)에 로드되는 확장 암호화 알고리즘(ECA, 122)에 따라 사용자 등록 또는 사용자 인증을 수행할 수 있다. 더불어, CPU(110)는 난수 발생기 모듈(124)을 실행하여 확장 암호화 알고리즘(122)에서 소요되는 솔트(Salt)를 생성할 수 있다.
램(120)은 CPU(110)의 동작 메모리로 제공될 수 있다. 램(120)에는 확장 암호화 알고리즘 모듈(122)이나 솔트(Salt)를 생성하기 위한 난수 발생기 모듈(124)이 로드될 수 있다. 더불어, 램(120)에는 사용자 장치(100)의 부팅시에 운영 체제(OS)나 기본 응용 프로그램들이 로드될 것이다. 예를 들면, 사용자 장치(100)의 부팅시에 저장 장치(130)에 저장된 OS 이미지가 부팅 시퀀스에 의거하여 램(120)에 로드된다. 운영 체제(OS)에 의해서 사용자 장치(100)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자(10)에 의하여 선택되거나 또는 기본적인 서비스의 제공을 위해서 응용 프로그램들이 램(120)에 로드될 수 있다. 여기서, 확장 암호화 알고리즘(122)은 패스워드(PW)의 길이를 확장하는 암호화 모듈과 패스워드(PW) 또는 길이가 확장된 패스워드의 배열을 재구성하는 암호화 모듈들을 포함할 수 있다.
저장 장치(130)는 사용자 장치(100)의 불휘발성 저장 매체(Non-volatile storage medium)로서 제공된다. 저장 장치(130)에는 사용자 등록시 확장 암호화 알고리즘(122)을 통해서 생성된 인증 정보(135)가 저장되어 있다. 저장 장치(130)는 응용 프로그램들, 운영 체제 이미지(OS Image) 및 각종 사용자 데이터를 저장할 수 있다. 저장 장치(130)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)로 제공될 수도 있다. 저장 장치(130)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 저장 장치(130)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다.
입출력 인터페이스(140)는 사용자(10, 도 1 참조)로부터 제공되는 다양한 데이터를 입력받을 수 있다. 특히, 사용자가 키보드 또는 키패드, 터치식 디스플레이를 이용하여 입력하는 계정(ID)과 패스워드(PW)를 입출력 인터페이스(140)는 사용자 장치(100)에서 사용되는 데이터 형태로 변경한다. 더불어, 입출력 인터페이스(140)는 사용자(10)에게 사용자의 인증 요청이나, 사용자의 입력 상태 등을 표시하기 위한 동작도 수행할 수 있다.
시스템 버스(150)는 사용자 장치(100)의 내부 하드웨어들 간에 네트워크를 제공하기 위한 시스템 버스(System Bus)이다. 시스템 버스(150)는 예를 들면, 데이터 버스(Data bus), 어드레스 버스(Address bus) 및 컨트롤 버스(Control bus)를 포함할 것이다. 데이터 버스(Data bus)는 데이터가 이동하는 경로이다. 주로, 데이터 버스(Data bus)는 램(120)이나 저장 장치(130)로의 메모리 접근 경로를 제공될 것이다. 어드레스 버스(Address bus)는 하드웨어들 사이의 어드레스 교환 경로를 제공한다. 컨트롤 버스(Control bus)는 하드웨어들 사이의 제어 신호를 전달하는 경로를 제공한다. 하지만, 시스템 버스(150)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다.
이상에서 CPU(110)와 램(120)은 본 발명의 확장 암호화 알고리즘(ECA) 수행하는 확장 암호화 유닛으로 표현될 수 있다. 왜냐하면, 확장 암호화 알고리즘은 CPU(110)와 램(120) 조합에 의해서 수행되지 않더라도 다양한 하드웨어적인 구성이 가능하기 때문이다. 암호화 연산에서 자주 실행되는 반복적 쉬프팅과 같은 처리는 하드웨어로 용이하게 구현 가능하고, 다양한 하드웨어 IP들이 이러한 암호화 연산을 위해서 폭넓게 사용되고 있기 때문이다.
이상의 설명에 따르면, 사용자 장치(100)는 확장 암호화 알고리즘(122)을 통해서 사용자 등록 및 사용자 인증시 사용되는 패스워드를 처리한다. 확장 암호화 알고리즘(122)에 의한 암호화 과정에서, 사용자가 입력한 패스워드(PW)는 길이가 현저히 증가하게 되고, 데이터 배열도 수차례 변경될 것이다. 이러한 확장 암호화 알고리즘(122)의 실행에 따라 패스워드(PW)를 암호화하기 위해서는 요구되는 메모리 자원(Resource)이 급격히 증가하게 된다. 이러한 메모리 자원의 증가는 전수 조사 공격에 의한 패스워드 복구 연산에 큰 장벽으로 작용할 것이다.
상술한 방식의 패스워드 등록과 인증 방식은 다양한 시스템에 적용될 수 있다. 예를 들면, 컴퓨터나 모바일 기기의 부팅시에 수행되는 로그인 동작에서 상술한 패스워드 등록 및 인증이 적용될 수 있다. 그리고 컴퓨터나 모바일 기기의 운영 체제(OS)나 특정 응용 프로그램의 사용을 위한 인증 절차에서도 적용될 수 있다. 더불어, 특정 파일에 대한 접근을 제한하는 파일 암호화에도 본 발명의 패스워드 처리 방법이 적용될 수 있다. 더불어, USIM 칩이나 NFC 카드 등과 같은 스마트 카드로의 접속시에 본 발명의 사용자 인증 방식을 적용하여 보안성을 향상시킬 수 있다.
도 3은 본 발명의 제 1 실시 예에 따른 사용자 등록 방법을 간략히 보여주는 순서도이다. 도 2 및 도 3을 참조하면, 사용자 장치(100)는 패스워드(PW)에 대한 확장 암호화 알고리즘(122)을 수행하여 인증 데이터 베이스에 저장한다.
S110 단계에서, 사용자 장치(100)는 사용자 등록을 위해 계정(ID)과 패스워드(PW)를 입력받는다. 사용자 장치(100)는 입출력 인터페이스(140)를 통해서 사용자에게 계정(ID)과 패스워드(PW)를 입력받을 것이다. 입출력 인터페이스(140)를 통해서 제공받는 계정(ID)과 패스워드(PW)의 문자열에는 제한이 없다. 키보드나 키패드와 같은 다양한 입력 장치들에 의해서 지원되는 문자, 숫자, 또는 특수 문자들의 조합으로 사용자 계정(ID)과 패스워드(PW)가 결정될 수 있다.
S120 단계에서, 사용자 장치(100)는 솔트(Salt: 이하, S)를 생성한다. 솔트(S)는 패스워드(PW)의 길이를 증가시키는 부가 코드에 해당한다. 솔트(S)는 사용자 계정(ID)에 따라 다른 값으로 생성될 수 있다. 솔트(S)는 난수 발생기(Random Number Generator)를 사용하거나, 난수 발생 알고리즘을 사용하여 생성할 수 있다.
S130 단계에서, 사용자 장치(100)는 패스워드(PW)에 솔트(Salt)를 부가한 조합 패스워드({PW∥S})에 대한 확장 암호화 알고리즘(122)을 적용한다. 여기서, 확장 암호화 알고리즘에는 스트림 암호(Stream Cipher), 키 유도 함수(Key Derivation Function: 이하, KDF), 의사 난수 발생기(Pseudo Random Number Generator: 이하, PRNG) 등이 포함될 수 있다. 패스워드(PW)와 솔트(S)가 결합된 조합 패스워드({PW∥S})에 대해 확장 암호화 알고리즘을 적용하면, 데이터의 길이는 수배 내지 수백 배, 또는 수천 배 확장될 수 있다. 여기서, 확장률은 보안 레벨에 따라 다양하게 결정될 수 있으며, 확장 암호화 알고리즘의 설정에 따라 이러한 확장률이 제어될 수 있다.
S140 단계에서, 사용자 장치(100)는 확장된 조합 패스워드({PW∥S}*)에 대한 압축 연산을 수행한다. 확장된 조합 패스워드({PW∥S}*)의 데이터 길이는 너무 길어서 인증 데이터 베이스(130)에 저장하고, 인증을 위해서 수행되는 로드나 비교 연산에 부담을 줄 수 있다. 하지만, 확장된 조합 패스워드({PW∥S}*)에 대한 압축 연산을 수행하여 상대적으로 짧은 길이의 데이터로 가공하면, 이러한 문제는 해결된다. 압축 연산의 예로는 해쉬 함수(Hash function)를 사용할 수 있다. 해쉬 함수는 임의의 길이를 갖는 메시지를 고정된 길이의 코드로 출력하는 알고리즘이다. 암호 알고리즘에는 키가 사용되지만, 해쉬 알고리즘에서는 키를 사용하지 않으므로, 같은 입력에 대해서는 항상 같은 출력이 나오게 된다. 하지만, 압축 연산을 위해 사용되는 알고리즘은 고정된 길이의 출력을 제공하는 다양한 함수들이 사용될 수 있음은 잘 이해될 것이다.
S150 단계에서, 압축 연산에 의해서 생성된 인증 정보(ADr)는 인증 데이터 베이스(130)에 저장된다. 이때, 사용자가 입력한 사용자 계정(ID) 및 솔트(S)도 생성된 인증 정보(ADr)와 함께 저장된다.
이상의 사용자 장치(100)의 확장 암호화 알고리즘(122)을 사용한 패스워드(PW)의 처리 및 등록 절차에 따르면, 패스워드(PW)의 암호화 과정에서 데이터의 길이가 급격히 증가한다. 이러한 조작에 따르면, 암호화 알고리즘이나 인증 정보(ADr)의 탈취 및 그것을 사용한 전수 조사 공격시에 패스워드 복구 연산에 소요되는 메모리 용량의 크기를 기하급수적으로 증가시킬 수 있다. 따라서, 병렬 컴퓨팅에 기반하는 전수 조사 공격시 사용되는 병렬 프로세스의 수를 급격히 저하시킬 수 있다. 결과적으로, 전수 조사 공격에 소요되는 시간을 급격히 증가시킬 수 있다.
도 4는 본 발명의 제 1 실시 예에 따른 사용자 등록 절차에서 데이터의 가공 과정을 예시적으로 보여주는 도면이다. 도 4를 참조하면, 사용자가 입력한 패스워드(PW, 210)는 사용자 장치(100)의 내부에 구비되는 난수 발생기 모듈(124)로부터 생성된 솔트(215)와 결합하여 확장되고 다시 압축되어 저장 장치(130)에 저장된다.
먼저, 사용자 장치(100)는 사용자가 입력한 n-비트(n은 자연수)의 패스워드(PW, 210)를 램(120)에 저장한다. 패스워드(210)는 문자, 숫자 그리고 특수 문자 등의 조합으로 입력될 수 있다. 하지만, 이러한 패스워드(210)는 다시 이진 데이터로 변환될 수 있다. 그리고 난수 발생기 모듈(124)에 의해서 m-비트(m은 자연수)의 난수를 생성하게 될 것이다. 난수 발생기 모듈(124)은 다양한 난수 발생 알고리즘을 통해서 솔트(S, 215)를 생성할 수 있다. 패스워드(210)와 솔트(215)가 준비되면, 패스워드(210)와 솔트(215)는 결합된 값으로 조합된다. 패스워드(210)와 솔트(215)의 조합 방식은 나란히 배열하는 방식으로 이루어질 수 있다. 하지만, 솔트(215)가 패스워드(210)의 임의의 위치에 삽입된 방식으로 조합될 수 있음은 잘 이해될 것이다.
패스워드(210)와 솔트(215)가 결합된 조합 패스워드({PW∥S})는 확장 암호화 알고리즘(ECA, 122)에 의해서 처리될 것이다. 확장 암호화 알고리즘(ECA, 122)에는 스트림 암호(Stream Cipher), 키 유도 함수(Key Derivation Function: 이하, KDF), 의사 난수 발생기(Pseudo Random Number Generator: 이하, PRNG) 등이 활용될 수 있다. 확장 암호화 알고리즘(ECA, 122)의 적용에 따라 조합 패스워드({PW∥S})는 비트 수(m+n)의 수 배 내지 수백 배 또는 그 이상에 대응하는 l-비트의 확장된 패스워드({PW∥S}*)로 생성될 것이다. 여기서, 전수 조사 공격에서 수행되는 확장 암호화 알고리즘(ECA)이 실행되기 위해서는 l-비트의 확장된 패스워드({PW∥S}*) 후보군들 각각에 대한 병렬 프로세스가 수행되어야 한다. 따라서, l-비트의 확장된 패스워드({PW∥S}*)들 각각을 저장하기 위한 메모리 자원이 병렬 프로세스의 수만큼 제공되어야 한다. 확장된 패스워드({PW∥S}*)의 비트 수가 클수록 병렬 프로세스들 각각에 대해 더 큰 메모리 자원의 확보가 필요하다. 결국, 패스워드(PW)의 비트 수의 크기는 전수 조사 공격을 무력화하는 도구가 될 수 있다.
l-비트의 확장된 패스워드({PW∥S}*)는 이후 압축 프로세스에 의해서 k-비트의 인증 정보(ADr, 230)로 생성된다. 인증 정보(ADr, 230)가 데이터 베이스에 저장되면 사용자 등록 절차는 완료된다.
도 5는 본 발명의 제 1 실시 예에 따른 사용자 인증 방법을 보여주는 순서도이다. 도 2 및 도 5를 참조하면, 사용자 장치(100)는 사용자가 입력한 패스워드(PW)에 대한 확장 암호화 알고리즘(122)을 통해서 생성된 인증 정보(ADi)와 등록된 인증 정보(ADr)를 비교할 것이다.
S210 단계에서, 사용자 장치(100)는 사용자 인증을 위해 계정(ID)과 패스워드(PW)를 입력받는다. 사용자 장치(100)는 입출력 인터페이스(140)를 통해서 사용자에게 계정(ID)과 패스워드(PW)를 입력받는다. 사용자(10)는 키보드나 키패드, 또는 터치식 디스플레이와 같은 다양한 입력 장치들을 통해서 사용자 고유의 계정(ID) 및 패스워드(PW)를 입력할 것이다. 그러면, 입출력 인터페이스(140)에서는 해당 패스워드(PW)를 이진 코드로 인식하여 사용자 인증을 위한 소스로 사용한다.
S220 단계에서, 사용자 장치(100)는 입력된 계정(ID)에 대응하는 인증 정보(ADr)를 인증 데이터 베이스(Authentication DB)로부터 읽어온다. 더불어, 사용자 장치(100)는 사용자에 의해서 입력된 계정(ID)에 대응하는 솔트(S)도 인증 데이터 베이스(Authentication DB)로부터 읽어온다. 인증 데이터 베이스(Authentication DB)로부터 읽혀진 인증 정보(ADr) 및 솔트(S)는 램(120)에 로드되어 유지될 수 있다. 램(120)에 인증 데이터 베이스(Authentication DB)로부터 읽혀진 데이터가 저장되는 영역에 대해서는 외부의 접근이 제한되는 보안 영역으로 정의될 수 있다.
S230 단계에서, 사용자 장치(100)는 사용자가 입력한 패스워드(PW)에 솔트(S)를 부가한 조합 패스워드({PW∥S})를 구성한다. 그리고 사용자 장치(100)는 조합 패스워드({PW∥S})에 대한 확장 암호화 알고리즘(122)을 적용한다. 조합 패스워드({PW∥S})에 대해 확장 암호화 알고리즘(122)을 적용하면, 데이터의 길이는 수 배 내지 수백 배, 또는 수천 배 이상 확장될 수 있다. 이하에서는 확장된 패스워드를 확장 패스워드({PW∥S}*)라 칭하기로 한다. 여기서, 확장률은 보안 레벨에 따라 또는 사용자 장치(100)의 리소스(Resource)에 따라 다양하게 결정될 수 있다.
S240 단계에서, 사용자 장치(100)는 확장 패스워드({PW∥S}*)에 대한 압축 연산을 수행한다. 압축 연산은 고정된 길이의 코드를 생성하기 위한 해쉬 함수(MD5, SHA-1, SHA-256, SHA-512, SHA-2, SHA-3 등)로 구현될 수도 있으나, 본 발명의 압축 연산은 여기에만 국한되지 않는다. 압축 연산에 의해서 확장 패스워드({PW∥S}*)는 사용자가 입력한 패스워드로부터 생성되는 인증 정보(ADi)로 가공된다.
S250 단계에서, 사용자가 입력한 패스워드(PW)로부터 생성된 인증 정보(ADi)와 인증 데이터 베이스(130)로부터 읽혀진 사전에 등록된 인증 정보(ADr)에 대한 비교 동작이 수행된다. 만일, 사용자(10)로부터 입력된 패스워드(PW)로부터 생성된 인증 정보(ADi)와 등록된 인증 정보(ADr)가 동일한 경우, 절차는 S260 단계로 이동한다. 반면, 사용자(10)로부터 입력된 패스워드로부터 생성된 인증 정보(ADi)와 등록된 인증 정보(ADr)가 다른 경우, 절차는 S265 단계로 이동한다.
S260 단계에서, 사용자 장치(100)는 사용자에 대한 인증 성공(Authentication Pass)으로 판단하고, 사용자(10)의 서비스 사용을 허가할 것이다. S265 단계에서, 사용자 장치(100)는 사용자에 대한 인증 실패(Authentication Fail)로 판단하고, 사용자(10)의 서비스 사용을 불허할 것이다. 더불어, 인증 실패로 결정되는 경우, 사용자 장치(100)는 사용자(10)에게 이러한 정보를 입출력 인터페이스(140)를 통해서 출력하고, 계정(ID)과 패스워드(PW)의 재입력을 요구할 수 있다.
이상에서는 제 1 실시 예에 따른 확장 암호화 알고리즘(ECA)을 사용하는 사용자 인증 절차가 간략히 설명되었다. 확장 암호화 알고리즘(ECA)에 의해서 패스워드 등록 절차와 동일한 방식으로 사용자가 입력한 패스워드가 처리된다. 따라서, 확장 암호화 알고리즘과 인증 정보(ADr)가 노출되더라도, 사용자의 패스워드(PW)에 대한 복구를 위해서는 상대적으로 큰 메모리 자원이 구비되어야 할 것이다.
도 6은 본 발명의 제 2 실시 예에 따른 사용자 등록 방법을 보여주는 순서도이다. 도 2 및 도 6을 참조하면, 사용자 장치(100)는 패스워드(PW)에 대한 확장 암호화 알고리즘(122)을 수행하여 인증 데이터 베이스(Auth DB)에 저장한다. 패스워드(PW)에 대한 확장 암호화 알고리즘(122)에는 패스워드의 길이를 확장하는 확장 연산과 확장된 데이터에 대한 믹싱(Mixing) 연산이 포함된다.
S310 단계에서, 사용자 장치(100)는 사용자 등록을 위해 계정(ID)과 패스워드(PW)를 입력받는다. 사용자 장치(100)는 입출력 인터페이스(140)를 통해서 사용자에게 계정(ID)과 패스워드(PW)를 입력받을 것이다.
S320 단계에서, 사용자 장치(100)는 솔트(S)를 생성한다. 솔트(S)는 난수 발생기(Random Number Generator)를 사용하거나, 난수 발생 알고리즘을 사용하여 생성할 수 있다. 솔트(S)의 비트 수는 사용자의 보안 레벨에 따라 다양하게 결정될 수 있을 것이다.
S330 단계에서, 사용자 장치(100)는 패스워드(PW)에 솔트(S)를 부가한 조합 패스워드({PW∥S})에 대한 확장 암호화 알고리즘(ECA)을 적용한다. 여기서, 확장 암호화 알고리즘(ECA)에는 스트림 암호(Stream Cipher), 키 유도 함수(Key Derivation Function: 이하, KDF), 의사 난수 발생기(Pseudo Random Number Generator: 이하, PRNG) 등이 이용될 수 있다. 패스워드(PW)에 솔트(S)를 부가한 조합 패스워드({PW∥S})에 대해 확장 암호화 알고리즘(ECA)을 적용하면, 데이터의 길이는 수배 내지 수백 배, 또는 수천 배 확장될 수 있다.
S335 단계에서, 사용자 장치(100)는 확장 패스워드({PW∥S}*)에 대한 믹싱 연산(Mixing operation)을 수행한다. 즉, 사용자 장치(100)는 확장 패스워드({PW∥S}*)에 대한 데이터의 길이 변화없이 비트들 각각을 재배열하는 조작을 수행한다. 믹싱 연산을 위해서 사용자 장치(100)는 예를 들면, 블록 암호화 방식의 라운드 함수를 사용할 수 있다. 즉, 사용자 장치(100)는 파이스텔 구조(Feistel Structure) 또는 SPN 구조(Substitution-Permutation Network Structure) 등의 함수가 각 라운드에서 반복되어 라운드 함수를 사용하여 확장 패스워드({PW∥S}*의 비트 배열에 랜덤성을 부여할 수 있다.
믹싱 연산에서 적용되는 라운드의 수만큼, 확장 패스워드({PW∥S}*의 비트 배열도 업데이트될 것이다. 이러한 믹싱 연산은 전수 조사 공격에서 각각의 라운드에서 업데이트되어야 메모리 자원의 확보 및 라운드 횟수에 대응하는 연산 소요 시간을 필요로 한다. 따라서, 라운드 수의 설정에 따라 병렬 프로세스들 중 하나의 해독 프로세서에 소요되는 시간을 획기적으로 증가시키는 보안 장벽을 제공할 수 있다. 하지만, 믹싱 연산을 위해 사용되는 알고리즘은 상술한 예시에 한정되지 않으며, 하드웨어 또는 소프트웨어로 구현 가능한 다양한 블록 암호화 알고리즘이 믹싱 연산을 위해서 사용될 수 있다.
S340 단계에서, 사용자 장치(100)는 믹싱 연산에 의해서 생성된 믹싱 패스워드({PW∥S}**)에 대한 압축 연산을 수행한다. 믹싱 패스워드({PW∥S}**)의 데이터 길이는 너무 길어서 인증 데이터 베이스(130)에 저장하고, 인증을 위해서 수행되는 로드나 비교 연산에 부담을 줄 수 있다. 하지만, 믹싱 패스워드({PW∥S}**)에 대한 압축 연산을 수행하여 상대적으로 짧은 길이의 데이터로 가공하면, 이러한 문제는 해결된다. 압축 연산의 예로는 해쉬 함수를 사용할 수 있다.
S350 단계에서, 압축 연산에 의해서 생성된 인증 정보(ADr)는 인증 데이터 베이스(130)에 저장된다. 이때, 사용자가 입력한 사용자 계정(ID) 및 솔트(S)도 생성된 인증 정보(ADr)와 함께 저장된다.
이상의 사용자 장치(100)의 확장 암호화 알고리즘(ECA)을 사용한 패스워드(PW)의 등록 절차의 제 2 실시 예가 설명되었다. 제 2 실시 예에 따른 패스워드의 등록 절차에 따르면, 패스워드(PW)는 확장 및 믹싱 연산에 의해서 처리된다. 따라서, 전수 공격 조사에서 수행되는 병렬 프로세스들 각각에 소요되는 메모리 자원의 크기를 확장시킬 수 있다. 더불어, 믹싱 연산에 의해서 전수 조사 공격시 각각의 메모리 자원 내에서 수행되는 병렬 프로세스들 각각의 수행 시간을 증가시킬 수 있다.
도 7은 본 발명의 제 2 실시 예에 따른 사용자 등록 절차에서 데이터의 가공 과정을 예시적으로 보여주는 도면이다. 도 7을 참조하면, 사용자가 입력한 패스워드(PW, 210)는 사용자 장치(100)의 내부에 구비되는 난수 발생기 모듈(124)로부터 생성된 솔트(215)와 결합하여 확장 및 믹싱된다. 그리고 확장 및 믹싱 연산에 의해서 처리된 패스워드 및 솔트 조합은 다시 압축되어 인증 데이터 베이스(130)에 저장된다.
먼저, 사용자 장치(100)는 사용자가 입력한 n-비트의 패스워드(PW, 210)를 램(120)에 저장한다. 패스워드(210)는 문자, 숫자 그리고 특수 문자 등의 조합으로 입력될 수 있다. 하지만, 이러한 패스워드는 다시 이진 데이터로 변환될 수 있다. 그리고 난수 발생기 모듈(124)에 의해서 m-비트의 난수를 생성하게 될 것이다. 난수 발생기 모듈(124)은 다양한 난수 발생 알고리즘을 통해서 솔트(S, 215)를 생성할 수 있다. 패스워드(210)와 솔트(S, 215)가 예비되면, 패스워드(210)와 솔트(S, 215)는 하나의 데이터 처리 단위로 조합된다.
패스워드(210) 및 솔트(215)가 결합된 조합 패스워드({PW∥S})는 인용부호 (a)로 표시한 확장 연산(Expansion Operation)에 의해서 처리될 것이다. 확장 연산을 수행하기 위한 확장 암호화 알고리즘(ECA)에는 스트림 암호(Stream Cipher), 키 유도 함수(Key Derivation Function: 이하, KDF), 의사 난수 발생기(Pseudo Random Number Generator: 이하, PRNG) 등이 사용될 수 있을 것이다. 확장 연산에 의해서 조합 패스워드({PW∥S})의 비트 수(m+n)는 수 배 내지 수백 배 또는 그 이상의 비트 수에 대응하는 l-비트로 증가할 것이다. 확장 연산에 의해서 조합 패스워드({PW∥S})는 확장 패스워드({PW∥S}*, 220)로 생성될 것이다.
확장 패스워드({PW∥S}*, 220)는 (a)로 표시한 믹싱 연산에 의해서 처리된다. 믹싱 연산에 의해서 생성된 확장 패스워드(220)는 데이터 길이의 변화없이 배열이 반복적으로 업데이트되는 라운드 함수에 의해서 처리될 수 있다. 따라서, 믹싱된 패스워드(225)는 l-비트의 데이터 사이즈를 가지지만, 데이터의 배열은 복수의 라운드 함수의 적용에 의해서 변경된다.
l-비트의 믹싱 패스워드({PW∥S}**, 225)는 이후 압축 프로세스에 의해서 k-비트의 인증 정보(ADr, 230)로 생성된다. 인증 정보(ADr, 230)가 데이터 베이스에 저장되면 사용자 등록 절차는 완료된다.
도 8은 본 발명의 제 2 실시 예에 따른 사용자 인증 방법을 보여주는 순서도이다. 도 2 및 도 8을 참조하면, 사용자 장치(100)는 사용자가 입력한 패스워드(PW)에 대한 확장 암호화 알고리즘(122)을 통해서 생성된 인증 정보(ADi)와 등록된 인증 정보(ADr)를 비교할 것이다.
S410 단계에서, 사용자 장치(100)는 사용자 인증을 위해 계정(ID)과 패스워드(PW)를 입력받는다. 사용자(10)는 키보드나 키패드, 또는 터치식 디스플레이와 같은 다양한 입력 장치들을 통해서 사용자 고유의 계정(ID) 및 패스워드(PW)를 입력할 것이다. 그러면, 입출력 인터페이스(140)에서는 해당 패스워드(PW)를 이진 코드로 인식하여 사용자 인증을 위한 소스로 제공할 수 있다.
S420 단계에서, 사용자 장치(100)는 입력된 계정(ID)에 대응하는 인증 정보(ADr)를 인증 데이터 베이스(Authentication DB, 130)로부터 읽어온다. 더불어, 사용자 장치(100)는 사용자에 의해서 입력된 계정(ID)에 대응하는 솔트(S)도 인증 데이터 베이스(Authentication DB, 130)로부터 읽어온다. 인증 데이터 베이스(Authentication DB, 130)로부터 읽혀진 인증 정보(ADr) 및 솔트(S)는 램(120)에 로드되어 유지될 수 있다. 램(120)에 인증 데이터 베이스(Authentication DB, 130)로부터 읽혀진 데이터가 저장되는 영역에 대해서는 외부의 접근이 제한되는 보안 영역으로 정의될 수 있다.
S430 단계에서, 사용자 장치(100)는 사용자가 입력한 패스워드(PW)와 솔트(S)를 결합한 조합 패스워드({PW∥S})를 구성한다. 그리고 사용자 장치(100)는 조합 패스워드({PW∥S})에 대한 확장 암호화 알고리즘(122)을 적용한다. 조합 패스워드({PW∥S})에 대해 확장 암호화 알고리즘(ECA)을 적용하면, 데이터의 길이는 수 배 내지 수백 배, 또는 수천 배 확장될 수 있다. 확장 암호화 알고리즘(122)의 적용에 의해서 조합 패스워드({PW∥S})는 확장 패스워드(PW∥S}*)로 출력된다.
S435 단계에서, 사용자 장치(100)는 확장 패스워드({PW∥S}*)에 대한 믹싱 연산(Mixing operation)을 수행한다. 즉, 사용자 장치(100)는 확장된 패스워드({PW∥S}*)에 대한 데이터의 길이 변화없이 비트들 각각을 재배열하는 조작을 수행한다. 믹싱 연산을 위해서 사용자 장치(100)는 예를 들면, 블록 암호화 방식의 라운드 함수를 사용할 수 있다. 즉, 사용자 장치(100)는 파이스텔 구조(Feistel Structure) 또는 SPN 구조(Substitution -Permutation Network Structure) 등의 함수가 각 라운드에서 반복되어 라운드 함수를 사용하여 확장 패스워드({PW∥S}*)의 비트 배열에 랜덤성을 부여할 수 있다. 믹싱 연산에 의해서 확장 패스워드({PW∥S}*)는 믹싱 패스워드({PW∥S}**)로 출력된다.
S440 단계에서, 사용자 장치(100)는 믹싱 패스워드({PW∥S}**)에 대한 압축 연산을 수행한다. 압축 연산은 고정된 길이의 코드를 생성하기 위한 해쉬 함수(MD5, SHA-1, SHA-256, SHA-2, SHA-512, SHA-3 등)로 구현될 수도 있으나, 본 발명의 압축 프로세스는 여기에만 국한되지 않는다. 압축 연산에 의해서 확장된 믹싱 패스워드({PW∥S}**)는 사용자가 입력한 패스워드(PW)로부터 생성되는 인증 정보(ADi)로 가공된다.
S450 단계에서, 사용자(10)가 입력한 패스워드(PW)로부터 생성된 인증 정보(ADi)와 인증 데이터 베이스(Authentication DB, 130)로부터 읽혀진 사전에 등록된 인증 정보(ADr)에 대한 비교 동작이 수행된다. 만일, 사용자(10)로부터 입력된 패스워드(PW)로부터 생성된 인증 정보(ADi)와 등록된 인증 정보(ADr)가 동일한 경우, 절차는 S460 단계로 이동한다. 반면, 사용자(10)로부터 입력된 패스워드로부터 생성된 인증 정보(ADi)와 등록된 인증 정보(ADr)가 다른 경우, 절차는 S465 단계로 이동한다.
S460 단계에서, 사용자 장치(100)는 인증 성공(Authentication Pass)으로 판단하고, 사용자(10)의 서비스 사용을 허가할 것이다. S465 단계에서, 사용자 장치(100)는 인증 실패(Authentication Fail)로 판단하고, 사용자(10)의 서비스 사용을 불허할 것이다. 더불어, 인증 실패로 결정되는 경우, 사용자 장치(100)는 사용자(10)에게 이러한 정보를 입출력 인터페이스(140)를 통해서 출력하고, 계정(ID)과 패스워드(PW)의 재입력을 요구할 수 있다.
이상에서는 제 2 실시 예에 따른 확장 암호화 알고리즘(ECA)을 사용하는 사용자 인증 절차가 간략히 설명되었다. 확장 암호화 알고리즘(ECA)에 의해서 패스워드 등록 절차와 동일한 방식으로 사용자가 입력한 패스워드가 처리된다. 더불어, 확장 연산에 후속되어 수행되는 믹싱 연산에 의해서, 전수 조사 공격에 소요되는 시간을 연장하는 효과를 기대할 수 있다. 믹싱 연산이 포함되는 확장 암호화 알고리즘과 인증 정보(ADr)가 노출되더라도, 사용자의 패스워드(PW)에 대한 복구를 위해서는 큰 메모리 자원과 라운드 함수의 반복 적용을 위한 처리 시간의 확보가 전제되어야 할 것이다.
도 9a 및 도 9b는 본 발명의 효과를 보여주는 블록도들이다. 도 9a는 확장 연산이 없는 경우의 전수 조사 공격시 메모리 사용 예를 보여주고, 도 9b는 확장 연산이 존재하는 경우의 전수 공격을 위한 메모리 사용 예를 보여준다. 예시적으로 전수 조사 공격을 위해 사용될 수 있는 메모리 자원이 64M 바이트(Byte)라 가정하기로 한다.
도 9a를 참조하면, 누출된 등록 인증 정보(ADr)를 근거로 암호화 알고리즘을 수행하기 위해 GPU나 FPGA 등의 디바이스는 64M 바이트의 메모리 자원을 구비하고 있는 것으로 가정한다. 그리고, 전수 조사 공격을 통해서 다양한 입력값에 대한 암호화 알고리즘의 수행을 병렬적으로 수행한다. 암호화 알고리즘 각각에 대응하는 병렬 프로세스들 각각에 소요되는 메모리는 1M 바이트라 가정하기로 한다. 그러면, 인증 정보(ADr)와 일치하는 임의의 패스워드(PW)를 복구하기 위해 사용되는 메모리는 1M 바이트이기 때문에, 64M 바이트의 메모리 자원 내에서는 64개 병렬 프로세스가 가능하다. 따라서, 확장 연산이 적용되지 않은 경우에는 64M 바이트의 해킹 환경에서는 64개 병렬 프로세스가 동시에 수행될 수 있다. 그리고 각각의 병렬 프로세스들에 의해서 인증 정보(AD)가 출력되는데 소요되는 시간은 T0라 가정하기로 한다.
상술한 환경에서, T0 시간 동안 입력된 등록 인증 정보(ADr)와 일치하는 출력값을 얻기 위한 임의의 패스워드들에 대한 64개의 병렬 프로세스가 수행될 수 있다.
도 9b를 참조하면, 누출된 등록 인증 정보(ADr)로부터 본 발명의 실시 예에 의한 확장된 암호화 알고리즘을 수행하기 위한 하나의 프로세스는 적어도 16M 바이트의 메모리 자원을 요구하는 것으로 가정한다. 확장된 암호화 알고리즘(ECA)에는 확장 연산과 믹싱 연산, 그리고 압축 연산이 포함될 수 있다. 확장 연산에 의해서 패스워드의 사이즈가 16배 가량 확장된 것으로 가정하기로 한다. 그러면, 64M 바이트의 메모리 자원을 사용한 전수 조사 공격을 수행하기 위해서는 4개 병렬 프로세스만이 처리가 가능하다. 따라서, 확장 연산이 포함되는 암호화 프로세스를 적용하기 위해서 동시에 처리될 수 있는 병렬 프로세스의 수는 1/16로 감소한다.
더불어, 제 2 실시 예에서 설명된 믹싱 연산을 고려하면, 하나의 병렬 프로세스에 소요되는 메모리 자원의 사이즈는 증가하게 될 것이다. 그리고 라운드 함수에 의한 반복 쉬프팅 연산이 수행되어야 하기 때문에, 실질적으로 하나의 병렬 프로세스에 소요되는 시간도 도 9a의 설명에서 기술된 T0보다 증가하게 될 것이다. 병렬 프로세스당 증가한 메모리 자원의 사이즈, 그리고 소요 시간은 전수 조사 공격의 가장 큰 장애가 될 수 있다.
도 10은 본 발명의 다른 실시 예에 따른 패스워드 기반의 인증을 수행하는 사용자 장치(300)를 보여주는 블록도이다. 도 10을 참조하면, 사용자 장치(100)는 확장 암호화 유닛(310), 난수 발생기(320), 저장 장치(330), 입출력 인터페이스(340)를 포함할 수 있다. 이들 각각의 구성은 시스템 버스(350)에 의해서 전기적으로 연결될 수 있다.
확장 암호화 유닛(310)은 사용자 장치(300)의 사용자의 패스워드 등록 및 인증을 전적으로 수행하는 하드웨어 유닛으로 제공될 수 있다. 확장 암호화 유닛(310)은 난수 발생기(320)로부터 제공되는 솔트(S)와 입출력 인터페이스(340)로부터 전달되는 사용자의 패스워드(PW)를 조합하여 조합 패스워드({PW∥S})를 구성한다. 확장 암호화 유닛(310)은 조합 패스워드({PW∥S})에 대한 확장 연산을 수행할 것이다. 앞서 설명한데로, 확장 연산에는 스트림 암호(Stream Cipher), 키 유도 함수(Key Derivation Function: 이하, KDF), 의사 난수 발생기(Pseudo Random Number Generator: 이하, PRNG) 등이 적용될 수 있다. 이러한 함수들이 하드웨어적으로 또는 소프트웨어적으로 확장 암호화 유닛(310)에 의해서 수행될 것이다.
더불어, 확장 암호화 유닛(310)은 확장 연산에 의해서 생성되는 확장 패스워드({PW∥S}*)에 대한 믹싱 연산을 수행할 수도 있다. 믹싱 연산을 수행하기 위해서 확장 암호화 유닛(310)은 확장 패스워드({PW∥S}*)에 대한 데이터의 길이 변화없이 비트들 각각을 재배열하는 조작을 수행한다. 믹싱 연산을 위해서 확장 암호화 유닛(310)은 하드웨어로 구성이 용이한 파이스텔 구조(Feistel Structure) 또는 SPN 구조(Substitution -Permutation Network Structure) 등의 라운드 함수를 사용할 수 있다.
확장 암호화 유닛(310)은 더불어 해쉬 함수와 같은 압축 연산을 수행할 수 있다. 확장 패스워드({PW∥S}*)나 믹싱 패스워드({PW∥S}**)에 대한 압축 연산을 수행하여 확장 암호화 유닛(310)은 사용자 등록을 위한 인증 정보(ADr)나 사용자 인증을 위한 인증 정보(ADi)를 생성할 수 있다.
난수 발생기(320)는 솔트(S)를 생성한다. 난수는 일반적으로 암호화 연산에서 엔트로피(Entropy)를 증가시키기 위한 수단으로 제공된다. 난수 발생기(320)는 하드웨어로 구성될 수 있다.
저장 장치(330)는 사용자 장치(300)의 불휘발성 저장 매체(Non-volatile storage medium)로서 제공된다. 저장 장치(330)에는 패스워드 등록 절차에서 생성된 인증 정보(ADr)가 저장된다. 저장 장치(330)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)로 제공될 수도 있다. 저장 장치(330)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 저장 장치(330)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다.
입출력 인터페이스(340)는 사용자(10)로부터 제공되는 다양한 데이터를 입력받을 수 있다. 특히, 사용자가 키보드 또는 키패드를 이용하여 입력하는 계정(ID)과 패스워드(PW)를 입출력 인터페이스(340)는 사용자 장치(300)에서 사용되는 데이터 형태로 변경한다. 더불어, 입출력 인터페이스(340)는 사용자(10)에게 사용자의 인증 요청이나, 사용자의 입력 상태 등을 표시하기 위한 동작도 수행할 수 있다. 시스템 버스(350)는 사용자 장치(300)의 내부에서 네트워크를 제공하기 위한 시스템 버스(System Bus)이다.
이상의 설명에 따르면, 사용자 장치(300)는 확장 암호화 유닛(310)을 통해서 사용자 등록 및 사용자 인증시 패스워드를 처리한다. 확장 암호화 유닛(310)에 의한 암호화 과정에서, 사용자가 입력한 패스워드(PW)는 길이가 증가하게 되고, 데이터 배열도 변경될 것이다. 이러한 확장 암호화 유닛(310)에 의해서 패스워드(PW)의 등록이나 인증시 요구되는 메모리 자원(Resource)이 증가하게 된다. 이러한 메모리 자원의 증가는 전수 조사 공격에 의한 패스워드 복구 연산에 큰 장벽으로 작용할 것이다.
여기서, 사용자 장치(300)는 개인용 컴퓨터, 서버, 휴대폰, PDA, 디지털 카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기 등의 정보 기기들일 수 있다. 또는, 사용자 장치(300)는 패스워드(PW)를 사용하는 디지털 도어락, 출입 시스템 등의 보안 장치들일 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 인증 시스템을 보여주는 블록도이다. 도 11을 참조하면, 전자 결재 시스템과 같은 네트워크에서의 패스워드 인증시에 본 발명의 확장된 암호화 알고리즘이 적용될 수 있다.
사용자(10)는 사용자 장치(410)에 계정(ID)과 패스워드(PW)를 입력할 것이다. 그러면, 사용자 장치(410)는 도 1에서 설명된 방식으로 사용자 등록 및 인증을 수행할 수 있다. 즉, 사용자 장치(410)는 확장된 암호화 알고리즘(415)을 사용하여 사용자의 패스워드를 처리할 수 있다. 사용자 장치(410)는 패스워드(PW)에 대한 확장 연산, 믹싱 연산, 압축 연산을 수행할 수 있다. 그리고 이러한 연산을 통해서 생성된 인증 정보(ADr)는 사용자 장치(410)에 구비되는 불휘발성 저장 매체(미도시됨)에 저장될 것이다. 그리고 사용자 장치(410)의 사용을 위해서 입력되는 패스워드(PW)에 대해서 동일한 확장된 암호화 알고리즘(415)을 통한 처리를 통해서 사용자 장치(410)는 인증 정보(ADi)를 생성하고 등록된 인증 정보(ADr)와 비교할 것이다.
더불어, 사용자 장치(410)를 통한 네트워크 인증이 가능하다. 네트워크(420)를 통해서 사용자가 특정 서비스를 제공받기 위해서는 인증 서버(430)에 사용자 등록 및 사용자 인증이 이루어져야 한다. 사용자(10)가 네트워크(420)를 통해서 사용자 계정(ID)과 패스워드(PW)를 인증 서버(430)에 전달하면, 인증 서버(430)의 확장 암호화 알고리즘(432)에 따라 패스워드(PW)에 대한 확장 연산, 믹싱 연산, 그리고 압축 연산이 수행될 수 있다. 그리고 상술한 암호화 연산들에 의해서 생성된 인증 정보(ADr)는 인증 데이터 베이스(434)에 등록될 것이다. 그리고 사용자 인증시에는 동일한 확장된 암호화 연산이 수행되고, 등록된 인증 정보(ADr)와 확장된 암호화 연산에 의해서 생성된 인증 정보(ADi)가 비교될 것이다. 비교 결과에 따라 인증 서버(430)는 사용자의 서비스 사용을 허가 또는 금지할 것이다.
상술한 네트워크에서의 패스워드 기반 사용자 등록 및 인증에 따르면, 인증 정보(ADr)와 확장된 암호화 알고리즘의 노출시에도 병렬 프로세스를 사용한 전수 조사 공격에 강인한 인증 시스템을 제공할 수 있다. 이러한 네트워크 기반의 패스워드 인증 시스템은 네트워크 컴퓨터(NC), 모바일 기기들의 유료 WIFI 접속, 사용자의 특정 네트워크 접속 들에 활용될 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 사용자
100, 300, 410 : 사용자 장치
110 : CPU
120 : 램
122, 415, 432 : 확장 암호화 알고리즘
124 : 난수 발생기
130, 434 : 인증 데이터 베이스
135 : 인증 데이터
140 : 입출력 인터페이스
310 : 확장 암호화 유닛
320 : 난수 발생기
330 : 저장 장치
335 : 인증 데이터
340 : 입출력 인터페이스
420 : 네트워크

Claims (20)

  1. 패스워드 기반의 인증 방식을 사용하는 사용자 장치의 패스워드 등록 방법에 있어서:
    입력된 패스워드에 솔트를 부가하여 조합 패스워드를 생성하는 단계;
    상기 조합 패스워드의 데이터 길이를 확장하기 위한 확장 연산을 수행하여 확장 패스워드를 생성하는 단계;
    상기 확장 패스워드를 압축하여 인증 정보로 생성하는 단계; 그리고
    상기 인증 정보를 인증 데이터 베이스에 저장하는 단계를 포함하는 패스워드 등록 방법.
  2. 제 1 항에 있어서,
    상기 확장 패스워드의 길이는 상기 패스워드의 길이보다 긴 것을 특징으로 하는 패스워드 등록 방법.
  3. 제 1 항에 있어서,
    상기 확장 연산은 스트림 암호(Stream Cipher), 키 유도 함수(KDF), 의사 난수 발생기 중 적어도 하나의 함수를 통해서 수행되는 패스워드 등록 방법.
  4. 제 1 항에 있어서,
    상기 확장 패스워드의 코드 길이를 유지하면서 비트들의 배열을 재구성하는 믹싱 연산을 수행하는 단계를 더 포함하는 패스워드 등록 방법.
  5. 제 4 항에 있어서,
    상기 믹싱 연산시, 복수의 라운드 동안 상기 확장된 패스워드에 대해서 라운드 함수가 반복적으로 적용되는 패스워드 등록 방법.
  6. 제 5 항에 있어서,
    상기 라운드 함수는 파이스텔 구조(Feistel Structure) 또는 SPN 구조(Substitution-Permutation Network Structure)의 함수를 포함하는 패스워드 등록 방법.
  7. 제 1 항에 있어서,
    상기 사용자의 패스워드 입력에 응답하여 난수 발생기로부터 상기 솔트를 생성하는 패스워드 등록 방법.
  8. 패스워드 기반의 인증 방식을 사용하는 사용자 장치의 패스워드 인증 방법에 있어서:
    사용자의 계정에 대응하는 제 1 인증 정보 및 솔트를 인증 데이터 베이스로부터 읽어오는 단계;
    입력된 패스워드에 상기 솔트를 부가하여 조합 패스워드를 생성하는 단계;
    상기 조합 패스워드에 대한 확장 연산을 수행하여 데이터 길이가 확장된 확장 패스워드를 생성하는 단계;
    상기 확장된 패스워드에 대한 압축 연산을 적용하여 제 2 인증 정보로 생성하는 단계; 그리고
    상기 제 1 인증 정보와 상기 제 2 인증 정보를 비교하여 상기 사용자의 패스워드를 인증하는 단계를 포함하는 패스워드 인증 방법.
  9. 제 8 항에 있어서,
    상기 제 1 인증 정보는 상기 사용자가 사전에 등록한 패스워드에 대해서 상기 확장 연산 또는 상기 압축 연산을 적용하여 생성한 데이터인 것을 특징으로 하는 패스워드 인증 방법.
  10. 제 8 항에 있어서,
    상기 확장 연산에는 스트림 암호(Stream Cipher), 키 유도 함수(KDF), 의사 난수 발생기 중 적어도 하나의 함수를 통해서 수행되는 패스워드 인증 방법.
  11. 제 8 항에 있어서,
    상기 확장 패스워드의 코드 길이를 유지하면서 비트들의 배열을 재구성하는 믹싱 연산을 수행하는 단계를 더 포함하는 패스워드 인증 방법.
  12. 제 11 항에 있어서,
    상기 믹싱 연산시 상기 확장 패스워드에 대한 반복적인 라운드 함수의 적용에 의해서 믹싱 패스워드가 생성되는 패스워드 인증 방법.
  13. 제 12 항에 있어서,
    상기 믹싱 패스워드는 상기 압축 연산에 의해서 상기 제 2 인증 정보로 생성되는 패스워드 인증 방법.
  14. 제 12 항에 있어서,
    상기 라운드 함수에는 파이스텔 구조(Feistel Structure) 또는 SPN 구조(Substitution Permutation Network Structure)의 함수가 포함되는 패스워드 인증 방법.
  15. 제 8 항에 있어서,
    상기 압축 연산을 위한 알고리즘에는 해쉬 함수(Hash Function)가 포함되는 패스워드 인증 방법.
  16. 패스워드 기반의 사용자 인증을 수행하는 사용자 장치에 있어서:
    사용자의 계정 및 패스워드를 입력받는 입출력 인터페이스; 그리고
    상기 패스워드에 솔트를 부가하여 조합 패스워드를 생성하고, 상기 조합 패스워드의 데이터 길이를 확장하기 위한 확장 연산을 수행하여 확장 패스워드로 생성하고, 상기 확장 패스워드에 대한 압축 연산을 수행하여 인증 정보로 생성하는 확장 암호화 유닛을 포함하는 사용자 장치.
  17. 제 16 항에 있어서,
    상기 인증 정보를 저장하기 위한 불휘발성 저장 장치를 더 포함하는 사용자 장치.
  18. 제 16 항에 있어서,
    상기 확장 암호화 유닛은:
    상기 확장 연산 또는 상기 압축 연산을 수행하기 위한 중앙 처리 장치; 및
    상기 확장 연산 또는 상기 압축 연산을 수행하기 위한 확장 암호화 알고리즘을 로드하는 램을 포함하는 사용자 장치.
  19. 제 18 항에 있어서,
    상기 중앙 처리 장치는 상기 확장 패스워드에 대해 길이의 변경없이 배열만을 변경하는 믹싱 연산을 수행하는 사용자 장치.
  20. 제 16 항에 있어서,
    상기 확장 암호화 유닛은 상기 확장 연산 또는 상기 압축 연산을 수행하기 위한 하드웨어 유닛을 포함하는 사용자 장치.
KR1020140024427A 2014-02-28 2014-02-28 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법 KR102182894B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140024427A KR102182894B1 (ko) 2014-02-28 2014-02-28 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법
US14/602,825 US10044703B2 (en) 2014-02-28 2015-01-22 User device performing password based authentication and password registration and authentication methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140024427A KR102182894B1 (ko) 2014-02-28 2014-02-28 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법

Publications (2)

Publication Number Publication Date
KR20150102827A KR20150102827A (ko) 2015-09-08
KR102182894B1 true KR102182894B1 (ko) 2020-11-26

Family

ID=54007294

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140024427A KR102182894B1 (ko) 2014-02-28 2014-02-28 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법

Country Status (2)

Country Link
US (1) US10044703B2 (ko)
KR (1) KR102182894B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898769B2 (en) 2012-11-16 2014-11-25 At&T Intellectual Property I, Lp Methods for provisioning universal integrated circuit cards
US8959331B2 (en) 2012-11-19 2015-02-17 At&T Intellectual Property I, Lp Systems for provisioning universal integrated circuit cards
US9036820B2 (en) 2013-09-11 2015-05-19 At&T Intellectual Property I, Lp System and methods for UICC-based secure communication
US9124573B2 (en) 2013-10-04 2015-09-01 At&T Intellectual Property I, Lp Apparatus and method for managing use of secure tokens
US9208300B2 (en) * 2013-10-23 2015-12-08 At&T Intellectual Property I, Lp Apparatus and method for secure authentication of a communication device
US9240994B2 (en) 2013-10-28 2016-01-19 At&T Intellectual Property I, Lp Apparatus and method for securely managing the accessibility to content and applications
US9313660B2 (en) 2013-11-01 2016-04-12 At&T Intellectual Property I, Lp Apparatus and method for secure provisioning of a communication device
US9240989B2 (en) 2013-11-01 2016-01-19 At&T Intellectual Property I, Lp Apparatus and method for secure over the air programming of a communication device
US9713006B2 (en) 2014-05-01 2017-07-18 At&T Intellectual Property I, Lp Apparatus and method for managing security domains for a universal integrated circuit card
KR102398167B1 (ko) * 2015-07-02 2022-05-17 삼성전자주식회사 사용자 장치, 그것의 패스워드 설정 방법, 그리고 그것의 패스워드를 설정하고 확인하는 동작 방법
US10630675B2 (en) * 2016-04-14 2020-04-21 Microsoft Technology Licensing, Llc Generating web service picture passwords with user-specific cypher keys
CN105871889B (zh) * 2016-05-16 2019-03-29 广州视睿电子科技有限公司 一种登陆方法及系统
US11354395B2 (en) * 2017-04-03 2022-06-07 Cleveland State University Authentication method for a computing device using interactive game board and game piece images
KR20190124466A (ko) 2018-04-26 2019-11-05 공재희 가죽 업-사이클링 방법
CN110912683B (zh) * 2018-09-18 2022-09-23 阿里巴巴集团控股有限公司 密码存储方法及装置、密码验证方法及装置
KR20200040989A (ko) 2018-10-11 2020-04-21 이익준 한글 기반 패스워드 서비스 제공 시스템
US11194897B2 (en) * 2019-04-10 2021-12-07 Mastercard International Incorporated System and methods for generating and authenticating dynamic usernames replication
KR102161281B1 (ko) * 2019-09-18 2020-09-29 박준희 의사난수생성을 이용한 사용자 단말 접근 통제 서비스 제공 방법
KR102407204B1 (ko) * 2020-06-19 2022-06-10 엘아이지넥스원 주식회사 보안이 개선된 암호압축 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101345A1 (en) * 2000-03-30 2003-05-29 Kaisa Nyberg Subscriber authentication
US20080092216A1 (en) * 2006-10-16 2008-04-17 Seiichi Kawano Authentication password storage method and generation method, user authentication method, and computer
US20080235772A1 (en) * 2007-03-23 2008-09-25 Sap Ag. Iterated password hash systems and methods for preserving password entropy
US20100239087A1 (en) * 2009-03-19 2010-09-23 Computer Associates Think, Inc. Encrypting variable-length passwords to yield fixed-length encrypted passwords

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787169A (en) * 1995-12-28 1998-07-28 International Business Machines Corp. Method and apparatus for controlling access to encrypted data files in a computer system
JPH09330298A (ja) 1996-06-13 1997-12-22 Mitsubishi Electric Corp パスワード登録方法、認証方法、パスワード更新方法、パスワード登録システム、認証システムおよびパスワード更新システム
JP2001344211A (ja) 2000-05-30 2001-12-14 Matsushita Electric Ind Co Ltd 認証方式
JP4641121B2 (ja) 2001-06-21 2011-03-02 大日本印刷株式会社 ログインパスワードの生成登録方法
KR100860573B1 (ko) 2006-12-01 2008-09-26 (재)대구경북과학기술연구원 사용자 인증 방법
WO2008070844A2 (en) * 2006-12-07 2008-06-12 Horoppa, Inc. A search and comparison shopping engine
JP4258551B2 (ja) 2007-01-25 2009-04-30 日本電気株式会社 認証システム、認証方法、及び認証プログラム
JP2008243045A (ja) 2007-03-28 2008-10-09 Toshiba Corp 携帯可能電子装置およびicカード
JP2009205500A (ja) 2008-02-28 2009-09-10 Nec Corp パスワード入力支援システム、装置、プログラム、および方法
JP2011521599A (ja) 2008-05-26 2011-07-21 エヌエックスピー ビー ヴィ プライバシーを保護し追跡を防止しながらトランスポンダの固定の識別番号を与えるシステム
JP5224481B2 (ja) 2008-07-10 2013-07-03 独立行政法人産業技術総合研究所 パスワード認証方法
KR100954841B1 (ko) 2008-07-18 2010-04-28 고려대학교 산학협력단 모바일 기기에서의 통합형 데이터 관리 방법, 그 장치 및이를 기록한 기록 매체
JP5315564B2 (ja) 2009-05-18 2013-10-16 株式会社三井住友銀行 パスワード登録システム、方法及びプログラム
US9021269B2 (en) * 2012-07-18 2015-04-28 TapLink, Inc. Blind hashing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101345A1 (en) * 2000-03-30 2003-05-29 Kaisa Nyberg Subscriber authentication
US20080092216A1 (en) * 2006-10-16 2008-04-17 Seiichi Kawano Authentication password storage method and generation method, user authentication method, and computer
US20080235772A1 (en) * 2007-03-23 2008-09-25 Sap Ag. Iterated password hash systems and methods for preserving password entropy
US20100239087A1 (en) * 2009-03-19 2010-09-23 Computer Associates Think, Inc. Encrypting variable-length passwords to yield fixed-length encrypted passwords

Also Published As

Publication number Publication date
KR20150102827A (ko) 2015-09-08
US20150249658A1 (en) 2015-09-03
US10044703B2 (en) 2018-08-07

Similar Documents

Publication Publication Date Title
KR102182894B1 (ko) 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법
CN108809646B (zh) 安全共享密钥共享系统
US9755831B2 (en) Key extraction during secure boot
US20210182379A1 (en) System and method for improving the security of stored passwords for an organization
US8681976B2 (en) System and method for device dependent and rate limited key generation
US20110179281A1 (en) Hash function using a quasi-group operation
RU2684584C1 (ru) Устройство для хранения информации и способ его работы
CN110651261A (zh) 具有用于鉴认的唯一识别符的安全存储器装置
CN112469036B (zh) 一种消息加解密方法、装置、移动终端和存储介质
US11321448B1 (en) System and method for improving the security of stored passwords for an organization
US20200076592A1 (en) Method for generating seed and device thereof
CN113079001B (zh) 密钥更新方法、信息处理设备及密钥更新装置
US7512794B2 (en) System and method for authentication
US11489674B2 (en) Method and network node for managing access to a blockchain
WO2009129017A1 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
US9594918B1 (en) Computer data protection using tunable key derivation function
KR20200144407A (ko) IoT 기기에 적용할 수 있는 물리적 복제 불가능 함수를 기반으로 한 양방향 메시지 인증 칩
US9853952B2 (en) Apparatus and method for encryption
CN104052726A (zh) 访问控制方法和采用访问控制方法的移动终端
KR20210072711A (ko) 사물인터넷 디바이스와 신뢰 서버 간 상호 인증 방법 및 장치
KR102094606B1 (ko) 인증 장치 및 방법
RU2633186C1 (ru) Персональное устройство аутентификации и защиты данных
KR102125133B1 (ko) 메시지 인증 장치 및 방법
CN112637160A (zh) 登陆验证方法、装置、设备和存储介质
US20200235917A1 (en) Shared secret generation

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