KR101772203B1 - 보안성 향상을 위한 비밀번호 확장 시스템 및 방법 - Google Patents

보안성 향상을 위한 비밀번호 확장 시스템 및 방법 Download PDF

Info

Publication number
KR101772203B1
KR101772203B1 KR1020160052894A KR20160052894A KR101772203B1 KR 101772203 B1 KR101772203 B1 KR 101772203B1 KR 1020160052894 A KR1020160052894 A KR 1020160052894A KR 20160052894 A KR20160052894 A KR 20160052894A KR 101772203 B1 KR101772203 B1 KR 101772203B1
Authority
KR
South Korea
Prior art keywords
password
length
memory
secret
integer
Prior art date
Application number
KR1020160052894A
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 KR1020160052894A priority Critical patent/KR101772203B1/ko
Application granted granted Critical
Publication of KR101772203B1 publication Critical patent/KR101772203B1/ko

Links

Images

Classifications

    • 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/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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

Landscapes

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

Abstract

본 발명은 보안성 향상을 위해 사용자로부터 입력되는 비밀번호의 길이를 시스템에서 요구하는 길이만큼 확장시켜 메시지를 암호화하는 시스템 및 방법에 관한 것이며, 본 발명의 하나의 실시예에 따른 비밀번호 확장 시스템은 시스템 관리자로부터 입력되는 자릿수에 따라 비밀번호의 길이를 설정하는 자릿수 설정부, 설정된 비밀번호의 길이에 대응하는 메모리를 할당하는 메모리 할당부, 시스템 사용자로부터 입력되는 제1 비밀번호를 수신하는 비밀번호 수신부, 그리고 제1 비밀번호의 길이와 설정된 비밀번호의 길이에 기초하여 제1 비밀번호를 처리하여 제2 비밀번호를 생성하는 비밀번호 처리부를 포함한다.

Description

