KR20140073384A - 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 - Google Patents

보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 Download PDF

Info

Publication number
KR20140073384A
KR20140073384A KR1020130029218A KR20130029218A KR20140073384A KR 20140073384 A KR20140073384 A KR 20140073384A KR 1020130029218 A KR1020130029218 A KR 1020130029218A KR 20130029218 A KR20130029218 A KR 20130029218A KR 20140073384 A KR20140073384 A KR 20140073384A
Authority
KR
South Korea
Prior art keywords
memory
cpu
access
stored
data
Prior art date
Application number
KR1020130029218A
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 US13/848,864 priority Critical patent/US20140164753A1/en
Priority to JP2015546727A priority patent/JP2016511848A/ja
Priority to AU2013355648A priority patent/AU2013355648B2/en
Priority to PCT/KR2013/005128 priority patent/WO2014088172A1/en
Priority to KR1020130091667A priority patent/KR101915005B1/ko
Priority to PCT/KR2013/010403 priority patent/WO2014088239A1/en
Priority to JP2015546371A priority patent/JP2016510444A/ja
Priority to RU2015126874A priority patent/RU2628325C2/ru
Priority to AU2013355576A priority patent/AU2013355576A1/en
Priority to CN201380064091.9A priority patent/CN104871169B/zh
Priority to BR112015010401-0A priority patent/BR112015010401B1/pt
Priority to EP13861166.0A priority patent/EP2907068B1/en
Priority to EP13195128.7A priority patent/EP2741228B1/en
Priority to RU2013154083A priority patent/RU2651213C2/ru
Priority to CN201310659211.1A priority patent/CN103853983B/zh
Priority to US14/098,893 priority patent/US9881161B2/en
Priority to BR102013031549-4A priority patent/BR102013031549B1/pt
Publication of KR20140073384A publication Critical patent/KR20140073384A/ko
Priority to ZA2015/04606A priority patent/ZA201504606B/en
Priority to US15/618,968 priority patent/US10878098B2/en

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/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Abstract

칩 시스템(System on Chip)이 개시된다. 본 칩 시스템은, 복수의 암호화 키가 저장된 제1 메모리, 제2 메모리, 암호화 키 설정 값이 저장된 제3 메모리, 복수의 암호화 키 중에서 암호화 키 설정 값에 대응되는 암호화 키를 이용하여, 외부 비휘발성 메모리에 저장된 암호화된 데이터를 복호화하고, 복호화된 데이터를 제2 메모리에 저장하며, 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 CPU를 포함한다. 이에 따라, 부팅의 보안성을 향상시킬 수 있다.

Description

