KR101532363B1 - 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법 - Google Patents

다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법 Download PDF

Info

Publication number
KR101532363B1
KR101532363B1 KR1020090057179A KR20090057179A KR101532363B1 KR 101532363 B1 KR101532363 B1 KR 101532363B1 KR 1020090057179 A KR1020090057179 A KR 1020090057179A KR 20090057179 A KR20090057179 A KR 20090057179A KR 101532363 B1 KR101532363 B1 KR 101532363B1
Authority
KR
South Korea
Prior art keywords
hash
access
hash value
access level
calculator
Prior art date
Application number
KR1020090057179A
Other languages
English (en)
Other versions
KR20100138586A (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 KR1020090057179A priority Critical patent/KR101532363B1/ko
Priority to US12/796,110 priority patent/US8347116B2/en
Publication of KR20100138586A publication Critical patent/KR20100138586A/ko
Application granted granted Critical
Publication of KR101532363B1 publication Critical patent/KR101532363B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 반도체 장치의 액세스 제어 방법은, 입력된 패스워드를 해쉬 연산기의 입력으로 제공하고, 해쉬 연산기에서 해쉬 연산을 수행하여 제1 해쉬값을 출력하고, 제1 해쉬값 및 불휘발성 메모리에 저장된 제2 해쉬값이 일치하지 않을 때 상기 제1 해쉬값을 상기 해쉬 연산기의 입력으로 제공하여 해쉬 연산기에서 상기 해쉬 연산을 반복 수행하도록 제어하고, 그리고 제1 및 제2 해쉬값들이 일치할 때 해쉬 연산기의 해쉬 연산의 반복 횟수에 따라서 내부 회로에 대한 액세스 레벨을 설정한다.

Description

다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법{SEMICONDUCTOR DEVICE WITH MULTI ACESS LEVEL AND ACCESS CONTROLLING METHOD THEREOF}
본 발명은 반도체 장치에 관한 것으로, 좀 더 구체적으로는 입력된 패스워드에 따라서 액세스 범위를 제한할 수 있는 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법에 관한 것이다.
반도체 산업이 발달함에 따라서 반도체 장치 예컨대, 반도체 칩을 이용한 다양한 전자 장치들이 개발되고 있다. 전자 장치의 종류에 따라서 반도체 칩에는 개인 신상 정보, 금융 거래 정보 등과 같이 보안이 요구되는 데이터가 저장될 수 있다. 또한, 전자 장치 내 내장된 반도체 칩은 전자 장치의 전반적인 동작을 제어하기 위한 프로그램 코드 또는 저작권 보호가 요구되는 프로그램 코드들을 저장할 수 있다. 그러므로 전자 장치에 내장된 반도체 칩에 대한 액세스는 제한적으로 허용되어야 한다.
전자 장치에 내장될 반도체 칩은 테스트 또는 디버깅을 위한 JTAG(Joint Test Action Group) 인터페이스를 구비할 수 있다. 앞서 설명한 바와 같이, 반도 체 칩에 저장된 데이터의 보호를 위해서 JTAG 인터페이스를 통한 반도체 칩의 테스트 또는 디버깅은 허용된 사용자에 의해서 이루어져야 한다. 그러므로 JTAG 인터페이스를 통하여 반도체 칩에 액세스하는 것을 제한할 수 있는 스킴이 요구된다.
반도체 칩이 점점 미세화, 복잡화되어짐에 따라 SoC(System on a Chip)가 대두되게 되었다. 일반적으로 SoC는 프로세서, 메모리, 외부 인터페이스, 아날로그 및 혼성 모드 블록, 내장 소프트웨어 및 OS 등의 집적 회로 장치를 구성하는 모든 하드웨어와 소프트웨어의 기능을 포함한다. 이러한 SoC에 포함된 메모리에 저장된 데이터는 전자 장치 구동을 위한 프로그램 코드, 애플리케이션 프로그램 코드, 개인 신상 정보, 은행 거래 정보 등과 같이 다양하다. 예컨대, 애플리케이션 프로그램 제작자는 애플리케이션 프로그램의 디버깅을 위해서 메모리에 저장된 애플리케이션 프로그램을 액세스할 수 있도록 허용되어야 하나, 전자 장치의 구동을 위한 프로그램 코드에 대한 액세스는 제한되어야 한다. 따라서 사용자에 따라서 반도체 칩에 대한 액세스를 제한할 수 있는 방법이 제공되어야 한다.
본 발명의 목적은 패스워드 입력에 따라서 액세스 범위를 제한할 수 있는 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법을 제공하는 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 인터페이 스 회로 및 내부 회로를 포함하는 반도체 장치의 상기 인터페이스 회로에서 상기 내부 회로에 대한 액세스를 제어하는 방법은: 입력된 패스워드를 해쉬 연산기의 입력으로 제공하는 단계와, 상기 해쉬 연산기에서 해쉬 연산을 수행하고, 제1 해쉬값을 출력하는 단계와, 상기 제1 해쉬값 및 불휘발성 메모리에 저장된 제2 해쉬값이 일치하지 않을 때 상기 제1 해쉬값을 상기 해쉬 연산기의 입력으로 제공하여 상기 해쉬 연산기에서 상기 해쉬 연산을 반복 수행하도록 제어하는 단계, 그리고 상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수에 따라서 상기 내부 회로에 대한 액세스 레벨을 설정하는 단계를 포함한다.
이 실시예에 있어서, 상기 해쉬 연산기가 미리 설정된 횟수 n(n은 양의 정수)만큼 상기 해쉬 연산을 반복적으로 수행하는 동안 상기 제1 및 제2 해쉬값들이 일치하지 않으면 상기 내부 회로에 대한 액세스를 금지하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 액세스 레벨 설정 단계는, 상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 상기 n이면, 상기 내부 회로에 대한 액세스 레벨을 최상위 레벨로 설정하고, 상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 k(n보다 작은 양의 정수)이면, 상기 내부 회로에 대한 액세스 레벨을 상기 k에 대응하는 레벨로 설정한다.
이 실시예에 있어서, 상기 내부 회로는 복수의 메모리 영역들을 포함하는 메모리를 포함하며, 상기 액세스 레벨 설정 단계는, 상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 해쉬 연산 횟수에 따라서 상기 메모리의 상기 복수의 메모리 영역들 중 액세스 가능한 영역을 설정하는 단계를 포함한다.
이 실시예에 있어서, 상기 내부 회로에 대한 액세스 레벨은 단계적 복수의 액세스 레벨들을 포함하며, 상위 액세스 레벨은 하위 액세스 레벨에서 액세스 가능한 메모리 영역을 액세스할 수 있다.
이 실시예에 있어서, 상기 제2 해쉬값을 저장하는 상기 불휘발성 메모리는 이-퓨즈 메모리이다.
이 실시예에 있어서, 상기 인터페이스 회로는 JTAG(Joint Test Action Group) 인터페이스를 포함한다.
본 발명의 다른 특징에 의하면, 반도체 장치는: 내부 회로와, 입력에 대한 해쉬 연산을 수행하고, 제1 해쉬값을 출력하는 해쉬 연산기와, 제2 해쉬값을 저장하는 불휘발성 메모리와, 외부로부터 입력된 패스워드를 상기 해쉬 연산기의 입력으로 제공하고, 상기 해쉬 연산기로부터 출력된 제1 해쉬값과 상기 불휘발성 메모리에 저장된 상기 제2 해쉬값이 일치할 때 상기 해쉬 연산의 반복 횟수에 따라서 상기 내부 회로에 대한 액세스 레벨을 설정하는 보안 제어기를 포함한다. 상기 보안 제어기는 상기 제1 및 제2 해쉬값들이 일치하지 않을 때 상기 제1 해쉬값을 상기 해쉬 연산기의 입력으로 제공하여 상기 해쉬 연산기에서 상기 해쉬 연산을 반복 수행하도록 제어한다.
이 실시예에 있어서, 상기 보안 제어기는, 상기 해쉬 연산기로부터 출력되는 상기 제1 해쉬값을 최대 n(n은 양의 정수)번 반복적으로 상기 해쉬 연산기의 입력으로 제공하며, 상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 상기 n이면, 상기 내부 회로에 대한 액세스 레벨을 최상위 액세스 레벨로 설정하고, 상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 k(n보다 작은 양의 정수)이면, 상기 내부 회로에 대한 액세스 레벨을 상기 k에 대응하는 레벨로 설정한다.
이 실시예에 있어서, 상기 불휘발성 메모리에 저장되는 상기 제2 해쉬값은, 상기 최상위 액세스 레벨을 갖는 사용자에 의해서 설정된 패스워드를 n번 반복적으로 해쉬 연산해서 구해진 해쉬값이다.
이와 같은 본 발명에 의하면, 사용자에 따라서 반도체 장치에 대한 액세스를 다단계로 제한할 수 있다. 특히, JTAG과 같은 통신 인터페이스를 통하여 입력되는 패스워드에 따라서 반도체 장치의 액세스를 제한할 수 있으므로 반도체 장치에 대한 보안성 및 안정성이 향상된다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 반도체 장치를 보여주는 도면이다.
도 1을 참조하면, 반도체 장치(100)는 JTAG(Joint Test Action Group) 인터페이스(110), 디버그 컨트롤러(120), 메모리(130) 그리고 프로세서(140)를 포함한다. 디버그 컨트롤러(120), 메모리(130) 및 프로세서(140)는 버스(101)를 통해 상 호 연결된다. 반도체 장치(100) 내 버스(101)에는 디버그 컨트롤러(120), 메모리(130) 및 프로세서(140) 뿐만 아니라 다양한 기능 블록 회로들이 더 포함될 수 있다.
JTAG 인터페이스(110)는 반도체 장치(100)에 대한 테스트 및 디버깅을 위한 신호 입출력 포트이며, JTAG 표준을 따른다. JTAG 인터페이스(110)를 구비한 반도체 장치(100)는 외부로부터 입력되는 JTAG 표준에 따른 직렬 신호에 따라서 동작할 수 있다. 그러므로 고가의 별도 장비가 없어도 반도체 장치(100)에 대한 하드웨어 디버깅이 가능하다.
본 발명의 JTAG 인터페이스(110)는 외부로부터 입력되는 패스워드에 따라서 메모리(130)에 대한 액세스 레벨을 설정한다. 디버그 컨트롤러(120)는 JTAG 인터페이스(110)로부터 출력되는 신호에 응답해서 메모리(130)에 대한 액세스를 제어한다.
이 실시예에서는 반도체 장치(100)에 JTAG 인터페이스(110)가 구비된 것을 예시적으로 설명하나, 데이터 입출력 인터페이스는 JTAG 인터페이스(110)에 한정되지 않고, 다양하게 변경될 수 있다.
도 2는 도 1에 도시된 메모리(130)를 보여주는 도면이다.
도 2를 참조하면, 메모리(130)는 복수의 메모리 영역들(MB1, MB2, ..., MBn)을 포함한다. 메모리(130)에는 반도체 장치(100)의 전반적인 동작을 위한 프로그램 코드, 애플리케이션 프로그램 코드, 사용자 데이터, 멀티미디어 파일과 같이 다양한 프로그램 코드 및 데이터들이 저장될 수 있다. 메모리(130)는 플래시 메모 리, EEPROM, FeRAM, MRAM, PRAM, RRAM, ROM, 하드 디스크, 광디스크 드라이브 등과 같은 다양한 비휘발성 메모리들 중 어느 하나 일 수 있다.
이 실시예에서 메모리 영역들(MB1, MB2, ..., MBn) 각각은 서로 다른 액세스 레벨을 갖는 다수의 사용자들(SL1, SL2, ..., SLn)에 의해서 액세스될 수 있다. 예컨대, 메모리 영역(MB1)은 패스워드 인증을 통과한 사용자들(SL1, SL2, ..., SLn) 모두에 의해서 액세스될 수 있다. 메모리 영역(MB2)은 사용자(SL1)를 제외하고 나머지 사용자들(SL2, ..., SLn)에 의해서 액세스될 수 있다. 메모리 영역(MBn)은 최상위 액세스 레벨을 갖는 사용자(SLn)에 의해서만 액세스될 수 있다. 이와 같이 단계적 액세스 레벨을 갖는 사용자들(SL1, SL2, ..., SLn)은 서로 다른 패스워드를 할당받고, 할당된 패스워드를 입력하는 것에 의해서 메모리 영역들(MB1, MB2, ..., MBn)에 대한 접근 권한을 부여받을 수 있다.
메모리(130)에 대한 액세스 제한은 다양하게 실시될 수 있다. 예컨대, 메모리(130)를 물리적 어드레스에 따라서 다수의 메모리 영역들(MB1-MBn)로 구분하고, 설정된 액세스 레벨에 따라서 메모리(130)에 대한 특정 어드레스의 액세스를 차단할 수 있다.
도 3은 도 1에 도시된 JTAG 인터페이스(110)의 구체적인 구성을 보여주는 도면이다.
도 3을 참조하면, JTAG 인터페이스(110)는 불휘발성 메모리(310), 보안 JTAG 컨트롤러(320), 해쉬 연산기(330), JTAG 검출기(340) 그리고 액세스 컨트롤러(350)를 포함한다. JTAG 검출기(340)는 외부로부터 입력되는 모드 신호(TMS)를 검출하 고, 검출 신호(DET)를 출력한다. JTAG 검출기(340)는 외부로부터 모드 신호(TMS)가 입력되는 것이 검출되면 활성화된 검출 신호(DET)를 보안 JTAG 컨트롤러(320)와 액세스 컨트롤러(350)로 제공한다. 외부로부터 JTAG 인터페이스(110)로 입력되는 신호에는 모드 신호(TMS) 뿐만 아니라 JTAG 표준에 따른 클럭 신호(TCK), 리셋 신호(TSRT) 및 데이터 입력 신호(TDI) 등이 더 포함될 수 있다.
불휘발성 메모리(310)는 패스워드에 대한 해쉬값(HV)을 저장한다. 이 실시예에서 불휘발성 메모리(310)는 전기적으로 프로그램가능한 이-퓨즈(E-fuse)로 구성된다. 불휘발성 메모리(310)는 패스워드 검사 여부를 나타내는 소프트 락 신호(SLOCK)를 더 저장할 수 있다.
보안 JTAG 컨트롤러(320)는 퓨즈(310)로부터 출력되는 소프트 락 신호(SLOCK)가 로우 레벨이면 보안 제어 기능을 수행하지 않는다. 즉, 퓨즈(310)로부터 출력되는 소프트 락 신호(SLOCK)가 로우 레벨인 동안 보안 JTAG 컨트롤러(320)는 메모리(130)의 모든 영역에 대한 액세스가 허용될 수 있도록 액세스 레벨 신호(AL[i:0])를 출력한다.
보안 JTAG 컨트롤러(320)는 퓨즈(310)로부터 출력되는 소프트 락 신호(SLOCK)가 하이 레벨이면 외부로부터 입력되는 패스워드(PW)에 응답해서 액세스 레벨 신호(AL[i:0])를 출력한다. 패스워드(PW)는 JTAG 표준에 따른 데이터 입력 핀을 통해 입력될 수 있다. 보안 JTAG 컨트롤러(320)는 입력된 패스워드(PW)를 해쉬 연산기(330)의 입력(HIPW)으로 제공한다.
해쉬 연산기(330)는 입력(HIPW)에 대한 해쉬값을 계산하고, 계산된 해쉬 값(HOPW)을 출력한다. 해쉬 연산기(330)는 MD5 및 SHA 등과 같은 해쉬 함수들 중 어느 하나로 해쉬값을 계산한다.
보안 JTAG 컨트롤러(320)는 퓨즈(310)에 저장된 해쉬값(HV)과 해쉬 연산기(330)로부터의 해쉬값(HOPW)을 비교한다. 보안 JTAG 컨트롤러(320)는 퓨즈(310)에 저장된 해쉬값(HV)과 해쉬 연산기(330)로부터의 해쉬값(HOPW)이 일치하지 않으면 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)을 해쉬 연산기(330)의 입력(HIPW)으로 다시 제공한다. 이와 같이 해쉬 연산기(330)는 보안 JTAG 컨트롤러(320)의 제어에 따라서 해쉬 연산을 반복적으로 수행한다. 보안 JTAG 컨트롤러(320)는 퓨즈(310)에 저장된 해쉬값(HV)과 해쉬 연산기(330)로부터의 해쉬값(HOPW)이 일치하면 해쉬 연산기(330)의 해쉬 연산 반복 횟수에 따라서 액세스 레벨 신호(AL[i:0])를 출력한다. 해쉬 연산의 반복 횟수를 세기 위하여 보안 JTAG 컨트롤러(320)는 카운터를 포함할 수 있다. 액세스 레벨 신호(AL[i:0])에 관해서는 추후 상세히 설명한다.
액세스 컨트롤러(350)는 JTAG 검출기(340)로부터 출력되는 검출 신호(DET)가 활성화되고 나서 소프트 락 신호(SLOCK)가 로우 레벨이면, 액세스 레벨 신호(A[i:0])와 무관하게, 메모리(130)의 모든 영역들이 액세스 가능하도록 복수의 제어 신호들(C0-Cj)을 출력한다. 액세스 컨트롤러(350)는 JTAG 검출기(340)로부터 출력되는 검출 신호(DET)가 활성화되고 나서 소프트 락 신호(SLOCK)가 하이 레벨이면, 보안 JTAG 컨트롤러(320)로부터 출력되는 액세스 레벨 신호(A[i:0])에 응답해서 복수의 제어 신호들(C0-Cj)을 출력한다.
도 4a는 도 3에 도시된 퓨즈(310)에 저장되는 해쉬값을 계산하는 해쉬 연산기를 보여주는 도면이다. 도 4b는 도 4a에 도시된 해쉬 연산기(400)에서 해쉬값(HV)을 구하는 과정을 보여주는 플로우차트이다.
도 4a를 참조하면, 해쉬 연산기(400)는 사용자에 의해서 설정된 소정의 패스워드(PWk, k는 양의 정수)를 입력받아서 해쉬 함수 계산에 따른 해쉬값(PWk-1)을 출력한다. 해쉬 연산기(400)는 반복적으로 해쉬값을 계산하고, k=1일 때 해쉬 연산기(400)로부터 출력되는 해쉬값(PW0)이 퓨즈(310)에 저장될 해쉬값(310)으로 선택된다.
도 4b를 참조하면, 최상위 액세스 레벨(n)을 갖는 사용자(SLn)가 임의의 패스워드(PWn)를 설정하면, 도 4a에 도시된 해쉬 연산기(400)는 패스워드(PWn)를 입력받는다(402). 해쉬 연산기(400)는 해쉬값(F(PWn))을 계산한다(404). 해쉬 연산기(400)로부터 출력되는 해쉬값(PWn-1)은 액세스 레벨이 n-1인 사용자(SLn-1)에게 패스워드로 제공된다(406). 추후 액세스 레벨이 n-1인 사용자(SLn-1)는 해쉬값(PWn-1)을 반도체 장치(100)에 입력함으로써 도 2에 도시된 메모리 영역들(MBO, MB1, ..., MBn-1)에 액세스할 수 있다.
다시 도 4a 및 도 4b를 참조하면, 해쉬 연산기(400)로부터 출력되는 해쉬값(PWn-1)은 해쉬 연산기(400)로 입력된다. 해쉬 연산기(400)는 해쉬값(F(PWn-1))을 계산한다(408). 해쉬 연산기(400)로부터 출력되는 해쉬값(PWn-2)은 액세스 레벨이 n-2인 사용자(SLn-2)에게 패스워드로 제공된다. 액세스 레벨이 n-2인 사용자(SLn-2)는 해쉬값(PWn-2)을 반도체 장치(100)에 입력함으로써 도 2에 도시된 메 모리 영역들(MBO, MB1, ..., MBn-1)에 액세스할 수 있다.
이와 같은 방법으로 해쉬값들(PW1, PW2, ...PWn-1)이 계산되고, 계산된 해쉬값들(PW1, PW2, ...PWn-1) 각각은 사용자들(SL1, SL2, ..., SLn-1)에게 패스워드로 제공된다. 다시 말하면, 최상위 액세스 레벨(n)을 갖는 사용자(SLn)만 임의의 패스워드(PWn)를 설정할 수 있고, 나머지 사용자들(SL1, SL2, ..., SLn-1)은 주어진 해쉬값(PW1, PW2, ...PWn-1)을 패스워드로 사용해야 한다. 해쉬 연산기(400)에서 계산된 해쉬값(F(PW1)) 즉, 해쉬값(HV)은 퓨즈(310)에 저장된다.
도 5는 도 3에 도시된 반도체 장치(100)의 액세스 제어 동작 수순을 보여주는 플로우차트이다.
앞서 도 3에서 설명한 바와 같이, 보안 JTAG 컨트롤러(320)는 JTAG 검출기(340)로부터의 검출 신호(DET)가 하이 레벨로 활성화되고, 퓨즈(310)로부터 출력되는 소프트 락 신호(SLOCK)가 하이 레벨이면 외부로부터 패스워드(PW)를 입력받는다(502). 보안 JTAG 컨트롤러(320)는 내부에 카운터(미 도시함)를 포함한다. 카운터의 카운트 값(CNT)은 초기에 n으로 설정된다. 보안 JTAG 컨트롤러(320)는 입력된 패스워드(PW)를 해쉬 연산기(330)의 입력(HIPW)으로 제공한다(506). 해쉬 연산기(330)는 입력(HIPW)에 대한 해쉬 연산(F(PW))을 수행하고, 해쉬값(HOPW)을 출력한다.
보안 JTAG 컨트롤러(320)는 퓨즈(310)에 저장된 해쉬값(HV)과 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)을 비교한다(508). 퓨즈(310)에 저장된 해쉬값(HV)과 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)이 일치하면 카운트 값(CNT)을 액세스 레벨 신호(A[i:0])로 출력한다(530). 액세스 컨트롤러(350)는 액세스 레벨 신호(A[i:0])에 대응하는 제어 신호들(C0-Cj)을 출력한다.
만일 퓨즈(310)에 저장된 해쉬값(HV)과 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)이 일치하지 않으면 보안 JTAG 컨트롤러(320)는 카운트 값(CNT)을 1만큼 감소시킨다(510). 보안 JTAG 컨트롤러(320)는 카운트 값(CNT)이 0인 지를 판별한다(512). 만일 카운트 값(CNT)이 0이 아니면, 보안 JTAG 컨트롤러(320)는 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)을 해쉬 연산기(320)의 입력(HIPW)으로 설정한다(520). 보안 JTAG 컨트롤러(320)는 해쉬값(HIPW)을 해쉬 연산기(320)로 입력으로 제공한다(506). 보안 JTAG 컨트롤러(320)는 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)과 퓨즈(310)에 저장된 해쉬값(HV)이 일치하거나 또는 카운트 값(CNT)이 0이 될 때까지 해쉬 연산기(330)가 반복적으로 해쉬 연산을 수행하도록 제어한다. 만일 카운트 값(CNT)이 0이 될 때까지 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)과 퓨즈(310)에 저장된 해쉬값(HV)이 일치하지 않으면, 입력된 패스워드(PW)가 메모리(130)에 대한 접근 권한이 없는 것으로 간주한다. 이 때 보안 JTAG 컨트롤러(320)는 메모리(130)에 대한 접근을 금지하기 위하여 액세스 레벨 신호(A[i:0])의 모든 비트들을 0으로 설정한다(514).
도 6은 사용자의 액세스 레벨에 따라서 도 3에 도시된 액세스 컨트롤러로부터 출력되는 제어 신호들을 예시적으로 보여주는 도면이다.
도 6에 도시된 예에서, 액세스 레벨은 0부터 4까지 있다. 액세스 레벨 0인 사용자는 메모리(130)에 대한 접근이 금지된다. 액세스 레벨 0인 사용자는 패스워 드가 부여되지 않은 사용자이거나 소정 횟수(도 6에 도시된 예에서는 4회) 패스워드를 입력하는 동안 입력된 패스워드에 대한 해쉬값과 퓨즈(310)에 저장된 해쉬값(HV)이 일치하지 않아서 패스워드 인증에 실패한 사용자이다. 액세스 레벨 1인 사용자(SL1)는 제어 신호(C3)에 의해서 접근 허용된 메모리 영역만을 액세스할 수 있고, 액세스 레벨 2인 사용자(SL2)는 제어 신호들(C1, C3)에 의해서 접근 허용된 메모리 영역들을 액세스할 수 있다. 액세스 레벨 3인 사용자(SL3)는 제어 신호들 (C1, C2, C3)에 의해서 접근 허용된 메모리 영역들을 액세스할 수 있다. 그리고 액세스 레벨 4인 사용자(SL4)는 메모리(130) 전체에 대한 액세스가 가능하다.
액세스 레벨 4인 사용자(SL4)는 반도체 장치(100) 제작자일 수 있다. 사용자(SL4)는 임의의 패스워드(PW)를 설정하고, 도 4a에 도시된 해쉬 연산기(400)를 이용하여 설정된 패스워드에 대한 해쉬값(HV)을 구해서 퓨즈(310)에 미리 저장한다. 이 때 도 4b에 도시된 방법으로 사용자들(SL3, SL2, SL1)에게 제공될 해쉬값들 즉, 패스워드들(PW3, PW2, PW1)이 순차적으로 계산된다.
사용자(SL3)에게 제공된 패스워드(PW3)는 최상위 액세스 레벨(4)을 갖는 사용자(SL4)에 의해서 설정된 패스워드(PW4)를 1회 해쉬 연산하여 구해진 해쉬값이고, 사용자(SL2)에게 제공된 패스워드(PW2)는 패스워드(PW4)를 2회 해쉬 연산하여 구해진 해쉬값이고 그리고 사용자(SL1)에게 제공된 패스워드(PW3)는 패스워드(PW4)를 3회 해쉬 연산하여 구해진 해쉬값이다. 퓨즈(310)에 저장된 해쉬값(HV)은 패스워드(PW4)를 4회 해쉬 연산하여 구해진다.
사용자들(SL1, SL2, SL3, SL4)은 반도체 장치(100) 내 메모리(130)에 액세스 하기 위해서 각각에게 제공된 패스워드를 반도체 장치(100)의 JTAG 인터페이스(110)로 입력해야 한다.
예를 들어, 보안 JTAG 컨트롤러(320)로 입력된 패스워드(PW)가 사용자(SL3)에게 제공된 패스워드(PW3)일 때, 입력된 패스워드(PW3)에 대하여 해쉬 연산기(330)에서 3회 반복 해쉬 연산을 통해 구해진 해쉬값이 퓨즈(310)에 저장된 해쉬값(HV)과 일치하게 된다. 그러므로 해쉬 연산기(330)로부터 출력되는 해쉬값(HOPW)과 퓨즈(310)에 저장된 해쉬값(HV)이 일치할 때 카운트 값(CNT)이 3이면, 액세스 레벨은 3이고, 액세스 레벨 신호(A[i:0])는 '0011'로 출력된다.
해쉬값은 해쉬 함수의 결과로 만들어진 코드이다. 해쉬 함수는 입력값의 길이에 상관없이 일정한 길이를 가진 해쉬값을 출력하는데, 이 때 서로 다른 입력값에 대해서 서로 다른 해쉬값이 생성된다. 또한, 해쉬 함수는 단방향 함수이므로 해쉬값을 가지고, 해쉬 함수의 입력을 유추할 수 없다. 따라서 하위 액세스 레벨의 사용자는 자신에게 주어진 패스워드 즉, 해쉬값을 가지고 상위 액세스 레벨의 사용자에게 주어진 패스워드를 유추할 수 없다.
본 발명은 최상위 액세스 레벨을 갖는 사용자(SLn)에 의해서 설정된 패스워드(PWn)를 n번 반복하여 해쉬 연산하되, 중간 해쉬값들(PWn-1, PWn-2, ..., PW1)은 하위 사용자들의 패스워드로 각각 제공하고, 최종적으로 구해진 해쉬값(HV=PW0) 만을 퓨즈(310)에 저장한다. 본 발명은 다수의 사용자에게 서로 다른 패스워드를 부여하면서도 오직 하나의 해쉬값(HV) 만을 퓨즈(310)에 저장한다. 다수의 사용자에게 부여된 패스워드들 모두를 퓨즈(310)에 저장할 필요가 없으므로, 퓨즈(310)의 크기를 최소화할 수 있다. 더욱이 퓨즈(310)에 저장되는 것은 패스워드가 아닌 해쉬값(HV)이므로 하위 액세스 레벨의 사용자가 상위 액세스 레벨의 사용자의 패스워드를 유추할 수 없다. 따라서 반도체 장치(100)의 보안성이 향상될 수 있다. 또한, 접근이 허용되지 않은 해커에 의해서 퓨즈(310)에 저장된 해쉬값이 노출되더라도 사용자들에게 각기 부여된 패스워드들은 안전하게 보호될 수 있다.
이 실시예에서는 메모리(130)를 복수의 메모리 영역들로 구분하고, 각 메모리 영역들에 대한 액세스 권한을 다수의 사용자에게 분할하여 제공하는 것을 일 예로 설명하였으나, 메모리뿐만 아니라 반도체 장치에 포함된 다른 내부 회로에 대한 액세스를 제한할 수 있다. 또는 액세스 레벨에 따라서 메모리(130)에 저장된 특정 애플리케이션 프로그램들의 실행을 제한하도록 설계될 수 있다. 또는 메모리(130)를 복수의 메모리 영역들로 구분하고, 특정 사용자에게는 소정 메모리 영역에 저장된 데이터에 대한 읽기만을 허용하고, 쓰기는 금지하는 등의 부분적 제한도 가능하다.
도 1은 본 발명의 바람직한 실시예에 따른 반도체 장치를 보여주는 도면이다.
도 2는 도 1에 도시된 메모리를 보여주는 도면이다.
도 3은 도 1에 도시된 JTAG 인터페이스의 구체적인 구성을 보여주는 도면이다.
도 4a는 도 3에 도시된 퓨즈에 저장되는 해쉬값을 계산하는 해쉬 연산기를 보여주는 도면이다.
도 4b는 도 4a에 도시된 해쉬 연산기에서 해쉬값을 구하는 과정을 보여주는 플로우차트이다.
도 5는 도 3에 도시된 반도체 장치의 액세스 제어 동작 수순을 보여주는 플로우차트이다.
도 6은 사용자의 액세스 레벨에 따라서 도 3에 도시된 액세스 컨트롤러로부터 출력되는 제어 신호들을 예시적으로 보여주는 도면이다.