보안성 향상을 위한 비밀번호 확장 시스템 및 방법{PASSWORD EXTENSION SYSTEM AND METHOD FOR IMPROVING SECURITY}
본 발명은 보안성 향상을 위해 사용자로부터 입력되는 비밀번호의 길이를 시스템에서 요구하는 길이만큼 확장시켜 메시지를 암호화하는 시스템 및 방법에 관한 것이다.
최근 디지털 시대가 가속화됨에 따라 개인정보 보호에 대한 문제가 대두되고 있으며 중요한 개인정보 보호를 위해 대부분의 시스템에서는 패스워드인증을 수행하고 있다. 또한, 대부분의 시스템은 보안 강화의 이유로 사용자에게 긴 패스워드를 요구하고 있다. 그러나 긴 패스워드를 설정하는 경우 시스템 관점에서 보안성을 향상시킬 수 있으나, 사용자 관점에서는 정수, 문자, 그리고 기호의 조합으로 구성된 긴 패스워드를 기억하는 것이 쉽지 않다. 또한, 패스워드를 잊어버리지 않기 위해 다른 곳에 기록하여 저장하는 경우 개인정보 노출 위험이 있으며, 패스워드를 잊어버리는 경우 시스템에 접속할 때마다 패스워드 찾기 기능을 사용해야 하고 해스워드 찾기 기능 사용시 패스워드를 매번 변경해야 하는 점에서 매우 번거로울 수 있다.
본 발명의 하나의 실시예가 해결하려는 과제는 사용자가 사용하는 비밀번호의 길이를 시스템에서 요구하는 길이까지 확장시키는 시스템 및 방법을 제공하는 것이다.
상기 과제 이외에도 구체적으로 언급되지 않은 다른 과제를 달성하는 데 본 발명에 따른 실시예가 사용될 수 있다.
상기 과제를 해결하기 위해 본 발명의 하나의 실시예는, 시스템 관리자로부터 입력되는 자릿수에 따라 비밀번호의 길이를 설정하는 자릿수 설정부, 설정된 비밀번호의 길이에 대응하는 메모리를 할당하는 메모리 할당부, 시스템 사용자로부터 입력되는 제1 비밀번호를 수신하는 비밀번호 수신부, 그리고 제1 비밀번호의 길이와 설정된 비밀번호의 길이에 기초하여 제1 비밀번호를 처리하여 제2 비밀번호를 생성하는 비밀번호 처리부를 포함하는 비밀번호 확장 시스템을 제안한다.
여기서, 비밀번호 처리부는 제1 비밀번호의 길이, 설정된 비밀번호의 길이, 그리고 할당된 메모리 형태에 기초하여 제1 비밀번호를 전처리하여 제2 비밀번호를 생성할 수 있다.
또한, 메모리 할당부는 6의 배수 배열 형태의 메모리와 9의 배수 배열 형태의 메모리를 포함하며, 설정된 비밀번호의 길이가 6의 배수이거나 6의 배수에 인접하는 경우 6의 배수 배열 형태의 메모리를 할당하고 설정된 비밀번호의 길이가 9의 배수이거나 9의 배수에 인접하는 경우 9의 배수 배열 형태의 메모리를 할당할 수 있다.
또한, 제2 비밀번호의 길이가 6의 배수 미만 또는 9의 배수 미만인 경우 메모리의 잔여 자리에 NULL을 입력할 수 있다.
또한, 비밀번호 처리부는 제1 비밀번호의 길이가 설정된 비밀번호의 길이를 초과하는 경우 제1 비밀번호에서 초과되는 자리의 문자열을 삭제하여 제2 비밀번호를 생성할 수 있다.
또한, 비밀번호 처리부는 제1 비밀번호의 길이가 설정된 비밀번호의 길이 미만인 경우 난수열을 생성하고 생성된 난수열을 설정된 비밀번호의 잔여 자리에 삽입하여 제2 비밀번호를 생성할 수 있다.
또한, 제2 비밀번호의 문자를 정수로 변환하는 정수값 변환부, 그리고 정수로 변환된 제2 비밀번호를 초기 정수값으로 설정하고 난수열을 생성하여 암호화키를 생성하는 암호화키 생성부를 더 포함할 수 있다.
또한, 정수값 변환부는 아스키코드를 이용하여 제2 비밀번호의 문자를 정수로 변환하며, 할당된 메모리가 9의 배수 배열 형태인 경우 아스키코드의 0 내지 32를 제외하고 제2 비밀번호의 문자를 정수로 변환할 수 있다.
상기 과제를 해결하기 위해 본 발명의 하나의 실시예는, 시스템 관리자로부터 입력되는 자릿수에 따라 비밀번호의 길이를 설정하는 단계, 설정된 비밀번호의 길이에 대응하는 메모리를 할당하는 단계, 시스템 사용자로부터 입력되는 제1 비밀번호를 수신하는 단계, 그리고 제1 비밀번호의 길이, 설정된 비밀번호의 길이, 그리고 할당된 메모리 형태에 기초하여 제1 비밀번호를 전처리하여 제2 비밀번호를 생성하는 단계를 포함하는 비밀번호 확장 방법을 제안한다.
여기서, 메모리 할당 단계는, 설정된 비밀번호의 길이가 6의 배수이거나 6의 배수에 인접하는 경우 6의 배수 배열 형태의 메모리를 할당하고 설정된 비밀번호의 길이가 9의 배수이거나 9의 배수에 인접하는 경우 9의 배수 배열 형태의 메모리를 할당할 수 있다.
또한, 제2 비밀번호 생성 단계는 제2 비밀번호의 길이가 6의 배수 미만 또는 9의 배수 미만인 경우 메모리의 잔여 자리에 NULL을 입력할 수 있다.
또한, 제2 비밀번호 생성 단계는 제1 비밀번호의 길이가 설정된 비밀번호의 길이를 초과하는 경우 제1 비밀번호에서 초과되는 자리의 문자열을 삭제하여 제2 비밀번호를 생성할 수 있다.
또한, 제2 비밀번호 생성 단계는 제1 비밀번호의 길이가 설정된 비밀번호의 길이 미만인 경우 난수열을 생성하고 생성된 난수열을 설정된 비밀번호의 잔여 자리에 삽입하여 제2 비밀번호를 생성할 수 있다.
또한, 제2 비밀번호의 문자를 정수로 변환하는 단계, 그리고 정수로 변환된 제2 비밀번호를 초기 정수값으로 설정하고 난수열을 생성하여 암호화키를 생성하는 단계를 더 포함할 수 있다.
또한, 정수 변환 단계는 아스키코드를 이용하여 제2 비밀번호의 문자를 정수로 변환하며, 할당된 메모리가 9의 배수 배열 형태인 경우 아스키코드의 0 내지 32를 제외하고 제2 비밀번호의 문자를 정수로 변환할 수 있다.
본 발명의 하나의 실시예에 따르면 사용자는 길이가 긴 비밀번호를 기억해야 하는 부담을 줄일 수 있으며 길이가 짧은 비밀번호를 이용하면서 길이가 긴 비밀번호로 인해 제공되는 보안 효과를 누릴 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 암호화 시스템의 구성을 나타낸다.
도 2는 도 1의 암호화 시스템을 이용한 암호화 방법을 나타낸다.
도 3은 본 발명의 하나의 실시예에 따른 메모리 할당 방법을 나타낸다.
도 4는 본 발명의 하나의 실시예에 따른 비밀번호 처리 방법을 나타낸다.
도 5는 본 발명의 하나의 실시예에 따른 정수 변환 방법을 나타낸다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대해 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며 명세서 전체에서 동일 또는 유사한 구성요소에 대해서는 동일한 도면부호가 사용되었다. 또한, 널리 알려진 공지기술의 경우 그 구체적인 설명은 생략한다.
본 명세서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서, '사용자 비밀번호'는 사용자로부터 입력된 비밀번호를 의미하며, '보안 비밀번호'는 사용자 비밀번호를 확장 시스템에서 요구하는 길이만큼 확장한 비밀번호를 의미한다.
도 1은 본 발명의 하나의 실시예에 따른 암호화 시스템의 구성을 나타낸다.
도 1의 암호화 시스템(100)은 사용자로부터 입력된 비밀번호의 길이가 미리 설정되어 있는 비밀번호 길이 미만인 경우 미리 설정되어 있는 비밀번호 길이로 확장하여 메시지(암호화 대상)를 암호화한다.
도 1의 암호화 시스템(100)은 비밀번호 확장부(110), 초기화 벡터값 생성부(120), 메시지 인증코드 생성부(130), 그리고 암호화 제어부(140)를 포함한다.
비밀번호 확장부(110)는 자릿수 설정부(111), 메모리 할당부(112), 비밀번호 수신부(113), 비밀번호 처리부(114), 정수값 변환부(115), 그리고 암호화키 생성부(116)를 포함한다.
자릿수 설정부(111)는 시스템 관리자로부터 입력되는 자릿수에 따라 비밀번호의 길이를 설정한다. 이때, 시스템 관리자는 암호화 과정에서 보안성을 향상시킬 수 있도록 자릿수를 길게 설정할 수 있다.
메모리 할당부(112)는 자릿수 설정부(111)에서 설정된 비밀번호의 길이에 기초하여 메모리를 할당한다. 여기서, 메모리는 6의 배수와 9의 배수에 대응하는 배열형태의 저장공간을 포함한다. 본 발명의 실시예에 따르면, 메모리 할당부(112)는 자릿수 설정부(111)를 통해 설정된 비밀번호의 길이가 6의 배수 또는 9의 배수인지 판단하고, 6의 배수 및 9의 배수가 아닌 경우 자릿수 설정부(111)를 통해 설정된 비밀번호의 길이가 6의 배수에 가까운지 또는 9의 배수에 가까운지 판단하여 메모리를 할당한다. 예를 들어, 자릿수 설정부(111)를 통해 설정된 비밀번호의 길이가 10 자리로 설정되는 경우 9의 2배수인 18보다 6의 2배수인 12에 가까우므로 6의 배수에 해당하는 배열형태의 메모리를 할당할 수 있다.
이때, 메모리 할당부(112)에서 메모리가 6의 배수와 9의 배수에 해당하는 배열형태를 갖는 이유는 아래와 같다.
JAVA에서 숫자형 자료형 중 큰 자료형은 Long형이다. 사용자로부터 비밀번호가 입력되면 아스키코드를 통해 문자형태의 비밀번호를 정수형태로 변환하여 메모리에 저장한다. 이때, 사용자로부터 입력된 비밀번호는 z(122)번까지 변환이 가능하다. 따라서, 사용자가 z를 연속으로 입력하는 경우 Long형 자료형에서 저장 가능한 비밀번호 최대 길이는 'zzzzzz'로 6자리이다. 또한, 비밀번호에서 사용하지 않는 제어문자(아스키코드 0~32번)를 사용하지 않는 경우 122번-32번=90으로 z를 90에 매칭시킬 수 있으므로 Long형 자료형에서 비밀번호를 저장하는 경우 'zzzzzzzzz'으로 9자리까지 저장 가능하다. 이에 따라 Long형 배열을 형성하는 경우 6의 배수와 9의 배수 형태의 비밀번호를 저장할 수 있다.
비밀번호 수신부(113)는 사용자로부터 입력되는 비밀번호(이하, '사용자 비밀번호'라고 함)를 수신한다.
비밀번호 처리부(114)는 비밀번호 수신부(113)를 통해 수신된 사용자 비밀번호의 길이와 메모리 할당부(112)에서 할당된 메모리의 배열형태에 기초하여 사용자 비밀번호를 처리한다. 본 발명의 실시예에 따르면, 비밀번호 처리부(114)는 사용자 비밀번호의 길이가 자릿수 설정부(111)에서 설정된 비밀번호의 길이를 초과하는 경우 사용자 비밀번호에서 초과되는 자리의 문자열을 삭제한다. 또한, 사용자 비밀번호의 자릿수가 자릿수 설정부(111)에서 설정된 비밀번호의 길이 미만인 경우 난수 생성기(Random Number Generator)를 통해 난수열을 생성하여 부족한 자리에 삽입한다. 이후, 시스템 비밀번호의 길이를 만족하는 사용자 비밀번호(이하, '보안 비밀번호'라고 함)를 메모리 할당부(112)에서 할당된 메모리에 저장하며, 메모리의 빈 배열에는 'NULL'을 삽입한다. 예를 들어, 비밀번호의 길이가 10 자리로 설정되어 6의 배수 배열형태의 메모리가 할당되는 경우 12자리에서 보안 비밀번호 10자리를 제외한 2자리는 NULL로 채울 수 있다.
정수값 변환부(115)는 메모리에 저장되어 있는 문자 형태의 보안 비밀번호를 정수 형태로 변환한다. 본 발명의 실시예에 따르면, 정수값 변환부(115)는 아스키 코드(ASCII, American Standard Code for Information Interchange)를 이용하여 보안 비밀번호의 문자를 정수로 변환한다. 이때, 보안 비밀번호의 길이가 9의 M배인 경우에는 8byte의 표현 범위를 초과하므로 비밀번호에 사용하지 않는 제어문자와 공백문자(아스키 코드의 0번에서 32번)의 사용을 제한하여 한 문자에 최대 3 자리의 아스키 코드(z-122)를 최대 2 자리(z-90)로 줄임으로써 최대 6자리까지 변환 가능했던 자료형태를 최대 9자리까지 변환할 수 있다.
암호화키 생성부(116)는 정수값 변환부(115)에서 정수 형태로 변환된 보안 비밀번호에 기초하여 암호화키를 생성한다. 본 발명의 실시예에 따르면, 암호화키 생성부(116)는 난수 생성기(Random Number Generator)를 이용하여 128bit의 암호화키를 생성한다.
초기화 벡터값 생성부(120)는 난수 생성기를 이용하여 초기화 벡터값을 생성한다.
메시지 인증코드 생성부(130)는 메시지 인증코드를 생성한다. 본 발명의 실시예에 따르면, 메시지 인증코드 생성부(130)는 HMAC-SHA(Hash-based Message Authentication Code-Secure Hash Algorithm)를 통해 해시값을 이용하여 메시지 인증코드를 생성한다.
암호화 제어부(140)는 암호화키 생성부(116)에서 생성된 암호화키와 초기화 벡터값 생성부(120)에서 생성된 초기화 벡터값을 이용하여 메시지를 암호화하고 메시지 인증코드 생성부(130)를 통해 생성된 메시지 인증코드와 함께 암호화된 메시지를 수신자에게 전송한다. 여기서, 메시지는 AES(Advanced Encryption Standard) 256bit 암호화 알고리즘을 통해 암호화될 수 있다.
본 발명의 실시예에 따르면, 수신자는 암호화되어 있는 메시지를 수신하면 비밀번호를 입력하여 암호화키와 초기화 벡터값을 생성하고 이를 이용하여 메시지 복호화 과정을 수행한다. 이때, 사용자(송신자)가 입력한 비밀번호와 수신자가 입력한 비밀번호가 상이한 경우 암호화되어 있는 메시지의 복호화가 불가능하므로 비밀번호 입력 및 복호화 과정을 통해 사용자 인증이 가능하다. 또한, 수신자는 수신된 메시지 인증코드와 메시지를 복호화하여 메시지 인증코드를 생성한다. 이때, 사용자(송신자)가 전송한 메시지 인증코드와 수신자가 생성한 메시지 인증코드의 일치 여부를 통해 메시지의 위조 또는 변조를 판단할 수 있다. 즉, 전송과정에서 메시지가 수정된 경우 사용자(송신자)와 수신자의 메시지 인증코드가 다르므로 메시지 인증코드를 통해 메시지 무결성을 확인할 수 있다.
도 2는 도 1의 암호화 시스템을 이용한 암호화 방법을 나타낸다.
먼저, 자릿수 설정부(111)를 통해 비밀번호의 자릿수를 설정하고(S100), 메모리 할당부(112)를 통해 설정된 자릿수에 대응하는 메모리를 할당한다(S110). 아래에서는 도 3을 참고하여 메모리 할당 방법에 대해 상세히 설명한다.
도 3은 본 발명의 하나의 실시예에 따른 메모리 할당 방법을 나타낸다.
먼저, S100 단계에서 설정된 자릿수가 9의 배수인지 판단하고(S111), 9의 배수로 판단되는 경우 9의 배수 배열 형태의 메모리를 할당한다(S112). 만약, S111 단계에서 9의 배수가 아닌 것으로 판단되는 경우 6의 배수인지 판단하고(S113), 6의 배수로 판단되는 경우 6의 배수 배열 형태의 메모리를 할당한다(S114). 만약, S13 단계에서 6의 배수가 아닌 것으로 판단되는 경우 설정된 자릿수가 9의 배수와 6의 배수 중 어떤 배수가 가까운지 판단하고(S115), S115 단계의 판단결과에 따라 메모리를 할당한다.
다시 도 2의 설명으로 돌아가서, 비밀번호 수신부(113)를 통해 사용자로부터 입력되는 비밀번호를 수신하고(S120), 비밀번호 처리부(114)를 통해 S100 단계에서 설정된 자릿수에 기초하여 수신된 사용자 비밀번호를 처리한다(S130). 아래에서는 도 4를 참고하여 비밀번호 처리 방법에 대해 상세히 설명한다.
도 4는 본 발명의 하나의 실시예에 따른 비밀번호 처리 방법을 나타낸다.
도 4에서는 설명의 편의상 S100 단계에서 설정된 자릿수를 A, S120 단계에서 설정된 사용자 비밀번호의 자릿수를 B로 표현하여 설명한다.
먼저, 사용자 비밀번호의 자릿수 A가 설정된 자릿수 B 이상인지 판단한다(S131). 만약, B가 A 이상인 것으로 판단되는 경우 사용자 비밀번호에서 설정된 자릿수를 초과하는 문자열을 삭제하고(S132), 보안 비밀번호를 생성한 후 S110 단계에서 할당된 메모리에 저장한다. 이후, S110 단계에서 할당된 메모리의 배열에서 빈 자리는 NULL로 채운다(S133).
이후, 사용자 비밀번호의 자릿수 A와 설정된 자릿수 B가 동일한지 판단한다(S134). 만약 동일한 것으로 판단되는 경우 S133 단계를 수행한다.
S134 단계에서 사용자 비밀번호의 자릿수 A와 설정된 자릿수 B가 동일하지 않은 것으로 판단되는 경우 난수열을 생성하여 부족한 자리에 채우고(S135), 보안 비밀번호를 생성한 후 S110 단계에서 할당된 메모리에 저장한 후 S133 단계를 수행한다.
다시 도 2의 설명으로 돌아가서, 정수값 변환부(115)를 통해 S130 단계에서 생성된 보안 비밀번호의 문자를 정수로 변환한다(S140). 아래에서는 도 5를 참고하여 정수 변환 방법에 대해 상세히 설명한다.
도 5는 본 발명의 하나의 실시예에 따른 정수 변환 방법을 나타낸다.
도 5에서는 9의 배수 배열 형태의 메모리에 저장되어 있는 보안 비밀번호의 정수 변환 방법이다.
먼저, 메모리에 저장되어 있는 보안 비밀번호의 첫 번째 자리(X=1)의 문자를 정수로 변환한다(S141).
이후, S141 단계에서 변환된 정수가 0인지 판단하고(S142), 0이 아닌 것으로 판단되는 경우 S141 단계에서 변환된 정수에서 32를 빼서(아스키코드의 0번에서 32번을 사용하지 않으므로) 메모리에 저장한다(S144). 이후, 다음 자리의 문자를 정수로 변환하고(S145), S141 단계와 S142 단계를 수행한다. 만약, S142 판단결과 0인 것으로 판단되는 경우 보안 비밀번호의 문자가 S113 단계에서 채운 NULL에 대응하므로 보안 비밀번호의 모든 자리의 정수 변환이 완료된 것으로 판단하여 S150 단계를 수행한다.
다시 도 2의 설명으로 돌아가서, 암호화키 생성부(116)를 통해 S140 단계에서 정수로 변환된 보안 비밀번호를 초기 정수값으로 설정한 후 난수열을 생성하여 128bit의 암호화키를 생성한다(S150).
이후, 초기화 벡터값 생성부(120)에서 난수열 생성기를 통해 초기화 벡터값을 생성한다(S160).
이후, 메시지 인증코드 생성부(130)에서 HMAC-SHA를 통해 해시값을 이용하여 메시지 인증코드를 생성한다(S170).
이후, 암호화 제어부(140)에서 S150 단계에서 생성된 암호화키와 S160 단계에서 생성된 초기화 벡터값을 이용하여 메시지를 암호화하고, S170 단계에서 생성된 메시지 인증코드와 함께 수신자에게 전송한다(S180). S180단계에서는 AES 256bit 암호화 알고리즘을 통해 메시지를 암호화하여 수신자에게 전송할 수 있다.
본 발명의 실시예에 따르면 사용자의 비밀번호 기억 및 관리 효율을 향상시킬 수 있다. 또한, 종래와 같이 짧은 길이의 비밀번호를 이용하면서 길이가 긴 비밀번호가 제공하는 높은 보안효과를 누릴 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였으나, 본 발명의 권리범위가 이에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상의 지식을 가진 자가 여러 가지로 변형 및 개량한 형태 또한 본 발명의 권리범위에 속한다.
100 : 암호화 시스템 110 : 비밀번호 확장부
111 : 자릿수 설정부 112 : 메모리 할당부
113 : 비밀번호 수신부 114 : 비밀번호 처리부
115 : 정수값 변환부 116 : 암호화키 생성부
120 : 초기화 벡터값 생성부 130 : 메시지 인증코드 생성부
140 : 암호화 제어부