보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 { SYSTEM ON CHIP FOR PERFORMING SECURE BOOT, IMAGE FORMING APPARATUS COMPRISING IT, AND METHODS THEREOF }
본 발명은 칩 시스템과 이를 이용하는 화상형성장치 및 그 부팅 방법에 대한 것으로, 보다 상세하게는 암호화된 데이터를 이용하여 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법에 대한 것이다.
전자 기술의 발달에 힘입어 다양한 유형의 전자 제품들이 개발되고 있다. 특히 컴퓨터 보급이 대중화됨에 따라, 컴퓨터 주변 기기의 보급율도 나날이 향상되고 있다. 컴퓨터 주변 기기란 컴퓨터의 활용성을 높이기 위한 기기들을 의미한다. 대표적으로는, 프린터, 스캐너, 복사기, 복합기 등과 같은 화상형성장치가 있을 수 있다.
화상형성장치들은 용지나 기타 매체 상에 화상을 형성하는 화상 형성 잡을 수행하는 장치이다. 화상 형성 잡을 수행하기 위해서, 잉크나 토너와 같은 현상제가 사용될 수 있다. 토너를 사용하는 레이저 방식의 화상형성장치의 경우, 대전 유닛, 현상 유닛, 전사 유닛, 노광 유닛, 정착 유닛 등이 사용된다. 이러한 유닛들과 같이 잡 수행에 따라 소모되는 유닛들을 소모품 유닛이라고 할 수 있다. 소모품 유닛은 일정 기간 이상 사용하면 특성이 변경되어 좋은 인쇄 품질을 기대할 수 없게 된다. 특히, 토너를 담고 있는 토너 카트리지의 경우, 토너가 소진되면 토너 카트리지 자체를 교환하여야 하는 경우가 있다. 이러한 상황을 대비하여, 제품 제조 업체에서는 완제품과 별도로 소모품 유닛들도 판매하고 있다.
최근에는 소모품 유닛의 교체 시기를 정확하게 판단할 수 있게 하기 위하여 소모품 유닛 내에 메모리를 내장하는 경우가 있다. 내장되는 메모리에는 각 소모품 유닛의 사용과 관련된 각종 정보가 저장될 수 있다. 하지만, 종래에는 소모품 유닛에 내장된 메모리에 대해 제3자가 용이하게 접근할 수 있다는 문제점이 있었다. 이에 따라, 메모리에 저장되는 정보가 변경될 수 있으며, 이로 인해 소모품 유닛의 사용 및 관리가 어려워지는 문제점이 있었다. 이에 따라, 소모품 유닛의 메모리에 대한 보안성을 강화하고자 하는 시도가 있었다.
하지만, 메모리 자체가 아니라 소모품 유닛과 통신하는 장치 본체에 대한 해킹이 이루어질 수도 있다. 특히 장치 본체에 탑재된 메인 메모리 내의 부팅 과정을 변경하여, 소모품 유닛에 적용된 보안 기술을 우회하는 편법들이 개발될 수 있다. 따라서, 부팅 과정 자체의 보안성을 향상시킬 수 있는 기술에 대한 필요성이 대두되었다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은 암호화된 데이터가 저장된 비휘발성 메모리를 이용하여 보안 부팅을 수행하는 칩 시스템, 이를 포함하는 화상형성장치 및 그 보안 부팅 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따르면, 칩 시스템(System on Chip)은, 복수의 암호화 키가 저장된 제1 메모리, 제2 메모리, 암호화 키 설정 값이 저장된 제3 메모리, 상기 복수의 암호화 키 중에서 상기 암호화 키 설정 값에 대응되는 암호화 키를 이용하여, 외부 비휘발성 메모리에 저장된 암호화된 데이터를 복호화하고, 복호화된 데이터를 상기 제2 메모리에 저장하며, 상기 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 CPU를 포함한다.
그리고, 상기 제1 메모리에는 상기 복수의 암호화 키와 별도로 초기화 데이터가 저장되며, 상기 CPU는 상기 초기화 데이터를 이용하여 초기화 동작을 수행한 후, 상기 암호화된 데이터에 대한 복호화 작업을 수행할 수 있다.
또는, 칩 시스템은, 기 설정된 시간 동안, 외부 포트를 통한 CPU 액세스를 제한하는 제1 회로부를 더 포함할 수도 있다.
그리고, 상기 제1 회로부는, 파워 온이 되면 상기 CPU 액세스를 디스에이블시키기 위한 디스에이블신호를 상기 CPU로 출력하고, 시스템 준비가 완료되면 상기 CPU 액세스를 인에이블시키기 위한 인에이블 신호를 상기 CPU로 출력할 수 있다.
또한, 상기 제1 회로부는, 제1 레지스터를 포함하고, 상기 CPU는, 상기 시스템 준비가 완료되면 상기 제1 레지스터의 저장 값을 변경할 수 있다.
그리고, 상기 제1 메모리에 대한 액세스를 제어하기 위한 제2 회로부 및 제3 회로부를 더 포함할 수도 있다.
또한, 상기 제2 회로부는 제2 레지스터를 포함하고, 상기 제3 회로부는 제3 레지스터를 포함하며, 상기 CPU는, 상기 시스템 준비가 완료되면, 상기 제1 메모리에 대한 액세스를 디스에이블시키기 위한 제어 값을 상기 제2 레지스터에 저장하고, 상기 제1 메모리에 대한 액세스를 상기 제2 메모리에 대한 액세스로 변경시키기 위한 제어 값을 상기 제3 레지스터에 저장할 수도 있다.
한편, 상기 CPU는, 상기 복호화 작업에 실패하면 무한 루프를 실행할 수 있다.
그리고, 상기 CPU는, 파워 온 되면, 상기 제3 메모리에 저장된 선택 값 또는 외부 핀에 의해 지정된 메모리를 확인하여, 상기 제1 메모리가 지정된 상태이면 상기 암호화된 데이터를 이용하는 보안 부팅을 수행하고, 상기 제2 메모리가 지정된 상태이면 상기 외부 비휘발성 메모리에 저장된 비암호화 데이터를 이용하는 노멀 부팅을 수행할 수도 있다.
그리고, 상기 제1 메모리는 MASK ROM 또는 OTP ROM이고, 상기 제2 메모리는 SRAM이며, 상기 제3 메모리는 EFUSE 메모리가 될 수 있다.
한편, 본 발명의 일 실시 예에 따르면, 화상형성장치는, CRUM 칩이 장착된 소모품 유닛, 상기 소모품 유닛을 이용하여 화상형성잡을 수행하고, 상기 화상형성잡의 수행에 따라 상기 CRUM 칩에 기록된 데이터를 업데이트시키는 제어부를 포함할 수 있다. 여기서, 상기 제어부는, 암호화된 데이터가 기록된 비휘발성 메모리 및 상기 화상형성장치가 턴 온 되면 상기 암호화된 데이터를 이용하여 보안 부팅을 수행하고, 상기 보안 부팅이 완료되면 사용자 명령에 따라 상기 화상형성장치를 제어하는 칩 시스템을 포함할 수 있다.
그리고, 상기 칩 시스템(System on Chip)은, 복수의 암호화 키가 저장된 제1 메모리, 제2 메모리, 암호화 키 설정 값이 저장된 제3 메모리, 상기 복수의 암호화 키 중에서 상기 암호화 키 설정 값에 대응되는 암호화 키를 이용하여 상기 비휘발성 메모리에 저장된 데이터를 복호화하고, 복호화된 데이터를 상기 제2 메모리에 저장하며, 상기 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 CPU를 포함할 수 있다.
그리고, 상기 제1 메모리에는 상기 복수의 암호화 키와 별도로 초기화 데이터가 저장되며, 상기 CPU는 상기 초기화 데이터를 이용하여 초기화 동작을 수행한 후, 상기 암호화된 데이터에 대한 복호화 작업을 수행할 수 있다.
또한, 상기 칩 시스템은, 부팅 이벤트가 발생하면, 기 설정된 시간 동안 외부 포트를 통한 CPU 액세스를 제한할 수 있다.
그리고, 상기 칩 시스템은, 파워 온이 되면 상기 CPU 액세스를 디스에이블시키기 위한 디스에이블신호를 상기 CPU로 출력하고, 시스템 준비가 완료되면 상기 CPU 액세스를 인에이블시키기 위한 인에이블 신호를 상기 CPU로 출력하는 제1 회로부를 더 포함할 수 있다.
또한, 상기 제1 회로부는, 제1 레지스터를 포함하고, 상기 CPU는, 상기 시스템 준비가 완료되면 상기 제1 레지스터의 저장 값을 변경할 수 있다.
그리고, 상기 CPU는, 시스템 준비가 완료되면, 상기 제1 메모리에 대한 액세스를 디스에이블시키고, 상기 제1 메모리에 대한 액세스를 상기 제2 메모리에 대한 액세스로 변경시키기 레지스터 설정 작업을 수행할 수 있다.
또한, 상기 CPU는, 파워 온 되면, 상기 제3 메모리에 저장된 선택 값 또는 외부 핀에 의해 지정된 메모리를 확인하여, 상기 제1 메모리가 지정된 상태이면 상기 암호화된 데이터를 이용하는 보안 부팅을 수행하고, 상기 제2 메모리가 지정된 상태이면 상기 외부 비휘발성 메모리에 저장된 비암호화 데이터를 이용하는 노멀 부팅을 수행할 수 있다.
그리고, 상기 제1 메모리는 MASK ROM 또는 OTP ROM이고, 상기 제2 메모리는 SRAM이며, 상기 제3 메모리는 EFUSE 메모리일 수 있다.
한편, 비휘발성 메모리 및 칩 시스템(System on Chip)를 포함하는 화상형성장치의 부팅 방법은, 상기 칩 시스템 내의 제1 메모리에 저장된 초기화 데이터를 이용하여 초기화 동작을 수행하는 초기화 단계, 상기 초기화 동작이 수행되면, 상기 제1 메모리에 저장된 복수의 암호화 키 중 하나를 이용하여, 상기 비휘발성 메모리에 저장된 암호화된 데이터를 복호화하는 단계, 복호화된 데이터를 상기 칩 시스템 내의 제2 메모리에 저장하는 단계, 상기 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 단계를 포함한다.
그리고, 상기 화상형성장치가 파워 온 되면, 상기 칩 시스템 내의 제3 메모리 또는 외부 핀을 통해 입력되는 입력 값에 의해 지정된 메모리를 확인하는 단계, 상기 지정된 메모리가 상기 제1 메모리이면, 상기 칩 시스템 내의 CPU에 대한 액세스를 디스에이블시키는 단계를 더 포함할 수 있다.
또한, 시스템 준비가 완료되면 상기 CPU에 대한 액세스를 인에이블시키는 단계를 더 포함할 수도 있다.
그리고, 상기 시스템 준비가 완료되면, 상기 제1 메모리에 대한 액세스를 디스에이블시키는 단계 및 상기 제1 메모리에 대한 액세스를 상기 제2 메모리에 대한 액세스로 변경시키기 위한 레지스터 설정을 수행하는 단계를 더 포함할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 부팅 과정 자체의 보안성을 향상시킬 수 있어 제3자의 악의적인 해킹으로 인한 피해를 방지할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 칩 시스템의 구성을 나타내는 블럭도,
도 2는 본 발명의 일 실시 예에 따른 보안 부팅 방법을 설명하기 위한 흐름도,
도 3은 본 발명의 다른 실시 예에 따른 칩 시스템의 구성을 나타내는 블럭도,
도 4는 본 발명의 또 다른 실시 예에 따른 칩 시스템이 탑재된 메인 보드의 구성을 나타내는 블럭도,
도 5는 본 발명의 다른 실시 예에 따른 보안 부팅 방법을 설명하기 위한 흐름도,
도 6은 본 발명의 또 다른 실시 예에 따른 보안 부팅 방법을 설명하기 위한 흐름도,
도 7은 도 4의 칩 시스템의 세부 구성의 일 예를 나타내는 회로도,
도 8은 보안 펌웨어의 레이아웃의 일 예를 나타내는 도면,
도 9는 보안 부팅을 수행하기 위한 메모리 맵의 일 예를 나타내는 도면,도 10은 칩 시스템이 탑재된 화상형성장치의 구성의 일 예를 나타내는 블럭도, 그리고,
도 11은 소모품 유닛에 장착 가능한 CRUM 칩 구성의 일 예를 나타내는 블럭도이다.
이하에서 첨부된 도면을 이용하여 본 발명에 대하여 구체적으로 설명한다.
전자 장치는 파워 온 되면, 정상적으로 동작하기 위하여 부팅 과정을 수행하는 것이 일반적이다. 부팅 과정을 통해서 전자 장치는 적절한 초기화를 수행하고 프로그램을 로딩하여 실행시킬 수 있다. 전자 장치의 초기 상태를 결정하는 부팅 과정은 전자 장치의 중요한 운영 파라미터에 영향을 미쳐서, 전자 장치가 사용될 때 실질적인 영향을 미칠 수 있다. 따라서, 부팅 과정을 누구든지 쉽게 변경할 수 있도록 하면 최초에 의도하지 않았던 프로그램이 로딩될 위험이 있으므로, 부팅 과정을 임의로 변경할 수 없도록 안전하게 부팅할 수 있는 방법, 즉 보안 부팅 방법이 필요해진다. 보안 부팅을 위해서 부팅 데이터는 암호화된 상태로 전자 장치 내의 비휘발성 메모리에 저장될 수 있다. 전자 장치의 동작을 제어하는 칩 시스템(100)은 비휘발성 메모리에 액세스한 후, 암호화된 데이터를 복호화하여 보안 부팅 과정을 수행할 수 있다. 이하에서는 칩 시스템의 구성 및 보안 부팅 방법에 대한 다양한 실시 예들을 구체적으로 설명한다.
도 1은 본 발명의 일 실시 예에 따른 칩 시스템의 구성을 나타내는 블럭도이다. 도 1에 따르면, 칩 시스템(100)은 암호화된 데이터가 저장된 비휘발성 메모리(200)를 이용하여 보안 부팅을 수행한다. 도 1의 칩 시스템(100) 및 비휘발성 메모리(200)는 하나의 전자 장치 내에 내장될 수 있다.
칩 시스템(100)은 비휘발성 메모리(200)에 저장된 암호화된 데이터를 이용하여 부팅 과정을 수행한다. 구체적으로는, 부트 BSS(Block Started Symbol), 커널, OS, OS(Wireless Stack), Engine, Emulation, Fixed Segment, Heap, 인증키, 암호화된 OS, 디바이스 드라이버 등과 같은 다양한 데이터들이 암호화되어 비휘발성 메모리(200)에 저장될 수 있다.
암호화 방식으로는, 다양한 방식이 사용될 수 있다. 예를 들어, DES(Data Encryption Standard) 방식, TDES(Triple DES) 방식, AES(고급 암호 표준 : Advanced Encryption Standard) 암호화 방식, SEED 알고리즘, RSA(Rivest Shamir Adleman) 방식, ARIA 알고리즘 등이 사용될 수 있다.
DES 방식은 56비트의 키를 사용하는 대칭키 암호 알고리즘을 이용하여 암호화 및 복호화하는 방식이며, TDES 방식이란 DES를 세 번 반복해서 사용하는 방식이다. AES 방식은 128비트 크기의 블록을 128, 160, 192, 224, 256비트 등 128비트 이상의 모든 32의 배수 비트 길이의 키를 사용하여 암호화 및 복호화하는 방식이다. SEED 방식은 AES와 유사하게 암호화 키 128비트 또는 256 비트를 이용하여 암호화 및 복호화를 수행하는 128비트 블록 암호 방식이다. 또한, RSA 방식은 일방향 함수를 이용하는 공개키 암호 시스템의 일종이고, ARIA(Academy-Research Institute-Agency) 알고리즘은 128비트 블록을 128, 192, 256비트의 키를 이용하여 암호화 및 복호화하는 블록 암호화 방식이다.
비휘발성 메모리(200)에는 이와 같이 다양한 데이터들이 다양한 암호화 방식에 따라 암호화되어 저장될 수 있다. 저장된 데이터나 암호화 방식은 도 1의 칩 시스템(100) 및 비휘발성 메모리(200)가 탑재되는 제품의 특성이나 기타 사용 환경에 따라 선택적으로 적용될 수 있다.
도 1에 따르면 칩 시스템(100)은 제1 메모리(110), 제2 메모리(120), CPU(130)를 포함할 수 있다. 제1 메모리(110)에는 암호화 키가 저장될 수 있다. 제1 메모리(110)는 마스크 롬(MASK ROM)이나 OTP(One Time Programmable) 메모리 등으로 구현될 수 있다.
마스크 롬이란 제조과정에서 내용을 미리 기억시켜 놓은 메모리로 사용자가 그 내용을 변경할 수 없는 롬이다. OTP 메모리는 인 시스템(in - system) 프로그래밍에 사용될 수 있지만, 일단 프로그램되어지면 변경할 수 없는 프로그래머블 ROM의 일종이다.
암호화 키는 비휘발성 메모리(200)에 저장된 데이터, 특히, 부트 코드를 복호화하기 위한 키를 의미한다. 상술한 바와 같이 비휘발성 메모리(200)에는 다양한 방식 중 하나로 암호화된 데이터가 저장될 수 있으며, 이에 대응되는 비트의 암호화 키가 제1 메모리(110)에 저장될 수 있다.
그 밖에, 제1 메모리(110)에는 부트 로더(Boot Loader) 정보도 저장되어 있을 수 있다. 부트로더(boot loader)란 운영 체제가 시동되기 이전에 미리 실행되어, 커널(kernel)이 올바르게 시동될 수 있도록 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키는 프로그램을 의미한다. 즉, 운영체제는 실제 명령어들이 구동되는 커널, 프로그램에 포함된 명령어들을 커널에 전해주는 프레임워크, 그리고 커널과 프레임워크 위에서 구동되는 UI와 같이 크게 세 부분으로 구분된다. 부트 로더는 커널을 시동시키기 전 하드웨어들을 준비하는 역할을 하는 프로그램을 의미한다. 구체적으로는, 제1 메모리(110)에는 프라이빗 부트 로더 정보가 저장될 수 있다. 프라이빗 부트 로더 정보는 시스템 초기화에 필요한 정보를 포함할 수 있다.
제2 메모리(120)는 부팅에 사용되기 위한 내부 메모리이다. 제2 메모리(120)는 초기화가 필요없는 SRAM 등으로 구성될 수 있으나, 이에 한정되는 것은 아니다.
CPU(130)는 칩 시스템(100) 외부에 존재하는 비휘발성 메모리에 저장된 암호화된 데이터를, 제1 메모리(110)에 저장된 암호화 키를 이용하여 복호화하고, 복호화된 데이터를 제2 메모리(120)에 저장한다. 이 후에, CPU(130)는 제2 메모리(120)에 저장된 데이터를 이용하여 부팅을 수행할 수 있다. 복호화 방식은 데이터 암호화 방식에 대응되는 방식으로 이루어질 수 있다.
가령, AES 방식이 채용된 경우를 예로 들면, 암호화할 데이터와 최초 입력한 Cipher Key를 XOR 연산하는 AddRoundKey 과정, 그 연산 결과 값을 특정 규칙에 의해 치환하는 SubBytes 과정, 데이터 행(row)열을 쉬프트시키는 ShiftRows 과정, 데이터 열을 믹스시키는 MixColumn 과정을 10번 반복하여 암호화를 수행한다. 비휘발성 메모리(200)에는 이러한 방식으로 암호화된 데이터가 저장될 수 있다. CPU(130)는 각 암호화 과정들에 대응되는 역과정을 반복 수행하여, 암호화된 데이터를 복호화할 수 있다. 복호화된 데이터는 제2 메모리(120)에 저장되고, CPU(130)는 저장된 데이터를 이용하여 후속 부팅 과정을 수행한다.
또는, RSA 방식이 채용된 경우를 예로 들면, RSA 방식에서는 공개키 {N, E}와 개인키 {N, D}를 이용하여 암호화 및 복호화를 수행한다. 구체적으로는 두 개의 큰 소수 p와 q를 선정한 다음에 Modulus N=p*q와 PI(N)을 계산한다. 그리고, PI(N)=(p-a)(q-1)과 서로소의 관계가 되도록 임의로 E를 선정하고, E*D mon PI(N)=1의 관계에 있는 D를 확장된 유클리드 알고리즘을 이용하여 산출한다. 결과적으로, 공개키 {N, E}와 개인키 {N, D}를 이용하여 RSA 암호화를 수행할 수 있다. RSA 암호화는 E(M)=M^E mod N = C 와 같은 수식을 이용하여 이루어질 수 있다. 여기서, M은 암호화하고자 하는 데이터를 의미한다. 비휘발성 메모리(200)에는 이러한 수식에 따라 암호화된 부트 코드가 저장될 수 있다. 이 경우, CPU(130)는 D(C)=C^D mod N = ((M^E)^D) mod N) = M과 같은 수식을 이용하여 RSA 복호화를 수행할 수 있다. 복호화된 데이터는 제2 메모리(120)에 저장되고, CPU(130)는 저장된 데이터를 이용하여 후속 부팅 과정을 수행한다.
이러한 방식에 따르면, 칩 시스템(100)은 외부 메모리(200)에 저장된 데이터를 암호화된 상태로 칩 시스템(100) 내부로 로딩한 후, 복호화하여 부팅을 할 수 있다. 따라서, 제3자가 외부 메모리(200) 및 칩 시스템(100) 사이에서 통신되는 데이터를 해킹하더라도, 부팅 과정을 변경시킬 수 없게 되므로, 부팅 보안성이 향상될 수 있다.
도 2는 본 실시 예에 따른 보안 부팅 방법을 구체적으로 설명하기 위한 흐름도이다. 도 2에 따르면, 칩 시스템이 탑재된 전자 장치가 파워 온 되면(S210), 칩 시스템은 제1 메모리(110)에 액세스하여 제1 메모리(110)에 저장된 데이터를 검출한다(S220). 구체적으로는, CPU(130)는 특정 어드레스가 할당된 리셋 벡터(reset vector)로 가서 인스트럭션(instruction)을 페치(fetch)한다. 본 실시 예에서, 리셋 벡터의 어드레스는 제1 메모리(110)로 지정되어 있을 수 있다.
CPU(130)는 제1 메모리(110)가 지정된 경우, 제1 메모리(110)에 저장된 데이터들을 이용하여 보안 부팅을 수행한다. 제1 메모리(110)에는 시스템 초기화에 필요한 코드, 암호화된 외부 프로그램 코드의 복호화를 위해 필요한 코드나 암호화 키 등과 같은 다양한 데이터들이 저장될 수 있다.
CPU(130)는 제1 메모리(110)로부터 시스템 초기화에 필요한 코드를 검출하여, 기본 하드웨어에 대한 초기화 작업을 수행한다(S230). 초기화 작업에는 칩 시스템(100) 내부에서 사용되는 클럭(clock)을 내부 PLL(Phase Lock Loop) 회로를 이용하여 빠르게 하는 동작이나, DDR 메모리를 사용하기 위해 DDR 컨트롤러를 초기화하는 동작 등이 포함될 수 있다. 그 밖에, 각종 응용 프로그램 초기 구동, 전자 장치 내부 또는 외부에 연결된 장치들과의 통신 채널 형성에 필요한 셋업, 메모리값 초기화, 내부 레지스터 값 세팅, IO(Input/Output) 세팅, 시리얼 세팅, MAC 어드레스 획득, 이더넷 포트 세팅(Ethernet port setting) 등과 같은 다양한 초기화 동작이 더 포함될 수 있다. 또한, 칩 시스템(100)이 탑재된 전자 장치에 함께 탑재된 다른 하드웨어를 준비시키는 동작도 포함될 수 있다. 이러한 초기화 동작은, 칩 시스템(100)이 탑재된 전자 장치의 종류에 따라 다양하게 구현될 수 있다. 초기화 이외에도 제1 메모리(110)에 저장된 코드를 수행할 수 있다. 가령, Boot Option Pin 설정(SPI/NAND/SD)값을 읽어 해당 부트 옵션에 따라 암호화된 데이터를 제2 메모리(120)에 로딩할 수 있다.
이후에, CPU(130)는 칩 시스템(100) 내부로 로딩된 암호화된 데이터를 복호화한다(S240). CPU(130)는 제1 메모리(110)에 저장된 암호화 키를 이용하여 복호화를 수행할 수 있다. CPU(130)는 복호화된 데이터를 제2 메모리(120), DDR 메모리 등에 저장한다(S250). 그리고, 복호화된 데이터를 이용하여 부팅을 수행한다(S260).
즉, CPU(130)는 복호화된 부트 BSS(Block Started Symbol), 커널 코드, OS, OS(Wireless Stack), Engine, Emulation, Fixed Segment, Heap 등과 같은 데이터를 이용하여, 부팅을 수행할 수 있다. 부팅이란 커널을 로드하고, 프레임워크를 실행시킨 뒤, UI를 실행하여 운영체제를 시동하는 행위를 의미한다.
이상과 같이 본 실시 예에 따르면, 칩 시스템(100) 내부의 암호화되지 않은 된 제1 및 제2 메모리와, 외부의 비휘발성 메모리(200)에 저장된 암호화된 데이터를 이용하여, 보안성이 강화된 부팅을 수행할 수 있다.
도 3은 본 발명의 다른 실시 예에 따른 칩 시스템의 구성을 나타내는 블럭도이다. 도 3에 따르면, 칩 시스템(100)은 제1 메모리(110), 제2 메모리(120), CPU(130) 이외에 제3 메모리(140)를 더 포함할 수 있다.
본 실시 예에 따르면, 제1 메모리(110)에는 복수의 암호화 키가 저장될 수 있다. 제3 메모리(140)는 복수의 암호화 키 중에서 하나를 선택하기 위한 설정 값이 저장될 수 있다. 본 명세서에서는 이러한 설정 값을 암호화 키 설정 값으로 명명한다. 제3 메모리(140)는 OTP 메모리 종류의 하나인 EFUSE 메모리로 구현될 수 있으나, 반드시 이에 한정되는 것은 아니다.
CPU(130)는 제3 메모리(140)에 저장된 설정 값에 따라, 제1 메모리(110)에 저장된 복수의 암호화 키 중 어느 키를 선택할지를 결정한다. 칩 시스템(100) 또는 칩 시스템(100)이 탑재된 전자 장치의 제작자는 사용 중인 키(key)가 노출된 경우, 제3 메모리(140)의 내용을 변경하여 키를 변경한다.
본 실시 예에 따르면, 하나의 암호화 키가 노출되더라도 칩 시스템 자체를 전면 교체할 필요 없이, 제3 메모리(140)에 프로그래밍되는 설정 값만을 변경하여 간단하게 대처할 수 있게 된다.
제2 메모리(120) 및 CPU(130)의 그 밖의 동작에 대해서는 상술한 제1 실시 예에서 설명한 내용과 동일하므로, 중복 설명은 생략한다.
도 4는 칩 시스템(100) 및 비휘발성 메모리(200)가 탑재된 메인 보드(300)의 구성을 나타내는 블럭도이다. 도 4에 따르면, 칩 시스템(100)과 비휘발성 메모리(200)는 하나의 메인 보드(300) 상에 탑재될 수 있다. 메인 보드(300) 내에는 칩 시스템(100) 및 비휘발성 메모리(200) 이외에도 다양한 부품들이 탑재될 수 있으나, 설명의 편의상 이들에 대한 도시는 생략한다.
칩 시스템(100)은 제1 메모리(110), 제2 메모리(120), CPU(130), 제3 메모리(140), 버스(150)를 포함한다. 도 4에 따르면, CPU(130)는 제1 내지 제3 메모리(110, 120, 140)를 비롯한 각종 구성요소들과 버스(150)를 통해서 연결될 수 있다. 버스(150)는 어드레스 버스, 데이터 버스, 제어 버스(control bus) 등과 같은 다양한 유형의 버스를 포함할 수 있다.
도 3 및 도 4에 도시된 칩 시스템(100)은 제3 메모리(140)를 이용하여 암호화 방식을 적절하게 선택할 수 있다.
도 5는 도 3 또는 도 4에서 도시한 칩 시스템에서의 보안 부팅 방법을 설명하기 위한 흐름도이다. 도 5에 따르면, 칩 시스템(100)이 탑재된 전자 장치가 파워 온되면(S510), 칩 시스템(100)의 CPU(130)는 제1 메모리(110)에 액세스하여(S520), 초기화 데이터를 확인한다. 제1 메모리(110)로의 액세스는 리셋 벡터(reset vector)로부터 페치되는 인스트럭션에 따라 이루어질 수 있다. CPU(130)는 확인된 초기화 데이터에 따라 기본 하드웨어를 초기화하는 초기화 동작을 수행한다(S530). 초기화 동작의 예에 대해서는 상술한 도 2에 대한 설명 부분에서 구체적으로 기재한 바 있으므로, 중복 설명은 생략한다. 한편, CPU(130)는 보안 부팅이 이루어지는 동안에는 외부 포트를 통한 CPU(130) 액세스를 금지시킬 수도 있다.
초기화가 이루어지면 CPU(130)는 제3 메모리(140)에 저장된 선택 값을 확인하여(S540), 제1 메모리(110)에 저장된 복수의 암호화 키 중에서 선택 값에 대응되는 암호화 키를 선택한다(S550). CPU(130)는 암호화 키가 선택되면, 비휘발성 메모리(200)에 저장된 암호화된 데이터를 암호화키를 이용하여 복호화하고, 인증을 수행한다(S560). 복호화된 데이터는 제2 메모리(120) 및 DDR 메모리 등에 복사된다.
복호화는 상술한 바와 같이 DES(Data Encryption Standard) 방식, TDES(Triple DES) 방식, AES(고급 암호 표준 : Advanced Encryption Standard) 암호화 방식, SEED 알고리즘, RSA(Rivest Shamir Adleman) 방식, ARIA 방식 등과 같은 다양한 암호화 알고리즘에 따라 수행될 수 있다.
인증은 데이터 중 인증 코드의 유효성을 검증하는 과정이다. 인증을 위해서는 HMAC-SHA256, HMAC-SHA1, HMAC-MD5 등과 같은 인증 알고리즘이 사용될 수 있다. 이들 인증 알고리즘은 한 개의 비밀 키를 공유하는 키 기반의 인증 알고리즘으로 특히 HMAC 절차는 RFC 204(메시지 인증 코드를 위한 키 해싱(Keyed-Hashing))에 정의되어 있다. 이와 같이 복호화를 위한 암호화 키 값, 인증을 위한 키 값 등은 제1 메모리(110)에 저장되어 있음은 상술한 바와 같다.
CPU(130)는 유효하지 않은 인증 코드로 판별되거나 복호화에 실패하면(S570), 프로그램의 수행을 멈추고 무한 루프에 빠지게 된다(S595).
반면, 복호화 및 인증에 성공하여 모든 시스템 준비가 완료되면, CPU(130)는 어드레스 맵을 변경한다(S580). 이에 따라, 제1 메모리(110)에 대한 액세스가 시도되었을 때, 제2 메모리(120)에 대한 액세스로 강제 전환된다.
이후에는 CPU(130)는 제2 메모리(120)에 복사되어 있는 복호화된 데이터를 이용하여 부팅을 수행한다(S590). 부팅 과정은 상술한 부분에서 이미 설명한 바 있으므로, 중복 설명은 생략한다.
한편, 이상과 같은 실시 예에서는 보안 부팅을 수행하는 칩 시스템의 구성 및 동작에 대하여 설명하였으나, 칩 시스템의 사용 환경에 따라 보안 부팅 및 노멀 부팅을 선택적으로 수행할 수 있는 실시 예로 구현될 수도 있다.
도 6은 본 발명의 또 다른 실시 예에 따른 칩 시스템에서의 부팅 방법을 설명하기 위한 흐름도이다. 본 실시 예에 따르면, 비휘발성 메모리(200)에는 암호화된 데이터, 비암호화된 데이터가 함께 저장될 수 있다.
이러한 상태에서, 전자 장치가 파워 온 되면(S610), CPU(130)는 보안 부팅을 수행할 것인지 노멀 부팅을 수행할 것인지 여부를 판단한다(S615). 즉, 파워 온이 되면 CPU(130)는 리셋 벡터로 가서 인스터럭션을 페치(fetch)한다. 리셋 벡터는 제1 메모리(110) 또는 제2 메모리(120)로 지정되어 있을 수 있다. 즉, 제1 메모리(110)와 제2 메모리(120)는 동일한 어드레스(예를 들어, 0xffff0000)로 버스(150)에 의해 매핑되어 있다. CPU(130)는 리셋 벡터에서 어드레스 0xffff0000를 확인하면, 제1 메모리(110) 및 제2 메모리(120) 중에서 지정된 메모리로 액세스하게 된다. 메모리는 CPU(130)로 연결된 외부 핀을 통해 입력되는 지정 값이나 제3 메모리(140)에 저장된 지정 값에 의해 지정될 수 있다.
제2 메모리(120)가 지정된 경우에는 보안 부팅이 아닌 노멀 부팅을 하는 것으로 판단한다(S615 : N). 이 경우, CPU(130)는 비휘발성 메모리(200)에 액세스하여 비암호화된 데이터를 이용하여 노멀 부팅을 수행한다(S620).
반면, 제1 메모리(110)가 지정된 경우에는 보안 부팅을 하는 것으로 판단한다(S615 : Y). 보안 부팅을 수행하는 경우에는 CPU(130)는 제1 메모리(110)에 액세스하여(S625), 초기화 데이터를 검출한다(S630). 이에 앞서, CPU(130)는 외부 포트를 통한 CPU(130) 액세스를 강제로 금지시킬 수 있다.
그리고, 초기화 데이터를 이용하여 각종 기본 하드웨어들을 초기화시킨다(S635). 그리고, 비휘발성 메모리(200)에 저장된 암호화된 데이터를 제2 메모리(120)로 로딩시킨다.
그리고 나서, CPU(130)는 보안 부팅 모드인지 여부를 판단할 수도 있다(S635). 즉, 상술한 바와 같이 외부 핀(이하, 제1 외부 핀)이나 제3 메모리(140)를 이용하여, 제1 메모리(110)를 지정하는 것과는 별개로, 보안 부팅을 수행할지 여부를 선택할 수 있다. 가령, 비휘발성 메모리(200)에 암호화되지 않은 데이터를 저장하더라도, 제1 메모리(110)를 이용하여 부팅을 수행할 수 있다. 이 경우, 복호화 과정은 생략된다. 보안 부팅 모드인지 여부는 제3 메모리(140) 내의 또 다른 지정 값이나, 또 다른 외부 핀(이하, 제2 외부 핀)을 이용하여 설정할 수 있다.
보안 부팅 모드가 설정된 상태라면, CPU(130)는 제1 메모리(110)에 저장된 암호화 키를 이용하여 복호화 및 인증을 수행한다(S640). 복호화 및 인증은 각각 상술한 바와 같은 다양한 알고리즘에 따라 수행될 수 있다.
복호화 및 인증 중 적어도 하나가 실패하면(S645 : N), CPU(130)는 무한 루프에 빠지게 된다(S660). 반면, 복호화 및 인증에 성공하면(S645 : Y), 어드레스 맵을 변경하여(S650), 이후의 단계에서는 제1 메모리(110) 대신에 제2 메모리(120)를 이용하는 동작이 이루어질 수 있도록 한다. 이에 따라, 제1 메모리(110)에 저장된 코드는 어드레스 맵 변경 이후에는 액세스가 불가해진다. 이 때, JTAG으로도 Code 및 Key 값 추적이 불가능하며, 액세스시에는 0xffffff로 읽히게끔 설계될 수도 있다.
어드레스 맵이 변경되고 나면, 제2 메모리(120)에 복사된 데이터(가령, 1차 부트로더(1st bootloader))로 점프(jump)하여, 이를 이용한 부팅을 수행한다(S655). 1차 부트로더란 2차 부트 로더를 메모리에 로딩하기 위한 부트로더를 의미한다. 사용자 인터페이스 제공 및 커널을 로딩 하는 부트 로더의 핵심 기능은 2차 부트로더에서 수행된다. 공간 부족을 고려하여 부트로더를 1차 및 2차 부트로더로 구분하여 구현할 수 있다.
이상 설명한 바와 같이, 칩 시스템은 다양한 형태로 구현되어, 보안 부팅을 수행할 수 있다.
도 7은 칩 시스템의 세부 구성의 일 예를 설명하기 위한 도면이다. 도 7에 따르면, 칩 시스템(100)은 제1 메모리(110), 제2 메모리(120), CPU(130), 제3 메모리(140), 버스(150) 이외에도 DDR 컨트롤러(185) 및 기타 다양한 회로부(155, 160, 165, 170, 175, 180)를 포함할 수 있다. 도 7에서는 제1 메모리(110)가 MASK ROM으로 구현되고, 제2 메모리(120)는 SRAM으로 구현되며, 제3 메모리(140)는 EFUSE 메모리로 구현된 경우를 나타낸다. 제3 메모리(140)는 암호화 키를 선택하기 위한 설정값(key 1, 2, 3)과 보안 부팅 여부를 설정하기 위한 지정 값(MASK ROM) 등이 저장될 수 있다.
각 회로부(155, 160, 165, 170, 175, 180)들은 레지스터, 논리 회로, 멀티플렉서 등과 같은 다양한 소자들의 조합으로 이루어질 수 있다. 제1 회로부(155)는 제1 레지스터(155-1)를 포함한다. CPU(130)는 제1 회로부(155)를 이용하여 외부 포트를 통한 CPU 액세스를 제어할 수 있다. 구체적으로는, 제1 회로부(155)는 제1 레지스터(155-1)에 기입된 값에 대응되는 JTAG_EN 신호를 CPU(130)로 입력한다.
즉, 부팅 이벤트가 발생하면 제4 회로부(170)는 외부 핀을 통해 입력되는 값과 제3 메모리(140)를 통해 입력되는 지정 값에 대한 OR 연산 결과를 출력한다. 부팅 이벤트는 칩 시스템 또는 칩 시스템이 탑재된 장치가 파워 온 되는 경우를 포함한다. 보안 부팅을 수행하고자 하는 경우 제3 메모리(140)에는 1이 기록될 수 있으며, 이에 따라 제4 회로부(170)에서는 1이 출력된다. 제4 회로부(170)의 출력 값은 제2 회로부(160) 및 제3 회로부(165)로 각각 입력된다.
제2 회로부(160) 및 제3 회로부(165)는 각각 제1 메모리(110)에 대한 액세스를 제어하기 위한 제2 및 제3 레지스터(160-1, 165-1)를 포함한다. 제2 회로부(160)로 입력되는 제4 회로부(170)의 출력 값 1은 반전된다. 따라서, 제2 회로부(160)에는 0이 입력된다. 제2 회로부(160)는 OR 게이트를 이용하여 입력 값 0과 제2 레지스터(160-1)의 저장값의 OR 연산 값을 출력한다. 초기 상태에서 제2 레지스터(160-1)에는 0과 같은 값이 기록될 수 있으므로, 결과적으로 제2 회로부(160)는 제1 회로부(150)로 0을 출력한다.
제1 회로부(150)에서는 제1 레지스터(155-1)를 포함한다. 제1 회로부(150)는 제1 레지스터(155-1)에 저장된 값 및 외부 값을 선택적으로 출력하는 먹스를 포함한다. 제2 회로부(160)에서 0이 입력되면, 제1 회로부(150)는 CPU 액세스를 디스에이블시키기 위한 신호를 CPU(130)로 출력한다. 이에 따라, 외부 포트를 통한 CPU 액세스가 기 설정된 시간, 가령 파워 온 이후 보안 부팅이 이루어지는 동안 제한될 수 있다.
CPU(130)는 파워 온이 되면, 제3 메모리(140)에 저장된 선택 값 또는 외부 핀을 통해 입력되는 입력 값에 의해 지정된 메모리를 확인한다. 확인 결과, 지정된 메모리가 제1 메모리(110)이면, CPU 액세스를 디스에이블시키기 위한 제1 값(가령, 1)을 제1 레지스터(155-1)에 저장한다.
한편, CPU(130)는 시스템 준비가 완료되면 CPU 액세스를 인에이블시키기 위한 제2 값(가령, 0)을 제1 레지스터(155-1)에 저장한다. 또한, 제2 회로부(160) 내의 제2 레지스터(160-1)의 저장 값 역시 변경한다.
구체적으로는, CPU(130)는 시스템 준비가 완료되면, 제1 메모리(110)에 대한 액세스를 디스에이블시키기 위한 제어 값(예를 들어, 1)을 제2 레지스터(160-1)에 기록하여, 제1 메모리(110)의 모든 영역 데이터를 읽지 못하게 한다. 제2 레지스터(160-1)의 저장 값이 1로 변경되면 제2 회로부(160)의 출력 값은 1로 변경된다.
또한, CPU(130)는 제1 메모리(110)에 대한 액세스를 제2 메모리(120)에 대한 액세스로 변경시키기 위한 제어 값(예를 들어, 1)을 제3 레지스터(165-1)에 기록한다. 이 경우, CPU(130)가 제1 메모리(110)에 접근할 때 제2 메모리(120)로 접근되도록 자동으로 변경된다. 제2 메모리(120)에는 복호화된 코드가 미리 복사되어 있어, CPU(130)는 이를 이용할 수 있다.
제4 회로부(170)는 외부 핀 또는 제3 메모리(140)를 통해 입력되는 지정 값을 제공하는 OR 게이트를 포함할 수 있다. CPU(130)는 제4 회로부(170)를 통해 입력되는 지정 값에 따라 보안 부팅 여부를 판단할 수 있다.
먹스(175)는 제2 메모리(120) 또는 제2 회로부(160)로부터 입력되는 값을 선택적으로 버스(150)로 입력한다.
플래시 부트 로더(180)는 부트 로더를 저장하기 위한 플래시 메모리를 의미한다. 플래시 부트 로더(180)는 노멀 부팅을 수행할 때 비휘발성 메모리(200)에 저장된 프라이빗 부트 로더를 로딩한다. CPU(130)는 플래시 부트 로더(180)를 이용하여 노멀 부팅을 수행한다.
DDR 컨트롤러(185)는 외부의 DDR(Double data rate) 메모리(400)에 대한 데이터 R/W를 제어하기 위한 컨트롤러이다.
이상과 같이, 칩 시스템(100)은 다양한 형태로 구현되어, 비휘발성 메모리(200) 및 DDR 메모리(300) 등과 함께 사용될 수 있다.
도 8은 제1 메모리(110)에 저장되는 데이터의 레이아웃의 일 예를 나타낸다. 도 8에 따르면, 제1 메모리(110)에는 인증 코드(910), 보안 부트로더 헤더(920), 제1 부트 로더(930) 등이 저장된다.
인증 코드(910)는 다양한 암호화 알고리즘에 따라 암호화되어 저장될 수 있다. 가령, 상술한 바와 같이 HMAC-SHA256, HMAC-SHA1, HMAC-MD5 등과 같은 인증 알고리즘 등에 의해 암호화되어 저장될 수 있다.
보안 부트로더 헤더(920)는 전자 서명 정보, 오프셋값, 사이즈, 날짜 정보, 사용자 ID 등을 포함할 수 있다. 도 8에서 보안 부트로더 헤더(920)는 상술한 바와 같이 DES(Data Encryption Standard) 방식, TDES(Triple DES) 방식, AES(고급 암호 표준 : Advanced Encryption Standard) 암호화 방식, SEED 알고리즘, RSA(Rivest Shamir Adleman) 방식, ARIA 알고리즘 등과 같은 다양한 암호화 알고리즘 중 하나에 의해 암호화되어 저장될 수 있다.
제1 부트로더(930) 역시 내부 보안성을 위해 암호화된 상태로 저장될 수 있다.
도 8에서 부트로더(930)는 내부 보안성을 위해 복수의 NOP 지시에 따라 개시되도록 구현될 수도 있다.
도 9는 칩 시스템(100)의 메모리 맵의 일 예를 나타낸다. 도 9에 따르면, 제1 메모리(110)에는 특정 어드레스에 프라이빗 부트 로더가 저장되어 있다. 프라이빗 부트 로더는 노멀 부팅 시에 사용될 수 있다.
반면, 보안 부팅이 이루어질 경우, CPU(130)는 비휘발성 메모리(200)에 저장된 제1 부트로더를 스톤 레지스터 내의 영역(191)이나 제2 메모리(120) 내의 특정 영역(192)에 로딩시킨다. 그리고, 암호화 키를 이용하여 제1 부트로더를 복호화한 후, 복호화된 제1 부트로더를 제2 메모리(120) 내의 특정 영역(121)에 복사(copy)한다. 제2 메모리(120)에는 읽기/쓰기 동작을 위한 RW 섹션(122), 범용 영역(123) 등과 같이 다양한 영역이 마련될 수 있다.
이상과 같이, 칩 시스템은 다양한 내부 메모리를 이용하여 외부 비휘발성 메모리(200)의 암호화된 데이터를 처리할 수 있다.
또한, 전자 장치의 생산자 또는 전자 장치를 사용하는 서비스 사업자는 전자 장치 내부에 자신만 알고 있는 비밀키를 안전하게 저장하기를 원하는 경우가 있다. 비밀키는 다양한 용도로 사용될 수 있다. 예를 들어, 비밀키는 커널(kernel)의 일부 영역 또는 전체 영역을 암호화하거나 전자 장치와 생산자 또는 전자 장치와 서비스 사업자 사이에 안전한 통신 채널을 만드는데 사용할 수도 있다. 칩 시스템(100) 내의 제1 메모리(110)나 제3 메모리(140)를 OTP 메모리로 구현하여, 상술한 비밀키를 저장할 수도 있다.
이상과 같은 다양한 실시 예에 따른 칩 시스템은 다양한 유형의 전자 장치에 사용될 수 있다. 일 예로, 프린터나 복합기, 팩시밀리, 스캐너 등과 같은 화상형성장치에 사용될 수 있다.
본 발명의 일 실시 예에 따르면, 화상형성장치는 각종 소모품 유닛 및 제어부를 포함할 수 있다. 제어부는 소모품 유닛을 이용하여 화상형성잡을 수행할 수 있다. 소모품 유닛이 CRUM 칩이 장착된 형태인 경우에는, 제어부는 화상형성잡의 수행에 따라 CRUM 칩에 기록된 데이터를 업데이트시킬 수 있다.
제어부는 비휘발성 메모리 및 칩 시스템을 포함할 수 있다. 비휘발성 메모리에는 암호화된 데이터가 기록될 수 있다. 칩 시스템은 화상형성장치가 턴온되면, 비휘발성 메모리에 저장된 암호화된 데이터를 이용하여 보안 부팅을 수행하고, 보안 부팅이 완료되면 사용자 명령에 따라 화상형성장치를 제어할 수 있다.
도 10은 화상형성장치의 세부 구성의 일 예를 나타내는 블럭도이다. 도 10에 따르면, 화상형성장치(1000)는 제어부(1100), 저장부(1200), 유저 인터페이스부(1300), 통신부(1400), 전원 공급부(1500), 복수의 소모품 유닛(1600-1 ~ 1600-n)을 포함한다.
저장부(1200)는 HDD나 기타 스토리지를 포함할 수 있다. 저장부(1200)는 반드시 내장 메모리로만 구현되는 것은 아니며, 화상형성장치(1000)에 탈부착 가능한 외장 메모리로 구현될 수도 있다.
유저 인터페이스부(1300)는 사용자로부터 각종 선택 명령을 입력받기 위한 부분이다. 유저 인터페이스부(1300)는 디스플레이 패널 및 적어도 하나 이상의 버튼을 포함할 수 있다. 이 경우, 디스플레이 패널은 터치 스크린으로 구현될 수 있다. 유저 인터페이스부(1300)는 각종 UI 화면을 제공하여 주고, 사용자는 UI 화면을 직접 터치하거나, 유저 인터페이스부(1300)에 구비된 버튼을 조작하여 각종 사용자 명령을 입력할 수 있다.
통신부(1400)는 네트워크 또는 로컬로 외부 디바이스와 연결되어, 데이터 및 코맨드를 수신할 수 있다. 즉, 통신부(1400)는 호스트 PC와의 사이에서 로컬 인터페이스로 연결되거나, 네트워크와 유선 또는 무선으로 연결되어 복수 개의 외부 디바이스와 연결될 수 있다. 무선 통신 규격으로는, 미국의 IEEE(미국전기전자학회) 802.11규격, 유럽의 하이퍼랜(hyper LAN) 규격, 일본의 MMAC-PC 규격 등이 사용될 수 있다. 그 밖에, 와이파이나 블루투스, 지그비, NFC(Nearfield Frequency Communication)등과 같은 다양한 통신 방식에 따라 통신을 수행할 수 있다.
전원 공급부(1500)는 화상형성장치(1000) 내의 각 구성요소들에 대해 전원을 공급하는 역할을 한다. 구체적으로는, 전원 공급부(1500)는 외부로부터 상용 교류 전원을 입력받아(AC_IN), 트랜스포머(transformer), 인버터(inverter), 정류기 등과 같은 소자들을 이용하여, 각 구성요소에 적합한 전위 레벨의 직류 전원으로 변환하여 출력(DC_OUT)할 수 있다.
제어부(1100)는 칩 시스템(SoC)(100) 및 비휘발성 메모리(200)를 포함한다. 이에 따라, 화상형성장치(1000)가 턴온되면 제어부(1100)는 보안 부팅을 수행한다. 보안 부팅은 상술한 바와 같이 다양한 방식으로 수행될 수 있다. 보안 부팅을 수행하는 칩 시스템(100)의 구성 및 동작의 다양한 예에 대해서는 상술한 부분에서 구체적으로 설명하였으므로, 중복 설명은 생략한다.
부팅이 완료되면, 제어부(1100)는 통신부(1400)를 통해 연결된 외부 디바이스의 데이터 및 커맨드나, 유저 인터페이스부(1300)를 통해 입력된 사용자 선택 명령 등에 따라, 화상형성장치 세트 전반을 제어한다.
구체적으로는, 호스트 PC에 설치된 프린터 드라이버 또는 어플리케이션에서 인쇄 명령이 실행되면, 호스트 PC의 프린터 드라이버는 해당 문서를 소정의 프린터 언어로 변환한 인쇄 데이터를 생성한다. 제어부(1100)는 이러한 인쇄 데이터를 통시눕(1400)를 통해 수신한다. 제어부(1000)는 하프톤 테이블(Halftone Table)을 이용하여, 인쇄 데이터를 "0"과 "1"로 구성된 비트맵 이미지로 변환한 후, 복수의 소모품 유닛(1600-1 ~ 1600-n)을 제어하여 비트맵 이미지를 용지 상에 인쇄한다.
소모품 유닛(1600-1 ~ 1600-n)은 화상형성장치(1000)의 종류에 따라 다양하게 마련될 수 있다. 일 예로, 레이저 복합기인 경우라면, 소모품 유닛(1600-1 ~ 1600-n)은, 급지부, 대전부, 노광부, 현상부, 전사부, 정착부, 배지부, 스캐닝 유닛, 스캔 모터 등으로 구성될 수 있다. 이들 각 소모품 유닛(1600-1 ~ 1600-n)들 중 적어도 일부는 CRUM 칩(1610-1 ~ 1610-n)을 포함할 수 있다.
CRUM 칩(1610-1 ~ 1610-n)은 메모리만으로 구현될 수도 있으며, 메모리 및 CPU를 포함하는 형태로 구현될 수도 있다. 또한, 제어부(1100)와 별도로 O/S를 가지며, 그 O/S를 이용하여 자체적으로 초기화를 수행할 수도 있다. CRUM 칩(1610-1 ~ 1610-n)은 제어부(1100)와의 사이에서 인증을 수행하고, 인증에 성공되면 암호화 데이터 통신을 수행할 수 있다. 이 밖에도, CRUM 칩(1610-1 ~ 1610-n)은 다양한 형태로 구성될 수 있다.
도 11은 CRUM 칩의 세부 구성의 일 예를 나타내는 블럭도이다. 도 11에 따르면, 본 CRUM 칩(1610)은, O/S 메모리(1611), 비휘발성 메모리(1612), 휘발성 메모리(1613), CPU(1614), 크립토 유닛(Crypto unit)(1615), 템퍼 검출기(temper detector)(1616), 인터페이스부(1617)를 포함한다. 도시되지는 않았으나, CRUM 칩(1610) 내에는 클럭신호를 출력하는 클럭부(미도시)나, 인증을 위한 랜덤값을 생성하는 랜덤값 생성부(미도시) 등이 더 포함될 수도 있으며, 일부 구성요소는 삭제될 수도 있고, 다른 구성요소에 포함될 수도 있다.
O/S 메모리(1611)에는 소모품 유닛(1610)을 구동시키기 위한 O/S가 저장된다. 비휘발성 메모리(1612)에는 소모품 유닛, CRUM 칩 등과 관련된 각종 데이터 및 프로그램이 저장될 수 있다. 구체적으로는, 전자 서명 정보나, 각종 암호화 프로그램 코드, 소모품 유닛의 상태 정보(예를 들어, 토너 잔량 정보, 교체 시기 정보, 잔여 인쇄 매수 정보 등), 고유 정보(예를 들어, 제조사 정보, 제조일시 정보, 일련 번호, 제품 모델 명 등), A/S 정보 등이 저장될 수 있다. CPU(1614)는 비휘발성 메모리(1612)에 저장된 프로그램 및 데이터를 휘발성 메모리(1613)로 로딩시켜, 사용할 수 있다.
크립토 유닛(1615)은 암호화 알고리즘을 지원하여, CPU(1614)가 화상형성장치의 본체에 마련된 제어부(1100)와의 사이에서 인증이나, 암호화된 통신을 수행할 수 있도록 한다. 구체적으로는, 크립토 유닛(1615)은 상술한 다양한 암호화 알고리즘을 사용하여 인증 또는 암호화 데이터 통신을 수행할 수 있다.
템퍼 검출기(1616)는 다양한 물리적인 해킹 시도, 즉, 템퍼링을 방어하기 위한 유닛이다. 구체적으로는, 전압, 온도, 압력, 빛, 주파수 등의 동작 환경에 대하여 모니터링을 하여, Decap과 같은 시도가 있을 경우, 데이터를 지워버리거나 물리적으로 차단한다. 이 경우, 템퍼 검출기(1616)는 별도의 전원을 구비할 수도 있다.
이와 같이, 크립토 유닛(1615) 및 템퍼 검출기(1616)를 구비함으로써, 하드웨어나 소프트웨어 모두를 이용하는 체계적인 데이터 보안이 가능해진다.
인터페이스부(1617)는 CPU(1614) 및 제어부(1100)를 연결시키는 역할을 한다. 구체적으로는, 시리얼 인터페이스나 무선 인터페이스로 구현될 수 있다.
이상과 같이 칩 시스템은 화상형성장치에 탑재되어, 보안 부팅을 수행할 수 있다. 이에 따라, 부팅 과정을 변경하거나, 소모품 유닛의 데이터를 제3 자가 해킹하여 사용하는 것을 방지할 수 있다. 이 밖에도, 칩 시스템은 화상형성장치 이외의 다양한 전자 장치에 탑재되어 사용될 수도 있다.
이러한 보안 부팅 동작은 비일시적 판독 가능 매체에 저장된 프로그램에 의해 수행될 수 있다. 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
구체적으로는, 칩 시스템 내의 제1 메모리에 저장된 초기화 데이터를 이용하여 초기화 동작을 수행하는 초기화 단계, 초기화 동작이 수행되면, 제1 메모리에 저장된 복수의 암호화 키 중 하나를 이용하여, 비휘발성 메모리에 저장된 암호화된 데이터를 복호화하는 단계, 복호화된 데이터를 칩 시스템 내의 제2 메모리에 저장하는 단계, 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 단계를 순차적으로 수행하기 위한 프로그램 코드가 저장된 비일시적 판독 가능 매체가 사용될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 칩 시스템 200 : 비휘발성 메모리
110 : 제1 메모리 120 : 제2 메모리
130 : CPU