Claims (10)

  1. 인터페이스 회로 및 내부 회로를 포함하는 반도체 장치의 상기 인터페이스 회로에서 상기 내부 회로에 대한 액세스를 제어하는 방법에 있어서:
    입력된 패스워드를 해쉬 연산기의 입력으로 제공하는 단계와;
    상기 해쉬 연산기에서 해쉬 연산을 수행하고, 제1 해쉬값을 출력하는 단계와;
    상기 제1 해쉬값 및 불휘발성 메모리에 저장된 제2 해쉬값이 일치하지 않을 때 상기 제1 해쉬값을 상기 해쉬 연산기의 입력으로 제공하여 상기 해쉬 연산기에서 상기 해쉬 연산을 반복 수행하도록 제어하는 단계; 그리고
    상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수에 따라서 상기 내부 회로에 대한 액세스 레벨을 설정하는 단계를 포함하는 것을 특징으로 하는 반도체 장치의 액세스 제어 방법.
  2. 제 1 항에 있어서,
    상기 해쉬 연산기가 미리 설정된 횟수 n(n은 양의 정수)만큼 상기 해쉬 연산을 반복적으로 수행하는 동안 상기 제1 및 제2 해쉬값들이 일치하지 않으면 상기 내부 회로에 대한 액세스를 금지하는 단계를 더 포함하는 것을 특징으로 하는 반도체 장치의 액세스 제어 방법.
  3. 제 1 항에 있어서,
    상기 액세스 레벨 설정 단계는,
    상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 미리 설정된 횟수 n(n은 양의 정수)이면, 상기 내부 회로에 대한 액세스 레벨을 최상위 레벨로 설정하고;
    상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 k(n보다 작은 양의 정수)이면, 상기 내부 회로에 대한 액세스 레벨을 상기 k에 대응하는 레벨로 설정하는 것을 특징으로 하는 반도체 장치의 액세스 제어 방법.
  4. 제 3 항에 있어서,
    상기 내부 회로는 복수의 메모리 영역들을 포함하는 메모리를 포함하며;
    상기 액세스 레벨 설정 단계는,
    상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 해쉬 연산 횟수에 따라서 상기 메모리의 상기 복수의 메모리 영역들 중 액세스 가능한 영역을 설정하는 단계를 포함하는 것을 특징으로 하는 반도체 장치의 액세스 제어 방법.
  5. 제 4 항에 있어서,
    상기 내부 회로에 대한 액세스 레벨은 단계적 복수의 액세스 레벨들을 포함하며,
    상위 액세스 레벨은 하위 액세스 레벨에서 액세스 가능한 메모리 영역을 액세스할 수 있는 것을 특징으로 하는 반도체 장치의 액세스 제어 방법.
  6. 제 1 항에 있어서,
    상기 제2 해쉬값을 저장하는 상기 불휘발성 메모리는 이-퓨즈 메모리인 것을 특징으로 하는 반도체 장치의 액세스 제어 방법.
  7. 제 1 항에 있어서,
    상기 인터페이스 회로는 JTAG(Joint Test Action Group) 인터페이스를 포함하는 것을 특징으로 하는 반도체 장치의 액세스 제어 방법.
  8. 내부 회로와;
    입력에 대한 해쉬 연산을 수행하고, 제1 해쉬값을 출력하는 해쉬 연산기와;
    제2 해쉬값을 저장하는 불휘발성 메모리와;
    외부로부터 입력된 패스워드를 상기 해쉬 연산기의 입력으로 제공하고, 상기 해쉬 연산기로부터 출력된 제1 해쉬값과 상기 불휘발성 메모리에 저장된 상기 제2 해쉬값이 일치할 때 상기 해쉬 연산의 반복 횟수에 따라서 상기 내부 회로에 대한 액세스 레벨을 설정하는 보안 제어기를 포함하되;
    상기 보안 제어기는 상기 제1 및 제2 해쉬값들이 일치하지 않을 때 상기 제1 해쉬값을 상기 해쉬 연산기의 입력으로 제공하여 상기 해쉬 연산기에서 상기 해쉬 연산을 반복 수행하도록 제어하는 것을 특징으로 하는 반도체 장치.
  9. 제 8 항에 있어서,
    상기 보안 제어기는, 상기 해쉬 연산기로부터 출력되는 상기 제1 해쉬값을 최대 n(n은 양의 정수)번 반복적으로 상기 해쉬 연산기의 입력으로 제공하며,
    상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 상기 n이면, 상기 내부 회로에 대한 액세스 레벨을 최상위 액세스 레벨로 설정하고;
    상기 제1 및 제2 해쉬값들이 일치할 때 상기 해쉬 연산기의 상기 해쉬 연산의 반복 횟수가 k(n보다 작은 양의 정수)이면, 상기 내부 회로에 대한 액세스 레벨을 상기 k에 대응하는 레벨로 설정하는 것을 특징으로 하는 반도체 장치.
  10. 제 9 항에 있어서,
    상기 불휘발성 메모리에 저장되는 상기 제2 해쉬값은, 상기 최상위 액세스 레벨을 갖는 사용자에 의해서 설정된 패스워드를 n번 반복적으로 해쉬 연산해서 구해진 해쉬값인 것을 특징으로 하는 반도체 장치.
