KR101515097B1 - 무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드생성 방법 및 패스워드 확인 방법 - Google Patents

무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드생성 방법 및 패스워드 확인 방법 Download PDF

Info

Publication number
KR101515097B1
KR101515097B1 KR1020080020581A KR20080020581A KR101515097B1 KR 101515097 B1 KR101515097 B1 KR 101515097B1 KR 1020080020581 A KR1020080020581 A KR 1020080020581A KR 20080020581 A KR20080020581 A KR 20080020581A KR 101515097 B1 KR101515097 B1 KR 101515097B1
Authority
KR
South Korea
Prior art keywords
password
value
frame
key
user interface
Prior art date
Application number
KR1020080020581A
Other languages
English (en)
Other versions
KR20090095311A (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 KR1020080020581A priority Critical patent/KR101515097B1/ko
Priority to JP2009052048A priority patent/JP5297231B2/ja
Priority to US12/398,359 priority patent/US8291491B2/en
Publication of KR20090095311A publication Critical patent/KR20090095311A/ko
Application granted granted Critical
Publication of KR101515097B1 publication Critical patent/KR101515097B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 바람직한 실시예에 따른 패스워드 시스템은 사용자 인터페이스, 패스워드 생성기 및 패스워드 확인기를 구비한다. 상기 패스워드 생성기는 다수의 프레임들을 포함하는 패스워드를 생성하고, 생성된 패스워드에 대한 무결성 확인 코드(integrity check code)를 생성하며, 상기 생성된 패스워드를 스크램블(scramble)하여 스크램블된 패스워드를 상기 사용자 인터페이스에게 제공한다. 상기 패스워드 확인기는 상기 패스워드 생성기로부터 제공되는 무결성 확인 코드, 프레임 개수 정보 및 스크램블 정보를 저장하고, 상기 사용자 인터페이스로부터 입력되는 스크램블된 패스워드를 상기 스크램블 정보에 기초하여 디스크램블(descramble)하며, 디스크램블된 패스워드로부터 생성되는 무결성 확인 코드와 저장된 무결성 확인 코드를 비교하여 상기 사용자 인터페이스를 인증한다.
보안, 패스워드, 무결성, 순차적, 가변적, 스크램블

Description

무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드 생성 방법 및 패스워드 확인 방법{Password system, method of generating password, and method of checking password using integrity check code}
본 발명은 패스워드 시스템, 패스워드 생성 방법 및 패스워드 확인 방법에 관한 것이다. 특히 본 발명은 무결성 확인 코드(integrity check code), 순차적인 ID값들(sequential ID values), 가변적인 프레임 개수(variable number of frames) 및 스크램블링(scrambling)을 사용하는 패스워드 시스템, 패스워드 생성 방법 및 패스워드 확인 방법에 관한 것이다.
보안(security)이 요구되는 어떤 장치(device)나 네트워크 서버 또는 어플리케이션 시스템 등에 대한 사용자의 접근을 제한하기 위해서, 사용자에게 패스워드를 요구하는 방식이 일반적으로 사용된다. 사용자가 입력한 패스워드에 기초하여 그 사용자가 합법적 사용자인지 아니면 불법적 사용자인지를 판단한다. 사용자가 합법적 사용자라는 인증(authentication)이 이루어진 후에, 보안이 요구되는 장치 등에 대한 그 사용자의 접근이 허용된다.
도 1은 일반적인(conventional) 패스워드 시스템을 예시하는 도면이다.
도 1에는 사용자 인터페이스(UI: User Interface. 120) 및 보안이 요구되는 임의의 장치(DEVICE. 110)가 도시되어 있다. 보안 요구를 충족시키기 위해서 장치(110)는 패스워드 확인기(CHECK. 112)와 메모리(MEMORY. 114)를 구비한다. 패스워드 확인기(112)는 사용자 인터페이스(120)로부터 입력되는 패스워드(PWD)를 메모리(114)에 저장되어 있는 패스워드와 비교하고, 그 비교 결과에 기초하여 사용자 인터페이스(120)의 접근이 합법적인지 아니면 불법적인지를 판단한다.
해커 등과 같은 불법적 사용자로부터의 공격을 방어하기 위해서는 장치(110)의 보안 레벨(security level)을 높여야 한다. 보안 레벨을 높이는 방안으로서 패스워드의 길이를 확장하는 방안을 생각할 수 있다. 패스워드의 길이가 길수록 불법적 사용자의 공격을 더 효과적으로 방어할 수 있다.
그런데, 보안 레벨을 높이기 위해서 패스워드의 길이를 확장시키면 그만큼 메모리(114)의 용량도 커져야 한다. 메모리(114)의 용량을 증가시키는 것은 장치(110)에게 하드웨어적인 부담을 준다. 더욱이, 메모리(114)의 용량이 제한되는 경우에는 패스워드의 길이를 확장하는 방안을 채택하는 것이 곤란하다.
본 발명은 메모리 용량을 증가시키지 않으면서 불법적 사용자로부터의 공격을 효과적으로 방어할 수 있는 패스워드 시스템을 제공하고자 한다. 또한, 본 발명은 패스워드 시스템의 보안 레벨(security level)을 효과적으로 높일 수 있는 패스워드 생성 방법 및 패스워드 확인 방법을 제공하고자 한다.
본 발명의 바람직한 실시예에 따른 패스워드 시스템은 사용자 인터페이스, 패스워드 생성기 및 패스워드 확인기를 구비한다. 상기 패스워드 생성기는 다수의 프레임들을 포함하는 패스워드를 생성하고, 생성된 패스워드에 대한 무결성 확인 코드(integrity check code)를 생성하며, 상기 생성된 패스워드를 스크램블(scramble)하여 스크램블된 패스워드를 상기 사용자 인터페이스에게 제공한다. 상기 패스워드 확인기는 상기 패스워드 생성기로부터 제공되는 무결성 확인 코드, 프레임 개수 정보 및 스크램블 정보를 저장하고, 상기 사용자 인터페이스로부터 입력되는 스크램블된 패스워드를 상기 스크램블 정보에 기초하여 디스크램블(descramble)하며, 디스크램블된 패스워드로부터 생성되는 무결성 확인 코드와 저장된 무결성 확인 코드를 비교하여 상기 사용자 인터페이스를 인증한다.
본 발명의 어느 실시예에 있어서, 상기 패스워드 생성기에서 생성되는 패스워드가 포함하는 프레임 개수는 가변적이다.
본 발명의 어느 실시예에 있어서, 상기 프레임 개수 정보는 상기 패스워드가 포함하는 프레임 개수를 지시하는 정보이다. 상기 패스워드 확인기는 상기 디스크램블된 패스워드로부터 확인되는 프레임 개수 정보와 저장된 프레임 개수 정보를 비교하여 상기 사용자 인터페이스를 인증할 수 있다.
본 발명의 어느 실시예에 있어서, 상기 패스워드 생성기에서 생성되는 패스워드는 헤더부(header part)와 프레임부(frame part)를 포함하고, 상기 프레임부는 제 1 프레임 내지 제 N 프레임을 포함하며, 상기 제 n(n은 1부터 N까지의 자연수) 프레임은 제 n ID값 및 제 n KEY값을 포함할 수 있다. 상기 프레임부에 포함되는 제 1 ID값 내지 제 N ID값은 순차적이다.
본 발명의 어느 실시예에 있어서, 상기 패스워드 생성기는 상기 제 1 ID값 내지 상기 제 N ID값을 순차적으로 생성하는 제 1 선형 피드백 쉬프트 레지스터(LFSR: Linear Feedback Shift Register)를 구비할 수 있다. 상기 제 1 선형 피드백 쉬프트 레지스터의 초기값 또는 계수값은 각각의 패스워드마다 다르며, 상기 제 1 선형 피드백 쉬프트 레지스터는 각각의 패스워드마다 다른 제 1 ID값 내지 제 N ID값을 생성할 수 있다.
본 발명의 어느 실시예에 있어서, 상기 패스워드 확인기는 상기 패스워드 생성기에 구비되는 상기 제 1 선형 피드백 쉬프트 레지스터와 초기값 및 계수값을 공유하는 제 2 선형 피드백 쉬프트 레지스터를 구비할 수 있다. 상기 패스워드 확인기는 상기 디스크램블된 패스워드로부터 확인되는 제 1 ID값 내지 제 N ID값과 상기 제 2 선형 피드백 쉬프트 레지스터로부터 생성되는 제 1 ID값 내지 제 N ID값을 각각 비교하여 상기 사용자 인터페이스를 인증할 수 있다.
본 발명의 어느 실시예에 있어서, 상기 제 1 프레임 내지 상기 제 N 프레임은 상기 사용자 인터페이스의 접근 권한을 나타내는 사용자 모드(mode)값 및 상기 사용자 모드값에 대한 모드 확인 코드를 더 포함할 수 있다. 상기 패스워드 확인기에서 인증된 사용자 인터페이스는 상기 사용자 모드값을 변경할 수 있다.
본 발명의 어느 실시예에 있어서, 상기 프레임부에 포함되는 제 1 KEY값 내지 제 N KEY값은 난수 발생기(RNG: Random Number Generator)를 이용하여 랜덤하게 생성될 수 있다.
본 발명의 어느 실시예에 있어서, 상기 무결성 확인 코드는 상기 프레임부에 포함되는 제 1 KEY값 내지 제 N KEY값에 관한 무결성을 확인하기 위한 코드이다. 상기 무결성 확인 코드는 CRC(Cyclic Redundancy Check) 방식, HASH 방식 또는 Check Sum 방식을 이용하여 생성될 수 있다.
본 발명의 어느 실시예에 있어서, 상기 사용자 인터페이스는 패스워드 시드(seed)값을 상기 패스워드 생성기에게 제공하고, 상기 패스워드 생성기는 상기 패스워드 시드값에 기초하여 상기 패스워드를 생성할 수 있다.
본 발명의 바람직한 실시예에 따른 패스워드 생성 방법은, 순차적(sequential)인 제 1 ID값 내지 제 N ID값을 생성하는 단계; 랜덤(random)한 제 1 KEY값 내지 제 N KEY값을 생성하는 단계; 상기 제 1 ID값과 상기 제 1 KEY값을 포함하는 제 1 프레임 내지 상기 제 N ID값과 상기 제 N KEY값을 포함하는 제 N 프레임을 프레임부(frame part)에 배치하고, 상기 프레임부에 헤더부(header part)를 부가하여 패스워드를 생성하는 단계; 상기 프레임부에 대한 무결성 확인 코드를 생 성하는 단계; 상기 생성된 패스워드를 스크램블 정보에 따라 스크램블하는 단계; 및 상기 프레임부에 포함되는 프레임 개수를 지시하는 프레임 개수 정보, 상기 무결성 확인 코드, 상기 스크램블 정보 및 상기 스크램블된 패스워드를 출력하는 단계;를 구비할 수 있다.
본 발명의 바람직한 실시예에 따른 패스워드 확인 방법은, 제 1 ID값 내지 제 N ID값 및 제 1 KEY값 내지 제 N KEY값을 포함하는 패스워드에 대한 무결성 확인 코드, 상기 패스워드에 포함되는 프레임 개수를 지시하는 프레임 개수 정보 및 상기 패스워드의 스크램블 정보를 입력받아 저장하는 단계; 사용자 인터페이스로부터 입력되는 스크램블된 패스워드를 상기 스크램블 정보에 기초하여 디스크램블하는 단계; 상기 디스크램블된 패스워드로부터 생성되는 무결성 확인 코드와 상기 저장된 무결성 확인 코드를 비교하는 단계; 상기 디스크램블된 패스워드로부터 확인되는 제 1 ID값 내지 제 N ID값과 내부의 ID값 생성기로부터 생성되는 제 1 ID값 내지 제 N ID값을 각각 비교하는 단계; 및 상기 디스크램블된 패스워드로부터 확인되는 프레임 개수 정보와 상기 저장된 프레임 개수 정보를 비교하는 단계;를 구비할 수 있다.
본 발명의 어느 실시예에 있어서, 상기 디스크램블된 패스워드로부터 생성되는 무결성 확인 코드와 상기 저장된 무결성 확인 코드가 일치하고, 상기 디스크램블된 패스워드로부터 확인되는 제 1 ID값 내지 제 N ID값과 상기 내부의 ID값 생성기로부터 생성되는 제 1 ID값 내지 제 N ID값이 각각 일치하며, 상기 디스크램블된 패스워드로부터 확인되는 프레임 개수 정보와 상기 저장된 프레임 개수 정보가 일 치하는 경우에, 상기 사용자 인터페이스를 인증할 수 있다.
본 발명의 어느 실시예에 있어서, 상기 패스워드 확인 방법은 디버깅(debugging) 용도의 보안 JTAG(secure Joint Test Action Group) 시스템에 적용될 수 있다.
본 발명에 따르면 메모리 용량을 증가시키지 않으면서 불법적 사용자로부터의 공격을 효과적으로 방어할 수 있다.
또한, 본 발명에 따라 무결성 확인 코드의 확인(checking of integrity check code), 순차적인 ID값들의 확인(checking of sequential ID values), 가변적인 프레임 개수의 확인(checking of variable number of frames) 및 스크램블링(scrambling)을 병용하면 패스워드 시스템의 보안 레벨을 효과적으로 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 2는 본 발명의 바람직한 실시예에 따른 패스워드 시스템을 나타내는 도면이다.
도 2에서 패스워드 시스템은 사용자 인터페이스(UI. 220), 패스워드 생성기(PWD-GEN. 230) 및 패스워드 확인기(PWD-CHCK. 212)를 구비한다. 패스워드 생성기(230)는 주로 소프트웨어적으로 구현될 수 있고, 패스워드 확인기(212)는 주로 하드웨어적으로 구현될 수 있다. 패스워드 확인기(212)는 보안이 요구되는 어떤 장 치(device)나 네트워크 서버 또는 어플리케이션 시스템 등에 구비될 수 있다.
사용자 인터페이스(220)는 패스워드 시드값(seed value. SD)을 패스워드 생성기(230)에게 제공하고, 패스워드 생성기(230)는 패스워드 시드값(SD)에 기초하여 패스워드를 생성한다. 그런데, 패스워드의 생성에서 패스워드 시드값(SD)이 반드시 필요한 것은 아니므로, 패스워드 시드값(SD)의 제공이 없더라도 패스워드 생성기(230)는 임의적으로 패스워드를 생성할 수 있다.
패스워드 생성기(230)는 다수의 프레임들을 포함하는 패스워드(도 3에서 자세히 설명됨)를 생성하고, 생성된 패스워드에 대한 무결성 확인 코드(ICC: Integrity Check Code)를 생성하며, 생성된 패스워드를 스크램블(scramble)하여 스크램블된 패스워드(PWD_SC)를 사용자 인터페이스(220)에게 제공한다.
패스워드 확인기(212)는 패스워드 생성기(230)로부터 제공되는 무결성 확인 코드(ICC), 프레임 개수 정보(number information of frames. NF) 및 스크램블 정보(I_SC)를 저장하고, 사용자 인터페이스(220)로부터 입력되는 스크램블된 패스워드(PWD_SC)를 저장된 스크램블 정보(I_SC)에 기초하여 디스크램블(descramble)하며, 디스크램블된 패스워드로부터 생성되는 무결성 확인 코드와 저장된 무결성 확인 코드를 비교하여 사용자 인터페이스(220)를 인증한다(authenticate). 이하에서 도 3 내지 도 7을 참조하여 도 2의 패스워드 시스템을 더 자세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 패스워드 시스템에서 사용되는 패스워드의 포맷을 나타낸다.
도 3에 도시된 패스워드는 헤더부(header part. HEADER)와 프레임부(frame part. FRAME_1~FRAME_N)를 포함한다. 헤더부(HEADER)는 ID 헤더(HD_ID), 그리고 패스워드의 버젼(version)과 같은 기타 정보(HD_INFO)를 포함한다. 도 3에 도시된 바와 같이 프레임부는, 제 1 ID값(ID_1) 및 제 1 KEY값(KEY_1)을 포함하는 제 1 프레임(FRAME_1) 내지 제 N ID값(ID_N) 및 제 N KEY값(KEY_N)을 포함하는 제 N 프레임(FRAME_N)을 포함한다.
또한, 프레임부(FRAME_1~FRAME_N)는 사용자 모드값(user mode value. S1, S2, S3, S4)과 모드 확인 코드(mode check code. C1, C2)를 포함한다. 사용자 모드값(S1, S2, S3, S4)은 사용자 인터페이스(220)의 접근 권한을 나타내는 값이다. 즉, 사용자 모드값은 사용자 인터페이스(220)를 통해 접근을 시도하는 사용자가 단순한 사용자인지 아니면 관리자인지를 나타낸다. 관리자는 단순한 사용자에 비해 강화된 접근 권한을 가진다. 사용자 모드값(S1, S2, S3, S4)이 함부로 변경되는 것을 방지하기 위해서, 사용자 모드값(S1, S2, S3, S4)에 대한 모드 확인 코드(C1, C2)를 프레임부(FRAME_1~FRAME_N)에 추가적으로 포함시킨다.
도 3에서 제 1 프레임 내지 제 4 프레임(FRAME_1, FRAME_2, FRAME_3, FRAME_4)은 각각 ID값(ID_1, ID_2, ID_3, ID_4), 사용자 모드값(S1, S2, S3, S4) 및 KEY값(KEY_1, KEY_2, KEY_3, KEY_4)을 포함한다. 제 5 프레임 및 제 6 프레임(FRAME_5, FRAME_6)은 각각 ID값(ID_5, ID_6), 모드 확인 코드(C1, C2) 및 KEY값(KEY_5, KEY_6)을 포함한다. 제 7 프레임 내지 제 N 프레임(FRAME_7, FRAME_8, ..., FRAME_N)은 각각 ID값(ID_7, ID_8, ..., ID_N), zero(0) 및 KEY값(KEY_7, KEY_8, ..., KEY_N)을 포함한다. 그러나, 도 3에 도시된 예는 단지 하나의 예시일 뿐이며, 어느 프레임이 사용자 모드값을 포함하는지, 모드 확인 코드를 포함하는지, 아니면 단순한 zero를 포함하는지는 실시예에 따라 달라질 수 있다. 또한, 도 3에서, ID값들(ID_1~ID_N)은 M 비트이고, 사용자 모드값(S1, S2, S3, S4)과 모드 확인 코드(C1, C2) 각각은 1 비트이며, KEY값들(KEY_1~KEY_N)은 L 비트이지만, ID값, 사용자 모드값, 모드 확인 코드 및 KEY값 각각이 차지하는 비트수는 실시예에 따라 달라질 수 있다.
본 발명에서 패스워드가 포함하는 프레임 개수(number of frames)는 가변적(variable)이다. 예컨대, 도 2에서의 패스워드 생성기(230)에서 생성된 어느 패스워드는 (N-3)개의 프레임들을 포함하고, 다른 패스워드는 N개의 프레임들을 포함하며, 또 다른 패스워드는 (N+5)개의 프레임들을 포함할 수 있다. 본 발명에 따른 패스워드 시스템에서 프레임 개수 정보(number information of frames. NF)는 패스워드가 포함하는 프레임 개수를 지시하는 정보이다. 도 3에 도시된 패스워드는 N개의 프레임들(FRAME_1~FRAME_N)을 포함하므로, 도 3의 경우에는 프레임 개수 정보(NF)가 N이다.
패스워드에 포함되는 프레임 개수가 일정한 경우의 보안 레벨보다 패스워드에 포함되는 프레임 개수가 가변적인 경우의 보안 레벨이 더 높다. 따라서, 패스워드에 포함되는 프레임 개수를 가변시킴으로써 불법적 사용자의 공격에 대한 방어 능력을 더 높일 수 있다. 프레임 개수 정보(NF)의 검사는 패스워드 확인기(212)에 의해 수행된다. 즉, 도 2에서 패스워드 확인기(212)는, 사용자 인터페이스(220)로부터 입력되는 스크램블된 패스워드(PWD_SC)를 저장된 스크램블 정보(I_SC)에 기초 하여 디스크램블(descramble)하고, 디스크램블된 패스워드로부터 확인되는 프레임 개수 정보(NF)와 저장된 프레임 개수 정보(NF)를 비교하며, 두 정보가 일치하는 경우에 사용자 인터페이스(220)를 인증한다.
한편, 도 3에서 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)은 순차적(sequential)이다. 여기서, 순차적이라는 용어는 제 1 ID값(ID_1), 제 2 ID값(ID_2), 제 3 ID값(ID_3), 제 4 ID값(ID_4), 제 5 ID값(ID_5), 제 6 ID값(ID_6), 제 7 ID값(ID_7), 제 8 ID값(ID_8), ..., 제 N ID값(ID_N)의 순서가 반드시 지켜져야 한다는 것을 의미한다. 10 진수 체계의 경우에는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9의 순서가 이미 정해져 있고, 16 진수 체계의 경우에도 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F의 순서가 이미 정해져 있다. 그런데, 10 진수 체계 또는 16 진수 체계는 공개된 숫자 체계이기 때문에, 어떤 숫자 다음에 오는 숫자가 무엇인지 예측이 가능하다.
순서의 예측이 가능하다는 것은 암호학적으로 바람직하지 않으므로, 본 발명에 따른 패스워드 시스템에서는 순서를 예측할 수 없는 ID값들을 사용한다. 예를 들어, 제 1 ID값(ID_1)이 "00101100"이고, 제 2 ID값(ID_2)이 "01001101"이며, 제 3 ID값(ID_3)이 "11110101"인 경우에, 제 1 ID값 "00101100"과 제 2 ID값 "01001101"을 우연히 알아냈다고 하더라도 제 2 ID값 다음에 오는 제 3 ID값이 무엇인지 예측할 수 없다. 이와 같이 순서를 예측할 수 없다는 점에서 상기 ID값들은 비예측적이다. 또한, 순서가 부여된 후에는 제 1 ID값 "00101100", 제 2 ID값 "01001101", 제 3 ID값 "11110101"의 순서가 반드시 지켜져야 한다는 점에서 상기 ID값들은 순차적이다.
상기와 같이 비예측적이며 순차적인 ID값들을 생성하는 ID값 생성기가 패스워드 생성기(230)와 패스워드 확인기(212)에 각각 구비된다. 본 발명의 일 실시예에서, 선형 피드백 쉬프트 레지스터(LFSR: Linear Feedback Shift Register)가 ID값 생성기로서 사용될 수 있다. 이하에서는 도 4a 및 도 4b를 참조하여 선형 피드백 쉬프트 레지스터를 더 자세히 설명한다.
도 4a는 ID값 생성기로서 사용될 수 있는 선형 피드백 쉬프트 레지스터(LFSR)를 나타내는 도면이고, 도 4b는 선형 피드백 쉬프트 레지스터(LFSR)를 구체적으로 예시하는 도면이다.
선형 피드백 쉬프트 레지스터(LFSR)는 다수의 레지스터(REG)들, 다수의 배타적 논리합 연산기(XOR)들 및 다수의 스위치(SW)들을 구비한다. 도 4a에 도시된 선형 피드백 쉬프트 레지스터(LFSR)는 다음의 수학식 1과 같이 표현되는 LFSR 다항식 G(X)를 구현한다.
Figure 112008016286791-pat00001
LFSR 다항식 G(X)에서의 각 계수들(g0, g1, g2, ..., gm -1, gm)은 각 스위치(SW)들에 의한 피드백 경로의 연결/차단을 나타낸다. 계수가 1이면 피드백 경로는 연결되고, 계수가 0이면 피드백 경로는 차단된다. 최저차항의 계수 g0 및 최고차 항의 계수 gm은 항상 1이다. 각각의 레지스터(REG)들은 클럭 신호(CLK)의 에지(edge)에서 저장값을 업데이트한다. 선형 피드백 쉬프트 레지스터(LFSR)의 계수값은 LFSR 다항식 G(X)의 계수들(g0, g1, g2, ..., gm -1, gm)을 나타내고, 선형 피드백 쉬프트 레지스터(LFSR)의 초기값은 레지스터(REG)들의 초기 저장값들을 나타낸다. 선형 피드백 쉬프트 레지스터(LFSR)는 설정된 계수값 및 초기값에 따라서 비예측적이며 순차적인 값들을 출력한다. 도 4b에는 다음의 수학식 2와 같이 표현되는 LFSR 다항식 G(X)를 구현하는 선형 피드백 쉬프트 레지스터(LFSR)가 구체적으로 도시되어 있다.
Figure 112008016286791-pat00002
수학식 2에서 2 차항의 계수 g2가 zero이므로 도 4b에서 계수 g2에 대응되는 피드백 경로는 차단된다. 피드백 경로가 차단되면 배타적 논리합 연산이 의미가 없어지므로(즉, 레지스터 REG2의 출력과 차단된 피드백 경로로부터의 0을 배타적 논리합 연산하면 그 결과는 항상 레지스터 REG2의 출력과 같으므로), 레지스터 REG2의 출력이 그대로 레지스터 REG3의 입력으로 사용된다고 볼 수 있다. 한편, 도 4b에 도시된 선형 피드백 쉬프트 레지스터(LFSR)가 직렬 출력 타입이라면, 클럭 신 호(CLK)의 각 에지마다 레지스터 REG3으로부터 출력되는 1 비트값이 선형 피드백 쉬프트 레지스터(LFSR)의 1 비트 출력에 해당된다. 도 4b에 도시된 선형 피드백 쉬프트 레지스터(LFSR)가 병렬 출력 타입이라면, 클럭 신호(CLK)의 각 에지마다 레지스터 REG1으로부터 출력되는 1 비트값(ID_n[0]), 레지스터 REG2로부터 출력되는 1 비트값(ID_n[1]) 및 레지스터 REG3으로부터 출력되는 1 비트값(ID_n[2])이 선형 피드백 쉬프트 레지스터(LFSR)의 3 비트 출력에 해당된다.
선형 피드백 쉬프트 레지스터(LFSR)의 사이즈(size)는 선형 피드백 쉬프트 레지스터(LFSR)에 구비되는 레지스터들의 개수를 나타낸다. 병렬 출력 타입이며 사이즈가 M인 선형 피드백 쉬프트 레지스터(LFSR)는 클럭 신호(CLK)의 각 에지마다 M 비트 출력을 출력한다. 레지스터(REG)들의 초기 저장값들을 모두 zero로 설정하면 언제나 모든 비트가 zero인 M 비트 출력이 출력되므로, 레지스터(REG)들의 초기 저장값들 중의 적어도 하나를 1로 설정한다. 그러면, 선형 피드백 쉬프트 레지스터(LFSR)로부터 (2M-1)개의 서로 다른 M 비트 출력들이 순차적으로 출력된다. 선형 피드백 쉬프트 레지스터(LFSR)에서는, 2M개의 서로 다른 M 비트 이진수들 중에서 모든 비트가 zero인 M 비트 이진수를 제외한 나머지 (2M-1)개의 M 비트 이진수들 전부가 선형 피드백 쉬프트 레지스터(LFSR)의 M 비트 출력으로 사용된다. 그러한 점에서 비트 효율이 매우 높다고 볼 수 있다.
선형 피드백 쉬프트 레지스터(LFSR)로부터 출력되는 첫번째 M 비트 출력을 도 3에서의 제 1 ID값(ID_1)에 대응시키고, 두번째 M 비트 출력을 도 3에서의 제 2 ID값(ID_2)에 대응시키며, 세번째 M 비트 출력을 도 3에서의 제 3 ID값(ID_3)에 대응시킨다. 이러한 방식으로 M 비트 출력들을 ID값들에 각각 대응시키면, 비예측적이며 순차적인 ID값들을 얻을 수 있다. 직렬 출력 타입의 선형 피드백 쉬프트 레지스터(LFSR)가 사용되는 경우에는, 선형 피드백 쉬프트 레지스터(LFSR)로부터 출력되는 첫번째 1 비트 출력 내지 M번째 1 비트 출력을 도 3에서의 제 1 ID값(ID_1)에 대응시킬 수 있다.
한편, 선형 피드백 쉬프트 레지스터(LFSR)는 순환 특성을 가지기 때문에, 첫번째 M 비트 출력 내지 (2M-1)번째 M 비트 출력이 순차적으로 출력된 다음에는 다시 첫번째 M 비트 출력과 동일한 출력이 2M번째 M 비트 출력으로서 출력된다. 즉, 2M번째 M 비트 출력 내지 [2*(2M-1)]번째 M 비트 출력 각각은 첫번째 M 비트 출력 내지 (2M-1)번째 M 비트 출력 각각에 대응된다. 도 3에서 패스워드가 포함하는 프레임 개수 N이 (2M-1)보다 큰 경우에, 예컨대 N이 16이고 M이 3인 경우에, 선형 피드백 쉬프트 레지스터(LFSR)의 8번째 3 비트 출력(ID_8에 대응됨)은 첫번째 3 비트 출력(ID_1에 대응됨)과 동일하고, 9번째 3 비트 출력(ID_9에 대응됨)은 두번째 3 비트 출력(ID_2에 대응됨)과 동일하며, 10번째 3 비트 출력(ID_10에 대응됨)은 세번째 3 비트 출력(ID_3에 대응됨)과 동일하다.
선형 피드백 쉬프트 레지스터(LFSR)의 초기값 또는 계수값이 달라지면, 선형 피드백 쉬프트 레지스터(LFSR)로부터 출력되는 서로 다른 (2M-1)개의 M 비트 출력들의 순서도 달라진다. 따라서, 각각의 패스워드마다 다른 초기값 또는 다른 계수값을 선형 피드백 쉬프트 레지스터(LFSR)에 설정하면, 각각의 패스워드마다 다른 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)을 얻을 수 있다. 서로 다른 (2M-1)개의 M 비트 출력들의 순서, 즉, 서로 다른 (2M-1)개의 M 비트 이진수들의 순서가 각각의 패스워드마다 다르다.
도 2에서 패스워드 생성기(230)는 제 1 선형 피드백 쉬프트 레지스터(LFSR)를 구비하고, 패스워드 확인기(212)는 패스워드 생성기(230)에 구비되는 제 1 선형 피드백 쉬프트 레지스터(LFSR)와 초기값 및 계수값을 공유하는 제 2 선형 피드백 쉬프트 레지스터(LFSR)를 구비한다. 제 1 선형 피드백 쉬프트 레지스터(LFSR)와 제 2 선형 피드백 쉬프트 레지스터(LFSR)가 초기값 및 계수값을 공유한다는 것은 제 1 선형 피드백 쉬프트 레지스터(LFSR)와 제 2 선형 피드백 쉬프트 레지스터(LFSR)가 동일한 초기값 및 동일한 계수값을 가진다는 것을 의미한다. 물론, 동일한 초기값 및 동일한 계수값은 각각의 패스워드마다 달라질 것이다. 초기값 및 계수값을 공유하므로, 제 1 선형 피드백 쉬프트 레지스터(LFSR)로부터 출력되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)과 제 2 선형 피드백 쉬프트 레지스터(LFSR)로부터 출력되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)은 그 값들이 각각 일치할 뿐만 아니라 그 값들의 순서도 일치한다.
ID값들(ID_1~ID_N)의 검사는 패스워드 확인기(212)에 의해 수행된다. 즉, 도 2에서 패스워드 확인기(212)는, 사용자 인터페이스(220)로부터 입력되는 스크램블된 패스워드(PWD_SC)를 저장된 스크램블 정보(I_SC)에 기초하여 디스크램블(descramble)하고, 디스크램블된 패스워드로부터 확인되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)과 패스워드 확인기(212) 내부의 제 2 선형 피드백 쉬프트 레지스터(LFSR)로부터 생성되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)을 각각 비교하며, 두 ID값들이 각각 일치하는 경우에 사용자 인터페이스(220)를 인증한다.
도 3에서 프레임부(FRAME_1~FRAME_N)에 포함되는 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)은 난수 발생기(RNG: Random Number Generator)를 이용하여 랜덤하게 생성된다. 난수 발생기(RNG: Random Number Generator)를 이용하여 랜덤하게 생성되므로 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)도 역시 비예측적이다.
도 3에서 무결성 확인 코드(ICC: Integrity Check Code)는 프레임부(FRAME_1~FRAME_N)에 포함되는 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)에 관한 무결성을 확인하기 위한 코드이다. 예컨대, CRC(Cyclic Redundancy Check) 방식, HASH 방식 또는 Check Sum 방식 등을 이용하여 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)에 대한 무결성 확인 코드(ICC)를 생성할 수 있다. CRC 방식의 경우에는 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)에 대한 32 비트의 무결성 확인 코드(ICC) 또는 64 비트의 무결성 확인 코드(ICC) 등을 생성할 수 있다. HASH 방식의 경우에는 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)에 대한 160 비트의 무결성 확인 코드(ICC) 또는 256 비트의 무결성 확인 코드(ICC) 등을 생성할 수 있다. CRC 방식, HASH 방식 또는 Check Sum 방식 등은 보안 분야의 당업자에게 자명하므로 그 에 대한 자세한 설명은 생략한다. 한편, 도 3에는 KEY값들(KEY_1~KEY_N)에 대한 무결성 확인 코드(ICC)를 생성하는 실시예가 도시되어 있으나, KEY값들(KEY_1~KEY_N)에 대한 무결성 확인 코드(ICC)를 생성하는 실시예 뿐만 아니라 KEY값들(KEY_1~KEY_N) 및 ID값들(ID_1~ID_N)에 대한 무결성 확인 코드(ICC)를 생성하는 실시예 등도 가능하다.
도 5는 본 발명의 바람직한 실시예에 따른 패스워드 생성 방법을 나타내는 흐름도이다. 도 5에 도시된 패스워드 생성 방법은 도 2의 패스워드 생성기(230)에서 수행될 수 있다.
S510 단계에서 순차적(sequential)인 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)을 생성한다. 앞서 설명하였듯이, 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)은 패스워드 생성기(230)에 구비되는 제 1 선형 피드백 쉬프트 레지스터(LFSR)에 의해 생성될 수 있다. S520 단계에서 랜덤(random)한 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)을 생성한다. 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)은 난수 발생기(RNG)에 의해 랜덤하게 생성될 수 있다. S530 단계에서 CRC 방식, HASH 방식 또는 Check Sum 방식 등을 이용하여 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)에 대한 무결성 확인 코드(ICC)를 생성한다.
S510 단계에서 생성된 ID값들(ID_1~ID_N)과 S520 단계에서 생성된 KEY값들(KEY_1~KEY_N)을 프레임부(FRAME_1~FRAME_N)에 배치한다. 즉, 제 1 ID값(ID_1)과 제 1 KEY값(KEY_1)을 포함하는 제 1 프레임(FRAME_1) 내지 제 N ID값(ID_N)과 제 N KEY값(KEY_N)을 포함하는 제 N 프레임(FRAME_N)을 프레임부(frame part)에 배치한 다. 앞서 설명한 바와 같이, 프레임부(FRAME_1~FRAME_N)에 포함되는 프레임 개수는 가변적이다. 즉, 프레임부(FRAME_1~FRAME_N)에 포함되는 프레임 개수는 각각의 패스워드마다 다를 수 있다.
도 3에 예시된 바와 같이, 프레임부(FRAME_1~FRAME_N)는 ID값들(ID_1~ID_N)과 KEY값들(KEY_1~KEY_N) 이외에 사용자 인터페이스(220)의 접근 권한을 나타내는 사용자 모드값(MODE. 도 3에서 S1, S2, S3, S4) 및 사용자 모드값(MODE)에 대한 모드 확인 코드(MCC: Mode Check Code. 도 3에서 C1, C2)를 더 포함할 수 있다. 사용자 모드값(MODE)과 모드 확인 코드(MCC)는 도 5에서의 S540 단계에서 생성된다. 프레임부(FRAME_1~FRAME_N)에 헤더부(HEADER)를 부가함으로써 패스워드가 완성된다.
S550 단계에서, 상기 완성된 패스워드를 스크램블 정보(I_SC)에 따라 스크램블(scramble)한다. 예컨대, 헤더부(HEADER)와 프레임부(FRAME_1~FRAME_N)를 행(row) 단위 및/또는 열(column) 단위로 스크램블하여 스크램블된 패스워드(PWD_SC)를 생성한다. 패스워드 생성기(230)는 프레임부(FRAME_1~FRAME_N)에 포함되는 프레임 개수를 지시하는 프레임 개수 정보(NF), 무결성 확인 코드(ICC) 및 스크램블 정보(I_SC)를 패스워드 확인기(212)로 출력하고, 스크램블된 패스워드(PWD_SC)를 사용자 인터페이스(220)에게 제공한다.
도 6은 본 발명의 바람직한 실시예에 따른 패스워드 확인 방법을 나타내는 흐름도이다. 도 7은 도 6의 패스워드 확인 방법을 구체적으로 설명하기 위한 도면이다. 도 6 및 도 7에 도시된 패스워드 확인 방법은 도 2의 패스워드 확인기(212)에서 수행될 수 있다.
패스워드 확인기(212)는 패스워드 생성기(230)로부터 입력되는 프레임 개수 정보(NF), 무결성 확인 코드(ICC) 및 스크램블 정보(I_SC)를 저장한다.
S610 단계에서, 사용자 인터페이스(220)로부터 입력되는 스크램블된 패스워드(PWD_SC)를 저장된 스크램블 정보(I_SC)에 기초하여 디스크램블(descramble)한다. S620 단계에서, 디스크램블된 패스워드(도 6 및 도 7에서 PWD_DSC)로부터 생성되는 무결성 확인 코드(도 7에서 "generated ICC")와 저장된 무결성 확인 코드(도 7에서 "stored ICC")를 비교한다. 앞서 설명한 바와 같이, 여기서의 무결성 확인 코드(ICC)는 도 3에서의 프레임부(FRAME_1~FRAME_N)에 대한 무결성 확인 코드[예컨대, 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N)에 관한 무결성을 확인하기 위한 코드]이다. S630 단계에서, 디스크램블된 패스워드(PWD_DSC)로부터 확인되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)과 패스워드 확인기(212) 내부의 제 2 선형 피드백 쉬프트 레지스터("LFSR in PWD-CHCK")로부터 생성되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)을 각각 비교한다. S640 단계에서, 디스크램블된 패스워드(PWD_DSC)로부터 확인되는 프레임 개수 정보(도 7에서 "checked NF")와 저장된 프레임 개수 정보(도 7에서 "stored NF")를 비교한다. S620 단계, S630 단계 및 S640 단계의 순서는 바뀌어도 무방하다.
S620 단계, S630 단계 및 S640 단계의 각 비교 결과에서, 디스크램블된 패스워드(PWD_DSC)로부터 생성되는 무결성 확인 코드("generated ICC")와 저장된 무결성 확인 코드("stored ICC")가 일치하고, 디스크램블된 패스워드(PWD_DSC)로부터 확인되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)과 패스워드 확인기(212) 내부의 제 2 선형 피드백 쉬프트 레지스터("LFSR in PWD-CHCK")로부터 생성되는 제 1 ID값(ID_1) 내지 제 N ID값(ID_N)이 각각 일치하며, 디스크램블된 패스워드(PWD_DSC)로부터 확인되는 프레임 개수 정보("checked NF")와 저장된 프레임 개수 정보("stored NF")가 일치하는 경우에, 사용자 인터페이스(220)를 인증한다. 사용자 인터페이스(220)가 인증되면 보안이 요구되는 장치 등에 대한 그 사용자의 접근이 허용된다.
한편, 본 발명에서의 패스워드는 도 3에 예시된 바와 같이, 제 1 ID값(ID_1) 내지 제 N ID값(ID_N) 및 제 1 KEY값(KEY_1) 내지 제 N KEY값(KEY_N) 이외에 사용자 인터페이스(220)의 접근 권한을 나타내는 사용자 모드값(MODE) 및 사용자 모드값(MODE)에 대한 모드 확인 코드(MCC)를 더 포함할 수 있다. 이 경우에 S620 단계, S630 단계 및 S640 단계를 거쳐 인증된 사용자 인터페이스(220)는 소정의 검증 과정을 추가적으로 거쳐 사용자 모드값(MODE)을 변경할 수 있다. 예컨대, 인증된 사용자 인터페이스(220)는 보안 등급의 조정을 위해서 소정의 검증 과정을 추가적으로 거쳐, 원래 자신에게 부여된 보안 등급을 단순한 사용자 등급으로부터 관리자 등급으로 변경할 수 있다.
본 발명에서 패스워드 확인기(212)는 패스워드 자체를 저장하지 않고 프레임 개수 정보(NF), 무결성 확인 코드(ICC) 및 스크램블 정보(I_SC)를 저장한다. 즉, ID값들(ID_1~ID_N), KEY값들(KEY_1~KEY_N), 사용자 모드값(MODE) 및 모드 확인 코드(MCC)를 포함하는 패스워드 자체를 저장하는 대신에 프레임 개수 정보(NF), 무결성 확인 코드(ICC) 및 스크램블 정보(I_SC)를 저장한다. 따라서, 보안 레벨을 높이 기 위해서 패스워드의 길이를 확장시키는 경우에도 패스워드 확인기(212)의 메모리 용량을 증가시킬 필요가 없다. KEY값들(KEY_1~KEY_N) 자체를 비교하는 대신에 KEY값들(KEY_1~KEY_N)에 대한 무결성 확인 코드(ICC)를 비교하므로 패스워드 확인기(212)의 메모리에 KEY값들(KEY_1~KEY_N)을 저장하지 않아도 된다. 디스크램블된 패스워드(PWD_DSC)로부터 확인되는 ID값들(ID_1~ID_N)과 제 2 선형 피드백 쉬프트 레지스터("LFSR in PWD-CHCK")로부터 생성되는 ID값들(ID_1~ID_N)을 각각 비교하므로 패스워드 확인기(212)의 메모리에 ID값들(ID_1~ID_N)을 저장하지 않아도 된다.
덧셈기(adder) 및 공개된 숫자 체계를 저장하기 위한 ROM 테이블을 사용하는 대신에 선형 피드백 쉬프트 레지스터(LFSR)를 사용하여 ID값들(ID_1~ID_N)을 생성하므로 하드웨어의 구현 면적을 감소시킬 수도 있다.
한편, 패스워드 자체를 비교하지 않고 패스워드에 대한 무결성 확인 코드(ICC)만을 비교하는 것은 암호학적인 충돌(collision) 문제에 취약할 수 있다. 이러한 점을 보완하기 위해서 본 발명에서는 무결성 확인 코드의 확인, 순차적인 ID값들의 확인, 가변적인 프레임 개수의 확인 및 스크램블링(scrambling)을 병용하여 패스워드 시스템의 보안 레벨을 효과적으로 향상시킨다.
본 발명의 실시예에 따른 패스워드 시스템에서 사용되는 패스워드 확인 방법은 예컨대, 디버깅(debugging) 용도의 보안 JTAG(secure Joint Test Action Group) 시스템에 적용될 수 있다. JTAG은 IC(Integrated Circuit)나 PCB(Printed Circuit Board) 등을 테스트하기 위해 제정된 표준을 의미한다. 사용자는 JTAG 에뮬레이터(emulator)를 JTAG 포트(port)를 통해 IC 등에 연결하고, JTAG 에뮬레이터와 IC 간의 데이터 입출력 상태에 기초하여 IC가 제대로 동작하는지를 테스트할 수 있다. 보안이 요구되는 IC 등의 경우에는 사용자의 접근을 제한할 필요가 있으므로, 본 발명에 따른 패스워드 확인 방법을 보안 JTAG 시스템에 적용할 수 있다. 그 외에도, 본 발명의 실시예에 따른 패스워드 시스템, 패스워드 생성 방법 및 패스워드 확인 방법은 보안이 요구되는 어떤 장치(device)나 네트워크 서버 또는 어플리케이션 시스템 등에 하드웨이적으로 또는 소프트웨어적으로 적용될 수 있다.
이상에서는 도면에 도시된 구체적인 실시예를 참고하여 본 발명을 설명하였으나 이는 예시적인 것에 불과하다. 본 발명이 속하는 기술 분야에서 통상의 기술을 가진 자는 그로부터 다양한 수정 및 변형이 가능하다는 점을 알 것이다. 따라서, 본 발명의 보호 범위는 후술하는 특허청구범위에 의하여 해석되어야 하고, 그와 동등 및 균등한 범위 내에 있는 모든 기술적 사상은 본 발명의 보호 범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 이해하기 위하여 각 도면에 대한 간단한 설명이 제공된다.
도 1은 일반적인(conventional) 패스워드 시스템을 예시하는 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 패스워드 시스템을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 패스워드 시스템에서 사용되는 패스워드의 포맷을 나타낸다.
도 4a는 ID값 생성기로서 사용될 수 있는 선형 피드백 쉬프트 레지스터(LFSR)를 나타내는 도면이고, 도 4b는 선형 피드백 쉬프트 레지스터(LFSR)를 구체적으로 예시하는 도면이다.
도 5는 본 발명의 바람직한 실시예에 따른 패스워드 생성 방법을 나타내는 흐름도이다.
도 6은 본 발명의 바람직한 실시예에 따른 패스워드 확인 방법을 나타내는 흐름도이다.
도 7은 도 6의 패스워드 확인 방법을 구체적으로 설명하기 위한 도면이다.
< 도면의 참조 부호에 대한 설명 >
110: 장치 112: 패스워드 확인기
114: 메모리 120: 사용자 인터페이스
212: 패스워드 확인기 220: 사용자 인터페이스
230: 패스워드 생성기 ICC: 무결성 확인 코드
NF: 프레임 개수 정보 I_SC: 스크램블 정보
PWD_SC: 스크램블된 패스워드 PWD_DSC: 디스크램블된 패스워드