Claims (23)

  1. 칩 시스템(System on Chip)에 있어서,
    복수의 암호화 키가 저장된 제1 메모리;
    제2 메모리;
    암호화 키 설정 값이 저장된 제3 메모리;
    상기 복수의 암호화 키 중에서 상기 암호화 키 설정 값에 대응되는 암호화 키를 이용하여, 외부 비휘발성 메모리에 저장된 암호화된 데이터를 복호화하고, 복호화된 데이터를 상기 제2 메모리에 저장하며, 상기 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 CPU;를 포함하는 칩 시스템.
  2. 제1항에 있어서,
    상기 제1 메모리에는 상기 복수의 암호화 키와 별도로 초기화 데이터가 저장되며,
    상기 CPU는 상기 초기화 데이터를 이용하여 초기화 동작을 수행한 후, 상기 암호화된 데이터에 대한 복호화 작업을 수행하는 것을 특징으로 하는 칩 시스템.
  3. 제2항에 있어서,기 설정된 시간 동안, 외부 포트를 통한 CPU 액세스를 제한하는 제1 회로부;를 더 포함하는 것을 특징으로 하는 칩 시스템.
  4. 제3항에 있어서,
    상기 제1 회로부는,
    파워 온이 되면 상기 CPU 액세스를 디스에이블시키기 위한 디스에이블신호를 상기 CPU로 출력하고, 시스템 준비가 완료되면 상기 CPU 액세스를 인에이블시키기 위한 인에이블 신호를 상기 CPU로 출력하는 것을 특징으로 하는 칩 시스템.
  5. 제4항에 있어서,
    상기 제1 회로부는, 제1 레지스터를 포함하고,
    상기 CPU는,
    상기 시스템 준비가 완료되면 상기 제1 레지스터의 저장 값을 변경하는 것을 특징으로 하는 칩 시스템.
  6. 제5항에 있어서,
    상기 제1 메모리에 대한 액세스를 제어하기 위한 제2 회로부 및 제3 회로부;를 더 포함하는 것을 특징으로 하는 칩 시스템.
  7. 제6항에 있어서,
    상기 제2 회로부는 제2 레지스터를 포함하고, 상기 제3 회로부는 제3 레지스터를 포함하며,
    상기 CPU는,
    상기 시스템 준비가 완료되면, 상기 제1 메모리에 대한 액세스를 디스에이블시키기 위한 제어 값을 상기 제2 레지스터에 저장하고, 상기 제1 메모리에 대한 액세스를 상기 제2 메모리에 대한 액세스로 변경시키기 위한 제어 값을 상기 제3 레지스터에 저장하는 것을 특징으로 하는 칩 시스템.
  8. 제1항에 있어서,
    상기 CPU는,
    상기 복호화 작업에 실패하면 무한 루프를 실행하는 것을 특징으로 하는 칩 시스템.
  9. 제1항에 있어서,
    상기 CPU는,
    파워 온 되면, 상기 제3 메모리에 저장된 선택 값 또는 외부 핀에 의해 지정된 메모리를 확인하여, 상기 제1 메모리가 지정된 상태이면 상기 암호화된 데이터를 이용하는 보안 부팅을 수행하고, 상기 제2 메모리가 지정된 상태이면 상기 외부 비휘발성 메모리에 저장된 비암호화 데이터를 이용하는 노멀 부팅을 수행하는 것을 특징으로 하는 칩 시스템.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 메모리는 MASK ROM 또는 OTP ROM이고,
    상기 제2 메모리는 SRAM이며,
    상기 제3 메모리는 EFUSE 메모리인 것을 특징으로 하는 칩 시스템.
  11. 화상형성장치에 있어서,
    CRUM 칩이 장착된 소모품 유닛;
    상기 소모품 유닛을 이용하여 화상형성잡을 수행하고, 상기 화상형성잡의 수행에 따라 상기 CRUM 칩에 기록된 데이터를 업데이트시키는 제어부;를 포함하며,
    상기 제어부는,
    암호화된 데이터가 기록된 비휘발성 메모리; 및
    상기 화상형성장치가 턴 온 되면 상기 암호화된 데이터를 이용하여 보안 부팅을 수행하고, 상기 보안 부팅이 완료되면 사용자 명령에 따라 상기 화상형성장치를 제어하는 칩 시스템을 포함하는, 화상형성장치.
  12. 제11항에 있어서,
    상기 칩 시스템(System on Chip)은,
    복수의 암호화 키가 저장된 제1 메모리;
    제2 메모리;
    암호화 키 설정 값이 저장된 제3 메모리;
    상기 복수의 암호화 키 중에서 상기 암호화 키 설정 값에 대응되는 암호화 키를 이용하여 상기 비휘발성 메모리에 저장된 데이터를 복호화하고, 복호화된 데이터를 상기 제2 메모리에 저장하며, 상기 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 CPU;를 포함하는 것을 특징으로 하는 화상형성장치.
  13. 제12항에 있어서,
    상기 제1 메모리에는 상기 복수의 암호화 키와 별도로 초기화 데이터가 저장되며,
    상기 CPU는 상기 초기화 데이터를 이용하여 초기화 동작을 수행한 후, 상기 암호화된 데이터에 대한 복호화 작업을 수행하는 것을 특징으로 하는 화상형성장치.
  14. 제13항에 있어서,
    상기 칩 시스템은,부팅 이벤트가 발생하면, 기 설정된 시간 동안 외부 포트를 통한 CPU 액세스를 제한하는 것을 특징으로 하는 화상형성장치.
  15. 제14항에 있어서,
    상기 칩 시스템은,
    파워 온이 되면 상기 CPU 액세스를 디스에이블시키기 위한 디스에이블신호를 상기 CPU로 출력하고, 시스템 준비가 완료되면 상기 CPU 액세스를 인에이블시키기 위한 인에이블 신호를 상기 CPU로 출력하는 제1 회로부를 더 포함하는 것을 특징으로 하는 화상형성장치.
  16. 제15항에 있어서,
    상기 제1 회로부는, 제1 레지스터를 포함하고,
    상기 CPU는,
    상기 시스템 준비가 완료되면 상기 제1 레지스터의 저장 값을 변경하는 것을 특징으로 하는 화상형성장치.
  17. 제12항에 있어서,
    상기 CPU는,
    시스템 준비가 완료되면, 상기 제1 메모리에 대한 액세스를 디스에이블시키고, 상기 제1 메모리에 대한 액세스를 상기 제2 메모리에 대한 액세스로 변경시키기 레지스터 설정 작업을 수행하는 것을 특징으로 하는 화상형성장치.
  18. 제12항에 있어서,
    상기 CPU는,
    파워 온 되면, 상기 제3 메모리에 저장된 선택 값 또는 외부 핀에 의해 지정된 메모리를 확인하여, 상기 제1 메모리가 지정된 상태이면 상기 암호화된 데이터를 이용하는 보안 부팅을 수행하고, 상기 제2 메모리가 지정된 상태이면 상기 외부 비휘발성 메모리에 저장된 비암호화 데이터를 이용하는 노멀 부팅을 수행하는 것을 특징으로 하는 화상형성장치.
  19. 제12항 내지 제18항 중 어느 한 항에 있어서,
    상기 제1 메모리는 MASK ROM 또는 OTP ROM이고,
    상기 제2 메모리는 SRAM이며,
    상기 제3 메모리는 EFUSE 메모리인 것을 특징으로 하는 화상형성장치.
  20. 비휘발성 메모리 및 칩 시스템(System on Chip)를 포함하는 화상형성장치의 부팅 방법에 있어서,
    상기 칩 시스템 내의 제1 메모리에 저장된 초기화 데이터를 이용하여 초기화 동작을 수행하는 초기화 단계;
    상기 초기화 동작이 수행되면, 상기 제1 메모리에 저장된 복수의 암호화 키 중 하나를 이용하여, 상기 비휘발성 메모리에 저장된 암호화된 데이터를 복호화하는 단계;
    복호화된 데이터를 상기 칩 시스템 내의 제2 메모리에 저장하는 단계;
    상기 제2 메모리에 저장된 데이터를 이용하여 부팅을 수행하는 단계;를 포함하는 부팅 방법.
  21. 제20항에 있어서,
    상기 화상형성장치가 파워 온 되면, 상기 칩 시스템 내의 제3 메모리 또는 외부 핀을 통해 입력되는 입력 값에 의해 지정된 메모리를 확인하는 단계;
    상기 지정된 메모리가 상기 제1 메모리이면, 상기 칩 시스템 내의 CPU에 대한 액세스를 디스에이블시키는 단계;를 더 포함하는 것을 특징으로 하는 부팅 방법.
  22. 제21항에 있어서,
    시스템 준비가 완료되면 상기 CPU에 대한 액세스를 인에이블시키는 단계;를 더 포함하는 것을 특징으로 하는 부팅 방법.
  23. 제22항에 있어서,
    상기 시스템 준비가 완료되면, 상기 제1 메모리에 대한 액세스를 디스에이블시키는 단계; 및
    상기 제1 메모리에 대한 액세스를 상기 제2 메모리에 대한 액세스로 변경시키기 위한 레지스터 설정을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 부팅 방법.