Claims (15)

  1. 시스템 관리자로부터 입력되는 자릿수에 따라 비밀번호의 길이를 설정하는 자릿수 설정부,
    상기 설정된 비밀번호의 길이에 대응하는 메모리를 할당하는 메모리 할당부,
    시스템 사용자로부터 입력되는 제1 비밀번호를 수신하는 비밀번호 수신부, 그리고
    상기 제1 비밀번호의 길이와 상기 설정된 비밀번호의 길이에 기초하여 상기 제1 비밀번호를 처리하여 제2 비밀번호를 생성하는 비밀번호 처리부
    를 포함하며,
    상기 메모리 할당부는 6의 배수 배열 형태의 메모리와 9의 배수 배열 형태의 메모리를 포함하는 비밀번호 확장 시스템.
  2. 제1항에서,
    상기 비밀번호 처리부는 상기 제1 비밀번호의 길이, 상기 설정된 비밀번호의 길이, 그리고 상기 할당된 메모리 형태에 기초하여 상기 제1 비밀번호를 전처리하여 제2 비밀번호를 생성하는 비밀번호 확장 시스템.
  3. 제2항에서,
    상기 메모리 할당부는 상기 설정된 비밀번호의 길이가 상기 6의 배수이거나 상기 6의 배수에 인접하는 경우 상기 6의 배수 배열 형태의 메모리를 할당하고 상기 설정된 비밀번호의 길이가 상기 9의 배수이거나 상기 9의 배수에 인접하는 경우 상기 9의 배수 배열 형태의 메모리를 할당하는 비밀번호 확장 시스템.
  4. 제3항에서,
    상기 제2 비밀번호의 길이가 상기 6의 배수 미만 또는 상기 9의 배수 미만인 경우 상기 메모리의 잔여 자리에 NULL을 입력하는 비밀번호 확장 시스템.
  5. 제1항에서,
    상기 비밀번호 처리부는 상기 제1 비밀번호의 길이가 상기 설정된 비밀번호의 길이를 초과하는 경우 상기 제1 비밀번호에서 초과되는 자리의 문자열을 삭제하여 제2 비밀번호를 생성하는 비밀번호 확장 시스템.
  6. 제1항에서,
    상기 비밀번호 처리부는 상기 제1 비밀번호의 길이가 상기 설정된 비밀번호의 길이 미만인 경우 난수열을 생성하고 상기 생성된 난수열을 상기 설정된 비밀번호의 잔여 자리에 삽입하여 제2 비밀번호를 생성하는 비밀번호 확장 시스템.
  7. 제1항에서,
    상기 제2 비밀번호의 문자를 정수로 변환하는 정수값 변환부, 그리고
    상기 정수로 변환된 제2 비밀번호를 초기 정수값으로 설정하고 난수열을 생성하여 암호화키를 생성하는 암호화키 생성부
    를 더 포함하는 비밀번호 확장 시스템.
  8. 제7항에서,
    상기 정수값 변환부는 아스키코드를 이용하여 상기 제2 비밀번호의 문자를 정수로 변환하며, 상기 할당된 메모리가 9의 배수 배열 형태인 경우 상기 아스키코드의 0 내지 32를 제외하고 상기 제2 비밀번호의 문자를 정수로 변환하는 비밀번호 확장 시스템.
  9. 시스템 관리자로부터 입력되는 자릿수에 따라 비밀번호의 길이를 설정하는 단계,
    상기 설정된 비밀번호의 길이에 대응하는 메모리를 할당하는 단계,
    시스템 사용자로부터 입력되는 제1 비밀번호를 수신하는 단계, 그리고
    상기 제1 비밀번호의 길이, 상기 설정된 비밀번호의 길이, 그리고 상기 할당된 메모리 형태에 기초하여 상기 제1 비밀번호를 전처리하여 제2 비밀번호를 생성하는 단계
    를 포함하며,
    상기 메모리 할당 단계는, 상기 설정된 비밀번호의 길이가 6의 배수이거나 6의 배수에 인접하는 경우 6의 배수 배열 형태의 메모리를 할당하고 상기 설정된 비밀번호의 길이가 9의 배수이거나 9의 배수에 인접하는 경우 9의 배수 배열 형태의 메모리를 할당하는 비밀번호 확장 방법.
  10. 삭제
  11. 제9항에서,
    상기 제2 비밀번호 생성 단계는,
    상기 제2 비밀번호의 길이가 상기 6의 배수 미만 또는 상기 9의 배수 미만인 경우 상기 메모리의 잔여 자리에 NULL을 입력하는 비밀번호 확장 방법.
  12. 제9항에서,
    상기 제2 비밀번호 생성 단계는,
    상기 제1 비밀번호의 길이가 상기 설정된 비밀번호의 길이를 초과하는 경우 상기 제1 비밀번호에서 초과되는 자리의 문자열을 삭제하여 제2 비밀번호를 생성하는 비밀번호 확장 방법.
  13. 제9항에서,
    상기 제2 비밀번호 생성 단계는,
    상기 제1 비밀번호의 길이가 상기 설정된 비밀번호의 길이 미만인 경우 난수열을 생성하고 상기 생성된 난수열을 상기 설정된 비밀번호의 잔여 자리에 삽입하여 제2 비밀번호를 생성하는 비밀번호 확장 방법.
  14. 제9항에서,
    상기 제2 비밀번호의 문자를 정수로 변환하는 단계, 그리고
    상기 정수로 변환된 제2 비밀번호를 초기 정수값으로 설정하고 난수열을 생성하여 암호화키를 생성하는 단계
    를 더 포함하는 비밀번호 확장 방법.
  15. 제14항에서,
    상기 정수 변환 단계는,
    아스키코드를 이용하여 상기 제2 비밀번호의 문자를 정수로 변환하며, 상기 할당된 메모리가 9의 배수 배열 형태인 경우 상기 아스키코드의 0 내지 32를 제외하고 상기 제2 비밀번호의 문자를 정수로 변환하는 비밀번호 확장 방법.