Claims (25)

  1. 사용자 인터페이스(user interface);
    다수의 프레임들을 포함하는 패스워드를 생성하고, 생성된 패스워드에 대한 무결성 확인 코드(integrity check code)를 생성하며, 상기 생성된 패스워드를 스크램블(scramble)하여 스크램블된 패스워드를 상기 사용자 인터페이스에게 제공하는 패스워드 생성기; 및
    상기 패스워드 생성기로부터 제공되는 무결성 확인 코드, 프레임 개수 정보 및 스크램블 정보를 저장하고, 상기 사용자 인터페이스로부터 입력되는 스크램블된 패스워드를 상기 스크램블 정보에 기초하여 디스크램블(descramble)하며, 디스크램블된 패스워드로부터 생성되는 무결성 확인 코드와 저장된 무결성 확인 코드를 비교하여 상기 사용자 인터페이스를 인증하는 패스워드 확인기;
    를 구비하는 패스워드 시스템.
  2. 제 1 항에 있어서,
    상기 패스워드 생성기에서 생성되는 패스워드가 포함하는 프레임 개수는 가변적인 것을 특징으로 하는 패스워드 시스템.
  3. 제 2 항에 있어서,
    상기 프레임 개수 정보는 상기 패스워드가 포함하는 프레임 개수를 지시하는 정보인 것을 특징으로 하는 패스워드 시스템.
  4. 제 2 항에 있어서,
    상기 패스워드 확인기는,
    상기 디스크램블된 패스워드로부터 확인되는 프레임 개수 정보와 저장된 프레임 개수 정보를 비교하여 상기 사용자 인터페이스를 인증하는 것을 특징으로 하는 패스워드 시스템.
  5. 제 1 항에 있어서,
    상기 패스워드 생성기에서 생성되는 패스워드는 헤더부(header part)와 프레임부(frame part)를 포함하고,
    상기 프레임부는 제 1 프레임 내지 제 N 프레임을 포함하며,
    상기 제 n(n은 1부터 N까지의 자연수) 프레임은 제 n ID값 및 제 n KEY값을 포함하는 것을 특징으로 하는 패스워드 시스템.
  6. 제 5 항에 있어서,
    상기 프레임부에 포함되는 제 1 ID값 내지 제 N ID값은 순차적인 것을 특징으로 하는 패스워드 시스템.
  7. 제 6 항에 있어서,
    상기 패스워드 생성기는,
    상기 제 1 ID값 내지 상기 제 N ID값을 순차적으로 생성하는 제 1 선형 피드백 쉬프트 레지스터(LFSR: Linear Feedback Shift Register);
    를 구비하는 것을 특징으로 하는 패스워드 시스템.
  8. 제 7 항에 있어서,
    상기 제 1 선형 피드백 쉬프트 레지스터의 초기값 또는 계수값은 각각의 패스워드마다 다르며,
    상기 제 1 선형 피드백 쉬프트 레지스터는 각각의 패스워드마다 다른 제 1 ID값 내지 제 N ID값을 생성하는 것을 특징으로 하는 패스워드 시스템.
  9. 제 7 항에 있어서,
    상기 패스워드 확인기는,
    상기 패스워드 생성기에 구비되는 상기 제 1 선형 피드백 쉬프트 레지스터와 초기값 및 계수값을 공유하는 제 2 선형 피드백 쉬프트 레지스터;
    를 구비하는 것을 특징으로 하는 패스워드 시스템.
  10. 제 9 항에 있어서,
    상기 패스워드 확인기는,
    상기 디스크램블된 패스워드로부터 확인되는 제 1 ID값 내지 제 N ID값과 상 기 제 2 선형 피드백 쉬프트 레지스터로부터 생성되는 제 1 ID값 내지 제 N ID값을 각각 비교하여 상기 사용자 인터페이스를 인증하는 것을 특징으로 하는 패스워드 시스템.
  11. 제 5 항에 있어서,
    상기 제 1 프레임 내지 상기 제 N 프레임은,
    상기 사용자 인터페이스의 접근 권한을 나타내는 사용자 모드(mode)값; 및
    상기 사용자 모드값에 대한 모드 확인 코드;
    를 더 포함하는 것을 특징으로 하는 패스워드 시스템.
  12. 제 11 항에 있어서,
    상기 패스워드 확인기에서 인증된 사용자 인터페이스는 상기 사용자 모드값을 변경할 수 있는 것을 특징으로 하는 패스워드 시스템.
  13. 제 5 항에 있어서,
    상기 프레임부에 포함되는 제 1 KEY값 내지 제 N KEY값은 난수 발생기(RNG: Random Number Generator)를 이용하여 랜덤하게 생성되는 것을 특징으로 하는 패스워드 시스템.
  14. 제 5 항에 있어서,
    상기 무결성 확인 코드는,
    상기 프레임부에 포함되는 제 1 KEY값 내지 제 N KEY값에 관한 무결성을 확인하기 위한 코드인 것을 특징으로 하는 패스워드 시스템.
  15. 제 1 항에 있어서,
    상기 무결성 확인 코드는,
    CRC(Cyclic Redundancy Check) 방식, HASH 방식 또는 Check Sum 방식을 이용하여 생성되는 것을 특징으로 하는 패스워드 시스템.
  16. 제 1 항에 있어서,
    상기 사용자 인터페이스는 패스워드 시드(seed)값을 상기 패스워드 생성기에게 제공하고,
    상기 패스워드 생성기는 상기 패스워드 시드값에 기초하여 상기 패스워드를 생성하는 것을 특징으로 하는 패스워드 시스템.
  17. 패스워드 생성기에 의해 수행되는 패스워드 수행 방법에 있어서,
    순차적(sequential)인 제 1 ID값 내지 제 N ID값을 생성하는 단계;
    랜덤(random)한 제 1 KEY값 내지 제 N KEY값을 생성하는 단계;
    상기 제 1 ID값과 상기 제 1 KEY값을 포함하는 제 1 프레임 내지 상기 제 N ID값과 상기 제 N KEY값을 포함하는 제 N 프레임을 프레임부(frame part)에 배치하고, 상기 프레임부에 헤더부(header part)를 부가하여 패스워드를 생성하는 단계;
    상기 프레임부에 대한 무결성 확인 코드를 생성하는 단계;
    상기 생성된 패스워드를 스크램블 정보에 따라 스크램블하는 단계; 및
    상기 프레임부에 포함되는 프레임 개수를 지시하는 프레임 개수 정보, 상기 무결성 확인 코드, 상기 스크램블 정보 및 상기 스크램블된 패스워드를 출력하는 단계;
    를 구비하는 패스워드 생성 방법.
  18. 제 17 항에 있어서,
    상기 프레임부에 포함되는 프레임 개수는 가변적인 것을 특징으로 하는 패스워드 생성 방법.
  19. 제 17 항에 있어서,
    사용자 인터페이스의 접근 권한을 나타내는 사용자 모드값 및 상기 사용자 모드값에 대한 모드 확인 코드를 생성하는 단계;
    를 더 구비하는 것을 특징으로 하는 패스워드 생성 방법.
  20. 제 19 항에 있어서,
    상기 프레임부는 상기 제 1 ID값 내지 상기 제 N ID값, 상기 제 1 KEY값 내지 상기 제 N KEY값, 상기 사용자 모드값 및 상기 모드 확인 코드를 포함하는 것을 특징으로 하는 패스워드 생성 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020080020581A 2008-03-05 2008-03-05 무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드생성 방법 및 패스워드 확인 방법 KR101515097B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080020581A KR101515097B1 (ko) 2008-03-05 2008-03-05 무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드생성 방법 및 패스워드 확인 방법