KR1020130029218A 2012-12-06 2013-03-19 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 KR20140073384A (ko)

Priority Applications (19)

Application Number Priority Date Filing Date Title
US13/848,864 US20140164753A1 (en) 2012-12-06 2013-03-22 System on chip for performing secure boot, image forming apparatus using the same, and method thereof
JP2015546727A JP2016511848A (ja) 2012-12-06 2013-06-11 セキュアブート(secureboot)を行うチップシステムと、それを用いる画像形成装置及びそのセキュアブート方法
AU2013355648A AU2013355648B2 (en) 2012-12-06 2013-06-11 System on chip for performing secure boot, image forming apparatus using the same, and method thereof
PCT/KR2013/005128 WO2014088172A1 (en) 2012-12-06 2013-06-11 System on chip for performing secure boot, image forming apparatus using the same, and method thereof
KR1020130091667A KR101915005B1 (ko) 2012-12-06 2013-08-01 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 부팅 방법
CN201380064091.9A CN104871169B (zh) 2012-12-06 2013-11-15 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法
JP2015546371A JP2016510444A (ja) 2012-12-06 2013-11-15 セキュアブート(secureboot)を行うチップシステムと、それを用いる画像形成装置及びそのセキュアブート方法
RU2015126874A RU2628325C2 (ru) 2012-12-06 2013-11-15 Система на кристалле для выполнения безопасной начальной загрузки, использующее ее устройство формирования изображения и способ ее использования
AU2013355576A AU2013355576A1 (en) 2012-12-06 2013-11-15 System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
PCT/KR2013/010403 WO2014088239A1 (en) 2012-12-06 2013-11-15 System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
BR112015010401-0A BR112015010401B1 (pt) 2012-12-06 2013-11-15 Sistema em um chip para executar uma inicialização segura.
EP13861166.0A EP2907068B1 (en) 2012-12-06 2013-11-15 System on chip to perform a secure boot
EP13195128.7A EP2741228B1 (en) 2012-12-06 2013-11-29 System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
RU2013154083A RU2651213C2 (ru) 2012-12-06 2013-12-05 Система на кристалле для выполнения безопасной загрузки, устройство формирования изображений, использующее ее, и способ для него
CN201310659211.1A CN103853983B (zh) 2012-12-06 2013-12-06 执行安全引导的片上系统、使用其的图像形成装置及方法
US14/098,893 US9881161B2 (en) 2012-12-06 2013-12-06 System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
BR102013031549-4A BR102013031549B1 (pt) 2012-12-06 2013-12-06 sistema-em-um-chip, aparelho formador de imagens, e método de inicialização de um aparelho formador de imagens
ZA2015/04606A ZA201504606B (en) 2012-12-06 2015-06-25 System on chip for performing secure boot, image forming apparatus using the same, and method thereof
US15/618,968 US10878098B2 (en) 2012-12-06 2017-06-09 System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261734158P 2012-12-06 2012-12-06
US61/734,158 2012-12-06