KR1020090057179A 2009-06-25 2009-06-25 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법 KR101532363B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090057179A KR101532363B1 (ko) 2009-06-25 2009-06-25 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법
US12/796,110 US8347116B2 (en) 2009-06-25 2010-06-08 Semiconductor device having multi access level and access control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090057179A KR101532363B1 (ko) 2009-06-25 2009-06-25 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법

Publications (2)

Publication Number Publication Date
KR20100138586A KR20100138586A (ko) 2010-12-31
KR101532363B1 true KR101532363B1 (ko) 2015-06-30

Family

ID=43382035

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090057179A KR101532363B1 (ko) 2009-06-25 2009-06-25 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법

Country Status (2)

Country Link
US (1) US8347116B2 (ko)
KR (1) KR101532363B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012116180A1 (en) * 2011-02-23 2012-08-30 Cavium, Inc. Microcode authentication
US9471812B2 (en) * 2012-03-06 2016-10-18 Freescale Semiconductor, Inc. Method for implementing security of non-volatile memory
KR102228454B1 (ko) 2014-02-24 2021-03-16 삼성전자주식회사 보안 디버깅 회로를 갖는 디바이스 및 그것에 대한 디버깅 방법
KR102186609B1 (ko) 2014-03-07 2020-12-03 삼성전자주식회사 무결성 검증 장치를 포함하는 전자 시스템
US20150331043A1 (en) * 2014-05-15 2015-11-19 Manoj R. Sastry System-on-chip secure debug
US9810736B2 (en) * 2015-12-17 2017-11-07 Raytheon Company System and apparatus for trusted and secure test ports of integrated circuit devices
KR102468390B1 (ko) * 2017-05-31 2022-11-18 삼성에스디에스 주식회사 토큰 관리 방법 및 이를 수행하기 위한 서버
US20190007212A1 (en) * 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230231B1 (en) * 1998-03-19 2001-05-08 3Com Corporation Hash equation for MAC addresses that supports cache entry tagging and virtual address tables
US20050065943A1 (en) * 2003-07-10 2005-03-24 Sony Corporation Data management apparatus, data management method and computer program
US20080235772A1 (en) * 2007-03-23 2008-09-25 Sap Ag. Iterated password hash systems and methods for preserving password entropy

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147918A1 (en) * 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US7290084B2 (en) * 2004-11-02 2007-10-30 Integrated Device Technology, Inc. Fast collision detection for a hashed content addressable memory (CAM) using a random access memory
KR20060133760A (ko) * 2005-06-21 2006-12-27 삼성전자주식회사 네트워크 시스템에서의 데이터 관리 방법 및 네트워크시스템
DE102006046456B4 (de) * 2006-09-29 2009-11-05 Infineon Technologies Ag Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte
KR20090037712A (ko) * 2007-10-12 2009-04-16 삼성전자주식회사 보안 부트-업되는 전자 장치, 그것의 해쉬값 계산 방법 및부트-업 방법
US7480805B1 (en) * 2008-01-26 2009-01-20 International Business Machines Corporation Method and system for identifying and processing an unauthorized access request
KR101502032B1 (ko) * 2008-03-06 2015-03-12 삼성전자주식회사 보안 기능을 갖는 프로세서 장치
US8495379B2 (en) * 2009-01-22 2013-07-23 Mitsubishi Electric Research Laboratories, Inc. Method and system for managing a hierarchy of passwords

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230231B1 (en) * 1998-03-19 2001-05-08 3Com Corporation Hash equation for MAC addresses that supports cache entry tagging and virtual address tables
US20050065943A1 (en) * 2003-07-10 2005-03-24 Sony Corporation Data management apparatus, data management method and computer program
US20080235772A1 (en) * 2007-03-23 2008-09-25 Sap Ag. Iterated password hash systems and methods for preserving password entropy