JP2009052048A JP5297231B2 (ja) 2008-03-05 2009-03-05 パスワードシステム
US12/398,359 US8291491B2 (en) 2008-03-05 2009-03-05 Password system, method of generating a password, and method of checking a password

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080020581A KR101515097B1 (ko) 2008-03-05 2008-03-05 무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드생성 방법 및 패스워드 확인 방법

Publications (2)

Publication Number Publication Date
KR20090095311A KR20090095311A (ko) 2009-09-09
KR101515097B1 true KR101515097B1 (ko) 2015-04-27

Family

ID=41054999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080020581A KR101515097B1 (ko) 2008-03-05 2008-03-05 무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드생성 방법 및 패스워드 확인 방법

Country Status (3)

Country Link
US (1) US8291491B2 (ko)
JP (1) JP5297231B2 (ko)
KR (1) KR101515097B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150094178A (ko) * 2014-02-10 2015-08-19 삼성전자주식회사 보안 장치 및 보안 장치의 제어 방법
KR102228454B1 (ko) 2014-02-24 2021-03-16 삼성전자주식회사 보안 디버깅 회로를 갖는 디바이스 및 그것에 대한 디버깅 방법
US10419422B2 (en) 2015-07-06 2019-09-17 Apple Inc. Combined authorization process
US11444766B2 (en) 2015-07-06 2022-09-13 Apple Inc. Combined authorization process
US10270597B2 (en) 2015-07-06 2019-04-23 Apple Inc. Combined authorization process
US10020824B1 (en) * 2016-06-17 2018-07-10 Cadence Design Systems, Inc. Method and system for efficient block synchronization scheme on a scrambled cyclic code bit stream
US10740186B2 (en) * 2017-05-15 2020-08-11 The Boeing Company High data integrity processing system
US11227046B2 (en) * 2019-12-24 2022-01-18 Stmicroelectronics International N.V. Dynamic randomization of password challenge

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008008367A2 (en) 2006-07-14 2008-01-17 Marvell World Trade Ltd. System-on-a-chip (soc) test interface security

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800590A (en) * 1985-01-14 1989-01-24 Willis E. Higgins Computer key and computer lock system
JPH1168733A (ja) 1997-08-13 1999-03-09 Nec Corp 光pds通信システム
US6389539B1 (en) 1998-09-30 2002-05-14 International Business Machines Corporation Method and system for enhancing security access to a data processing system
JP2000112351A (ja) * 1998-09-30 2000-04-21 Nippon Engineering:Kk 平文暗号化/復号化方法、平文暗号化/復号化装置、および平文暗号化/復号化アルゴリズムを記録したコンピュータ読み込み可能な記録媒体
KR100381710B1 (ko) 2000-07-27 2003-04-26 이종우 회원제 운용 인터넷 서버의 보안 방법 및 그에 관한 서버시스템
US7100197B2 (en) 2001-12-10 2006-08-29 Electronic Data Systems Corporation Network user authentication system and method
US7171564B2 (en) * 2002-08-29 2007-01-30 International Business Machines Corporation Universal password generation method
EP1538531A1 (en) * 2002-09-12 2005-06-08 Mitsubishi Denki Kabushiki Kaisha Authentication system, authentication device, terminal device, and authentication method
JP4316311B2 (ja) * 2003-07-03 2009-08-19 株式会社日立製作所 ロジカルパスワードによる認証方法、情報処理装置、プログラム、および記録媒体
JP4812456B2 (ja) * 2006-02-14 2011-11-09 富士通エフ・アイ・ピー株式会社 パスワード管理方法、及び、パスワード管理システム、並びに、パスワード管理プログラム
JP3939736B1 (ja) * 2006-03-27 2007-07-04 株式会社シー・エス・イー ユーザ認証システム、およびその方法
JP3996939B2 (ja) * 2006-03-30 2007-10-24 株式会社シー・エス・イー オフラインユーザ認証システム、その方法、およびそのプログラム
JP2008059561A (ja) * 2006-08-04 2008-03-13 Canon Inc 情報処理装置、データ処理装置、および、それらの方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008008367A2 (en) 2006-07-14 2008-01-17 Marvell World Trade Ltd. System-on-a-chip (soc) test interface security