Publications (1)

Publication Number Publication Date
KR20140073384A true KR20140073384A (ko) 2014-06-16

Family

ID=51126947

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020130029218A KR20140073384A (ko) 2012-12-06 2013-03-19 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
KR1020130091667A KR101915005B1 (ko) 2012-12-06 2013-08-01 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 부팅 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020130091667A KR101915005B1 (ko) 2012-12-06 2013-08-01 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 부팅 방법

Country Status (9)

Country Link
EP (2) EP2907068B1 (ko)
JP (2) JP2016511848A (ko)
KR (2) KR20140073384A (ko)
CN (2) CN104871169B (ko)
AU (2) AU2013355648B2 (ko)
BR (1) BR102013031549B1 (ko)
RU (2) RU2628325C2 (ko)
WO (1) WO2014088239A1 (ko)
ZA (1) ZA201504606B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170006334A (ko) * 2015-07-07 2017-01-18 (주)이더블유비엠 보안기능을 가지는 SoC 및 SoC의 보안방법
KR20180007717A (ko) * 2016-07-13 2018-01-24 (주)이더블유비엠 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
WO2021071090A1 (ko) * 2019-10-08 2021-04-15 한화테크윈 주식회사 보안 부팅 장치 및 그 동작 방법

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11013408B2 (en) * 2014-03-19 2021-05-25 Ascensia Diabetes Care Holdings Ag Clinical data obfuscation and enhancement systems and methods for wireless medical devices
CN104065668A (zh) * 2014-07-04 2014-09-24 福州大学 采用分层防御模式提高用户管理系统安全性的方法
KR102208072B1 (ko) * 2014-09-01 2021-01-27 삼성전자주식회사 데이터 처리 시스템
JP6430847B2 (ja) * 2015-02-05 2018-11-28 株式会社メガチップス 半導体記憶装置
DE102015001801A1 (de) * 2015-02-16 2016-08-18 IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH Autonom bootendes System mit einer Verschlüsselung des gesamten Datenspeichers und Verfahren hierfür
US10025600B2 (en) * 2015-10-02 2018-07-17 Google Llc NAND-based verified boot
US9864879B2 (en) * 2015-10-06 2018-01-09 Micron Technology, Inc. Secure subsystem
CN105760750B (zh) * 2016-02-01 2019-06-14 北京华胜天成科技股份有限公司 软件篡改识别方法和系统
KR102530889B1 (ko) * 2016-04-06 2023-05-11 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
KR102547795B1 (ko) * 2016-05-04 2023-06-27 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
EP3465521A4 (en) * 2016-05-27 2020-01-22 Hewlett-Packard Development Company, L.P. FIRMWARE MODULE ENCRYPTION
EP3252651A1 (en) * 2016-05-30 2017-12-06 Samsung Electronics Co., Ltd Computing system having an on-the-fly encryptor and an operating method thereof
US10855462B2 (en) * 2016-06-14 2020-12-01 Honeywell International Inc. Secure in-band upgrade using key revocation lists and certificate-less asymmetric tertiary key pairs
CN108229196B (zh) * 2016-12-09 2021-09-07 上海新微技术研发中心有限公司 一种具有存储单元物理保护机制的soc芯片及方法
KR102617354B1 (ko) * 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
US10587421B2 (en) 2017-01-12 2020-03-10 Honeywell International Inc. Techniques for genuine device assurance by establishing identity and trust using certificates
CN106682535A (zh) * 2017-03-16 2017-05-17 周清睿 系统级芯片
US10708061B2 (en) 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
US10402567B2 (en) 2017-06-25 2019-09-03 Microsoft Technology Licensing, Llc Secure boot for multi-core processor
US10503892B2 (en) 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
KR20190036779A (ko) 2017-09-28 2019-04-05 경희대학교 산학협력단 보안 펌웨어 업데이트 방법 및 시스템
KR102432451B1 (ko) * 2018-01-10 2022-08-12 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
TWI666556B (zh) 2018-03-27 2019-07-21 緯創資通股份有限公司 電子裝置及其操作方法
CN108595981B (zh) * 2018-05-09 2021-07-20 深圳市桑格尔科技股份有限公司 加密安卓系统的方法
KR102545102B1 (ko) * 2018-05-15 2023-06-19 현대자동차주식회사 차량용 제어기 및 그 업데이트 방법
CN111492353B (zh) 2018-08-15 2023-07-18 华为技术有限公司 一种安全的数据转移装置、系统和方法
KR102558901B1 (ko) * 2018-09-19 2023-07-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN109491712B (zh) * 2018-11-01 2021-09-10 北京京航计算通讯研究所 一种适用于VxWorks环境的可信引导方法
CN109376550A (zh) * 2018-11-01 2019-02-22 郑州云海信息技术有限公司 一种目标部件的启动控制方法、装置及设备
CN109672521B (zh) * 2018-12-26 2022-11-29 贵州华芯通半导体技术有限公司 基于国密加密引擎实现的安全存储系统和方法
US10833929B2 (en) * 2018-12-27 2020-11-10 Juniper Networks, Inc. Secure remote bootstrapping of network device
KR20200129595A (ko) 2019-05-09 2020-11-18 에스케이하이닉스 주식회사 메모리 모듈, 메모리 모듈의 동작 방법, 메모리 시스템 및 메모리 모듈의 동작 방법
JP7287115B2 (ja) * 2019-05-30 2023-06-06 京セラドキュメントソリューションズ株式会社 集積回路及び集積回路の制御方法
US20210203496A1 (en) * 2019-12-30 2021-07-01 Giuseppe Cariello Secure key update for replay protected memory blocks
CN111290977B (zh) * 2020-01-16 2021-11-16 芯创智(北京)微电子有限公司 一种基于ddr多数据单元的寄存器访问系统及方法
JP7393226B2 (ja) 2020-01-29 2023-12-06 キヤノン株式会社 情報処理装置とその起動方法
TWI749458B (zh) * 2020-02-05 2021-12-11 瑞昱半導體股份有限公司 驗證方法和驗證系統
US11768611B2 (en) * 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
JP6974549B1 (ja) 2020-07-17 2021-12-01 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. メモリ装置およびその入出力バッファ制御方法
KR20220036569A (ko) 2020-09-16 2022-03-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN112416824B (zh) * 2020-12-03 2024-02-09 上海集成电路研发中心有限公司 efuse读写控制器、芯片、电子设备及控制方法
KR102266163B1 (ko) * 2021-04-06 2021-06-17 주식회사 틴텍 인쇄장치의 셋업 방법
WO2023048707A1 (en) * 2021-09-22 2023-03-30 Hewlett-Packard Development Company, L.P. Encrypted storage

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249108B1 (en) * 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Validation protocol and system
US6141756A (en) * 1998-04-27 2000-10-31 Motorola, Inc. Apparatus and method of reading a program into a processor
CN1132333C (zh) * 1998-08-04 2003-12-24 日本电气株式会社 具有卷动显示控制功能的无线通信装置
US7814337B2 (en) * 2000-01-06 2010-10-12 Super Talent Electronics, Inc. Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
DE10108487A1 (de) * 2001-02-22 2002-09-12 Giesecke & Devrient Gmbh Verfahren und System zur verteilten Erstellung eines Programms für einen programmierbaren, tragbaren Datenträger
JP4349788B2 (ja) * 2002-10-31 2009-10-21 パナソニック株式会社 半導体集積回路装置
US7836308B2 (en) * 2003-06-19 2010-11-16 Qualcomm Incorporated Apparatus and method for multiple function authentication device
US9547623B2 (en) * 2003-07-02 2017-01-17 Sigmatel, Inc. Flexible memory interface system for independently processing different portions of an instruction
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20070083491A1 (en) * 2004-05-27 2007-04-12 Silverbrook Research Pty Ltd Storage of key in non-volatile memory
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US8467528B2 (en) * 2006-08-31 2013-06-18 Advanced Micro Devices, Inc. Multimedia content protection
US7636816B2 (en) * 2006-09-29 2009-12-22 Broadcom Corporation Global address space management
US7809934B2 (en) * 2006-10-13 2010-10-05 Texas Instruments Incorporated Security measures for preventing attacks that use test mechanisms
US20080294838A1 (en) * 2007-05-25 2008-11-27 Agere Systems Inc. Universal boot loader using programmable on-chip non-volatile memory
JP4865694B2 (ja) * 2007-12-28 2012-02-01 ラピスセミコンダクタ株式会社 プロセッサ装置
US20090172420A1 (en) * 2007-12-31 2009-07-02 Kabushiki Kaisha Toshiba Tamper resistant method and apparatus for a storage device
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
KR101484110B1 (ko) * 2008-02-29 2015-01-28 삼성전자주식회사 메모리 컨트롤러 및 그에 따른 메모리 장치
KR100997239B1 (ko) * 2008-03-03 2010-11-29 삼성전자주식회사 Crum 유닛, 교체가능유닛 및 이를 이용하는 화상형성장치와, 그 인증 및 암호화 데이터 통신 방법
US8156317B2 (en) * 2008-05-16 2012-04-10 Ati Technologies Ulc Integrated circuit with secure boot from a debug access port and method therefor
US8725123B2 (en) * 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8954804B2 (en) * 2008-07-15 2015-02-10 Ati Technologies Ulc Secure boot circuit and method
KR101460665B1 (ko) * 2008-07-16 2014-11-12 삼성전자주식회사 메모리 인터페이스를 사용한 SoC 디바이스 검증 모델
EP2318935B1 (en) * 2008-07-23 2014-11-19 Micro Motion, Inc. Processing system with external memory access control
US8594333B2 (en) * 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170006334A (ko) * 2015-07-07 2017-01-18 (주)이더블유비엠 보안기능을 가지는 SoC 및 SoC의 보안방법
KR20180007717A (ko) * 2016-07-13 2018-01-24 (주)이더블유비엠 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
WO2021071090A1 (ko) * 2019-10-08 2021-04-15 한화테크윈 주식회사 보안 부팅 장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR20140073397A (ko) 2014-06-16
EP2741228B1 (en) 2020-03-18
AU2013355648A1 (en) 2015-04-16
EP2907068A1 (en) 2015-08-19
EP2907068B1 (en) 2019-01-09
RU2013154083A (ru) 2015-06-10
EP2907068A4 (en) 2016-12-21
JP2016511848A (ja) 2016-04-21
RU2651213C2 (ru) 2018-04-18
RU2015126874A (ru) 2017-01-13
WO2014088239A1 (en) 2014-06-12
EP2741228A3 (en) 2014-08-13
CN103853983B (zh) 2019-04-12
CN103853983A (zh) 2014-06-11
EP2741228A2 (en) 2014-06-11
AU2013355648B2 (en) 2018-12-06
BR102013031549A2 (pt) 2016-02-16
BR112015010401A2 (pt) 2017-07-11
JP2016510444A (ja) 2016-04-07
CN104871169B (zh) 2018-02-06
KR101915005B1 (ko) 2019-01-07
RU2628325C2 (ru) 2017-08-15
ZA201504606B (en) 2016-06-29
CN104871169A (zh) 2015-08-26
BR102013031549B1 (pt) 2021-01-26
AU2013355576A1 (en) 2015-04-09

Similar Documents

Publication Publication Date Title
KR101915005B1 (ko) 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 부팅 방법
US10878098B2 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US20140164753A1 (en) System on chip for performing secure boot, image forming apparatus using the same, and method thereof
RU2611014C2 (ru) Блок, использующий операционную систему, и устройство формирования изображения, использующее его
US8782388B2 (en) Information processing apparatus, method, and computer-readable storage medium that encrypt data in a blob based on a hash value
JP5736994B2 (ja) 情報処理装置、正当性検証方法、及びプログラム
Meijer et al. Self-encrypting deception: weaknesses in the encryption of solid state drives
KR102547034B1 (ko) 정보 처리 장치 및 그 제어 방법
JP2016146618A (ja) 情報処理装置
Meijer et al. Self-encrypting deception: weaknesses in the encryption of solid state drives (SSDs)
JP7263101B2 (ja) 情報処理装置、データ検証方法
JP4760150B2 (ja) アプリケーション開発用プログラムおよび画像処理装置
BR112015010401B1 (pt) Sistema em um chip para executar uma inicialização segura.
JP2005144823A (ja) 画像形成装置及びその交換部品