KR1020160052894A 2016-04-29 2016-04-29 보안성 향상을 위한 비밀번호 확장 시스템 및 방법 KR101772203B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160052894A KR101772203B1 (ko) 2016-04-29 2016-04-29 보안성 향상을 위한 비밀번호 확장 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160052894A KR101772203B1 (ko) 2016-04-29 2016-04-29 보안성 향상을 위한 비밀번호 확장 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101772203B1 true KR101772203B1 (ko) 2017-08-28

Family

ID=59759860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160052894A KR101772203B1 (ko) 2016-04-29 2016-04-29 보안성 향상을 위한 비밀번호 확장 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101772203B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210037097A (ko) * 2019-09-27 2021-04-06 정구희 위치와 시간 기반 기상 데이터를 이용한 블록 암복호화 시스템 및 그 운용방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100243347B1 (ko) * 1997-06-16 2000-08-01 정선종 컴퓨터 패스워드 보호 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100243347B1 (ko) * 1997-06-16 2000-08-01 정선종 컴퓨터 패스워드 보호 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210037097A (ko) * 2019-09-27 2021-04-06 정구희 위치와 시간 기반 기상 데이터를 이용한 블록 암복호화 시스템 및 그 운용방법
KR102347605B1 (ko) 2019-09-27 2022-01-05 정구희 위치와 시간 기반 기상 데이터를 이용한 블록 암복호화 시스템 및 그 운용방법