Also Published As

Publication number Publication date
JP5297231B2 (ja) 2013-09-25
US20090228977A1 (en) 2009-09-10
US8291491B2 (en) 2012-10-16
KR20090095311A (ko) 2009-09-09
JP2009213139A (ja) 2009-09-17

Similar Documents

Publication Publication Date Title
KR101515097B1 (ko) 무결성 확인 코드를 사용하는 패스워드 시스템, 패스워드생성 방법 및 패스워드 확인 방법
Turan et al. Recommendation for password-based key derivation
US9569623B2 (en) Secure boot with resistance to differential power analysis and other external monitoring attacks
ES2717999T3 (es) Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método
JP6366595B2 (ja) 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム
US20050289343A1 (en) Systems and methods for binding a hardware component and a platform
CN103780379B (zh) 密码加密方法和系统以及密码校验方法和系统
US9166800B2 (en) Authentication method, authentication system, and authentication chip using common key cryptography
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
CN113158200A (zh) 使用挑战-响应协议执行认证的集成电路和使用其的方法
Turan et al. Sp 800-132. recommendation for password-based key derivation: Part 1: Storage applications
CN111373464B (zh) 加密装置、加密方法、解密装置以及解密方法
Guo et al. EOP: An encryption-obfuscation solution for protecting PCBs against tampering and reverse engineering
Tomas et al. Towards formal verification of cyber security standards
Reinsmidt et al. Securing a connected mobile system for healthcare
Shahrak et al. Two-way real time multimedia stream authentication using physical unclonable functions
Croock et al. Adaptive key generation algorithm based on software engineering methodology
Gallery et al. Conditional access in mobile systems: Securing the application
CA2278754A1 (en) A method of using transient faults to verify the security of a cryptosystem
CN113508380A (zh) 用于终端实体认证的方法
Chhabra et al. Towards the enhancement of AES IP security using hardware obfuscation technique: A practical approach for secure data transmission in IoT
Michéle et al. Structure-based RSA fault attacks
Blomqvist Kleptography--Overview and a new proof of concept
Yau Side Channel Analyses of CBC Mode Encryption
Saha et al. Updation of Activation Sequence of a Chip after its Deployment for Access Control

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
FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 5