Also Published As

Publication number Publication date
KR20100138586A (ko) 2010-12-31
US20100332783A1 (en) 2010-12-30
US8347116B2 (en) 2013-01-01

Similar Documents

Publication Publication Date Title
KR101532363B1 (ko) 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법
JP4771550B2 (ja) 内部レジスタ・インターフェースを通してハードウェア・ハッキングに抵抗する方法及び装置
US9716708B2 (en) Security certificates for system-on-chip security
CN111095213A (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
US8489888B2 (en) Processor apparatus having a security function
US8990578B2 (en) Password authentication circuit and method
KR20060097045A (ko) 디버깅 장치, 시스템, 방법 및 머신 판독가능한 매체
US8908464B2 (en) Protection for system configuration information
KR20060135467A (ko) 보호된 비휘발성 메모리를 사용하는 시스템 및 방법
US9436844B2 (en) Access enablement security circuit
WO2016080380A1 (ja) ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置
US8230495B2 (en) Method for security in electronically fused encryption keys
US10296738B2 (en) Secure integrated-circuit state management
TWI783531B (zh) 藉由系統單晶片積體電路裝置執行之方法及電腦設備
CN109472172B (zh) 用于防止来自存储器的未授权数据访问的方法
US20070133280A1 (en) Semiconductor integrated circuit apparatus and electronic system
US11636907B2 (en) Integrity verification of lifecycle-state memory using multi-threshold supply voltage detection
KR20150094178A (ko) 보안 장치 및 보안 장치의 제어 방법
TWI715826B (zh) 用於改良一矽基系統之安全性之電腦實施方法及設備
CN106935266B (zh) 从存储器中读取配置信息的控制方法、装置和系统
JP2007064762A (ja) 半導体装置、テストモード制御回路
CN107637009B (zh) 一种用于保护处理器对程序的执行的方法、装置和存储介质
TWI750073B (zh) 具有保全功能的半導體裝置及其保全方法
JP2003203012A (ja) マイクロコンピュータ装置
ES2683998T3 (es) Dispositivo de memoria con modo de prueba segura

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: 20190530

Year of fee payment: 5