Similar Documents

Publication Publication Date Title
CN107086915B (zh) 一种数据传输方法、数据发送端及数据接收端
US6950523B1 (en) Secure storage of private keys
CN105760764B (zh) 一种嵌入式存储设备文件的加解密方法、装置及终端
CN107317677B (zh) 密钥存储及设备身份认证方法、装置
CN110059458B (zh) 一种用户口令加密认证方法、装置及系统
US11424919B2 (en) Protecting usage of key store content
US11074332B2 (en) Methods and systems of securely transferring data
US11329835B2 (en) Apparatus and method for authenticating IoT device based on PUF using white-box cryptography
GB2514428A (en) Enabling access to data
US20150256343A1 (en) Securely Generating and Storing Passwords in a Computer System
CN114157415A (zh) 数据处理方法、计算节点、系统、计算机设备和存储介质
US11128455B2 (en) Data encryption method and system using device authentication key
JP7323004B2 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
CN115603907A (zh) 加密存储数据的方法、装置、设备和存储介质
US11563566B2 (en) Key splitting
CN110889695A (zh) 基于安全多方计算保存和恢复隐私数据的方法和装置
US8161295B2 (en) Storing of data in a device
KR101772203B1 (ko) 보안성 향상을 위한 비밀번호 확장 시스템 및 방법
CN109995508B (zh) 一种fpga码流的加解密装置及方法
CN106452755A (zh) 基于客户端解密密文的重置保护口令的方法、装置及系统
KR101438312B1 (ko) 데이터 암호화 방법 및 이를 이용한 암호화데이터 송수신 시스템
KR101808313B1 (ko) 데이터 암호화 방법
CN111131158A (zh) 单字节对称加密解密方法、装置及可读介质
US11568070B2 (en) Secure access control processes
Li et al. The code for securing web applications

Legal Events

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