KR100937784B1 - 데이터 처리 장치 및 데이터 처리 방법 - Google Patents

데이터 처리 장치 및 데이터 처리 방법 Download PDF

Info

Publication number
KR100937784B1
KR100937784B1 KR1020070018600A KR20070018600A KR100937784B1 KR 100937784 B1 KR100937784 B1 KR 100937784B1 KR 1020070018600 A KR1020070018600 A KR 1020070018600A KR 20070018600 A KR20070018600 A KR 20070018600A KR 100937784 B1 KR100937784 B1 KR 100937784B1
Authority
KR
South Korea
Prior art keywords
data
command
storage device
hdd
information
Prior art date
Application number
KR1020070018600A
Other languages
English (en)
Other versions
KR20070088389A (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 캐논 가부시끼가이샤
Publication of KR20070088389A publication Critical patent/KR20070088389A/ko
Application granted granted Critical
Publication of KR100937784B1 publication Critical patent/KR100937784B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/80Protecting 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 storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

데이터 암호화 장치는 HDD와 HDD를 제어하는 HDD 컨트롤러 사이에 접속된다. 데이터 암호화 장치는 HDD 컨트롤러로부터 HDD로 저장되는 데이터를 암호화하고, HDD로부터 판독되는 데이터를 복호화한다. 데이터 암호화 장치의 CPU는 HDD 컨트롤러로부터 HDD로 발행된 명령을 수신하고, 명령이 HDD에서 실행 가능한지의 여부를 판정한다. 명령이 실행 가능하다고 판정되면, 명령은 HDD로 발행된다. 한편, 명령이 실행 불가능하다고 판정되면, CPU는 HDD로의 명령 발행을 금지한다. 더 나아가, HDD로 발행된 명령이 특정 명령이면, CPU는 HDD 컨트롤러와 HDD 사이에서 전송되는 데이터를 암호화 또는 복호화 없이 바이패스한다.
데이터 처리 장치, 제어 장치, 저장 장치, 데이터 암호화 장치, 암호화, 복호화

Description

데이터 처리 장치 및 데이터 처리 방법 {DATA PROCESSING DEVICE AND DATA PROCESSING METHOD}
명세서에 첨부되고 그 일부를 구성하는 첨부 도면들은 명세서와 함께 본 발명의 수많은 실시예들, 특징들 및 양상들을 도시하고, 본 발명의 원리를 설명하는 기능을 한다.
도 1은 본 발명의 실시예에 따른 데이터 암호화 장치가 사용될 수 있는 시스템을 도시하는 블록도.
도 2는 본 실시예에 따른 제1 제어 프로그램의 일례를 나타내는 흐름도.
도 3은 데이터가 외부 저장 장치(예를 들어, HDD)에 기입되는 경우의 데이터 흐름을 나타내는 도면.
도 4는 데이터가 외부 저장 장치(예를 들어, HDD)로부터 판독되는 경우의 데이터 흐름을 나타내는 도면.
도 5는 데이터 암호화 장치의 동작 모드들을 설명하기 위한 상태 전이도(state transition diagram).
도 6은 도 1에 도시된 ATA 버스 선택기의 구성을 도시하는 블록도.
도 7a 내지 도 7c는 데이터 암호화 장치의 개개 동작 모드들에서의, 도 6에 도시된 ATA 버스 선택기의 동작들을 설명하기 위한 도면들.
도 8은 데이터 암호화 장치에 의해 실행 가능한 확장 명령들을 나타내는 도면.
도 9는 통상 모드에서 데이터 암호화 장치에 의해 실행 가능한 명령들을 나타내는 도면.
도 10은 본 실시예에 따른 제2 제어 프로그램의 일례를 나타내는 흐름도.
도 11a는 본 실시예에 따른 제3 제어 프로그램의 일례를 나타내는 흐름도.
도 11b는 본 실시예에 따른 제3 제어 프로그램의 일례를 나타내는 흐름도.
도 12는 본 실시예에 따른 제4 제어 프로그램의 일례를 나타내는 흐름도.
도 13은 본 실시예에 따른 제5 제어 프로그램의 일례를 나타내는 흐름도.
도 14는 본 실시예에 따른 제6 제어 프로그램의 일례를 나타내는 흐름도.
도 15는 본 실시예에 따른 제7 제어 프로그램의 일례를 나타내는 흐름도.
도 16은 데이터 암호화 장치에 의해 판독가능한 다양한 데이터 처리 프로그램들을 저장하는 저장 매체(기록 매체)의 메모리 맵을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨터 시스템
101 : HDD 컨트롤러
102 : 데이터 암호화 장치
103 : HDD
104, 105 : ATA 버스
106 : CPU
107 : ATA 버스 선택기
108 : 장치 인터페이스(I/F)
109 : 암호화 및 복호화 유닛
110 : 호스트 인터페이스(I/F)
<발명의 분야>
본 발명은 데이터 처리 장치들 및 데이터 처리 방법들에 관한 것이다.
<관련 기술의 설명>
컴퓨터 시스템들에서, 데이터는 종종 외부 저장 장치들에 저장된다. 하드 디스크 드라이브(HDD)와 같은 외부 저장 장치는 케이블(예를 들어, IDE 케이블, SCSI 케이블, USB 케이들, 또는 IEEE 1395 케이블) 등을 통해 컴퓨터 시스템에 접속되고, 그에 따라, 외부 저장 장치가 컴퓨터 시스템과 물리적으로 통합되지 않고 컴퓨터 시스템으로부터 분리될 수 있다. 이와 같이, 외부 저장 장치가 컴퓨터 시스템으로부터 분리되어 분석되면, 외부 저장 장치에 저장된 데이터가 누설될 수 있다.
이러한 위협에 대한 대책이, 외부 저장 장치에 저장된 데이터의 암호화이다. 좀더 구체적으로, 외부 저장 장치에 기입되는 데이터는 암호화되고 외부 저장 장치로부터 판독되는 데이터는 복호화됨으로써, 외부 저장 장치에 저장된 데이터의 누 설을 방지한다.
기존의 컴퓨터 시스템에 암호화 및 복호화 기능을 새롭게 추가하기 위한 3가지 접근 방법들이 존재한다.
제1 접근 방법은 컴퓨터 시스템내에 암호화 및 복호화 기능을 추가하는 것이다. 그러나, 이 접근 방법에 따르면, 암호화 및 복호화 기능이 기존의 컴퓨터 시스템 내에 추가되므로, 컴퓨터 시스템의 구성이 상당히 변경되어야 한다.
제2 접근 방법은 외부 저장 장치에 암호화 및 복호화 기능을 추가하는 것이다. 그러나, 이 접근 방법에 따르면, 암호화 및 복호화 기능이 외부 저장 장치에 추가되므로, 일반적인 외부 저장 장치들을 사용할 수 없다.
제3 접근 방법은 컴퓨터 시스템과 외부 저장 장치 사이에 가교 역할을 하는 장치를 새롭게 제공하는 것이다. 제3 접근 방법에 관련된 기술들은, 예를 들어, 일본 특개평 제4-98552호 및 일본 특개평 제11-85621호에서 제시된다.
일본 특개평 제4-98552호에 따르면, 암호화 수단, 복호화 수단, 및 데이터 처리 수단을 포함하는 전자 파일링 장치가 외부 저장 장치에 기록되는 데이터를 암호화하고 외부 저장 장치로부터 판독되는 데이터를 복호화한다. 더 나아가, 암호화 또는 복호화에 필요한 정보가 분리될 수도 있다.
일본 특개평 제11-85621호는 컴퓨터 시스템과 외부 저장 장치 사이에 접속된 기록-데이터 암호화 장치를 개시한다. 기록-데이터 암호화 장치는 키 정보를 저장하기 위한 저장 수단 및, 키 정보를 사용해, 컴퓨터 시스템으로부터 송신된 데이터를 암호화하고, 그 결과로서 암호화된 데이터를 외부 저장 장치로 전송하기 위한 암호화 수단을 포함한다. 기록-데이터 암호화 장치는, 키 정보를 사용해, 외부 저장 장치로부터 판독된 암호화된 데이터를 복호화하고, 그 결과로서 복호화된 데이터를 컴퓨터 시스템으로 전송하기 위한 복호화 수단 및, 암호화 수단과 복호화 수단을 모니터링하고 그에 관한 동작들을 제어하기 위한 프로토콜 제어 수단도 포함한다. 상술한 구성에 의해, 컴퓨터 시스템 및 외부 저장 장치의 구성들을 변경하지 않으면서, 외부 저장 장치에 저장된 데이터가 암호화될 수 있고, 그에 따라, 외부 저장 장치에 저장된 데이터의 누설이 방지될 수 있다. 더 나아가, 키 정보는 IC 카드와 같은, 분리형 장치인 제2 외부 저장 장치에 저장될 수도 있다.
일본 특개평 제4-98552호에 따르면, 이미지 스캐너, 디스플레이, 프린터, 또는 동작 패널을 제어하기 위한 데이터 처리 수단이 암호화 수단 및 복호화 수단을 제어한다. 다시 말해, 관련 기술에 따르면, 암호화 수단과 복호화 수단이 데이터 처리 수단으로부터 분리될 수 있다. 그에 따라, 물리적 구성의 관점에서 보면, 관련 기술은 (브리징 장치(bridging device)가 새롭게 제공되는) 제3 접근 방법으로서 분류될 수 있다.
그러나, 데이터 처리 수단이 암호화 수단과 복호화 수단을 제어하므로, 기능적 구성의 관점에서 보면, 관련 기술은 (암호화 및 복호화 기능이 컴퓨터 시스템내에 추가되는) 제1 접근 방법으로서 분류될 수도 있다. 이것은 컴퓨터 시스템의 구성에서 상당한 변화를 발생시킨다.
일본 특개평 제11-85621호에 따르면, 외부 저장 장치에 저장된 데이터는, 컴퓨터 시스템 및 외부 저장 장치의 구성들을 변경하지 않으면서 암호화됨으로써, 외 부 저장 장치에 저장된 데이터의 누설을 방지한다. 다시 말해, 데이터는 외부 저장 장치만의 도난 위협에 대한 대책으로서 암호화된다. 그러나, 암호화에 사용되는 키 정보는 기록-데이터 암호화 장치에 저장되므로, 외부 저장 장치 및 기록-데이터 암호화 장치가 함께 도난되는 경우, 외부 저장 장치에 저장된 데이터는 외부 저장 장치와 기록-데이터 암호화 장치 모두를 다른 컴퓨터 시스템에 접속시키는 것에 의해 쉽게 액세스될 수 있다.
관련 기술에 따른 방법에서, 키 정보는, IC 카드와 같은, 분리형 장치인 제2 외부 저장 장치에 저장될 수도 있다. 그러나, 외부 저장 장치, 기록-데이터 암호화 장치, 및 제2 저장 장치 모두가 다같이 도난되는 경우, 외부 저장 장치에 저장된 데이터는 상술한 경우와 유사하게 액세스될 수 있다. 따라서, 문제가 근본적으로 해결되지 않는다.
상술한 경우를 감안한 것으로, 본 발명은 향상된 데이터 처리 장치 및 데이터 처리 방법을 제공한다.
더 나아가, 본 발명은 저장 장치 및 저장 장치를 제어하는 제어 장치 사이에 접속되는 데이터 처리 장치를 제공함으로써, 저장 장치와 제어 장치 사이에서 전송되는 데이터의 보안이 적절히 유지될 수 있게 한다. 데이터 처리 장치는, 저장 장치 및 데이터 처리 장치가 함께 도난되는 경우라 하더라도, 저장 장치로의 액세스를 방지하기 위한 메커니즘을 제공한다. 더 나아가, 데이터 처리 장치는 저장 장치로의 액세스를 위한 명령들을 인식하고 저장 장치로의 불필요한 액세스를 방지함 으로써 보안을 향상시키기 위한 메커니즘을 제공한다.
본 발명의 추가적인 특징들은 첨부 도면들을 참조하여 예시적 실시예들의 다음 설명으로부터 명백해질 것이다.
본 발명의 다양한 실시예들을 도시하는 도면들을 참조하여 본 발명이 상세하게 설명될 것이다. 도면들에서, 도면들 전체에 걸쳐 동일한 요소들 및 부분들은 동일한 참조 번호들로써 지시되고, 그에 관한 중복 설명은 생략된다.
이제, 본 발명의 실시예가 도면들을 참조하여 상세하게 설명될 것이다.
도 1은 본 발명의 실시예에 따른 데이터 처리 장치로서 기능하는 데이터 암호화 장치를 포함하는 시스템의 일례를 나타내는 블록도이다.
이하에서는 본 실시예에 따른 데이터 암호화 장치의 사용 환경을 먼저 설명한 다음, 데이터 암호화 장치의 구성을 설명하고, 그 다음, 데이터의 기밀성을 유지하기 위한 데이터 암호화 장치에 의한 동작들을 설명할 것이다.
<데이터 암호화 장치의 사용 환경>
도 1에 도시된 바와 같이, 데이터 암호화 장치(102)는 컴퓨터 시스템(제어 장치; 100)과 외부 저장 장치로서 동작하는 HDD(103) 사이를 브리징하도록 접속된다. 데이터 암호화 장치(102)는, 컴퓨터 시스템(100)의 HDD 컨트롤러(101)와 HDD(103) 사이에서 데이터 암호화를 실행하는 회로 보드로서 기능한다. 데이터 암호화 장치(102)는 범용 인터페이스들(예를 들어, ATA 버스 인터페이스들)을 통해 컴퓨터 시스템(100) 및 HDD(103)에 접속된다. 범용 인터페이스들을 사용하는 것에 의해, 데이터 암호화 장치(102)는 컴퓨터 시스템(100) 및 외부 저장 장치(103)의 구성들을 변경하지 않으면서 접속될 수 있다.
데이터 암호화 장치(102)는 컴퓨터 시스템(100)으로부터 전송되는 데이터를 암호화하고 암호화된 데이터를 HDD(103)로 전송한다. 또한, 데이터 암호화 장치(102)는 HDD(103)로부터 판독되는 데이터를 복호화하고 복호화된 데이터를 컴퓨터 시스템(100)으로 전송한다. 나중에 설명되는 바와 같이, 데이터가 HDD(103)에 저장될 때, 데이터는 데이터 암호화 장치(102)의 키로 암호화되므로, HDD(103)가 제3자에 의해 도난되는 경우라 하더라도, 데이터 암호화 장치(102)없이 데이터를 복호화하는 것은 불가능하다. 따라서, HDD(103)만이 도난되는 경우, 데이터의 보안성은 유지된다.
컴퓨터 시스템(100)은 데이터 처리 장치이고, 예를 들어, 뱅킹 시스템, 데스크탑 퍼블리싱(DTP) 시스템, 또는 복합기(MFP)이며, 특정 종류의 데이터 처리 장치들로 제한되지 않는다. 외부 저장 장치(103)는 데이터를 저장하기 위한 장치이고, 예를 들어, HDD, CD-R, CD-RW, DVD-R, 또는 DVD-RW와 같은 재기입 가능한 자기 또는 광 디스크이며, 특정 종류의 외부 저장 장치들로 제한되지 않는다. 일례로서, 도 1에는 외부 저장 장치(103)로서 HDD가 도시되어 있다.
본 실시예에서, 컴퓨터 시스템(100)은 상당히 큰 규모를 가진 유닛 또는 출입이 통제되는 방에 배치된 유닛인 것으로 가정되고, 그에 따라, 컴퓨터 시스템(100)을 훔치는 것은 물리적으로 금지된다. 따라서, 본 실시예에서는, HDD(103) 및 데이터 암호화 장치(102)가 도난되는 경우들에서의 데이터 누설 방지가 고려될 것이다.
<데이터 암호화 장치(102)의 구성>
도 1에 도시된 바와 같이, 데이터 암호화 장치(102)는 컴퓨터 시스템(100)의 HDD 컨트롤러(101) 및 HDD(103)에 접속된다. 컴퓨터 시스템(100)의 HDD 컨트롤러(101)와 데이터 암호화 장치(102)는 ATA 버스(104)를 통해 서로 접속되고, 데이터 암호화 장치(102)와 HDD(103)는 ATA 버스(105)를 통해 서로 접속된다. ATA는 HDD들에 일반적으로 사용되는 통신 표준이다. 데이터 암호화 장치(102)는 HDD 컨트롤러(101)로부터 HDD(103)로 송신되는 제어 명령들을 해석하고, HDD(103)에 저장될 데이터를 암호화하며, HDD(103)로부터 판독되는 데이터를 복호화한다.
중앙 처리 장치(CPU; 106)는 데이터 암호화 장치(102)를 전체로서 제어한다. 메모리(111)는 CPU(106)에 의해 실행되는 제어 프로그램들 및 다양한 종류의 데이터들을 저장하는데 사용된다. 메모리(111)는, 키 정보와 같은, 데이터 암호화를 위해 필요한 데이터를 저장할 수 있는 비휘발성 메모리로서 기능한다. 램(RAM; 112)은 메모리(111)로부터 판독되는 제어 프로그램들 또는 그외의 프로그램들의 실행 시에 CPU(106)를 위한 작업 메모리로서 사용된다.
ATA 버스 선택기(107)는 HDD 컨트롤러(101)를 HDD(103)와 접속시키기 위한 인터페이스이다.
장치 인터페이스(I/F)(108)는 HDD 컨트롤러(101)를 ATA 버스 선택기(107)를 통해 어드레스/데이터 버스(113)와 접속시키기 위한 인터페이스이다.
컴퓨터 시스템(100)의 HDD 컨트롤러(101)는 HDD(103)를 제어하기 위한 제어 명령들을 발행한다. 제어 명령들은 장치 I/F(108)에 의해 먼저 수신된다. 실행 가능한 것으로 판정되는 명령들은 CPU(106)로부터 호스트 I/F(110)로 발행된 다음 HDD(103)로 전송된다.
컴퓨터 시스템(100)으로부터 수신된 데이터를 HDD(103)에 저장할 때, CPU(106)는 수신된 데이터를 암호화 및 복호화 유닛(109)에서 암호화한 다음 암호화된 데이터를 ATA 버스(105)를 통해 HDD(103)로 전송한다. 한편, HDD(103)로부터 판독된 데이터를 컴퓨터 시스템(100)으로 송신할 때, CPU(106)는 데이터를 암호화 및 복호화 유닛(109)에서 복호화하고 복호화된 데이터를 ATA 버스(104)를 통해 컴퓨터 시스템(100)으로 전송한다.
암호화 및 복호화 유닛(109)은, 컴퓨터 시스템(100)으로부터 수신된 데이터가 HDD(103)에 저장될 때, 데이터를 암호화한다. 또한, 암호화 및 복호화 유닛(109)은, HDD(103)로부터 판독된 데이터가 컴퓨터 시스템(100)으로 전송될 때, 데이터를 복호화한다.
암호화 및 복호화 유닛(109)에서 실행되는 데이터 암호화를 위해 다양한 암호화 알고리즘들이 사용될 수 있다. 예를 들어, AES(Advanced Encryption Standard)와 같은 비밀 키 암호 방식(secret-key cryptosystem), RSA와 같은 공개 키 암호 방식(public-key cryptosystem), 또는 비밀 키 암호 방식과 공개 키 암호 방식의 조합에 기초한 혼성 암호 방식이 사용될 수 있다.
호스트 I/F(110)는 HDD(103)를 ATA 버스 선택기(107)를 통해 어드레스/데이터 버스(113)와 접속시키기 위한 인터페이스이다.
데이터 암호화 장치(102)의 개개 블록들은 어드레스/데이터 버스(113)를 통해 CPU(106)에 의해 제어된다.
ATA 버스 선택기(107)는, 데이터 암호화 장치(102)가, 표준 인터페이스들(ATA 버스 인터페이스들)을 통해, HDD 컨트롤러(101) 및 HDD(103)와의 모든 통신을 수행할 수 있게 한다.
이제는, 데이터 암호화 장치(102)의 기능들이 설명될 것이다. 데이터 암호화 장치(102)의 기능들은 메모리(111)에 저장된 프로그램들을 실행하는 것에 의해 구현된다.
<인증 기능>
데이터 암호화 장치(102)는 ATA 버스와의 접속을 위한 인터페이스(ATA 버스 선택기; 107)를 가지고 있으므로, 데이터 암호화 장치(102)는 ATA 버스와의 접속을 위한 인터페이스를 가진 임의 시스템에 물리적으로 접속될 수 있다. 그러나, 데이터 암호화 장치(102)가 임의 컴퓨터 시스템에 접속되는 것이 허용되면, 문제들이 발생한다. 예를 들어, 데이터 암호화 장치(102) 및 HDD(103)가 제3자에 의해 도난되면, 제3자는 데이터 암호화 장치(102) 및 HDD(103)를 컴퓨터 시스템(100)과는 상이한 컴퓨터 시스템과 접속시키는 것에 의해 HDD(103)에 저장된 데이터에 불법적으로 액세스할 수 있다. 따라서, 본 실시예에서, 데이터 암호화 장치(102)는, 데이터 암호화 장치(102)에 접속된 컴퓨터 시스템이 유효한(valid) 컴퓨터 시스템인지의 여부를 검사하기 위해 인증을 실행하는 인증 기능을 가진다.
인증 기능은, 예를 들어, 다음과 같이 다양한 방식들로 구현될 수 있다.
인증 기능을 구현하는 제1 방식에서는, 공통 인증 정보가 컴퓨터 시스템(100) 및 데이터 암호화 장치(102) 각각에 저장된다. 컴퓨터 시스템(100)으로부터 수신되는 인증 정보가 데이터 암호화 장치(102)에 저장된 인증 정보와 일치할 때 컴퓨터 시스템(100)이 유효한 것으로 판정된다.
인증 기능을 구현하는 제2 방식에서는, 공통 인증 정보가 컴퓨터 시스템(100) 및 데이터 암호화 장치(102) 각각에 저장된다. 컴퓨터 시스템의 유효성은 인증 정보를 사용하는 질의 및 응답(challenge and response)에 의해 검사된다.
인증 기능을 구현하는 제3 방식에서는, 컴퓨터 시스템(100)의 공개 키 인증서(public-key certificate)가 데이터 암호화 장치(102)에 저장된다. 데이터 암호화 장치(102)는 컴퓨터 시스템(100)의 전자 서명을 수신하고 확인하는 것에 의해 컴퓨터 시스템(100)의 유효성을 검사한다. 데이터 암호화 장치(102)는 전자 서명을 수신하는 것과 함께 공개 키 인증서를 수신할 수도 있다.
<암호화 및 복호화 기능>
데이터 암호화 장치(102)는 암호화 및 복호화 기능도 가지고 있으므로, 컴퓨터 시스템(100)으로부터 수신된 데이터는 키 정보를 사용해 암호화 및 복호화 유닛(109)에 의해 암호화될 수 있고 HDD(103)로부터 판독된 데이터는 키 정보를 사용해 암호화 및 복호화 유닛(109)에 의해 복호화될 수 있다.
<제어 기능>
데이터 암호화 장치(102)는 제어 기능도 가진다. 제어 기능에 의해, 컴퓨터 시스템(100)으로부터 수신된 정보가 명령과 같은 제어 정보인지 아니면 데이터인지 가 판정되고, 정보가 데이터일 경우에만 암호화 및 복호화 유닛(109)이 활성화되어 암호화를 실행한다. 제어 기능은 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 더 나아가, 제어 기능에 의해, HDD(103)로부터 판독된 정보가 컴퓨터 시스템(100)으로부터 수신된 제어 정보에 대한 응답과 같은 제어 정보인지 아니면 데이터인지가 판정되고, 정보가 데이터일 경우에만, 암호화 및 복호화 유닛(109)이 활성화되어 복호화를 실행한다.
제어 기능에 의해, 데이터 암호화 장치(102)가 초기 상태일 때, 예를 들어, 암호화 및 복호화 유닛(109)에서 사용될 키 정보가 없을 때, 컴퓨터 시스템(100)과 HDD(103) 사이에서 송수신되는 정보는 차단(interception)된다. 키 정보의 존재 또는 부재는 후술되는 상태 관리 기능에 의해 판정된다.
<키 생성 기능>
다음으로는, 암호화 및 복호화 유닛(109)이 암호화 및 복호화를 위한 키 정보를 생성할 때 사용하는 키 생성 기능이 설명될 것이다.
암호화 및 복호화 유닛(109)에 의해 사용되는 키 정보가 제3자에게 누설되면, 제3자는 HDD(103)에 저장된 암호화된 데이터를 복호화할 수 있다. 따라서, 암호화 및 복호화 유닛(109)에서 사용되는 키 정보의, 데이터 암호화 장치(102) 밖으로의 누설은 방지되어야 한다. 따라서, 데이터 암호화 장치(102)는 자체 내에 키 정보를 생성하기 위한 키 생성 기능을 가진다.
키 생성 기능을 구현하기 위해, 데이터 암호화 장치(102)는 컴퓨터 시스템(100)으로부터, 컴퓨터 시스템(100)의 고유 정보(이하에서, 단순히 고유 정보라 고 함)를 수신한다. 고유 정보는 각각의 컴퓨터 시스템(100)에 고유한 정보이다. 고유 정보로서, 다양한 형태의 정보들, 예를 들어, 일련 번호, LAN 인터페이스를 가진 컴퓨터 시스템(100)의 MAC 어드레스, 또는 이러한 형태의 정보들의 조합이 사용될 수 있다.
키 생성 기능에 의해, 컴퓨터 시스템(100)으로부터 수신되는 고유 정보 및 메모리(111)에 저장된 시드 정보(seed information)로부터 키 정보가 생성된다. 시드 정보를 생성하는 방법은 키 정보를 생성하는 방법 및 사용되는 암호화 알고리즘에 의존한다. 사용되는 암호화 알고리즘에서의 키 정보로서 난수가 사용될 수 있다면, 난수 또는 의사 난수(pseudo-random number)를 생성하여 시드 정보로 사용할 수도 있다. 한편, 특정 조건을 충족시키는 정보가, 사용되는 암호화 알고리즘에서의 키 정보로서 사용되어야 하는 경우에는, 예를 들어, 키 정보를 생성하고 키 정보 및 시드 정보를 사용해, "키 정보 = f(시드 정보, 고유 정보)"를 충족시키는 시드 정보를 취득하는 것이 필요하다.
예를 들어, 다음과 같이, 다양한 방법들이 고유 정보 및 시드 정보로부터 키 정보를 생성하는데 사용될 수 있다.
(1) 키 정보는 고유 정보와 시드 정보의 배타적 OR(exclusive OR)를 취하는 것에 의해 생성된다.
(2) 고유 정보 및 시드 정보가 일방향 해시 함수(one-way hash function)로 입력되고 일방향 해시 함수로부터 출력되는 정보가 키 정보로서 사용된다.
(3) 시드 정보는 고유 정보를 암호화 함수의 키로서 사용해 암호화되고, 암 호화 함수로부터 출력되는 정보가 키 정보로서 사용된다.
(4) 고유 정보는 시드 정보를 암호화 함수의 키로서 사용해 암호화되고, 암호화 함수로부터 출력되는 정보가 키 정보로서 사용된다.
(5) 키 정보는 Diffie-Hellman(DH) 키 합의 방법(RFC 2631)에 의해 공유된다.
데이터 암호화 장치(102)에만 키 정보를 저장하는 것으로 충분하므로, 예를 들어, 데이터 암호화 장치(102)의 공개 키 및 컴퓨터 시스템(100)에 고유한 정보로부터 고유 정보를 생성하면서, DH 키 합의 방법에서의 데이터 암호화 장치(102)의 비밀 키로서 시드 정보를 사용할 수 있다.
상술한 방법들은 고유 정보 및 시드 정보로부터 키 정보를 생성하기 위한 방법들의 예시들이다. 본 실시예의 키 정보를 생성하는 방법에서 사용되는 함수는 본 예시들에 제한되지 않고, "키 정보 = f(시드 정보, 고유 정보)"로서 표현될 수 있는 임의의 2-입력 함수일 수 있다.
더 나아가, 키 정보와 함께 키-확인 정보를 관리하는 것에 의해, 키 정보의 유효성을 확인할 수 있다. 키 정보 확인 정보는, 예를 들어, 키 정보의 해시 값이다.
<상태 관리 기능>
데이터 암호화 장치(102)는, 데이터 암호화 장치(102)가 초기 상태인지 아니면 비초기 상태(non-initial state)인지를 판정하는 상태 관리 기능도 가진다.
여기서 "초기 상태"는, 키 생성 기능에 의해 키 정보를 생성하는데 사용되는 시드 정보가 메모리(111)에 저장되어 키 정보가 생성될 수 있는 상태를 지칭한다. 여기서 "비초기 상태"는, 시드 정보가 메모리(111)에 저장되어 있지 않아 키 정보를 생성하는 것이 불가능한 상태를 지칭한다.
시드 정보가 메모리(111)에 저장되어 있지 않다고 판정될 때, 상태 관리 기능에 의해 시드 정보가 새롭게 생성되고, 생성된 시드 정보는 메모리(111)에 저장된다. 시드 정보는 데이터 암호화 장치(102)에 고유한 정보이고, 데이터 암호화 장치(102) 이외의 장치들은 시드 정보를 알 수 없다.
<데이터 암호화 장치(102)의 동작>
이제, 본 실시예의 데이터 암호화 장치(102)의 동작이 도 2를 참조하여 설명될 것이다.
도 2는 본 실시예에 따른 제1 제어 프로그램의 일례를 나타내는 흐름도이다. 흐름도에 따른 처리는 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 도 2에서, S301 내지 S307은 개개 단계들을 나타낸다.
첫번째, 단계 S301에서는, CPU(106)가, 상태 관리 기능에 의해, 데이터 암호화 장치(102)의 메모리(111)에 시드 정보가 저장되어 있는지의 여부를 검사한다. 시드 정보가 메모리(111)에 저장되어 있지 않다고 판정되면, CPU(106)는 단계 S302로 진행한다. 단계 S302에서, CPU(106)는 상태 관리 정보에 의해 새롭게 시드 정보를 생성하고, 시드 정보를 메모리(111)에 저장한다.
한편, 단계 S301에서, 시드 정보가 데이터 암호화 장치(102)의 메모리(111)에 저장되어 있다고 판정되면, CPU(106)는 바로 단계 S303으로 진행한다.
그 다음, 단계 S303에서는, 인증 기능에 의해, CPU(106)가 인증을 실행하여 컴퓨터 시스템(100)이 유효한지의 여부를 검사한다. CPU(106)는 인증이 성공할 때까지 인증을 반복한다.
컴퓨터 시스템(100)의 인증에 성공했다고 판정되면, CPU(106)는 단계 S304로 진행한다. 단계 S304에서, CPU(106)는 컴퓨터 시스템(100)으로부터 고유 정보를 수신한다.
다음으로는, 키 생성 기능에 의해, CPU(106)가 고유 정보 및 시드 정보로부터 키 정보를 생성하고, 키 정보를 암호화 및 복호화 유닛(109)에 설정한다. 키 정보 확인 정보가 키 정보와 함께 관리되면, 생성된 키 정보의 유효성을 확인할 수 있다.
그 다음, 단계 S306에서는, CPU(106)가, 상태 관리 기능에 의해 데이터 암호화 장치(102)의 상태를 모니터링한다. 데이터 암호화 장치(102)가 초기 상태이면, 예를 들어, 키 정보가 없으면, 제어 기능에 의해, CPU(106)는 컴퓨터 시스템(100)과 HDD(103) 사이에서 송수신되는 정보를 차단하도록 제어를 실행한다. 상태 관리 기능에 의해, 키 정보의 유효성을 확인하는 것이 가능하지만 키 정보의 유효성 확인이 실패일 경우, CPU(106)는 키 정보가 저장되어 있지 않다고 판정할 수도 있다.
더 나아가, 단계 S306에서는, CPU(106)가, 제어 기능에 의해, 컴퓨터 시스템(100)으로부터 송신된 정보가, 명령과 같은 제어 정보인지 아니면 데이터인지를 판정한다. 컴퓨터 시스템(100)으로부터 송신된 정보가 데이터라고 판정되는 경우에만, CPU(106)는 단계 S307 및 후속 단계들로 진행한다. 단계 S307에서, CPU(106)는 암호화 및 복호화 유닛(109)을 활성화하여 데이터를 암호화한다. 또한, CPU(106)는, 제어 기능에 의해, HDD(103)로부터 판독된 정보가, 응답과 같은, 제어 정보인지 아니면 데이터인지를 판정한다. 정보가 데이터라고 판정되는 경우에만, CPU(106)는 단계 S307로 진행한다. 단계 S307에서, CPU(106)는 암호화 및 복호화 유닛(109)을 활성화하여 데이터를 복호화한다. 암호화 및 복호화 유닛(109)은 단계 S305에서 생성된 키 정보를 사용해 데이터를 암호화하거나 복호화한다.
상술한 절차를 통해, HDD(103)에 저장된 데이터를 암호화할 수 있다.
<데이터 암호화 및 복호화의 세부 사항들>
도 2에 도시된 단계 S307에서의 데이터 암호화 및 복호화가 도 3 및 도 4에 도시된 데이터 흐름들을 참조하여 상세하게 설명될 것이다.
도 3은, 컴퓨터 시스템(100)으로부터 송신된 데이터가 HDD(103)에 기입되는 경우의 데이터 흐름을 나타내는 도면이다.
도 3에 도시된 바와 같이, CPU(106)의 제어 기능은 컴퓨터 시스템(100)으로부터 실행 가능한 "명령" 및 "데이터"를 포함하는 정보를 수신한다. 여기에서 "명령"은 데이터를 HDD(103)에 기입할 것을 지시하는 제어 정보를 지칭하고, "데이터"는 HDD(103)에 기입될 데이터를 지칭한다.
CPU(106)의 제어 기능은 암호화 및 복호화 유닛(109)을 활성화하여 "데이터"를 암호화한다. 그 다음, CPU(106)의 제어 기능은 "명령" 및 암호화에 의해 취득되는 "암호화된 데이터"를 포함하는 정보를 HDD(103)로 송신한다.
그 다음, CPU(106)의 제어 기능은 HDD(103)로부터 "응답"을 수신한다. 응답은, 암호화된 데이터를 HDD(103)에 기입하는 것에 응답하여 송신된다. 그 다음, CPU(106)의 제어 기능은 "응답"을 제어 정보로서 그대로 컴퓨터 시스템(100)으로 송신한다.
도 4는, 컴퓨터 시스템(100)이 HDD(103)로부터 데이터를 판독하는 경우의 데이터 흐름을 도시하는 도면이다.
CPU(106)의 제어 기능은 컴퓨터 시스템(100)으로부터 실행 가능한 "명령"을 수신한다. 여기서 "명령"은 HDD(103)로부터 데이터를 판독할 것을 지시하는 제어 정보이다.
CPU(106)의 제어 기능은 컴퓨터 시스템(100)으로부터 수신된 "명령"을 그대로 HDD(103)로 송신한다.
그 다음, CPU(106)의 제어 기능은 HDD(103)로부터 "응답" 및 "암호화된 데이터"를 수신한다. "응답" 및 "암호화된 데이터"는 HDD(103)로부터 암호화된 데이터를 판독하는 것에 응답하여 송신된다.
더 나아가, CPU(106)의 제어 기능은 암호화 및 복호화 유닛(109)을 활성화하여 HDD(103)로부터 판독된 "암호화된 데이터"를 복호화한다. 그 다음, CPU(106)의 제어 기능은 "응답" 및 (복호화된) "데이터"를 포함하는 정보를 컴퓨터 시스템(100)으로 송신한다.
도 3 및 도 4에 도시된 데이터 흐름들은 예시들이다. 복수의 인터페이스를 수반하는 특정 데이터 흐름들은 컴퓨터 시스템(100)과 데이터 암호화 장치(102) 사 이의 인터페이스의 사양(specification)들 및 데이터 암호화 장치(102)와 HDD(103) 사이의 인터페이스의 사양들에 의존한다.
예를 들어, "명령" 및 "응답"을 포함하지만 "데이터"는 포함하지 않는 데이터 흐름이 가능하다. 더 나아가, 컴퓨터 시스템(100)과 데이터 암호화 장치(102) 사이의 인터페이스는 데이터 암호화 장치(102)와 HDD(103) 사이의 인터페이스와 상이할 수도 있다. 이 경우, CPU(106)의 제어 기능은 데이터 암호화 및 복호화 이외에 이 인터페이스들의 사양들 사이에서 변환을 실행하는 것에 의해 구현될 수 있다.
도 3 및 도 4에 도시된 바와 같이, 데이터 암호화 장치(102)에서 암호화되는 정보는 "데이터"이다. 따라서, 데이터 암호화 장치(102)가 초기 상태인 경우, 예를 들어, 키 정보가 없는 경우, CPU(106)의 제어 기능은 컴퓨터 시스템(100)과 HDD(103) 사이에서 송수신되는 정보 중에서 "데이터"만을 차단할 수도 있다.
더 나아가, 상술한 바와 같이, 데이터 암호화 장치(102)는 컴퓨터 시스템(100)의 인증에 다양한 방법들을 이용할 수 있다.
따라서, 단계 S303에서의 컴퓨터 시스템(100) 인증 시에 컴퓨터 시스템(100)으로부터 고유 정보를 수신할 수 있다. 예를 들어, 컴퓨터 시스템(100)으로부터 수신되는 전자 서명 및 공개 키 인증서에 기초한 인증 방법의 경우, 공개 키 인증서가 컴퓨터 시스템(100)의 고유 정보로서 사용될 수도 있다. 상기 경우에서와 같이 단계 S303에서 컴퓨터 시스템(100)의 고유 정보를 수신할 수 있을 때, 단계 S304는 생략될 수도 있다.
본 실시예에서, 데이터 암호화 장치(102)는 인터페이스들을 통해 컴퓨터 시스템(100)과 HDD(103)를 상호 접속시키고, 암호화 및 복호화 유닛(109)은 CPU(106)의 제어하에서 HDD(103)로 기입되는 데이터를 암호화한다. 따라서, HDD(103)에 저장되는 데이터의 기밀성이 유지될 수 있다.
특히, 암호화 또는 복호화에 사용되는 키 정보가 컴퓨터 시스템(100)의 고유 정보 및 데이터 암호화 장치(102)에 고유한 시드 정보로부터 생성된다. 따라서, 컴퓨터 시스템 및 데이터 암호화 장치의 상이한 쌍에 기초해, 유효한 키 정보를 생성하는 것은 불가능하다.
더 나아가, 컴퓨터 시스템(100)의 고유 정보를 수신하기 전에 컴퓨터 시스템(100)의 인증을 실행하는 것에 의해, 유효한 컴퓨터 시스템(100)의 고유 정보가 수신된다.
따라서, 데이터 암호화 장치(102) 및 HDD(103)가 함께 도난되는 경우라 하더라도, HDD(103)에서의 데이터 기밀성이 유지될 수 있다. 더 나아가, 데이터 암호화 장치(102)는 상태 관리 기능에 의해, 키 정보에 관한 상태로서 시드 정보의 존재 또는 부재를 관리하고, 키 정보가 없는 경우, 키 정보를 생성하기 위한 시드 정보를 자동으로 생성한다. 따라서, 키 정보의 자동 관리가 실현된다.
<데이터 암호화 장치(102)의 동작 모드들>
이제는, 데이터 암호화 장치(102)의 동작 모드들이 도 5를 참조하여 설명될 것이다.
도 5는 데이터 암호화 장치(102)의 동작 모드들을 나타내는 상태 전이도이 다.
데이터 암호화 장치(102)의 동작 모드들은 일반적으로 2가지 유형들, 즉, "차단 모드(intercept mode)" 및 "능동 모드(active mode)"로 분류될 수 있다. "능동 모드"는 "통상 모드(normal mode)", "바이패스 모드(bypass mode)", 및 "암호화 및 복호화 모드(encryption and decryption mode)"를 포함한다. 데이터 암호화 장치(102)의 동작 모드는 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 판정된다.
데이터 암호화 장치(102)의 전원이 온될 때, 데이터 암호화 장치(102)는 처음에 차단 모드(S701)로 진입한다. 차단 모드에서는, HDD 컨트롤러(101)에 의해 송신된 어떤 정보도 HDD(103)로 송신되지 않는다.
이 때, HDD 컨트롤러(101)로부터 HDD(103)로의 액세스들을 포함하는 레지스터 판독/기입 동작들은 모두 데이터 암호화 장치(102)로 보내지고, HDD(103)로의 액세스들은 차단된다.
이 때, HDD(103)를 액세스하는데 사용되는 통상 명령들을 사용하는 것은 허용되지 않고, 새롭게 정의된 (도 8을 참조하여 후술되는) 확장 명령들만이 사용될 수 있다.
차단 모드(S701)에서, CPU(106)는 앞서 설명된 인증 기능만을 실행하도록 허용된다. 컴퓨터 시스템(100)이 인증 기능에 의해 유효한 것으로 인증되는 경우에만, 데이터 암호화 장치(102)는 그것의 동작 모드를 차단 모드에서 통상 모드(S702)로 변경하는 것이 허용된다.
HDD 컨트롤러(101)에 의해 발행된 명령이 HDD(103)에서 실행 가능한지의 여부는 데이터 암호화 장치(102)의 메모리(111)에 저장된 참조 데이터에 기초해 판정된다. 데이터 암호화 장치(102)는 ATA 버스 선택기(107)를 통해 장치 I/F(108)에 의해 HDD 컨트롤러(101)로부터 발행된 명령을 수신하고, CPU(106)는 어드레스/데이터 버스(113)를 통해 명령을 인식한다. 그 다음, CPU(106)는, 명령을 메모리(111) 내의 참조 데이터와 비교하는 것에 의해, 명령이 HDD(103)에서 실행 가능한지의 여부를 판정한다.
통상 모드(S702)에서, HDD 컨트롤러(101)는 HDD(103)를 액세스한다. 그러나, 데이터 암호화 장치(102)는, HDD 컨트롤러(101)에 의해 발행된 명령 각각이 HDD(103)에서 실행 가능한지의 여부를 판정하고, 명령이 실행 가능한 것으로 판정되는 경우에만, HDD(103)로의 명령을 통과시킨다(도 9). 명령이 실행 불가능한 것으로 판정되면, 명령은 HDD(103)로 전송되지 않는다.
컴퓨터 시스템(100)으로부터 수신된 명령이 실행 가능한지의 여부는 차단 모드(S701)에서의 방식과 유사한 방식으로 판정된다. 메모리(111) 내의 참조 데이터는 개개 동작 모드들에 따라 변경된다. 다시 말해, 실행 가능 명령들은 동작 모드들에 따라 달라진다.
더 나아가, 통상 모드(S702)에서는, CPU(106)에 의해 실행 가능한 것으로 판정되는 명령이 CPU(106)에 의해 호스트 I/F(110)로 송신된다. 그 다음, 데이터 암호화 장치(102)는 ATA 버스 선택기(107)를 통해 HDD(103)로 명령을 전송(발행)한다.
그 다음, HDD(103)로의 레지스터 액세스 명령(후술되는 "PIO READ"형 명령)의 수신 시에, 데이터 암호화 장치(102)는 그것의 동작 모드를 통상 모드(S702)에서 바이패스 모드(S703)로 변경한다. 이것은 다음에서 좀더 상세하게 설명될 것이다.
한편, HDD(103)로의 데이터 저장 또는 HDD(103)로부터의 데이터 판독을 요청하는 DMA-전송형 명령이 수신되면, 데이터 암호화 장치(102)는 그것의 동작 모드를 통상 모드(S702)에서 암호화 및 복호화 모드(S704)로 변경한다.
더 나아가, 특별히 정의된 확장 명령들 중에서 "CHANGE INTERCEPT"(도 8) 명령이 수신되면, 데이터 암호화 장치(102)는 그것의 동작 모드를 통상 모드(S702)에서 차단 모드(S701)로 변경한다.
바이패스 모드(S703)는 통상 모드(S702) 중에 HDD(103)로의 레지스터 액세스("PIO READ"형 액세스)를 실행하는데 사용된다. 바이패스 모드(S703)에서, HDD 컨트롤러(101)의 레지스터 액세스는 HDD(103)로 바이패스된다. 컴퓨터 시스템(100)으로의 HDD(103)의 레지스터 데이터의 전송 완료 시에, 데이터 암호화 장치(102)는 그것의 동작 모드를 바이패스 모드(S703)에서 통상 모드(S702)로 변경한다.
암호화 및 복호화 모드(S704)는 DMA 전송에 의해 HDD(103)에 저장될 데이터를 암호화하거나 DMA 전송에 의해 HDD(103)로부터 판독되는 데이터를 복호화하는데 사용된다. DMA 전송 완료 시에, 데이터 암호화 장치(102)는 그것의 동작 모드를 암호화 및 복호화 모드(S704)로부터 통상 모드(S702)로 변경한다.
<ATA 버스 선택기(107)의 구성>
이제는, 도 1에 도시된 ATA 버스 선택기(107)의 구성이 도 6을 참조하여 설명될 것이다.
도 6은 도 1에 도시된 ATA 버스 선택기(107)의 구성을 나타내는 블록도이다.
도 6에 도시된 바와 같이, HDD 컨트롤러(101)는 신호들의 입력 및 출력을 위해 HDD-컨트롤러(101) 측 입/출력 신호들(801)에 접속된다. 더 나아가, HDD(103)는 HDD(103) 측 입/출력 신호들(802)에 접속된다.
HDD-컨트롤러(101) 측 입/출력 신호들(801)은 선택기(803)를 통해 장치 I/F(108) 또는 바이패스 회로(804)에 접속된다.
마찬가지로, HDD(103) 측 입/출력 신호들(802)은 선택기(805)를 통해 호스트 I/F(110) 또는 바이패스 회로(804)에 접속된다.
선택기(803) 및 선택기(805) 각각은 제어 회로(806)를 통해 CPU(106)에 의해 제어된다.
HDD 컨트롤러(101) 및 HDD(103)는 바이패스 회로(804), 암호화 및 복호화 유닛(109), 또는 CPU(106)를 통해 서로 접속된다.
<ATA 버스 선택기(107)의 동작>
이제는, 데이터 암호화 장치(102)의 개개 동작 모드들에서, 도 6에 도시된 ATA 버스 선택기(107)의 동작들이 도 7a 내지 도 7c를 참조하여 설명될 것이다.
도 7a 내지 도 7c는 데이터 암호화 장치(102)의 개개 동작 모드들에서, 도 6에 도시된, ATA 버스 선택기(107)의 동작들을 설명하기 위한 도면들이다. 도 7a 내지 도 7c는 동작 모드들 각각에서의 데이터 버스들의 접속 및 전송 방향을 나타낸다.
도 7a 내지 도 7c에서, 두꺼운 화살표는 데이터를 송수신하기 위한 PIO/DMA 버스를 나타낸다. 얇은 화살표는 동작 설정, 상태 검사 등을 위한 레지스터 등으로의 액세스를 지시한다.
차단 모드에서의 ATA 버스 선택기(107)의 동작이 도 7a를 참조하여 설명될 것이다.
차단 모드에서, ATA 버스 선택기(107) 내에서, HDD 컨트롤러(101) 측의 입/출력 신호들은 장치 I/F(108)에 접속되고, HDD(103) 측의 입/출력 신호들은 호스트 I/F(110)에 접속된다.
따라서, HDD 컨트롤러(101)로부터 HDD(103)로의 임의의 액세스는 상호 인증이 완료될 때까지 금지된다.
다음으로, 통상 모드에서의 ATA 버스 선택기(107)의 동작이 도 7b를 참조하여 설명될 것이다.
통상 모드에서, PIO/DMA 버스는 장치 I/F(108) 및 호스트 I/F(110)에 접속된다.
더 나아가, 도 7b를 참조하면, HDD 컨트롤러(101)로부터 HDD(103)로의 기입 액세스("W")가 발행될 때, 액세스 목적지의 변경은 액세스될 레지스터의 유형에 따라 HDD 컨트롤러(101)쪽의 입/출력 신호들에 의해 지시된다. 예를 들어, 데이터가 장치 I/F(108)의 레지스터에만 기입될 것이 지시되거나, 데이터가 HDD(103)의 레지 스터에만 기입되도록 HDD(103) 측의 입/출력 신호들과의 접속이 유지될 것이 지시되거나, 데이터가 양자 모두에 기입될 것이 지시된다. 예를 들어, HDD 컨트롤러(101)가 파라미터들을 설정하기 위한 레지스터에 액세스하면, 데이터는 데이터 암호화 장치(102)의 레지스터와 HDD(103)의 레지스터 모두에 기입된다.
마찬가지로, 레지스터 판독("R") 액세스의 경우, HDD(103)의 데이터가 직접적으로 판독되거나 호스트 I/F(110)에 의해 판독된 데이터가 장치 I/F(108)를 통해 판독될 것이 지시된다.
다음으로는, 바이패스 모드에서의 ATA 버스 선택기(107)의 동작이 도 7c를 참조하여 설명될 것이다.
바이패스 모드에서는, 호스트 측의 입/출력 신호들 및 HDD(103) 측의 입/출력 신호들이 직접적으로 접속된다. 일부 레지스터 기입 액세스들의 경우, 동일한 데이터가 HDD(103)의 레지스터 및 장치 I/F(108)의 레지스터에 기입된다.
<차단 모드에서 데이터 암호화 장치(102)에 의해 실행 가능한 확장 명령들>
도 8은 데이터 암호화 장치(102)에 의해 실행 가능한 확장 명령들을 나타내는 도면이다.
일반적인 HDD 액세스들을 위해 사용되는 ATA 명령들과 달리, 도 8에 도시된 확장 명령들은 데이터 암호화 장치(102)에 의해서만 처리될 수 있다. 명령들은 도 1에 도시된 메모리(111)에 실행 가능한 확장 명령들로서 등록된다.
도 8에 도시된 확장 명령들은 도 5에 도시된 차단 모드(S701)에서 데이터 암호화 장치(102)에 의해 실행 가능한 명령들이다.
도 8에서, 명령 이름 컬럼(1001)은 실행 가능한 명령들의 이름들을 나타낸다. 유형 컬럼(1002)은 액세스 유형들을 나타낸다. 예를 들어, "NON DATA"형 명령은, 상태를 검사하기 위한 명령 또는 차단 모드에서 통상 모드로의 전이를 위한 명령과 같은, 데이터의 전송을 수반하지 않는 명령이다. "WRITE"형 및 "READ"형 명령들은, 데이터의 기입 및 판독을 포함하고, 예를 들어, 버전 정보를 취득하거나 인증 질의에 사용되는 명령들이다.
<통상 모드에서 데이터 암호화 장치(102)에 의해 실행 가능한 ATA 명령들>
도 9는 통상 모드(S702)에서 데이터 암호화 장치(102)에 의해 실행 가능한 명령들을 나타내는 도면이다. HDD 컨트롤러(101)로부터 HDD(103)로 전송될 수 있는 명령들은 도 9에 도시된 명령들로 제한된다. 이것은, 도 9에 도시된 명령들이, 데이터 암호화 장치(102)가 컴퓨터 시스템(100)을 유효한 것으로 인증하였고 통상 모드에서 동작하는 경우에만 실행될 수 있다는 것을 의미한다. 따라서, HDD(103)로의 불필요한 액세스가 방지됨으로써 보안이 유지된다. 명령들은 도 1에 도시된 메모리(111)에 ATA 명령들로서 등록된다.
도 9에서, 명령 이름 컬럼(1101)은 실행 가능한 명령들의 이름들을 나타낸다. 유형 컬럼(1102)은 액세스 유형들을 나타낸다. "NON DATA" 전송형 명령은 데이터 전송을 포함하지 않는 명령이다. "PIO READ" 전송형 명령은 데이터의 판독을 포함하는 명령이다. "DMA" 전송형 (암호화/복호화형) 명령은 데이터 기입 및 판독을 포함하는 명령이다.
"PIO READ" 전송형 명령은 컴퓨터 시스템(100)에서 CPU 제어하에 컴퓨터 시 스템(100)의 메인 메모리와 HDD(103) 사이에서 데이터를 전송하기 위한 명령이다.
한편, "DMA" 전송형 명령은, 컴퓨터 시스템(100)의 CPU의 개입 없이, 컴퓨터 시스템(100)의 RAM과 HDD(103) 사이에서 데이터를 전송하기 위한 명령이다.
통상 모드(S702)에서, 명령이 HDD 컨트롤러(101)로부터 발행되면, 명령은 일시적으로 데이터 암호화 장치(102)에 저장되고, CPU(106)는, 명령이 HDD(103)에서 실행 가능한지의 여부를 검사한다. 명령이 HDD(103)에서 실행 가능하다고 판정되는 경우(도 9에 도시된 명령들인 경우)에만, 명령이 HDD(103)로 송신된다. 명령이 실행 불가능하다고 판정되면(도 9에 도시된 명령들 이외의 명령들인 경우), 명령은 HDD(103)로 송신되지 않고, HDD 컨트롤러(101)로 중단 오류(abort error)가 보고된다.
<컴퓨터 시스템(100)의 인증의 세부 사항들>
이제, HDD 컨트롤러(101)와 데이터 암호화 장치(102) 사이에서 실행되는 인증이 도 10, 도 11a, 및 도 11b를 참조하여 설명될 것이다. 인증은 2가지 유형의 경우에서, 즉, 데이터 암호화 장치(102)가 처음으로 HDD 컨트롤러(101)에 접속되는 경우에서 및 데이터 암호화 장치(102)가 HDD 컨트롤러(101)에 미리 접속되는 경우에서 실행된다. 데이터 암호화 장치(102)가 HDD 컨트롤러(101)에 처음으로 접속되는 경우에 실행되는 인증은 도 10을 참조하여 설명될 것이다.
도 10은, 데이터 암호화 장치(102)가 처음으로 컴퓨터 시스템(100)에 접속되는 경우에 관한, 본 실시예에 따른 제2 제어 프로그램의 일례를 나타내는 흐름도이다. 도 10에서, S1201 내지 S1215는 개개 단계들을 나타낸다. 이 흐름도에서, 데 이터 암호화 장치(102)와 연관된 단계들은 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 더 나아가, HDD 컨트롤러(101)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD 컨트롤러(101)의 (도시되지 않은) CPU에 의해 구현된다. 더 나아가, HDD(103)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD(103)의 (도시되지 않은) CPU에 의해 구현된다.
단계 S1201에서는, 컴퓨터 시스템(100), 데이터 암호화 장치(102), 및 HDD(103) 모두의 전원이 온된다. 그 다음, 단계 S1202에서는, 데이터 암호화 장치(102)의 CPU(106)가 차단 모드에서 데이터 암호화 장치(102)를 활성화한다.
단계 S1203에서는, HDD 컨트롤러(101)가, 데이터 암호화 장치(102)가 컴퓨터 시스템(100)에 접속되는지의 여부를 검사한다. 여기서는, 컴퓨터 시스템(100)이 데이터 암호화 장치(102)에 접속되는 것으로 가정된다. 그 다음, 단계 S1204에서, HDD 컨트롤러(101)는 데이터 암호화 장치(102)의 동작 상태를 인식하기 위해 데이터 암호화 장치(102)로 "GET STATUS" 명령(도 8)을 발행한다. 데이터 암호화 장치(102)가 처음으로 접속되는 경우, 키 정보는 아직 생성되지 않았다. 따라서, 단계 S1205에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD 컨트롤러(101)로 미설치 상태를 리턴한다.
미설치 상태가 인식되면, 단계 S1206에서, HDD 컨트롤러(101)는 "INSTALL" 명령을 데이터 암호화 장치(102)로 송신하여 설치를 실행한다.
응답으로, 단계 S1207에서, 데이터 암호화 장치(102)는 키 정보를 생성하기 위한 시드 정보를 생성한다.
더 나아가, 단계 S1208에서, HDD 컨트롤러(101)는 컴퓨터 시스템(100)의 고유 정보를 데이터 암호화 장치(102)로 송신한다.
고유 정보의 수신 시에, 단계 S1209에서, 데이터 암호화 장치(102)의 CPU(106)는 고유 정보를 RAM(112)에 저장한다.
그 다음, 단계 S1210에서, 데이터 암호화 장치(102)의 CPU(106)는 시드 정보 및 고유 정보에 기초해 키 정보를 생성하고, 키 정보를 메모리(111)에 기입한다. 키 정보를 생성한 후, 단계 S1211에서, 데이터 암호화 장치(102)의 CPU(106)는 키 정보의 생성 완료를 나타내는 상태를 HDD 컨트롤러(101)로 리턴한다.
수신된 상태 정보에 기초해, HDD 컨트롤러(101)는, 데이터 암호화 장치(102)에서 키 정보가 생성되었다는 것을 인식한다. 그 다음, 단계 S1212에서, HDD 컨트롤러(101)는 "CHANGE NORMAL" 명령(통상 모드로의 전이를 위한 명령)을 데이터 암호화 장치(102)로 송신한다.
응답으로, 키 생성의 완료에 기초해, 데이터 암호화 장치(102)의 CPU(106)는, 컴퓨터 시스템(100)이 유효한 것으로 인증되었다고 가정한다. 그 다음, 단계 S1213에서, CPU(106)는 데이터 암호화 장치(102)의 동작 모드를 차단 모드에서 통상 모드로 변경한다. 통상 모드로의 전이 이후에, 단계 S1214에서, 데이터 암호화 장치(102)의 CPU(106)는 통상 모드로의 전이를 지시하는 상태를 HDD 컨트롤러(101)로 리턴한다.
상태 정보의 수신 시에, 단계 S1215에서, HDD 컨트롤러(101)는 다양한 유형의 ATA 명령들을 데이터 암호화 장치(102)로 송신한다. 그 다음, 데이터 암호화 장치(102)는 HDD 컨트롤러(101)로부터 수신된 ATA 명령들에 기초해 제어를 실시한다.
다음으로는, 데이터 암호화 장치(102)가 HDD 컨트롤러(101)에 미리 접속되는 경우에 실행되는 인증이 설명될 것이다.
도 11a 및 도 11b는, 데이터 암호화 장치(102)가 컴퓨터 시스템(100)에 미리 접속되는 경우에 관한, 본 실시예에 따른 제3 제어 프로그램들의 일례들을 도시하는 흐름도들이다. 도 11a 및 도 11b에서, S1301 내지 S1325는 개개 단계들을 나타낸다. 이 흐름도들에서, 데이터 암호화 장치(102)와 연관된 단계들은 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 더 나아가, HDD 컨트롤러(101)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD 컨트롤러(101)의 (도시되지 않은) CPU에 의해 구현된다. 더 나아가, HDD(103)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD(103)의 (도시되지 않은) CPU에 의해 구현된다.
후술되는 예에서는 질의 및 응답에 의해 인증이 실행되지만, 인증은 그외의 방법들에 의해 실행될 수도 있다.
단계 S1301에서는, 컴퓨터 시스템(100), 데이터 암호화 장치(102), 및 HDD(103) 모두의 전원이 온된다. 단계 S1302에서, 데이터 암호화 장치(102)의 CPU(106)는 차단 모드의 데이터 암호화 장치(102)를 활성화시킨다.
단계 S1303에서, HDD 컨트롤러(101)는, 데이터 암호화 장치(102)가 컴퓨터 시스템(100)에 접속되는지의 여부를 검사한다. 여기에서, 컴퓨터 시스템(100)이 데이터 암호화 장치(102)에 접속된다고 가정된다. 그 다음, 단계 S1304에서, HDD 컨트롤러(101)는 "GET STATUS" 명령(도 8)을 데이터 암호화 장치(102)로 발행하여 데이터 암호화 장치(102)의 동작 상태를 인식한다. 이 예에서는, 데이터 암호화 장치(102)가 컴퓨터 시스템(100)에 미리 접속되었기 때문에, 키 정보가 생성되었다. 따라서, 단계 S1305에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD 컨트롤러(101)로 설치 상태를 리턴한다.
설치 상태의 인식 시에, 단계 S1306 및 단계 S1307에서, HDD 컨트롤러(101)는 질의 및 질의 난수를 실행하기 위한 질의 명령 "SEND CHA1"을 데이터 암호화 장치(102)로 송신하여 인증을 진행한다.
응답으로, 단계 S1308에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD 컨트롤러(101)로 상태를 리턴한다.
그 다음, 단계 S1309에서, HDD 컨트롤러(101)는 응답 요청 명령 "CHA1 요청"을 데이터 암호화 장치(102)로 송신한다. 응답으로, 단계 S1310에서, 데이터 암호화 장치(102)의 CPU(106)는 질의 난수에 대한 응답을 HDD 컨트롤러(101)로 송신한다. 더 나아가, 단계 S1311에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD 컨트롤러(101)로 상태를 리턴한다.
응답의 수신 시에, HDD 컨트롤러(101)는, 응답이 정확한지의 여부를 검사한다. 응답이 정확하면, HDD 컨트롤러(101)는 단계 S1312로 진행하여 데이터 암호화 장치(102)로부터의 질의를 HDD 컨트롤러(101)로 발행한다.
단계 S1312에서, HDD 컨트롤러(101)는 질의의 실행을 요청하기 위한 "REQUEST CHA2" 명령을 데이터 암호화 장치(102)로 송신한다.
응답으로, 단계들(S1313 및 S1314)에서, 데이터 암호화 장치(102)의 CPU(106)는 질의 난수 및 상태를 HDD 컨트롤러(101)로 송신한다.
응답으로, 단계들(S1315 및 S1316)에서, HDD 컨트롤러(101)는 응답의 실행을 요청하기 위한 명령 및 응답을 데이터 암호화 장치(102)로 송신한다.
응답의 수신 시에, 데이터 암호화 장치(102)는, 응답이 정확한지의 여부를 검사하고 상태를 리턴한다. 응답이 정확하면, 인증이 완료된다. 그 다음, HDD 컨트롤러(101)는 단계 S1317로 진행하여 키 정보를 생성한다. 후속 단계들(S1318 내지 S1325)은 도 10에 도시된 단계들(S1208 내지 S1215)과 동일하므로, 그에 관한 설명은 생략될 것이다.
<능동 모드에서의 동작의 세부 사항들>
도 5에 도시된 바와 같이, 차단 모드(S701)에서 인증이 완료되면, 동작 모드는 통상 모드(S702)로 변경된다. 이제, 능동 모드에서 실행 가능한 명령들의 세부 시퀀스들이 도 12 내지 도 15를 참조하여 설명될 것이다.
통상 모드에서 실행 가능한 명령들은 도 9에 도시되어 있다. 명령들은 데이터 전송 유형들에 따라 3가지 유형들, 즉, 데이터 전송을 포함하지 않는 "NON DATA" 전송형, "PIO READ" 전송형, 및 "DMA" 전송형(암호화/복호화형)으로 분류될 수 있다. 이 유형들이 다음에서 순서대로 설명될 것이다.
<(1) NON DATA 전송형>
"NON DATA" 전송형 명령은 2가지 단계들로 실행된다. 첫번째, HDD 컨트롤 러(101)는 실행될 명령에 필요한 파라미터들을 설정한다. 설정된 파라미터들은 HDD(103)의 명령 블록에서의 (T/F 레지스터, I/O 레지스터, 명령 블록 레지스터 등으로 지칭되는) 관련 레지스터에 기입된다.
그 다음, HDD 컨트롤러(101)는 "NON DATA" 전송형을 표현하는 명령 코드를 데이터 암호화 장치(102)의 명령 레지스터에 기입한다. 그 다음, HDD(103)는 (데이터 암호화 장치(102)를 통해 일시적으로) 명령을 실행한다.
파라미터들을 설정하거나 명령 코드들을 기입하기 위한 레지스터들은, 그들이 HDD 컨트롤러(101)에 기입되는지 아니면 HDD 컨트롤러(101)로부터 판독되는지에 따라 상이한 의미들을 가질 수 있다. 예를 들어, ERROR/FEATURES 레지스터 또는 STATUS/COMMAND 레지스터가, 판독 동작에서는 오류 또는 HDD(103)의 상태를 나타내지만, 기입 동작에서는 명령의 실행을 나타낸다.
"NON DATA" 전송형 명령의 예시들로는 "RECALIBRATE" 명령 및 "SEEK" 명령을 들 수 있다.
"RECALIBRATE" 명령은 HDD(103)의 리제로(rezero) 동작을 실행하는데 사용된다. "SEEK" 명령은 HDD(103)의 특정 트랙을 탐색하여 헤드를 선택하는데 사용된다.
다음으로는, 도 12에 도시된 흐름도를 참조하여 설명될 것이다.
도 12는, "NON DATA" 전송형 명령의 실행 시퀀스에 대응되는, 본 실시예에 따른 제4 제어 프로그램의 일례를 나타내는 흐름도이다. 도 12에서, S1401 내지 S1411은 개개 단계들을 나타낸다. 이 흐름도에서, 데이터 암호화 장치(102)와 연 관된 단계들은 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 더 나아가, HDD 컨트롤러(101)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD 컨트롤러(101)의 (도시되지 않은) CPU에 의해 구현된다. 더 나아가, HDD(103)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD(103)의 (도시되지 않은) CPU에 의해 구현된다.
"NON DATA"형 명령이 통상 모드에서 발행되면, 단계 S1401에서, HDD 컨트롤러(101)는 HDD(103)를 액세스하기 위한 파라미터들을 설정한다. 좀더 구체적으로, 데이터 전송에 사용되는 파라미터들은 데이터 암호화 장치(102)의 레지스터 및 HDD(103)의 레지스터 모두에 설정된다.
그 다음, 단계 S1402에서, HDD 컨트롤러(101)는, HDD(103)에서 실행될 ATA 명령("NON DATA" 전송형 명령)을 데이터 암호화 장치(102)의 명령 레지스터로 발행한다. HDD 컨트롤러(101)로부터의 "NON DATA" 전송형 ATA 명령 수신 시에, 데이터 암호화 장치(102)는 장치 I/F(108)의 레지스터 내에 ATA 명령을 설정한다.
그 다음, 단계 S1403에서, 데이터 암호화 장치(102)의 CPU(106)는, 명령 레지스터에서 설정된 명령이 HDD(103)에서 실행 가능한 명령인지의 여부를 검사한다. 명령이 실행 가능한 것(메모리(111)의 참조 데이터에 등록된 명령; 도 9)으로 판정되는 경우에만, 명령은 HDD(103)의 명령 레지스터로 설정(전송)된다. 다시 말해, "NON DATA" 전송형 명령의 경우, 데이터 암호화 장치(102)에 의해, 명령이 실행 가능한지의 여부가 검사되고, 명령이 실행 가능하다고 판정되는 경우에만, 명령은 HDD(103)로 전송된다. 이 예시에서는, "NON DATA"형 ATA 명령이 HDD(103)에서 실 행 가능한 것으로 판정되고 데이터 암호화 장치(102)로부터 HDD(103)로 전송되는 것으로 가정된다.
그 다음, 단계 S1404에서, HDD(103)는 데이터 암호화 장치(102)로부터 전송된 ATA 명령을 해석하고 실행한다. 이것이 명령의 실행을 종결한다. 그 다음, 단계 S1405에서, HDD(103)는 인터럽트 신호를 데이터 암호화 장치(102)로 출력한다. 인터럽트 신호는 데이터 암호화 장치(102)로만 출력된다. 인터럽트 신호의 수신 시에, 단계 S1406에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD(103)의 레지스터들로부터 상태 및 오류와 같은 정보를 판독한다.
HDD(103)의 레지스터들이 데이터 암호화 장치(102)에 의해 판독된 후, 단계 S1407에서, HDD(103)는 인터럽트 신호를 제거한다.
그 다음, 단계 S1408에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD(103)의 레지스터들로부터 판독된 HDD(103)의 상태 및 오류 데이터를 데이터 암호화 장치(102)의 레지스터들에 설정한다. 그 다음, 단계 S1409에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 HDD 컨트롤러(101)로 송신한다.
데이터 암호화 장치(102)로부터의 인터럽트 신호 수신 시에, 단계 S1410에서, HDD 컨트롤러(101)는 데이터 암호화 장치(102)의 레지스터들로부터 상태 및 오류와 같은 정보를 판독한다.
그 다음, 단계 S1411에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 제거한다. 이것이 "NON DATA" 전송형 명령의 실행을 종결한다.
<(2) PIO READ 전송형>
다음으로는, "PIO READ" 전송형 명령의 실행 흐름이 도 13을 참조하여 설명될 것이다.
통상 모드에서 실행 가능한 "PIO READ" 전송형 명령의 일례는, 도 9에 도시되어 있는 "IDENTIFY DEVICE" 명령이다. "IDENTIFY DEVICE" 명령이 실행되면, HDD(103)의 파라미터 정보(512 바이트)가 판독된다. 파라미터 정보는, HDD(103)의 실린더들 또는 헤드들의 수 또는 HDD(103)의 일련 번호와 같은, HDD(103)에 특징적인 정보를 포함한다. HDD(103)에 특징적인 정보는 HDD 컨트롤러(101)로부터 HDD(103)로 기입된 데이터와는 상이하다. 다시 말해, HDD(103)에 특징적인 정보는 암호화되지 않은 데이터이다.
도 13은, "PIO READ" 전송형 명령의 실행 시퀀스에 대응되는, 본 실시예에 따른 제5 제어 프로그램의 일례를 나타내는 흐름도이다. 도 13에서, S1501 내지 S1518은 개개 단계들을 나타낸다. 이 흐름도에서, 데이터 암호화 장치(102)와 연관된 단계들은 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 더 나아가, HDD 컨트롤러(101)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD 컨트롤러(101)의 (도시되지 않은) CPU에 의해 구현된다. 더 나아가, HDD(103)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD(103)의 (도시되지 않은) CPU에 의해 구현된다.
"PIO READ" 전송형 명령이 통상 모드에서 발행되면, 먼저, 단계 S1501에서, HDD 컨트롤러(101)는 HDD(103)를 액세스하기 위한 파라미터들을 레지스터들에 설정한다. 파라미터들은 데이터 암호화 장치(102)의 레지스터 및 HDD(103)의 레지스터 모두에 설정된다.
그 다음, 단계 S1502에서, HDD 컨트롤러(101)는 HDD(103)에서 실행될 ATA 명령("PIO READ" 전송형 명령)을 데이터 암호화 장치(102)의 명령 레지스터로 발행한다. HDD 컨트롤러(101)로부터 "PIO READ" 전송형 ATA 명령 수신시에, 데이터 암호화 장치(102)는 ATA 명령을 장치 I/F(108)의 레지스터에 설정한다.
그 다음, 단계 S1503에서, 데이터 암호화 장치(102)의 CPU(106)는, 명령 레지스터에 설정된 명령이 HDD(103)에서 실행 가능한지의 여부를 검사한다. 명령은, 명령이 실행 가능한 것(메모리(111)의 참조 데이터에 등록된 명령; 도 9)으로 판정되는 경우에만, HDD(103)의 명령 레지스터에 설정(전송)된다. 다시 말해, "PIO READ" 전송형 명령의 경우, 데이터 암호화 장치(102)에 의해, 명령이 실행 가능한지의 여부가 검사되고, 명령이 실행 가능한 것으로 판정되는 경우에만, 명령은 HDD(103)로 전송된다. 여기에서, "PIO READ" 전송형 ATA 명령은, HDD(103)에서 실행 가능한 것으로 판정되고 데이터 암호화 장치(102)로부터 HDD(103)로 전송된다고 가정된다.
단계 S1504에서, HDD(103)는 데이터 암호화 장치(102)로부터 전송된 ATA 명령을 해석하고 실행한다. 예를 들어, "IDENTIFY DEVICE" 명령의 경우, HDD(103)는 요청된 파라미터 정보를 HDD(103)의 섹터 버퍼에 배치하고, 발행된 명령에 대한 상태를 레지스터에 기입한다. 그 다음, 단계 S1505에서, HDD(103)는 인터럽트 신호를 데이터 암호화 장치(102)로 출력한다.
인터럽트 신호의 수신 시에, 단계 S1506에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD(103)의 레지스터로부터 정보를 판독하여 HDD(103)의 상태를 검사한다. 데이터 암호화 장치(102)에 의해 HDD(103)의 레지스터로부터 정보가 판독된 후, 단계 S1507에서, HDD(103)는 인터럽트 신호를 제거한다.
그 다음, 단계 S1508에서, 데이터 암호화 장치(102)의 CPU(106)는 ATA 버스 선택기(107)의 설정을 실행하여 데이터 암호화 장치(102)의 동작 모드를 통상 모드에서 바이패스 모드로 변경한다. 바이패스 모드에 대한 설정의 완료 시에, 단계 S1509에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 HDD 컨트롤러(101)로 출력함으로써, HDD(103)가 준비되었다는 것을 HDD 컨트롤러(101)에 통지한다.
인터럽트 신호의 수신 시에, 단계 S1510에서, HDD 컨트롤러(101)는 HDD(103)의 레지스터들로부터 HDD(103)의 상태 및 오류와 같은 정보를 판독한다. 정보가 HDD(103)의 상태 레지스터로부터 판독되었다는 것을 인식했을 때, 단계 S1511에서, 데이터 암호화 장치(102)는 인터럽트 신호를 HDD 컨트롤러(101)로 출력한다.
그 다음, 단계 S1512에서, HDD 컨트롤러(101)는 HDD(103)의 섹터 버퍼에서 설정된 데이터(파라미터 정보 등)를 판독한다.
소정 갯수의 데이터 부분들이 판독되었다는 것을 검출했을 때, 단계 S1514에서, 데이터 암호화 장치(102)의 CPU(106)는 ATA 버스 선택기(107)의 설정을 실행하여 바이패스 모드를 벗어난다.
바이패스 모드를 벗어난 후, 단계 S1515에서, 데이터 암호화 장치(102)의 CPU(106)는 상태 및 오류 정보를 데이터 암호화 장치(102)의 레지스터들에 설정한 다. 더 나아가, 단계 S1516에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 HDD 컨트롤러(101)로 출력한다.
데이터 암호화 장치(102)로부터의 인터럽트 신호 수신 시에, 단계 S1517에서, 데이터 암호화 장치(102)는 데이터 암호화 장치(102)의 상태 레지스터 및 오류 레지스터로부터 상태 정보 및 오류 정보를 판독한다.
그 다음, 단계 S1518에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 제거한다. 이것이 "PIO READ" 전송형 명령의 실행을 종결한다.
<(3) DMA 전송형>
다음으로는, HDD(103)에 데이터를 기입하거나 또는 HDD(103)로부터 데이터를 판독하는 DMA 전송이 도 14를 참조하여 설명될 것이다.
DMA 전송 동작의 2가지 유형들, 즉, HDD(103)로부터 데이터를 판독하는 "READ_DMA" 동작 및 HDD(103)에 데이터를 기입하는 "WRITE_DMA" 동작이 존재한다. 데이터 암호화 장치(102)는 "WRITE_DMA" 동작에서는 데이터를 암호화하고 "READ_DMA" 동작에서는 데이터를 복호화한다.
도 14는, DMA 전송형 명령의 실행 시퀀스에 대응되는, 본 실시예에 따른 제6 제어 프로그램의 일례를 나타내는 흐름도이다. 도 14에서, S1601 내지 S1615는 개개 단계들을 나타낸다. 이 흐름도에서, 데이터 암호화 장치(102)와 연관된 단계들은 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 더 나아가, HDD 컨트롤러(101)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD 컨트롤러(101)의 (도시되지 않은) CPU에 의해 구현된다. 더 나아가, HDD(103) 와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD(103)의 (도시되지 않은) CPU에 의해 구현된다.
DMA 전송형 명령이 통상 모드에서 발행되면, 먼저, 단계 S1601에서, HDD 컨트롤러(101)는 HDD(103)를 액세스하기 위한 파라미터들을 설정한다.
그 다음, 단계 S1602에서, HDD 컨트롤러(101)는 HDD(103)에서 실행될 ATA 명령(DMA 전송형 명령)을 데이터 암호화 장치(102)의 명령 레지스터로 발행한다. HDD 컨트롤러(101)로부터의 DMA 전송형 ATA 명령 수신 시에, 데이터 암호화 장치(102)는 ATA 명령을 장치 I/F(108)의 레지스터에 설정한다.
그 다음, 단계 S1603에서, 데이터 암호화 장치(102)의 CPU(106)는, 명령 레지스터로 송신된 명령이 HDD(103)에서 실행 가능한지의 여부를 검사한다. 명령이 실행 가능한 경우(메모리(111)의 참조 데이터에 등록된 명령; 도 9)에만, 명령은 HDD(103)의 명령 레지스터로 송신(전송)된다. 다시 말해, DMA 전송형 명령의 경우, 데이터 암호화 장치(102)에 의해, 명령이 실행 가능한지의 여부가 검사되고, 명령이 실행 가능한 것으로 판정되는 경우에만, HDD(103)로 전송된다. 여기에서, DMA 전송형 ATA 명령은, HDD(103)에서 실행 가능한 것으로 판정되고 데이터 암호화 장치(102)로부터 HDD(103)로 전송되는 것으로 가정된다.
그 다음, HDD(103)는 DMA 전송을 준비한다. HDD(103)가 준비되고 나면, 단계 S1604에서, HDD(103)는 DMA 전송 요청 신호를 데이터 암호화 장치(102)로 출력한다.
HDD(103)로부터의 DMA 전송 요청 신호 수신 시에, 단계 S1605에서, 데이터 암호화 장치(102)의 CPU(106)는 암호화 및 복호화 유닛(109)을 설정하여 암호화 또는 복호화를 실행한다. CPU(106)는, HDD 컨트롤러(101)에 의해 발행된 명령의 이름이 "READ_DMA"인 경우에는 복호화를 실행하도록 암호화 및 복호화 유닛(109)을 설정하는 한편, 명령의 이름이 "WRITE_DMA"인 경우에는 암호화를 실행하도록 암호화 및 복호화 유닛(109)을 설정한다.
그 다음, 단계 S1606에서, 데이터 암호화 장치(102)의 CPU(106)는 DMA 전송 요청을 HDD 컨트롤러(101)로 출력한다.
그 다음, 단계 S1607에서, HDD 컨트롤러(101) 및 HDD(103)는 데이터 암호화 장치(102)를 통해 DMA 전송을 실행한다. DMA 전송 동작에서, 데이터 암호화 장치(102)의 암호화 및 복호화 유닛(109)은 DMA에 의해 전송되는 데이터를 암호화 또는 복호화한다.
소정 갯수의 데이터 부분들의 DMA 전송 완료 시에, 단계 S1608에서, HDD(103)는 인터럽트 신호를 데이터 암호화 장치(102)로 출력한다.
인터럽트 신호의 수신시에, 데이터 암호화 장치(102)의 CPU(106)는, 단계 S1609에서, HDD(103)의 상태 레지스터를 검사한다. 그 다음, 단계 S1610에서, HDD(103)는 인터럽트 신호를 제거한다.
그 다음, 단계 S1611에서, 데이터 암호화 장치(102)의 CPU(106)는 HDD(103)로부터 HDD 컨트롤러(101)로의 데이터의 DMA 전송을 중단한다. DMA 전송의 완료 시에, 데이터 암호화 장치(102)의 CPU(106)는 내부 설정을 수행하여 데이터 암호화 장치(102)의 동작 모드를 암호화 및 복호화 모드에서 통상 모드로 변경한다.
그 다음, 단계 S1612에서, 데이터 암호화 장치(102)의 CPU(106)는, 단계 S1609에서 HDD(103)의 상태 레지스터로부터 판독된 상태 및 오류 정보를 데이터 암호화 장치(102)의 레지스터들에 저장한다. 더 나아가, 단계 S1613에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 HDD 컨트롤러(101)로 송신한다.
데이터 암호화 장치(102)로부터의 인터럽트 신호 수신 시에, 단계 S1614에서, HDD 컨트롤러(101)는 데이터 암호화 장치(102)의 레지스터들에 저장된 상태 및 오류 정보를 판독한다.
그 다음, 단계 S1615에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 제거한다. 이것이 DMA 전송형 명령의 실행을 종결한다.
<(4) PIO WRITE형>
다음으로는, HDD(103)에 데이터를 기입하기 위한 "PIO WRITE" 전송형 명령의 실행이 도 15를 참조하여 설명될 것이다.
일반적인 ATA 명령들의 예시들은, "WRITE MULTIPLE" 명령과 같은, HDD(103)에 데이터를 기입하기 위한 "PIO WRITE" 전송형 명령들을 포함한다. 본 실시예에서는, HDD(103)로의 데이터 기입이 제한된다. 따라서, "WRITE MULTIPLE" 명령과 같은, "PIO WRITE" 전송형 명령들은 이용 가능한 명령들(HDD(103)에서 실행 가능한 명령들)에서 제외된다. 다시 말해, "PIO WRITE" 전송형 명령들은 메모리(111)의 참조 데이터에, 사용될 수 있는 ATA 명령들로서 등록되지 않는다.
따라서, "WRITE MULTIPLE" 명령과 같은, "PIO WRITE" 전송형 명령이 HDD 컨트롤러(101)에 의해 발행되는 경우라 하더라도, 데이터 암호화 장치(102)의 CPU(106)는, 명령이 HDD(103)에서 실행 불가능한 것으로 판정하고, 그에 따라, 명령은 HDD(103)로 전송되지 않는다.
도 15는, "PIO WRITE" 전송형 명령의 실행 시퀀스에 대응되는, 본 실시예에 따른 제7 제어 프로그램의 일례를 나타내는 흐름도이다. 도 15에서, S1701 내지 S1706은 개개 단계들을 나타낸다. 이 흐름도에서, 데이터 암호화 장치(102)와 연관된 단계들은 메모리(111)에 저장된 프로그램을 실행하는 CPU(106)에 의해 구현된다. 더 나아가, HDD 컨트롤러(101)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD 컨트롤러(101)의 (도시되지 않은) CPU에 의해 구현된다. 더 나아가, HDD(103)와 연관된 단계들은 메모리에 저장된 프로그램을 실행하는 HDD(103)의 (도시되지 않은) CPU에 의해 구현된다.
"PIO WRITE"형 명령이 통상 모드에서 발행되는 경우, 먼저, 단계 S1701에서, HDD 컨트롤러(101)는 HDD(103)를 액세스하기 위한 파라미터들을 레지스터들에 설정한다. 파라미터들은 데이터 암호화 장치(102)의 레지스터 및 HDD(103)의 레지스터 모두에 설정된다.
그 다음, 단계 S1702에서, HDD 컨트롤러(101)는 HDD(103)에서 실행될 ATA 명령("PIO WRITE" 전송형 명령)을 데이터 암호화 장치(102)의 명령 레지스터로 발행한다. HDD 컨트롤러(101)로부터의 "PIO WRITE"형 ATA 명령 수신 시에, 데이터 암호화 장치(102)는 ATA 명령을 장치 I/F(108)의 레지스터에 설정한다.
그 다음, 단계 S1703에서, 데이터 암호화 장치(102)의 CPU(106)는, 명령 레지스터에 설정된 명령이 HDD(103)에서 실행 가능한지의 여부를 검사한다. 명령은, 명령이 실행 가능한 것으로 판정되는 (메모리(111)의 참조 데이터에 등록된 명령인) 경우에만 HDD(103)의 명령 레지스터에 설정(전송)된다. 다시 말해, "PIO WRITE" 전송형 명령은 데이터 암호화 장치(102)에 의해 실행 불가능한 명령으로 판정되고, 따라서, 명령은 HDD(103)로 전송되지 않는다.
단계 S1703에서, 데이터 암호화 장치(102)의 CPU(106)는 명령 오류를 나타내는 정보를 데이터 암호화 장치(102)의 오류 레지스터에 설정한다. 그 다음, 단계 S1704에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 HDD 컨트롤러(101)로 송신한다.
데이터 암호화 장치(102)로부터의 인터럽트 신호 수신 시에, 단계 S1705에서, HDD 컨트롤러(101)는 데이터 암호화 장치(102)의 상태 레지스터 및 오류 레지스터로부터 정보를 판독한다. 이와 같이, HDD 컨트롤러(101)는 명령 오류의 발생을 인식한다.
그 다음, 단계 S1706에서, 데이터 암호화 장치(102)의 CPU(106)는 인터럽트 신호를 제거한다. 이것이 "PIO WRITE" 전송형 명령의 실행을 종결한다.
예를 들어, 컴퓨터 시스템(100)이 MFP라고 가정하면, 상술한 "PIO WRITE" 전송형 명령들은 MFP에 의해 디폴트로 사용되지 않는다. 그에 따라, 도 15에 도시된 바와 같이, MFP에 의해 디폴트로 사용되지 않는 명령(예를 들어, "PIO WRITE" 전송형 명령)이 불합리하게 발행되면, HDD(103)로의 명령 전송은 금지된다. 이 구성에 의해, 암호화되지 않은 바이패스에 의한 HDD(103)로의 데이터 전송이 신뢰성 있게 방지된다.
이와 같이, 본 실시예의 구성에 따르면, HDD(103) 및 데이터 암호화 장치(102)가 함께 도난되어 상이한 컴퓨터 시스템에 접속되는 경우라 하더라도, 데이터 누설이 방지될 수 있다.
상기 실시예는, "PIO WRITE"형 명령의 HDD(103)로의 전송이 금지되는 예의 맥락에서 설명되었다. 그러나, 통상 모드에서, 데이터 암호화 장치(102)의 CPU(106)는, 메모리(111)의 참조 데이터(도 9)에 ATA 명령들로서 등록되지 않은 임의의 명령을 HDD(103)로 전송하는 것을 금지하도록 제어를 실시한다. 따라서, HDD(103)에서의 데이터 보안이 유지된다.
메모리(111)의 참조 데이터에 등록된 명령 및 등록되지 않은 명령들은 (도 8 및 도 9의) 상술한 예의 것들로 제한되는 것은 아니다.
상술한 바와 같이, 본 실시예에 따른 데이터 암호화 장치(102)는 컴퓨터 시스템과 외부 저장 장치 사이를 브리징한다. 더 나아가, 암호화 및 복호화 유닛(109)은, HDD(103)의 기밀성이 유지될 수 있도록 하기 위해, HDD(103)에 기입된 데이터를 암호화한다. 특히, 암호화 또는 복호화에 사용되는 키 정보는 컴퓨터 시스템의 고유 정보 및 데이터 암호화 장치(102)의 고유 정보를 사용해 생성되므로, 컴퓨터 시스템과 데이터 암호화 장치의 상이한 쌍으로부터 유효한 키 정보를 생성하는 것은 불가능하다. 따라서, 높은 정도의 기밀성이 실현될 수 있다.
더 나아가, 컴퓨터 시스템(100)이 HDD(103)를 액세스하기 전에, 컴퓨터 시스템(100)과 데이터 암호화 장치(102) 사이에서 인증을 실행하여, 인증에 성공하지 않으면 HDD(103)로의 액세스가 허용되지 않는다.
더 나아가, 인증의 완료 후에 HDD(103)가 액세스되는 경우라면, 컴퓨터 시스템(100)에 의해 발행된 모든 명령들이 데이터 암호화 장치(102)에 의해 인식된다. 데이터 암호화 장치(102)의 CPU(106)는, 명령들이 실행 가능한지의 여부를 판정하여 실행되는 명령들을 제한함으로써, HDD(103)로의 불필요한 액세스를 방지한다.
더 나아가, 데이터 암호화 장치(102)는, 추가적인 신호선들을 필요로 하지 않고, 표준 인터페이스들을 통해 HDD 컨트롤러(101) 및 HDD(103)와의 통신 및 데이터 송수신을 수행할 수 있다. 다시 말해, 컴퓨터 시스템 또는 외부 저장 장치의 사양들이 변경될 필요가 없다.
상술한 구성으로써, 컴퓨터 시스템과 외부 저장 장치 사이에 제공되는 데이터 암호화 장치에 의해 데이터 보안을 유지할 수 있다.
따라서, 데이터 암호화 장치 및 외부 저장 장치가 함께 도난되는 경우라 하더라도, 상당한 정도의 기밀성을 유지할 수 있는 데이터 암호화 및 저장 시스템이 기존의 컴퓨터 시스템 및 외부 저장 장치의 사양들을 변경하지 않으면서 저비용으로 구현될 수 있다.
사용되는 명령들의 세트들 및 대응되는 동작들이 도 8 및 도 9를 참조하여 설명된 것들로 제한되지 않으며, 다양한 동작들을 위한 명령들의 다양한 세트들이 애플리케이션들 및 의도된 목적들에 따라 사용될 수 있다.
본 발명의 실시예가 상술되었지만, 본 발명은, 시스템, 장치, 방법, 프로그램, 또는 저장 매체와 같은, 다양한 형태들로 구현될 수 있다. 좀더 구체적으로, 예를 들어, 본 발명은 복수의 장치를 포함하는 시스템에 적용되거나 또는 독립 장 치에 적용될 수 있다.
이제는, 본 발명의 실시예에 따른 데이터 암호화 장치에 의해 판독가능한 다양한 데이터 처리 프로그램들을 저장하는 저장 매체의 메모리 맵 구성이 도 16을 참조하여 설명될 것이다.
도 16은 본 실시예에 따른 데이터 암호화 장치에 의해 판독가능한 다양한 데이터 처리 프로그램들을 저장하는 저장 매체(기록 매체)의 메모리 맵을 나타내는 도면이다.
도시되어 있지는 않지만, 일부 경우들에서는, 버전 정보 및 저자와 같은, 저장 매체에 저장된 한 세트의 프로그램들을 관리하기 위한 정보, 프로그램들을 표현하기 위한 아이콘들과 같은, 프로그램들을 판독하는 OS 등에 의존하는 정보 등도 저장된다.
더 나아가, 다양한 프로그램들에 속하는 데이터도 프로그램들과 연관된 디렉토리들에 저장된다. 더 나아가, 일부 경우들에서는, 다양한 프로그램들을 컴퓨터에 설치하기 위한 프로그램, 설치될 압축 프로그램을 압축 해제하기 위한 프로그램 등도 저장된다.
도 2, 도 10, 도 11a, 도 11b, 도 12, 도 13, 도 14, 및 도 15에 도시된, 실시예의 기능들은 외부로부터 설치된 프로그램에 따라 호스트 컴퓨터에 의해 실행될 수도 있다. 그 경우, 프로그램을 포함하는 정보 세트가 CD-ROM, 플래시 메모리, 또는 플로피 디스크와 같은 저장 매체로부터 또는 네트워크를 통해 외부 저장 매체로부터 출력 장치로 공급될 수 있다. 이 또한 본 발명의 범위 내에 해당된다.
상술한 실시예의 기능들을 구현하는 소프트웨어의 프로그램 코드를 저장하는 저장 매체가, 시스템 또는 장치의 컴퓨터(또는 CPU나 MPU)가 저장 매체에 저장된 프로그램 코드를 판독하고 실행할 수 있도록, 시스템 또는 장치에 공급된다. 이 또한 본 발명의 범위 내에 해당된다.
이 경우, 본 발명의 신규한 기능들은 저장 매체로부터 판독된 프로그램 코드에 의해 구현되고, 그에 따라, 프로그램 코드를 저장하는 저장 매체는 본 발명의 범위 내에 해당된다.
이와 같이, 프로그램이 적절하게 기능하기만 한다면, 프로그램의 형태는 문제되지 않는다. 예를 들어, 프로그램은 오브젝트 코드, 인터프리터(interpreter)에 의해 실행되는 프로그램, OS에 공급되는 스크립트 데이터 등의 형태일 수도 있다.
프로그램을 공급하기 위한 저장 매체는, 예를 들어, 플렉시블 디스크, 하드 디스크, 광 디스크, 광-자기 디스크, CD-ROM, CD-R, CD-RW, 자기 테이프, 비휘발성 메모리 카드, ROM, 또는 DVD일 수 있다.
이 경우, 상술한 실시예의 기능들은 저장 매체로부터 판독된 프로그램 코드에 의해 구현되고, 그에 따라, 프로그램 코드를 저장하는 저장 매체는 본 발명의 범위 내에 해당된다.
다른 방법으로, 프로그램은 클라이언트 컴퓨터의 브라우저를 사용해 인터넷상의 웹 페이지에 접속하고 웹 페이지로부터 프로그램 자체를 하드 디스크와 같은 저장 매체로 다운로드하는 것에 의해 취득될 수 있다. 또 다른 방법으로, 프로그 램은 웹 페이지로부터 자동 설치 기능을 포함하는 압축 파일을 하드 디스크와 같은 저장 매체로 다운로드하는 것에 의해 취득될 수도 있다. 더 나아가, 프로그램의 프로그램 코드는, 개개 파일들이 웹 페이지들로부터 다운로드될 수 있도록, 복수의 파일로 분할되어 상이한 웹 페이지들에 제공될 수도 있다. 다시 말해, 복수의 사용자가 컴퓨터에 의해 본 발명에 따른 처리 기능들을 구현하기 위한 프로그램 파일들을 다운로드할 수 있게 하는 WWW 서버, FTP 서버 등도 본 발명의 범위 내에 해당된다.
더 나아가, 프로그램이 CD-ROM과 같은 저장 매체에 저장되어 사용자에게 분배될 때, 프로그램이 암호화될 수 있다. 이 경우, 일정 조건을 만족시키는 사용자에게는 인터넷을 통해 웹 페이지로부터 복호화를 위한 키 정보를 다운로드하는 것이 허용된다. 사용자는 암호화된 프로그램을 키 정보를 사용해 복호화하여 컴퓨터에 프로그램을 설치할 수 있다.
컴퓨터에 의한 프로그램 코드의 실행을 통해 실시예의 기능들을 달성하는 대신, 컴퓨터에서 실행되는 OS(운영 체제)가 프로그램 코드의 지시들에 따른 처리의 일부 또는 전부를 실행함으로써, 본 실시예의 기능들을 달성할 수도 있다. 이 또한 본 발명의 범위 내에 해당된다.
더 나아가, 저장 매체로부터 판독된 프로그램 코드는, 기능 확장 보드 또는 기능 확장 유닛의 CPU 등이 프로그램 코드에 따른 처리의 일부 또는 전부를 실행하여 실시예의 기능들을 달성할 수 있도록 하기 위해, 컴퓨터에 탑재된 기능 확장 보드 또는 컴퓨터에 접속된 기능 확장 유닛의 메모리에 기입될 수 있다. 이 또한 본 발명의 범위 내에 해당된다.
더 나아가, 본 발명은 복수의 장치를 포함하는 시스템 또는 독립 장치에 적용될 수 있다. 더 나아가, 본 발명은 프로그램을 시스템 또는 장치에 공급하는 것에 의해 구현될 수 있다. 이 경우에, 시스템 또는 장치가, 프로그램을 저장하는 저장 매체로부터 본 발명을 구현하기 위한 소프트웨어를 구성하는 프로그램을 판독하도록 하여, 시스템 또는 장치가 본 발명의 이점들을 달성할 수 있다.
본 발명은 상술한 실시예들로 제한되지 않으며, 본 발명의 사상을 벗어나지 않으면서, (실시예들의 조합들을 포함하는) 다양한 변경들이 수행될 수 있다. 그러한 변경들이 본 발명의 범주로부터 제외되지 않는다.
본 발명의 다양한 실시예들이 상술되었지만, 당업자라면, 본 발명의 범주가 본 명세서의 특정 설명들로 제한되지 않는다는 것을 이해할 수 있을 것이다.
상술한 실시예들에 대한 변경들의 조합들 또한 본 발명의 범주 내에 해당된다는 것도 이해할 수 있을 것이다.
상술한 바와 같이, 본 실시예에 따르면, 저장 장치(예를 들어, HDD(103))와 저장 장치를 제어하기 위한 제어 장치(예를 들어, HDD 컨트롤러(101)) 사이에 접속되어, 저장 장치와 제어 장치 사이에서 전송되는 데이터의 보안성을 적절하게 유지하는 데이터 처리 장치(예를 들어, 데이터 암호화 장치(102))를 유익하게 제공할 수 있다.
예시적 실시예들을 참조하여 본 발명이 설명되었지만, 본 발명이 개시된 예시적 실시예들로 제한되지 않는다는 것이 이해되어야 한다. 다음의 청구항들의 범 주는 모든 변경들, 등가 구조들 및 기능들을 포함하도록 최대한 광범위하게 해석되어야 한다.
이와 같이, 본 발명에 따르면, 향상된 데이터 처리 장치 및 데이터 처리 방법이 제공된다.

Claims (13)

  1. 저장 장치와 상기 저장 장치를 제어하는 제어 장치 사이의 접속을 위한 데이터 처리 장치로서,
    상기 제어 장치로부터 발행된 명령을 수신하도록 구성된 제1 수신 유닛;
    상기 저장 장치로부터의 데이터를 수신하도록 구성된 제2 수신 유닛;
    상기 저장 장치로 발행되는 상기 명령을 명시하기 위한 정보를 저장하도록 구성된 기억 유닛;
    상기 제1 수신 유닛에 의해 수신된 명령에 대응되는 정보가 상기 기억 유닛에 저장되어 있는 경우 상기 수신된 명령이 상기 저장 장치로 발행되는 것으로 판정하고, 상기 수신된 명령에 대응되는 정보가 상기 기억 유닛에 저장되어 있지 않은 경우 상기 수신된 명령이 상기 저장 장치로 발행되지 않는 것으로 판정하도록 구성된 판정 유닛;
    상기 제어 장치로부터 수신된 데이터를 암호화하고 상기 저장 장치로부터 수신된 데이터를 복호화하도록 구성된 암호화 및 복호화 유닛;
    상기 저장 장치로 발행되는 것으로 상기 판정 유닛에 의해 판정된 명령은 상기 저장 장치로 발행될 수 있게 하고 상기 저장 장치로 발행되지 않는 것으로 상기 판정 유닛에 의해 판정된 명령은 상기 저장 장치로 발행될 수 없도록 하는 제어를 수행하도록 구성된 제1 제어 유닛; 및
    상기 명령이 암호화되지 않은 데이터를 상기 저장 장치로부터 판독하기 위한 것인 경우, 상기 제1 제어 유닛에 의해 발행된 명령에 응답하여 상기 저장 장치로부터 상기 제2 수신 유닛에 의해 수신된 데이터에 대해 상기 암호화 및 복호화 유닛이 복호화 처리를 행하지 않도록 제어하고, 상기 명령이 암호화되지 않은 데이터를 상기 저장 장치로부터 판독하기 위한 것이 아닌 경우, 상기 데이터에 대해 상기 암호화 및 복호화 유닛이 복호화 처리를 행할 수 있게 제어하도록 구성된 제2 제어 유닛
    을 포함하는 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 명령에 의해 상기 저장 장치로부터 판독된 상기 데이터는 상기 저장 장치의 고유한 정보인 데이터 처리 장치.
  3. 제1항에 있어서,
    상기 제어 장치와 상기 데이터 처리 장치 사이에서 인증을 행하는 인증 유닛; 및
    상기 데이터 처리 장치가, 상기 인증 유닛에 의한 상기 인증이 실행되기 전에는, 상기 제1 수신 유닛에서 수신된 상기 저장 장치에 액세스하기 위한 요청이 상기 데이터 처리 장치에 의해 차단되는 차단 모드에서 동작하고, 상기 인증 유닛에 의한 상기 인증이 실행된 후에는, 상기 제1 수신 유닛에서 수신된 상기 저장 장치에 액세스하기 위한 요청이 허용되는 액세스 모드에서 동작하도록 상기 데이터 처리 장치의 동작 모드를 제어하는 제3 제어 유닛
    을 더 포함하고,
    상기 저장 장치로 발행되는 것으로 상기 판정 유닛에 의해 판정된 상기 명령들은, 상기 데이터 처리 장치의 상기 동작 모드에 의존하는 데이터 처리 장치.
  4. 제3항에 있어서,
    상기 판정 유닛은, 상기 액세스 모드에서 특정 명령이 상기 저장 장치로 발행되는 것으로 판정하도록 정해지고, 상기 차단 모드에서 상기 특정 명령이 상기 저장 장치로 발행되지 않는 것으로 판정하도록 정해지는 데이터 처리 장치.
  5. 제1항에 있어서,
    상기 암호화 및 복호화에 사용되는 키 정보를 생성하기 위한 시드 정보를 저장하도록 구성된 저장 유닛을 더 포함하고,
    상기 암호화 및 복호화 유닛은 상기 저장 유닛에 저장된 상기 시드 정보 및 상기 제어 장치로부터의 고유 정보에 기초하여 생성된 키 정보를 사용하여 데이터를 암호화하고 복호화하는 데이터 처리 장치.
  6. 제5항에 있어서,
    상기 키 정보를 생성하고 상기 키 정보를 상기 저장 유닛에 저장하도록 구성된 키 생성 유닛을 더 포함하고,
    상기 키 정보는, 상기 저장 유닛에 저장된 상기 시드 정보 및 상기 제1 수신 유닛에서 수신된 상기 제어 장치의 상기 고유 정보에 기초하여, 상기 데이터 처리 장치가 활성화될 때마다 생성되는 데이터 처리 장치.
  7. 제1항에 따른 데이터 처리 장치, 저장 장치 및 제어 장치를 포함하는 데이터 처리 기기(data processing apparatus)로서,
    상기 데이터 처리 장치는 상기 제어 장치와 상기 저장 장치 사이에 접속되는 데이터 처리 기기.
  8. 저장 장치와 상기 저장 장치를 제어하는 제어 장치 사이에 접속된 데이터 처리 장치에 대한 데이터 처리 방법으로서,
    상기 제어 장치로부터 상기 저장 장치로 발행된 명령을 수신하는 제1 수신 단계;
    상기 저장 장치로부터의 데이터를 수신하는 제2 수신 단계;
    상기 제1 수신 단계에서 수신된 명령에 대응되는 정보가 상기 데이터 처리 장치의 기억 유닛에 저장되어 있는 경우 상기 수신된 명령이 상기 저장 장치로 발행되는 것으로 판정하고 - 상기 정보는 상기 저장 장치로 발행되는 상기 명령을 명시하기 위함 - , 상기 수신된 명령에 대응되는 정보가 상기 기억 유닛에 저장되어 있지 않은 경우 상기 수신된 명령이 상기 저장 장치로 발행되지 않는 것으로 판정하는 판정 단계;
    상기 제어 장치로부터 수신된 데이터는 암호화 및 복호화 유닛에 의해 암호화되고 상기 저장 장치로부터 수신된 데이터는 상기 암호화 및 복호화 유닛에 의해 복호화되는 암호화 및 복호화 단계;
    상기 판정 단계에서 상기 저장 장치로 발행되는 것으로 판정된 명령은 상기 저장 장치로 발행되고 상기 판정 단계에서 상기 저장 장치로 발행되지 않는 것으로 판정된 명령은 상기 저장 장치로 발행되지 않도록 하는 제어를 수행하는 제1 제어 단계; 및
    상기 명령이 암호화되지 않은 데이터를 상기 저장 장치로부터 판독하기 위한 것인 경우, 상기 제1 제어 단계에서 발행된 명령에 응답하여 상기 저장 장치로부터 수신된 데이터에 대해 복호화를 행하지 않도록 상기 암호화 및 복호화 유닛을 제어하고, 상기 명령이 암호화되지 않은 데이터를 상기 저장 장치로부터 판독하기 위한 것이 아닌 경우, 상기 데이터에 대해 복호화를 행하도록 상기 암호화 및 복호화 유닛을 제어하는 제2 제어 단계
    를 포함하는 데이터 처리 방법.
  9. 제8항에 있어서,
    상기 명령에 의해 상기 저장 장치로부터 판독된 상기 데이터는 상기 저장 장치의 고유한 정보인 데이터 처리 방법.
  10. 제8항에 있어서,
    상기 제어 장치와 상기 데이터 처리 장치 사이에서 인증을 행하는 인증 단계; 및
    상기 데이터 처리 장치가, 상기 인증 단계에서 상기 인증을 행하기 전에, 상기 저장 장치에 액세스하기 위한 상기 제어 장치로부터의 요청이 차단되는 차단 모드, 및 상기 인증 단계에서 상기 인증을 행한 후에, 상기 저장 장치에 액세스하기 위한 상기 제어 장치로부터 상기 저장 장치로의 요청이 허용되는 액세스 모드 중 하나에서 동작하도록, 상기 데이터 처리 장치의 동작 모드를 제어하는 제3 제어 단계
    를 더 포함하고,
    상기 판정 단계에서, 상기 저장 장치로 발행되는 것으로 판정되는 명령들은 상기 데이터 처리 장치의 상기 동작 모드에 의존하는 데이터 처리 방법.
  11. 제10항에 있어서,
    상기 판정 단계에서, 명령이 상기 액세스 모드에서 상기 저장 장치로 발행되는 것으로 판정되는 경우, 상기 명령이 상기 차단 모드에서는 상기 저장 장치로 발행되지 않는 것으로 판정되는 데이터 처리 방법.
  12. 제8항에 있어서,
    시드 정보를 저장 유닛에 저장하는 저장 단계를 더 포함하고,
    상기 시드 정보는 상기 암호화 및 복호화 단계에 사용되는 키 정보를 생성하는데 사용되고, 상기 암호화 및 복호화 단계는 상기 저장 유닛에 저장된 상기 시드 정보 및 상기 제어 장치의 고유 정보에 기초하여 생성된 키 정보를 사용하여 행해지는 데이터 처리 방법.
  13. 제12항에 있어서,
    상기 키 정보를 생성하고 상기 키 정보를 상기 저장 유닛에 저장하는 키 생성 단계를 더 포함하고,
    상기 키 정보는, 상기 저장 유닛에 저장된 상기 시드 정보 및 상기 제어 장치로부터 매번 취득되는 상기 제어 장치의 상기 고유 정보에 기초하여, 상기 데이터 처리 장치가 활성화될 때마다 생성되는 데이터 처리 방법.
KR1020070018600A 2006-02-24 2007-02-23 데이터 처리 장치 및 데이터 처리 방법 KR100937784B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00048943 2006-02-24
JP2006048943A JP4829639B2 (ja) 2006-02-24 2006-02-24 データ処理装置およびデータ処理方法

Publications (2)

Publication Number Publication Date
KR20070088389A KR20070088389A (ko) 2007-08-29
KR100937784B1 true KR100937784B1 (ko) 2010-01-20

Family

ID=38038074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070018600A KR100937784B1 (ko) 2006-02-24 2007-02-23 데이터 처리 장치 및 데이터 처리 방법

Country Status (5)

Country Link
US (2) US8539605B2 (ko)
EP (3) EP3543893A1 (ko)
JP (1) JP4829639B2 (ko)
KR (1) KR100937784B1 (ko)
CN (1) CN100587677C (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4829639B2 (ja) 2006-02-24 2011-12-07 キヤノン株式会社 データ処理装置およびデータ処理方法
JP5266713B2 (ja) * 2007-10-23 2013-08-21 日本電気株式会社 情報処理装置、プログラム、外部暗号化システム、及び、外部暗号化方法
JP2009294975A (ja) * 2008-06-06 2009-12-17 Oki Electric Ind Co Ltd 記録情報管理装置、記録情報管理方法及びプログラム
CN101714090B (zh) * 2008-10-08 2013-02-27 英业达股份有限公司 开机方法
US9286493B2 (en) * 2009-01-07 2016-03-15 Clevx, Llc Encryption bridge system and method of operation thereof
US9734356B2 (en) * 2009-06-29 2017-08-15 Clevx, Llc Encrypting portable media system and method of operation thereof
JP5445096B2 (ja) * 2009-12-15 2014-03-19 富士通株式会社 情報処理装置、コマンド判定プログラム、およびコマンド判定方法
JP5743475B2 (ja) * 2010-09-28 2015-07-01 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US20120166792A1 (en) * 2010-12-22 2012-06-28 Tat Kin Tan Efficient nemo security with ibe
JP5775367B2 (ja) * 2011-06-06 2015-09-09 キヤノン株式会社 情報処理装置及びその制御方法と、ミラーリングシステム及びraid制御装置
KR101236991B1 (ko) * 2011-10-24 2013-02-25 한국전자통신연구원 하드디스크 암호화를 위한 장치 및 방법
CN103136126A (zh) * 2011-12-05 2013-06-05 杭州华澜微科技有限公司 一种可保障数据安全性的数据安全存储设备的实现方法
CN104158666A (zh) * 2014-08-28 2014-11-19 电子科技大学 实现智能手环与智能移动终端的绑定和认证方法
US9858429B2 (en) * 2014-12-01 2018-01-02 Samsung Electronics Co., Ltd. Methods of data transfer in electronic devices
JP2017163280A (ja) 2016-03-08 2017-09-14 キヤノン株式会社 情報処理装置及び情報処理装置における暗号化ユニットの搭載判別方法、及びプログラム
KR102067425B1 (ko) * 2017-10-11 2020-02-11 한국전자통신연구원 사물인터넷 환경에서 기기 데이터 저장 장치 및 그 방법
JP7179489B2 (ja) 2018-05-18 2022-11-29 キヤノン株式会社 ストレージシステム及びその制御方法、プログラム、並びに記憶制御システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040909A (ko) * 2001-11-17 2003-05-23 에노바 테크놀로지 코퍼레이션 데이터저장을 위한 암호화-암호해독 장치
KR20050039290A (ko) * 2003-10-24 2005-04-29 (주) 미석이노텍 암호화 칩을 이용한 저장매체 보안 장치 및 그 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2733220B2 (ja) * 1986-09-30 1998-03-30 シャープ株式会社 複合型画像処理装置
US5045875A (en) * 1988-01-11 1991-09-03 Canon Kabushiki Kaisha Camera with automatic focusing device
JPH01185621A (ja) 1988-01-20 1989-07-25 Canon Inc Afカメラの露出制御装置
JPH0498552A (ja) 1990-08-17 1992-03-31 Fujitsu Ltd 電子ファイリング装置
JPH1185621A (ja) 1997-09-12 1999-03-30 Nec Corp 記録データ暗号化装置
JP2000215147A (ja) 1999-01-27 2000-08-04 Toshiba Corp ディスク記憶装置及び同装置に適用するコマンド制御方法
WO2000057290A1 (fr) * 1999-03-19 2000-09-28 Hitachi, Ltd. Processeur d'informations
US7278016B1 (en) * 1999-10-26 2007-10-02 International Business Machines Corporation Encryption/decryption of stored data using non-accessible, unique encryption key
EE200000390A (et) * 2000-11-02 2002-06-17 Artec Design Group O� Protokolli analüüsil baseeruv andmete krüpteerimisseade
US7363425B2 (en) * 2001-12-28 2008-04-22 Hewlett-Packard Development Company, L.P. System and method for securing drive access to media based on medium identification numbers
JP4122777B2 (ja) * 2002-01-18 2008-07-23 日本ビクター株式会社 コンテンツ記録再生装置
JP2003281071A (ja) * 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US20030188162A1 (en) * 2002-03-29 2003-10-02 Brant Candelore Locking a hard drive to a host
US7352867B2 (en) * 2002-07-10 2008-04-01 General Instrument Corporation Method of preventing unauthorized distribution and use of electronic keys using a key seed
US7076666B2 (en) * 2002-10-17 2006-07-11 Sony Corporation Hard disk drive authentication for personal video recorder
WO2005029272A2 (en) * 2003-09-15 2005-03-31 Acres Gaming Incorporated Method and device for data protection and security in a gaming machine
US7549044B2 (en) * 2003-10-28 2009-06-16 Dphi Acquisitions, Inc. Block-level storage device with content security
CN1304915C (zh) * 2004-01-16 2007-03-14 西北工业大学 计算机硬盘数据加密方法及其装置
CA2558309A1 (en) * 2004-03-05 2005-09-15 Secure Systems Limited Partition access control system and method for controlling partition access
JP4698982B2 (ja) * 2004-04-06 2011-06-08 株式会社日立製作所 暗号処理を行うストレージシステム
JP4829639B2 (ja) 2006-02-24 2011-12-07 キヤノン株式会社 データ処理装置およびデータ処理方法
US8464073B2 (en) * 2006-09-13 2013-06-11 Stec, Inc. Method and system for secure data storage
US20080184035A1 (en) * 2007-01-30 2008-07-31 Technology Properties Limited System and Method of Storage Device Data Encryption and Data Access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040909A (ko) * 2001-11-17 2003-05-23 에노바 테크놀로지 코퍼레이션 데이터저장을 위한 암호화-암호해독 장치
KR20050039290A (ko) * 2003-10-24 2005-04-29 (주) 미석이노텍 암호화 칩을 이용한 저장매체 보안 장치 및 그 방법

Also Published As

Publication number Publication date
EP2544122A2 (en) 2013-01-09
CN101025714A (zh) 2007-08-29
EP1830300A3 (en) 2010-02-24
JP4829639B2 (ja) 2011-12-07
EP3543893A1 (en) 2019-09-25
EP2544122B1 (en) 2019-05-22
EP1830300A2 (en) 2007-09-05
US8839359B2 (en) 2014-09-16
KR20070088389A (ko) 2007-08-29
JP2007226667A (ja) 2007-09-06
US8539605B2 (en) 2013-09-17
EP1830300B1 (en) 2019-05-08
EP2544122A3 (en) 2014-04-02
US20120008770A1 (en) 2012-01-12
US20070204171A1 (en) 2007-08-30
CN100587677C (zh) 2010-02-03

Similar Documents

Publication Publication Date Title
KR100937784B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
JP5194204B2 (ja) Usb保護記憶装置
US7269743B2 (en) Method and apparatus for secure data mirroring a storage system
EP2269157B1 (en) Data processing device
US20080307522A1 (en) Data Management Method, Program For the Method, and Recording Medium For the Program
CN115048681B (zh) 数据安全保护方法、装置、目标设备及存储介质
JP5676145B2 (ja) 記憶媒体、情報処理装置およびコンピュータプログラム
JP2008005408A (ja) 記録データ処理装置
US7694154B2 (en) Method and apparatus for securely executing a background process
JP2007282064A (ja) データ処理装置、データ処理方法、記憶媒体、プログラム
US7934099B2 (en) Device and method for generating digital signatures
JP2008017119A (ja) 記録データ処理装置
JP5127989B2 (ja) データ処理装置およびデータ処理方法
KR20130079004A (ko) 스마트폰에서 파일 시스템 가상화를 이용한 모바일 정보 보호 시스템 및 가상 보안 환경 제공 방법
CN112149167B (zh) 一种基于主从系统的数据存储加密方法及装置
JP4981981B2 (ja) データ処理装置およびデータ処理方法
KR101042218B1 (ko) 컴퓨터용 데이터 보안시스템의 데이터 보안방법
KR101569124B1 (ko) 인증 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E801 Decision on dismissal of amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20081013

Effective date: 20090924

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121221

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131226

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171226

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 11