KR100954649B1 - 데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법 - Google Patents

데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법 Download PDF

Info

Publication number
KR100954649B1
KR100954649B1 KR1020080005457A KR20080005457A KR100954649B1 KR 100954649 B1 KR100954649 B1 KR 100954649B1 KR 1020080005457 A KR1020080005457 A KR 1020080005457A KR 20080005457 A KR20080005457 A KR 20080005457A KR 100954649 B1 KR100954649 B1 KR 100954649B1
Authority
KR
South Korea
Prior art keywords
data
size
transmitted
encrypted
receivable
Prior art date
Application number
KR1020080005457A
Other languages
English (en)
Other versions
KR20080076719A (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 KR20080076719A publication Critical patent/KR20080076719A/ko
Application granted granted Critical
Publication of KR100954649B1 publication Critical patent/KR100954649B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/602Providing cryptographic facilities or services
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls

Landscapes

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

Abstract

데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 데이터 전송을 중단시키지 않고 암호화 및 복호화를 행한다. 수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구 패킷을 디스크 장치로부터 수신한 경우에, 제1 수신 가능 사이즈 이상이고, 또한, 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 RAID 컨트롤러에 대하여 송신하고, 송신한 데이터 전송 요구에 대한 응답으로서 RAID 컨트롤러로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 수신한 데이터를 암호화 데이터 사이즈 단위로 암호화하고, 암호화한 데이터를 제1 수신 가능 사이즈 단위로 디스크 장치에 대하여 송신한다.
Figure R1020080005457
RAID 컨트롤러, 메인 메모리, CPU, 호스트 장치, 디스크 장치, 스위치

Description

데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법{DATA ENCRYPTION APPARATUS, DATA DECRYPTION APPARATUS AND DATA ENCRYPTION METHOD}
본 발명은, 제1 장치와 제2 장치 사이에서 전송되는 데이터에 대하여, 암호화 및 복호화를 행하는 데이터 암호화 장치, 데이터 복호화 장치, 데이터 암호화 방법, 데이터 복호화 방법 및 데이터 중계 장치에 관한 것이다. 특히, 데이터 전송의 단위로 되는 데이터 사이즈와, 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에, 데이터 전송을 중단시키지 않고 암호화 및 복호화를 행할 수 있는 데이터 암호화 장치, 데이터 복호화 장치, 데이터 암호화 방법, 데이터 복호화 방법 및 데이터 중계 장치에 관한 것이다.
종래, 자기 디스크 장치나 광 디스크 장치 등의 기억 장치에서는, 도난이나 부정 액세스에 의한 정보 누설을 방지하는 것을 목적으로 하여, 기억 매체(자기 디스크나 광 디스크 등)에 데이터를 기록할 때에나, 호스트 컴퓨터 등의 상위 장치와의 사이에서 데이터를 송수신할 때에, 그 데이터를 암호화하는 것이 행해지고 있 다(예를 들면, 특허 문헌 1 및 2를 참조).
예를 들면, 기억 매체로서 복수의 디스크를 구비한 디스크 장치와, 디스크 장치에 대한 데이터의 판독이나 기입을 요구하는 상위 장치와, 상위 장치로부터의 요구에 기초하여 디스크 장치에 대한 데이터의 입출력을 제어하는 RAID 컨트롤러(디스크 제어장치)로 구성되는 일반적인 RAID(Redundant Arrays of Inexpensive Disks) 시스템에 대해서 설명한다.
도 11은, 종래의 RAID 시스템의 일례를 도시하는 도면이다. 도 11에 도시하는 바와 같이, 이 RAID 시스템은, RAID 컨트롤러(10)와, 상위 장치인 호스트 장치(20)와, 디스크 장치(30)로 구성되어 있고, RAID 컨트롤러(10)는, 호스트 장치(20)와 디스크 장치(30) 사이에 접속된다.
이 중, RAID 컨트롤러(10)는, 도 11에 도시하는 바와 같이, 호스트 인터페이스 제어부(11)와, 메인 메모리(12)와, 메모리 제어부(13)와, CPU(Central Processing Unit)(14)와, 디스크 인터페이스 제어부(15)를 갖는다.
각 기능부에 대해서 간단히 설명하면, 호스트 인터페이스 제어부(11)는, 호스트 장치(20)와의 사이에서 교환되는 데이터 전송을 제어하는 제어부이며, 메인 메모리(12)는, 캐쉬 메모리로서 이용하기 위한 캐쉬 영역 등을 갖는 메모리이다.
메모리 제어부(13)는, 메인 메모리(12)에 대한 데이터의 판독 및 기입을 제어하는 제어부이다. CPU(14)는, RAID 컨트롤러(10)를 전체 제어하는 펌웨어를 실행하는 중앙 처리 장치이다. 디스크 인터페이스 제어부(15)는, 디스크 장치(30)와의 사이에서 행해지는 데이터 전송을 제어하는 제어부이다.
여기에서, 또한 도 11을 이용하여, 이러한 RAID 컨트롤러(10)의 동작에 대해서 간단히 설명해 둔다. 또한, 이하에서는, 호스트 장치(20)로부터 라이트 요구를 수신했을 때의 동작(이하, 「라이트 동작」이라고 부름)과, 호스트 장치(20)로부터 리드 요구를 수신했을 때의 동작(이하, 「리드 동작」이라고 부름)에 대해서, 각각 설명한다.
우선, 라이트 동작에서는, 도 11의 (a)에 도시하는 바와 같이, 호스트 장치(20)로부터 라이트 요구가 송신되면(도 11에 도시하는 (1)), 호스트 인터페이스 제어부(11)가, 그 라이트 요구와 함께 송신되는 데이터를 수신하고, 메모리 제어부(13)에 인도한다. 메모리 제어부(13)는, 수취한 데이터를 순차적으로 메인 메모리(12)의 캐쉬 영역에 저장한다(도 11에 도시하는 (2)). 그리고, 디스크 인터페이스 제어부(15)가, 메모리 제어부(13)를 통해서 캐쉬 영역으로부터 데이터를 판독하고(도 11에 도시하는 (3)), 판독한 데이터를 디스크 장치(30)에 대하여 전송한다(도 11에 도시하는 (4)).
한편, 리드 동작에서는, 도 11의 (b)에 도시하는 바와 같이, 호스트 장치(20)로부터 리드 요구가 송신되면(도 11에 도시하는 (1)), 디스크 인터페이스 제어부(15)가, 그 리드 요구로 요구된 데이터를 디스크 장치(30)로부터 판독하고(도 11에 도시하는 (2)), 메모리 제어부(13)에 인도한다. 메모리 제어부(13)는, 수취한 데이터를 순차적으로 메인 메모리(12)의 캐쉬 영역에 저장한다(도 11에 도시하는 (3)). 그리고, 호스트 인터페이스 제어부(11)가, 메모리 제어부(13)를 통해서 캐쉬 영역으로부터 데이터를 판독하고(도 11에 도시하는 (4)), 판독한 데이터를 호 스트 장치(20)에 대하여 전송한다(도 11에 도시하는 (5)).
이와 같은 RAID 시스템에서, 디스크 장치(30)에 기억되는 데이터에 대한 암호 처리(암호화 및 복호화)를 행하는 경우에는, 이러한 암호 처리는, RAID 컨트롤러(10)에 의해 행해지는 것이 일반적이다.
그 경우, 암호 처리는, 호스트 장치(20)와 메인 메모리(12) 사이에서 데이터가 전송되는 동안에 행하는 경우와, 메인 메모리(12)와 디스크 장치(30) 사이에서 데이터가 전송되는 동안에 행하는 경우가 있다.
그러나, 호스트 장치(20)와 메인 메모리(12) 사이에서 데이터가 전송되는 동안에, 암호화를 행하는 경우에는, 메인 메모리(12)에 저장되는 데이터는 모두 암호화되게 된다. 이 경우, 펌웨어에 의해 암호화하면, 메인 메모리(12)에 저장되어 있는 데이터의 참조를 요하는 처리가 행해지도록 하는 경우에는, 참조 때마다 데이터의 복호화가 필요하게 되어, 효율이 나쁘다.
따라서, RAID 컨트롤러(10)가 디스크 장치(30)에 기억되는 데이터에 대한 암호 처리를 행하는 경우에는, 메인 메모리(12)와 디스크 장치(30) 사이에서 데이터가 전송되는 도중에 행하는 것이 현실적이다.
이러한 암호 처리는, 일반적으로는, 펌웨어에 암호 처리의 수순을 내장함으로써 실현된다. 이하에, 펌웨어에 의한 일반적인 암호 처리에 대해서 간단히 설명한다.
우선, 라이트 동작에서는, 호스트 장치(20)로부터 라이트 요구가 송신되면, 호스트 인터페이스 제어부(11)가, 그 라이트 요구와 함께 송신되는 데이터를 수신 하고, 메모리 제어부(13)에 인도한다. 메모리 제어부(13)는, 수취한 데이터를 순차적으로 메인 메모리(12)의 캐쉬 영역에 저장한다. 여기에서, 펌웨어가, 메모리 제어부(13)를 제어해서 캐쉬 영역으로부터 데이터를 순차적으로 판독하여 암호화하고, 암호화한 데이터를, 메인 메모리(12)의 캐쉬 영역과는 상이한 퇴피 영역에 퇴피한다. 그리고, 디스크 인터페이스 제어부(15)가, 메모리 제어부(13)를 통해서, 암호화된 데이터를 퇴피 영역으로부터 판독하고, 판독한 데이터를 디스크 장치(30)에 대하여 전송한다.
한편, 리드 동작에서는, 호스트 장치(20)로부터 리드 요구가 송신되면, 디스크 인터페이스 제어부(15)가, 그 리드 요구로 요구된 데이터를 디스크 장치(30)로부터 판독하고, 메모리 제어부(13)에 인도한다. 메모리 제어부(13)는, 수취한 데이터를 순차적으로 메인 메모리(12)의 캐쉬 영역에 저장한다. 여기에서, 펌웨어가, 메모리 제어부(13)를 제어해서 캐쉬 영역에 저장된 데이터를 순차적으로 판독하여 복호화하고, 복호화한 데이터를, 메인 메모리(12)의 캐쉬 영역과는 상이한 퇴피 영역에 퇴피한다. 그리고, 호스트 인터페이스 제어부(11)가, 메모리 제어부(13)를 통해서, 복호화된 데이터를 퇴피 영역으로부터 판독하고, 판독한 데이터를 호스트 장치(20)에 대하여 전송한다.
이와 같이, 펌웨어가 메인 메모리(12)와 디스크 장치(30) 사이에서 전송되는 데이터에 대하여 암호 처리를 행함으로써, 디스크 장치(30)에 기억되는 데이터를 암호화할 수 있다.
그러나, 펌웨어에 암호 처리를 행하게 하기 위해서는, 전술한 바와 같이, 암 호 처리를 행하는 전후에서 데이터를 일시적으로 퇴피하기 위한 퇴피 영역이 필요하게 된다. 그 결과, RAID 컨트롤러(10)에 실장할 메모리(메인 메모리 또는 다른 메모리)의 용량이 증대한다고 하는 문제가 있다. 메모리 용량의 증대는, RAID 컨트롤러(10)의 코스트 증가로도 이어진다.
또한, 이 경우에는, 디스크 장치에 대한 데이터의 입출력이 발생할 때마다 반드시 펌웨어에 의한 암호 처리 스텝이 행해지게 되어, 데이터의 입출력에서의 리스펀스 타임이 증가한다고 하는 문제도 있다. 또한, 펌웨어가 암호 처리를 행함으로써, RAID 컨트롤러(10)의 CPU에 걸리는 부하가 증대하고, 그 결과로서 디스크 제어 장치의 비지율이 높아지고, 또한, 전술한 암호 처리에 수반하는 메인 메모리 버스 사용도 발생하기 때문에, 결과적으로 RAID 시스템 전체의 성능이 저하한다고 하는 문제도 있다.
따라서, 여기에서는, RAID 컨트롤러(10)에서, 펌웨어에 암호 처리를 행하게 하는 것이 아니라, 집적 회로 등의 하드웨어로 암호화 및 복호화의 기능을 실현한 암호 처리칩을 이용하여, 디스크 장치(30)에 기억되는 데이터에 대한 암호 처리를 행하는 것을 전제로 한다.
그 경우, 예를 들면, RAID 컨트롤러(10)와 디스크 장치(30) 사이에, 암호 처리칩을 구비한 데이터 중계 장치를 접속하고, 이 데이터 중계 장치가, RAID 컨트롤러(10)로부터 디스크 장치(30)에 대하여 전송되는 데이터의 암호화, 및, 디스크 장치(30)로부터 RAID 컨트롤러(10)에 대하여 전송되는 데이터의 복호화를 행한다.
이에 의해, RAID 컨트롤러(10)에서, 전술한 퇴피 영역이 불필요하게 되기 때 문에, 펌웨어로 암호 처리를 행하는 경우에 생기는 코스트 증가나 처리 저하의 문제는 해결된다.
[특허 문헌 1] 일본특허공개 2003-271460호 공보
[특허 문헌 2] 일본특허공개 2006-41684호 공보
그러나, 데이터 중계 장치가 암호 처리를 행하는 경우에는, RAID 컨트롤러와 디스크 장치를 접속하는 인터페이스의 종류, 및, 암호 처리칩에 이용된 암호 처리 방식의 종류에 따라서는, 데이터 전송이 불가능해지는 경우가 있다고 하는 문제가 있다. 이하, 이 문제에 대해서 구체적으로 설명한다.
예를 들면, RAID 컨트롤러와 디스크 장치를 접속하는 인터페이스가, FC(Fibre Channel) 또는 SAS(Serial Attached SCSI)인 경우를 생각한다. FC나 SAS에서는, 데이터는 4바이트(32비트)의 배수로 되는 사이즈의 단위로 전송되고, 이러한 데이터의 전송은, SCSI(Small Computer system Interface)로 규정된 프로토콜을 이용하여 행해진다.
우선, SCSI에 의한 데이터 전송에 대해서 설명해 둔다. SCSI에서는, 데이터 전송을 요구하는 쪽을 이니시에이터라고 부르고, 데이터를 제공하는 쪽을 타겟이라고 부른다.
예를 들면, 이니시에이터로부터 타겟에 대하여 데이터를 전송하는 경우에 대해서 설명한다. 도 12는, SCSI에 의한 데이터 전송을 설명하기 위한 설명도이다. 이 경우, 도 12에 도시하는 바와 같이, 우선, 이니시에이터가, 기입 커맨드를 설정한 기입 커맨드 패킷을 타겟에 대하여 송신한다(도 12에 도시하는 (1)).
타겟은, 기입 커맨드 패킷을 수신하면, 수신 가능 사이즈를 설정한 데이터 전송 요구 패킷을 이니시에이터에 대하여 응답하고, 이니시에이터는, 그 수신 가능 사이즈에 기초하여, 기입 대상의 데이터를 설정한 데이터 패킷을 타겟에 대하여 송신한다.
또한, SCSI에서는, 하나의 데이터 전송 요구 패킷에 설정할 수 있는 수신 가능 사이즈나, 하나의 데이터 패킷에 설정할 수 있는 데이터의 사이즈에는 상한값이 정해져 있다. 그 때문에, 전송 대상의 데이터의 사이즈가 큰 경우에는, 그 데이터는, 상한값에 기초하여 복수의 데이터 전송 요구 패킷 또는 복수의 데이터 패킷으로 분할되어 전송된다.
예를 들면, 도 12에 도시하는 바와 같이, 타겟이, 우선, 수신 가능 사이즈를 A로 한 데이터 전송 요구 패킷을 이니시에이터에 대하여 응답하고(도 12에 도시하는 (2)), 이에 대하여, 이니시에이터가, 데이터 사이즈가 B바이트인 데이터1을 설정한 데이터 패킷과, 데이터 사이즈가 C바이트인 데이터2를 설정한 데이터 패킷을 각각 타겟에 대하여 송신한 것으로 한다(도 12에 도시하는 (3) 및 (4)). 또한, 여기에서는, C=A-B인 것으로 한다.
타겟은, 데이터 패킷을 수신할 때마다, 수신된 데이터의 사이즈를 누계하고, 송신한 데이터 전송 요구 패킷에 설정한 수신 가능 사이즈분의 데이터가 이니시에이터로부터 송신된 경우에는, 다음의 데이터 전송 요구 패킷을 이니시에이터에 대 하여 송신한다.
예를 들면, 도 12에 도시하는 바와 같이, 타겟은, 데이터1이 설정된 데이터 패킷과, 데이터2가 설정된 데이터 패킷을 이니시에이터로부터 각각 수신하면, 수신된 데이터의 사이즈가 B+C=A바이트로 되었기 때문에, 다음의 데이터 전송 요구 패킷을 이니시에이터에 대하여 송신한다(도 12에 도시하는 (5)).
이와 같이, SCSI에서는, 타겟은, 송신한 데이터 전송 요구 패킷에 설정한 수신 가능 사이즈분의 데이터가 이니시에이터로부터 송신될 때까지는, 다음의 데이터 전송 요구 패킷을 송신하지 않는다.
이와 같은 SCSI의 특성을 근거로 한 후에, 전술한 데이터 중계 장치에 의한 암호 처리에 따른 문제에 대해서, 구체적으로 설명한다. 도 13은, 데이터 중계 장치에 의한 암호 처리에 따른 문제를 설명하기 위한 설명도이다.
예를 들면, 도 13에 도시하는 바와 같이, FC(Fibre Channel)에 의해 접속된 RAID 컨트롤러와 디스크 장치 사이에 FC 스위치를 접속하고, 이 FC 스위치가, AES(Advanced Encryption Standard) 암호 방식에 의한 암호 처리를 행한다. 이 경우, RAID 컨트롤러가 이니시에이터로 되고, 디스크 장치가 타겟으로 된다.
여기에서는, RAID 컨트롤러로부터 디스크 장치에 대하여 데이터를 전송하는 라이트 동작에 대해서 설명한다. 도 13에 도시하는 바와 같이, 라이트 동작에서는, 우선, RAID 컨트롤러가, FC 스위치를 경유하여, 디스크 장치에 대하여 기입 커맨드 패킷을 송신한다(도 13에 도시하는 (1)).
여기에서, 기입 커맨드 패킷을 수신한 디스크 장치가, 수신 가능 사이즈를 16×A+a바이트(A, a는 0 이상의 정수)로 한 데이터 전송 요구 패킷을, FC 스위치를 경유하여, RAID 컨트롤러에 대하여 응답한 것으로 한다(도 13에 도시하는 (2)). 또한, 여기에서는, a<16으로 한다.
그리고, 데이터 전송 요구 패킷을 수신한 RAID 컨트롤러가, 우선, 데이터 사이즈가 16×B바이트(B는 0 이상의 정수)인 데이터1을 설정한 데이터 패킷을, FC 스위치에 송신한다(도 13에 도시하는 (3)).
FC 스위치는, 데이터 패킷을 수신하면, 그 데이터 패킷에 설정되어 있는 데이터1을, AES 암호 방식으로 암호화한다. AES 암호 방식으로는, 16바이트(128비트) 단위로 데이터가 암호화된다. 그 때문에, 이 경우, FC 스위치는, 데이터1을 모두 암호화할 수 있고, 암호화한 데이터1을 설정한 데이터 패킷을 디스크 장치에 대하여 송신한다(도 13에 도시하는 (4)).
디스크 장치는, FC 스위치로부터 송신된 데이터 패킷을 수신하고, 수신한 데이터 패킷에 설정되어 있는 데이터1을, 기억 매체인 디스크에 기입한다. 이 때, 디스크 장치에서의 수신된 데이터의 누계 사이즈는, 16×B바이트로 된다.
계속해서, RAID 컨트롤러가, 데이터 사이즈가 16×C+a바이트(C, a는 0 이상의 정수)인 데이터2를 설정한 데이터 패킷을 FC 스위치에 송신한 것으로 한다(도 13에 도시하는 (5)). 또한, 여기에서는, C=A-B로 한다.
이 경우, FC 스위치는, 수신한 데이터 패킷에 설정된 데이터2의 일부인 16×C바이트의 데이터만을 암호화한다. 그 결과, 16바이트 미만인 a바이트의 데이터가, 암호화되지 않고 남는다. 그리고, 여기에서 FC 스위치가 행하는 처리로서는, 모든 데이터를 암호화할 수 없었기 때문에 디스크 장치에 대하여 아무것도 송신하지 않을지(도 13에 도시하는 (6)), 또는, 암호화한 16×C바이트의 데이터만을 설정한 데이터 패킷을 디스크 장치에 대하여 송신할지(도 13에 도시하는 (7)) 중 어느 하나가 생각된다.
그러나, 어느 경우에도, 디스크 장치는, 수신된 데이터의 누계 사이즈가, 데이터 전송 요구 패킷에 설정한 수신 가능 사이즈인 16×A+a바이트로는 되지 않기 때문에, 다음의 데이터 전송 요구 패킷을 송신할 수는 없다(도 13에 도시하는 (8)).
이와 같이, FC나 SAS에 의해 데이터 전송이 행해지는 경우에는, 데이터 전송의 단위로 되는 데이터 사이즈와, 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우, RAID 컨트롤러가 디스크 장치에 대하여 전송할 데이터를 모두 전송하기 전에, 데이터 전송이 중단되게 된다.
그 때문에, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 어떻게 하여, 데이터 전송을 중단시키지 않고 암호화 및 복호화를 행할지가 극력 중요한 과제로 되고 있다.
본 발명은, 전술한 종래 기술에 의한 문제점을 해소하기 위해서 이루어진 것으로, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 데이터 전송을 중단시키지 않고 암호화 및 복호화를 행할 수 있는 데이터 암호화 장치, 데이터 복호화 장치, 데이터 암호화 방법, 데이터 복호화 방법 및 데이터 중계 장치를 제공하는 것을 목적으로 한다.
전술한 과제를 해결하고, 목적을 달성하기 위해서, 본 발명은, 제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 소정의 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 장치로서, 상기 수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 수단과, 상기 전송 요구 송신 수단에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 수단과, 상기 데이터 암호화 수단에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위에서 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 수단에 의해 후속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제2 장치에 대하여 송신하는 데이터 송신 수단을 구비한 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 데이터 암호화 수단은, 상기 제1 장치로부터 송신되는 데이터를 암호화했을 때에, 상기 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 상기 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 상기 암호화 데이터 사이 즈 단위로 암호화하는 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 제1 장치로부터 송신되는 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고, 상기 데이터 암호화 수단은, 상기 잔여 데이터를, 상기 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하는 경우에, 상기 입출력 식별 정보에 기초하여 결합하는 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 제1 장치로부터 송신되는 데이터에는, 데이터의 종류를 나타내는 데이터 종별 정보가 포함되어 있고, 상기 데이터 암호화 수단은, 상기 제1 장치로부터 응답되는 데이터를 암호화할 때에, 상기 데이터 종별 정보에 기초하여, 그 데이터를 암호화할지의 여부를 판정하여, 암호화한다고 판정한 경우에, 그 데이터를 암호화하는 것을 특징으로 한다.
또한, 본 발명은, 제2 장치로부터 제1 장치에 대하여 전송되는 암호화 데이터를 소정의 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 장치로서, 상기 제2 장치로부터 송신되는 암호화 데이터를 수신하는 데이터 수신 수단과, 상기 데이터 수신 수단에 의해 상기 암호화 데이터가 수신된 경우에, 그 암호화 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하고, 복호화했을 때에 상기 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 상기 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 수단과, 상기 데이터 복호화 수단에 의해 복호화된 데이터를 상기 제1 장치에 대하여 송신하는 데이터 송신 수단을 구비한 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고, 상기 데이터 복호화 수단은, 상기 잔여 데이터를, 상기 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하는 경우에, 상기 입출력 식별 정보에 기초하여 결합하는 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 제2 장치로부터 송신되는 암호화 데이터에는, 데이터의 종류를 나타내는 데이터 종별 정보가 포함되어 있고, 상기 데이터 복호화 수단은, 상기 제2 장치로부터 송신되는 암호화 데이터를 복호화할 때에, 상기 데이터 종별 정보에 기초하여, 그 암호화 데이터를 복호화할지의 여부를 판정하여, 복호화한다고 판정한 경우에, 그 암호화 데이터를 복호화하는 것을 특징으로 한다.
또한, 본 발명은, 제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 소정의 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 방법으로서, 상기 수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 공정과, 상기 전송 요구 송신 공정에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 공정과, 상기 데이터 암호화 공정에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 공정에 의해 후속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제2 장치에 대하여 송신하는 데이터 송신 공정을 포함한 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 데이터 암호화 공정은, 상기 제1 장치로부터 송신되는 데이터를 암호화했을 때에, 상기 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 상기 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 상기 암호화 데이터 사이즈 단위로 암호화하는 것을 특징으로 한다.
또한, 본 발명은, 제2 장치로부터 제1 장치에 대하여 전송되는 암호화 데이터를 소정의 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 방법으로서, 상기 제2 장치로부터 송신되는 암호화 데이터를 수신하는 데이터 수신 공정과, 상기 데이터 수신 공정에 의해 상기 암호화 데이터가 수신된 경우에, 그 암호화 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하고, 복호화했을 때에 상기 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 상기 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 공정과, 상기 데이터 복호화 공정에 의해 복호화된 데이터를 상기 제1 장치에 대하여 송신하는 데이터 송신 공정을 포함한 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고, 상기 데이터 복호화 공정은, 상기 잔여 데이터를, 상기 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하는 경우에, 상기 입출력 식별 정보에 기초하여 결합하는 것을 특징으로 한다.
또한, 본 발명은, 제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 중계함과 함께, 그 데이터를 소정의 암호화 데이터 사이즈 단위로 암호화하는 데이터 중계 장치로서, 상기 수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 수단과, 상기 전송 요구 송신 수단에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 수단과, 상기 데이터 암호화 수단에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 수단에 의해 후속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제2 장치에 대하여 송신하는 데이터 송신 수단을 구비한 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 데이터 암호화 수단은, 상기 제1 장치로부터 송신되는 데이터를 암호화했을 때에, 상기 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 상기 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 상기 암호화 데이터 사이즈 단위로 암호화하는 것을 특징으로 한다.
또한, 본 발명은, 제2 장치로부터 제1 장치에 대하여 전송되는 암호화 데이터를 중계함과 함께, 그 암호화 데이터를 소정의 복호화 데이터 사이즈 단위로 복호화하는 데이터 중계 장치로서, 상기 제2 장치로부터 송신되는 암호화 데이터를 수신하는 데이터 수신 수단과, 상기 데이터 수신 수단에 의해 상기 암호화 데이터가 수신된 경우에, 그 암호화 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하고, 복호화했을 때에 상기 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 상기 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 수단과, 상기 데이터 복호화 수단에 의해 복호화된 데이터를 상기 제1 장치에 대하여 송신하는 데이터 송신 수단을 구비한 것을 특징으로 한다.
또한, 본 발명은, 상기의 발명에서, 상기 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고, 상기 데이터 복호화 수단은, 상기 잔여 데이터를, 상기 제2 장치로 부터 후속해서 더 송신되는 암호화 데이터와 결합하는 경우에, 상기 입출력 식별 정보에 기초하여 결합하는 것을 특징으로 한다.
본 발명에 따르면, 수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 제1 수신 가능 사이즈 이상이고, 또한, 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하고, 송신한 데이터 전송 요구에 대한 응답으로서 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 수신한 데이터를 암호화 데이터 사이즈 단위로 암호화하고, 암호화한 데이터를 제1 수신 가능 사이즈 단위로 제2 장치에 대하여 송신하고, 송신 시에 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 후속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 제2 장치에 대하여 송신하기 때문에, 데이터 전송 요구로 지정된 제1 수신 가능 사이즈분의 데이터가, 제2 장치에 대하여 송신되게 되어, 제2 장치가, 다음의 데이터 전송을 송신하는 것이 가능하게 된다. 즉, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 데이터 전송을 중단시키지 않고 암호화를 행할 수 있다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 제1 장치로부터 송신되는 데이터를 암호화했을 때에, 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이 터를 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 암호화 데이터 사이즈 단위로 암호화하기 때문에, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 전송되는 모든 데이터에 대하여, 데이터 전송을 중단시키지 않고 암호화를 행할 수 있다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 제1 장치로부터 송신되는 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고, 잔여 데이터를, 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하는 경우에, 입출력 식별 정보에 기초하여 결합하기 때문에, 복수의 연속하는 데이터가 병렬로 전송되도록 하는 경우에도, 각각의 데이터마다 암호화를 행할 수 있다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 제1 장치로부터 송신되는 데이터에는, 데이터의 종류를 나타내는 데이터 종별 정보가 포함되어 있고, 제1 장치로부터 응답되는 데이터를 암호화할 때에, 데이터 종별 정보에 기초하여, 그 데이터를 암호화할지의 여부를 판정하여, 암호화한다고 판정한 경우에, 그 데이터를 암호화하기 때문에, 제어용의 데이터는 암호화하지 않고, 유저 데이터만을 암호화하는 등, 암호화할 필요가 있는 데이터와, 암호화할 필요가 없는 데이터를 분류할 수 있다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 제2 장치로부터 송신되는 암호화 데이터를 수신하고, 암호화 데이터를 수신한 경우에, 그 암호화 데이터를 복호화 데이터 사이즈 단 위로 복호화하고, 복호화했을 때에, 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 복호화 데이터 사이즈 단위로 복호화하고, 복호화한 데이터를 제1 장치에 대하여 송신하기 때문에, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 전송되는 모든 데이터에 대하여, 데이터 전송을 중단시키지 않고 복호화를 행할 수 있다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고, 잔여 데이터를, 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하는 경우에, 입출력 식별 정보에 기초하여 결합하기 때문에, 복수의 연속하는 데이터가 병렬로 전송되도록 하는 경우에도, 각각의 데이터마다 복호화를 행할 수 있다고 하는 효과를 발휘한다.
또한, 본 발명에 따르면, 제2 장치로부터 송신되는 암호화 데이터에는, 데이터의 종류를 나타내는 데이터 종별 정보가 포함되어 있고, 제2 장치로부터 송신되는 암호화 데이터를 복호화할 때에, 데이터 종별 정보에 기초하여, 그 암호화 데이터를 복호화할지의 여부를 판정하여, 복호화한다고 판정한 경우에, 암호화 데이터를 복호화하기 때문에, 제어용의 데이터는 복호화하지 않고, 유저 데이터만을 복호화하는 등, 복호화할 필요가 있는 데이터와, 복호화할 필요가 없는 데이터를 분류할 수 있다고 하는 효과를 발휘한다.
이하에 첨부 도면을 참조하여, 본 발명에 따른 데이터 암호화 장치, 데이터 복호화 장치, 데이터 암호화 방법, 데이터 복호화 방법 및 데이터 중계 장치의 바람직한 실시예를 상세하게 설명한다. 또한, 본 실시예에서는, FC 스위치에 본 발명을 적용한 경우에 대해서 설명한다.
우선, 본 실시예에 따른 FC 스위치의 개념에 대해서 설명한다. 도 1 및 2는, 본 실시예에 따른 FC 스위치의 개념을 설명하기 위한 설명도(1) 및 (2)이다. 이 중, 도 1은, 도 13에서 설명한 FC 스위치와 마찬가지의 FC 스위치에 본 발명을 적용한 경우를 도시하고 있다.
도 1 및 2에 도시하는 바와 같이, 본 실시예에 따른 FC 스위치는, RAID 컨트롤러와 디스크 장치 사이에서 교환되는 데이터를 중계함과 함께, 그 데이터를 암호화 및 복호화하는 장치로서, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 데이터 전송을 중단시키지 않고 암호화 및 복호화를 행할 수 있는 점에 주된 특징이 있다.
본 특징에 대해서 구체적으로 설명한다. 우선, 라이트 동작에서는, 도 1의 (1)∼(6)에 도시하는 바와 같이, RAID 컨트롤러가 기입 커맨드 패킷을 송신하고나서, 디스크 장치가 데이터 전송 요구 패킷을 송신하고, 이에 따라서, RAID 컨트롤러가, 데이터1을 설정한 데이터 패킷, 및, 데이터2를 설정한 데이터 패킷을 디스크 장치에 대하여 송신할 때까지는, 도 13의 (1)∼(5)에 나타낸 수순과 동일하다. 단, FC 스위치가, 디스크 장치로부터 송신된 데이터 전송 요구 패킷에 대하여 새로운 수신 가능 사이즈를 설정한 후에, 그 데이터 전송 요구 패킷을 RAID 컨트롤러에 대하여 송신하는 점이 상이하다.
여기에서는, FC 스위치는, 디스크 장치로부터 송신된 데이터 전송 요구 패킷을 수신하면, 그 데이터 전송 요구 패킷에 설정되어 있는 수신 가능 사이즈 이상이고, 또한, AES 암호 방식의 처리 단위로 되는 데이터 사이즈의 배수, 즉, 16바이트의 배수로 되는 새로운 수신 가능 사이즈를 설정한 후에, 그 데이터 전송 요구 패킷을 RAID 컨트롤러에 대하여 송신한다.
예를 들면, FC 스위치는, 수신 가능 사이즈를 16×A+a로 한 데이터 전송 요구 패킷이 송신되어 오면, 그 데이터 전송 요구에 대하여, 16×A+16바이트를 새로운 수신 가능 사이즈로서 설정한다(도 1에 도시하는 (3)).
이에 의해, RAID 컨트롤러로부터 FC 스위치에 송신되는 데이터의 사이즈는 16바이트의 배수로 되기 때문에, FC 스위치가, 그 데이터를 AES 암호 방식으로 암호화할 때에, 16바이트 미만의 데이터를 남기지 않고, 완전하게 데이터를 암호화하는 것이 가능하게 된다.
예를 들면, 데이터 전송 요구 패킷에 설정된 수신 가능 사이즈가 16×A+16바이트로 증가한 것에 의해, RAID 컨트롤러는, x=16-a로 한 경우에, 사이즈가 16×C+a+x바이트인 데이터2를 설정한 데이터 패킷을 FC 스위치에 대하여 송신한다(도 1에 도시하는 (6)). 여기에서, a+x=16이기 때문에, 데이터2의 사이즈는 16바이트의 배수로 된다.
그리고, FC 스위치는, 데이터2를 모두 암호화하고, 암호화한 데이터 중 16×C+a바이트분의 데이터를 설정한 데이터 패킷을 디스크 장치에 대하여 송신하고, x바이트분의 데이터를 내부 메모리에 유지한다(도 1에 도시하는 (7)).
디스크 장치는, FC 스위치로부터 송신된 데이터 패킷에 설정되어 있는 데이터를, 기억 매체인 디스크에 기입한다. 이 때, 디스크 장치가 수신한 데이터의 누계 사이즈는, 16×B+16×C+a=16×A+a, 즉, 데이터 전송 요구 패킷에 설정한 수신 가능 사이즈와 동일해진다. 이에 의해, 디스크 장치는, 다음의 데이터 전송 요구 패킷을 송신할 수 있다(도 1에 도시하는 (8)).
그 후, FC 스위치는, 도 1에 도시한 (3) 이후와 마찬가지의 처리를 행한다. 즉, 디스크 장치로부터 계속해서 송신되어 오는 데이터 전송 요구 패킷에 따라서, RAID 컨트롤러로부터 데이터 패킷이 송신된다(도 1에 도시하는 (10)). 그리고 FC 스위치는, 그 데이터 패킷에 설정되어 있는 데이터를 암호화하고, 암호화한 데이터와, 내부 메모리에 유지한 암호화된 미전송 데이터(x바이트의 데이터)를 결합하고, 결합한 데이터를 설정한 데이터 패킷을 디스크 장치에 대하여 송신한다(도 1에 도시하는 (11)). 이 이후는, 디스크 장치, FC 스위치 및 RAID 컨트롤러는, 도 1에 도시한 (6) 이후와 마찬가지의 처리를 행한다.
이와 같이, 본 실시예에 따른 FC 스위치는, 수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구 패킷을 디스크 장치로부터 수신한 경우에, 이 제1 수신 가능 사이즈 이상이고, 또한, 암호화 데이터 사이즈(AES 암호 방식의 처리 단위로 되는 데이터 사이즈)의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 이 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구 패킷을 RAID 컨트롤러에 대하여 송신한다. 이 송신한 데이터 전송 요구 패킷에 대한 응답으로서 RAID 컨트롤러로부터 송신되어 오는 제2 수신 가능 사이즈 분의 데이터를 수신하고, 수신한 데이터를 암호화 데이터 사이즈 단위로 암호화하고, 암호화한 데이터를 제1 수신 가능 사이즈 단위로 디스크 장치에 대하여 송신한다. 만약, 송신 시에 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 계속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 포함시킨 데이터 패킷을 디스크 장치에 대하여 송신하도록 하고 있다.
이에 의해, 데이터 전송 요구로 지정된 제1 수신 가능 사이즈분의 데이터가, 디스크 장치에 대하여 송신되게 되고, 디스크 장치가, 다음의 데이터 전송을 송신할 수 있다. 즉, FC나 SAS와 AES 암호 방식과 같이, 데이터 전송의 단위로 되는 데이터 사이즈와, 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 데이터 전송을 중단시키지 않고 암호화를 행할 수 있다.
한편, 디스크 장치로부터 RAID 컨트롤러에 데이터를 전송하는 리드 동작에서는, 도 2에 도시하는 바와 같이, 우선, RAID 컨트롤러가, FC 스위치를 경유하여, 디스크 장치에 대하여 판독 커맨드 패킷을 송신한다(도 2에 도시하는 (1)).
여기에서, 판독 커맨드 패킷을 수신한 디스크 장치가, 우선, 데이터 사이즈가 16×A+a바이트(A, a는 0 이상의 정수)인 데이터1을 설정한 데이터 패킷을, FC 스위치에 대하여 송신한 것으로 한다(도 2에 도시하는 (2)). 또한, 여기에서는, a<16인 것으로 한다.
FC 스위치는, 데이터 패킷을 수신하면, 그 데이터 패킷에 설정되어 있는 데이터를, AES 암호 방식으로 복호화한다. AES 암호 방식에서는, 16바이트(128비트)단위로 데이터가 복호화된다. 그 때문에, FC 스위치는, 수신한 데이터를 16바이트 단위로 복호화하고, 16바이트에 미달하는 데이터가 남은 경우에는, 남은 데이터를 내부 메모리에 유지한다.
즉, FC 스위치는, 데이터1 중 16×A바이트의 데이터를 복호화하고, 남은 a바이트의 데이터를 내부 메모리에 유지한다. 그리고, FC 스위치는, 복호화한 데이터를 RAID 컨트롤러에 대하여 송신한다(도 2에 도시하는 (3)).
디스크 장치는, RAID 컨트롤러로부터 데이터 패킷을 수신하면, 그 데이터 패킷에 설정되어 있는 데이터를 메인 메모리의 캐쉬 영역에 저장한다. 이 때, RAID 컨트롤러에서의 수신된 데이터의 누계 사이즈는, 16×A바이트로 된다.
계속해서, 디스크 장치가, 데이터 사이즈가 n+16×B+b바이트(n, B, b는 0 이상의 정수)인 데이터2를 설정한 데이터 패킷을, FC 스위치에 대하여 송신한다(도 2에 도시하는 (4)). 또한, 여기에서는, n=16-a, b<16으로 한다.
FC 스위치는, 데이터 패킷을 수신하면, 그 데이터 패킷에 설정되어 있는 데이터를, AES 암호 방식으로 복호화한다. 이 때, FC 스위치는, 수신한 데이터의 선두에, 내부 메모리에 유지하고 있는 데이터를 결합한 후에 복호화를 행하여, 16바이트에 미달하는, 결합한 데이터를 복호화한다.
즉, FC 스위치는, 내부 메모리에 유지하고 있는 a바이트의 데이터를 데이터2의 선두에 결합하고, 결합한 데이터 중 a+n+16×B바이트의 데이터를 복호화하고, 남은 b바이트의 데이터를 내부 메모리에 유지한다. 그리고, FC 스위치는, 복호화한 데이터를 설정한 데이터 패킷을 RAID 컨트롤러에 대하여 송신한다(도 2에 도시하는 (5)).
디스크 장치는, RAID 컨트롤러로부터 데이터 패킷을 수신하면, 그 데이터 패킷에 설정되어 있는 데이터를 메인 메모리의 캐쉬 영역에 저장한다. 이 때, RAID 컨트롤러에서의 수신된 데이터의 누계 사이즈는, 16×A+a+n+16×B바이트로 된다.
또한, 디스크 장치가, 판독 대상의 최종 데이터로서, 데이터 사이즈가 m+16×C+c바이트(m, C, c는 0 이상의 정수)인 데이터3을 설정한 데이터 패킷을, FC 스위치에 대하여 송신한 것으로 한다(도 2에 도시하는 (6)). 또한, 여기에서는, m=16-b이며, c는 16의 배수이다.
FC 스위치는, 내부 메모리에 유지하고 있는 b바이트의 데이터를 데이터3의 선두에 결합하고, 결합한 데이터 중 b+m+16×C+c바이트의 데이터를 복호화한다. 그리고, FC 스위치는, 복호화한 데이터를 설정한 데이터 패킷을 RAID 컨트롤러에 대하여 송신한다(도 2에 도시하는 (7)).
디스크 장치는, RAID 컨트롤러로부터 데이터 패킷을 수신하면, 그 데이터 패킷에 설정되어 있는 데이터를 메인 메모리의 캐쉬 영역에 저장한다. 이 때, RAID 컨트롤러에서의 수신된 데이터의 누계 사이즈는, 16×A+a+n+16×B+b+m+16×C+c바이트로 된다.
이에 의해, RAID 컨트롤러는, 디스크 장치로부터 송신된 모든 데이터(데이터1, 데이터2 및 데이터3)를 메인 메모리의 캐쉬 메모리에 저장한 것으로 된다.
이와 같이, 본 실시예에 따른 FC 스위치에서는, 디스크 장치로부터 송신되는 암호화 데이터를 수신하고, 암호화 데이터를 수신한 경우에, 그 암호화 데이터를 복호화 데이터 사이즈(AES 암호 방식의 처리 단위로 되는 데이터 사이즈) 단위로 복호화한다. 만약, 복호화했을 때에, 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 디스크 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 복호화 데이터 사이즈 단위로 복호화하고, 복호화한 데이터를 RAID 컨트롤러에 대하여 송신하도록 하고 있다.
이에 의해, FC나 SAS와 AES 암호 방식과 같이, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 전송되는 모든 데이터에 대하여, 데이터 전송을 중단시키지 않고 복호화를 행할 수 있다.
다음으로, 본 실시예에 따른 FC 스위치를 이용한 RAID 시스템에 대해서 설명한다. 도 3은, 본 실시예에 따른 RAID 시스템의 구성을 도시하는 기능 블록도이다. 도 3에 도시하는 바와 같이, 이 RAID 시스템은, 각종 데이터를 기억하는 디스크 장치(300)와, 디스크 장치(300)에 대한 데이터의 라이트나 리드를 요구하는 호스트 장치(200)와의 사이에, FC를 통해서, RAID 컨트롤러(100)와, FC 스위치(400)가 각각 접속되어 구성된다.
RAID 컨트롤러(100)는, 호스트 장치(200)로부터의 지시에 따라서, 디스크 장치(300)에의 데이터의 입출력을 제어하는 장치이다. RAID 컨트롤러(100)는, 호스트 장치(200)와의 사이에서 교환되는 데이터 전송을 제어하는 호스트 인터페이스 제어부(110)와, 캐쉬로서 이용하기 위한 캐쉬 영역 등을 갖는 메인 메모리(120)와, 메인 메모리(120)에 대한 데이터의 판독 및 기입을 제어하는 메모리 제어부(130)와, RAID 컨트롤러(100)를 전체 제어하는 펌웨어를 실행하는 CPU(140)와, 디스크 장치(300)와의 사이에서 행해지는 데이터 전송을 제어하는 디스크 인터페이스 제어부(150)를 갖는다.
FC 스위치(400)는, RAID 컨트롤러(100)와 디스크 장치(300) 사이에서 전송되는 데이터를 중계함과 함께, 그 데이터를 암호화 및 복호화하는 장치이며, AES 암호 방식을 이용한 암호 처리칩을 구비한 암호 처리부(430)를 갖는다.
이러한 RAID 시스템의 동작에 대해서 간단히 설명하면, 라이트 동작에서는, 도 3의 (a)에 도시하는 바와 같이, 호스트 장치(200)로부터 라이트 요구가 송신되면(도 3에 도시하는 (1)), RAID 컨트롤러(100)에서, 호스트 인터페이스 제어부(110)가, 그 라이트 요구와 함께 송신되는 데이터를 수신하고, 메모리 제어부(130)에 인도한다. 메모리 제어부(130)는, 수취한 데이터를 순차적으로 메인 메모리(120)의 캐쉬 영역에 저장한다(도 3에 도시하는 (2)).
그리고, 디스크 인터페이스 제어부(150)가, 메모리 제어부(130)를 통해서 캐쉬 영역으로부터 순차적으로 데이터를 판독하고(도 3에 도시하는 (3)), 판독한 데이터를, FC 스위치(400)에 대하여 송신한다(도 3에 도시하는 (4)). 그리고, FC 스위치(400)에서, 암호 처리부(430)가, 수신한 데이터를 암호화하고, 디스크 장치(300)에 대하여 송신한다(도 3에 도시하는 (5)). 디스크 장치(300)는, 암호 처리부(430)로부터 송신된 데이터를, 기억 매체인 디스크에 기입한다.
한편, 리드 동작에서는, 도 3의 (b)에 도시하는 바와 같이, 호스트 장치(200)로부터 리드 요구가 송신되면(도 3에 도시하는 (1)), 디스크 장치(300)가, 요구된 데이터를 디스크로부터 판독하고, FC 스위치에 대하여 송신한다(도 3에 도시하는 (2)). FC 스위치(400)는, 디스크 장치(300)로부터 데이터가 송신되면, 암호 처리부(430)가, 그 데이터를 복호화하고, RAID 컨트롤러(100)에 대하여 송신한다.
RAID 컨트롤러(100)에서는, 디스크 인터페이스 제어부(150)가, 암호 처리부(430)로부터 송신된 데이터를 수신하고(도 3에 도시하는 (3)), 수신한 데이터를, 메모리 제어부(130)를 통해서 순차적으로 메인 메모리(120)의 캐쉬 영역에 저장한다(도 3에 도시하는 (4)). 그리고, 호스트 인터페이스 제어부(110)가, 메모리 제어부(130)를 통해서, 복호화된 데이터를 캐쉬 영역으로부터 판독하고(도 3에 도시하는 (5)), 판독한 데이터를 호스트 장치(200)에 대하여 전송한다(도 3에 도시하는 (6)).
여기에서, 도 3에 도시한 FC 스위치(400)의 구성에 대해서, 더욱 상세하게 설명한다. 도 4는, 본 실시예에 따른 FC 스위치(400)의 구성을 도시하는 기능 블록도이다. 도 4에 도시하는 바와 같이, FC 스위치(400)는, RAID 컨트롤러(100)와 디스크 장치(300) 사이에 FC를 통해서 접속된다.
우선, RAID 컨트롤러(100)에 대해서 설명한다. 이 RAID 컨트롤러(100)는, 호스트 장치(200)로부터의 요구에 기초하여, SCSI로 규정된 프로토콜을 이용하여 데이터 전송을 행한다.
구체적으로는, RAID 컨트롤러(100)는, 호스트 장치(200)로부터 라이트 요구가 송신되면, FC 스위치(400)에 대하여 기입 커맨드 패킷을 송신하고, 기입 커맨드 패킷에 따라서 송신되는 데이터 전송 요구 패킷이, FC 스위치(400)로부터 송신된다. 그렇게 하면, 그 데이터 전송 요구 패킷에 기초하여, 메인 메모리(120)의 캐쉬 영역으로부터 데이터를 판독하고, 판독한 데이터를 설정한 데이터 패킷을 FC 스위치(400)에 대하여 송신한다.
또한, RAID 컨트롤러(100)는, 호스트 장치(200)로부터 리드 요구가 송신되면, FC 스위치(400)에 대하여 판독 커맨드 패킷을 송신하고, 판독 커맨드로 요구한 데이터가 설정된 데이터 패킷이 FC 스위치(400)로부터 송신되면, 그 데이터를 메인 메모리(120)의 캐쉬 영역에 저장한다.
계속해서, 디스크 장치(300)에 대해서 설명한다. 이 디스크 장치(300)는, RAID 컨트롤러(100)로부터 송신되는 각종 커맨드 패킷에 기초하여, SCSI로 규정된 프로토콜을 이용하여 데이터 전송을 행한다.
구체적으로는, 디스크 장치(300)는, FC 스위치(400)로부터 기입 커맨드가 송신되면, 디스크(3101∼310n)의 빈 용량 등을 확인하고, 수신 가능한 데이터의 사이즈를 나타내는 수신 가능 사이즈를 포함한 데이터 전송 요구 패킷을 FC 스위치(400)에 대하여 송신한다.
또한, 디스크 장치(300)는, FC 스위치(400)로부터 판독 커맨드 패킷이 송신되면, 그 판독 커맨드에 기초하여 디스크(3101∼310n)로부터 데이터를 판독하고, 판 독한 데이터를 FC 스위치(400)에 대하여 송신한다.
계속해서, FC 스위치(400)에 대해서 설명한다. 이 FC 스위치(400)는, FC를 통해서 통신을 행하는 장치의 사이에서, 데이터의 중계나 통신 경로의 제어 등을 행하는 기능을 구비한 일반적인 스위치이며, 특히 본 발명에 관련되는 기능부로서는, 컨트롤러 인터페이스 제어부(410)와, 디스크 인터페이스 제어부(420)와, 암호 처리부(430)를 갖는다.
컨트롤러 인터페이스 제어부(410)는, RAID 컨트롤러(100)와의 사이에서, FC를 통해서 교환되는 데이터의 송수신을 제어하는 처리부이다. 예를 들면, 컨트롤러 인터페이스 제어부(410)는, 기입 커맨드 패킷이나 판독 커맨드 패킷, 데이터 패킷 등을 RAID 컨트롤러(100)로부터 수신하고, 데이터 패킷이나, 데이터 전송 요구 패킷 등을 RAID 컨트롤러(100)에 대하여 송신한다.
디스크 인터페이스 제어부(420)는, 디스크 장치(300)와의 사이에서, FC를 통해서 교환되는 데이터의 송수신을 제어하는 처리부이다. 예를 들면, 디스크 인터페이스 제어부(420)는, RAID 컨트롤러(100)로부터 송신된 기입 커맨드 패킷이나, 판독 커맨드 패킷, 디스크(3101∼310n)에 기입하는 데이터가 설정된 데이터 패킷, 데이터 전송 요구 패킷 등을, 디스크 장치(300)에 대하여 송신하고, 디스크(3101∼310n)로부터 판독한 데이터가 설정된 데이터 패킷 등을 디스크 장치(300)로부터 수신한다.
암호 처리부(430)는, AES 암호 방식을 이용한 암호 처리칩을 구비하고, RAID 컨트롤러(100)와 디스크 장치(300) 사이에서 전송되는 데이터를 암호화 및 복호화하는 처리부이다. 이하, 암호 처리부(430)에 의해 행해지는 처리에 대해서 설명한다. 여기에서는, 라이트 동작에서 행해지는 처리와, 리드 동작에서 행해지는 처리를 각각 나누어서 설명한다.
우선, 라이트 동작에서는, 암호 처리부(430)는, RAID 컨트롤러(100)로부터 기입 커맨드 패킷이 송신되면, 그 기입 커맨드 패킷을 디스크 장치(300)에 대하여 전송한다.
그리고, 암호 처리부(430)는, 전송한 기입 커맨드 패킷에 따라서 디스크 장치(300)로부터 데이터 전송 요구 패킷이 송신되면, 그 데이터 전송 요구 패킷에 포함되어 있는 수신 가능 사이즈를 참조하여, 그 수신 가능 사이즈 이상이고, 또한, 암호화 데이터 사이즈(16바이트)의 배수로 되는 새로운 수신 가능 사이즈를 산출한다.
또한, 암호 처리부(430)는, 산출한 새로운 수신 가능 사이즈를, 디스크 장치(300)로부터 송신된 데이터 전송 요구 패킷에 대하여 설정하고, 그 데이터 전송 요구 패킷을 RAID 컨트롤러(100)에 대하여 송신한다.
그리고, 암호 처리부(430)는, 송신한 데이터 전송 요구 패킷에 따라서, RAID 컨트롤러(100)로부터 데이터가 송신되면, 그 데이터를, AES 암호 방식의 처리 단위로 되는 16바이트 단위로 암호화하고, 디스크 장치(300)에 대하여 송신한다.
여기에서, 암호 처리부(430)는, 암호화에서 16바이트에 미달하는 잔여 데이터가 생긴 경우에는, 그 데이터를 내부 메모리에 유지해 둔다. 그리고, 암호 처리 부(430)는, RAID 컨트롤러(100)로부터 후속해서 데이터가 송신된 경우에는, 그 데이터의 선두에, 내부 메모리에 유지해 둔 데이터를 결합하고, 결합한 데이터를 암호화한다.
또한, 암호 처리부(430)는, 데이터를 암호화할 때마다, 지금까지 암호화한 데이터의 사이즈의 누계를 산출하고, 산출한 누계와, 내부 메모리에 기억하고 있는 수신 가능 사이즈가 동일해진 경우에는, 이후의 데이터는 디스크 장치(300)에 송신하지 않고, 내부 메모리에 유지해 둔다.
이에 의해, 데이터 전송 요구 패킷으로 지정한 수신 가능 사이즈분의 데이터가 디스크 장치(300)에 대하여 송신되기 때문에, 디스크 장치는, 다음의 데이터 전송 요구 패킷을, FC 스위치(400)를 통해서, RAID 컨트롤러(100)에 대하여 송신할 수 있다.
그리고, 암호 처리부(430)는, 다음으로 디스크 장치(300)로부터 송신되는 데이터 전송 요구에 따라서 RAID 컨트롤러(100)로부터 데이터가 송신된 경우에는, 그 데이터를 암호화한 후에, 그 데이터의 선두에, 내부 메모리에 유지해 둔 데이터를 결합하고, 결합한 데이터를 디스크 장치(300)에 대하여 전송한다.
한편, 리드 동작에서는, 암호 처리부(430)는, RAID 컨트롤러(100)로부터 판독 커맨드 패킷이 송신되면, 그 판독 커맨드 패킷을 디스크 장치(300)에 대하여 전송한다.
그리고, 암호 처리부(430)는, 전송한 기입 커맨드 패킷에 따라서 디스크 장치(300)로부터 데이터 전송 요구 패킷이 송신되면, 그 데이터를, AES 암호 방식의 처리 단위로 되는 16바이트 단위로 복호화하고, RAID 컨트롤러(100)에 대하여 송신한다.
여기에서, 암호 처리부(430)는, 복호화에서 16바이트에 미달하는 잔여 데이터가 생긴 경우에는, 그 데이터를 내부 메모리에 유지해 둔다. 그리고, 암호 처리부(430)는, 디스크 장치(300)로부터 후속해서 데이터가 송신된 경우에는, 그 데이터의 선두에, 내부 메모리에 유지해 둔 데이터를 결합하고, 결합한 데이터를 복호화한다.
이상, 암호 처리부(430)에 의해 행해지는 처리에 대해서, 라이트 동작에서 행해지는 처리와, 리드 동작에서 행해지는 처리를 각각 설명했지만, 이하에서는, 각각의 동작에서 공통되어 행해지는 처리에 대해서 설명한다.
전술한 바와 같이, SCSI에서는, 전송되는 데이터의 사이즈가 소정의 사이즈보다 큰 경우에는, 하나의 커맨드 패킷으로 처리되는 데이터가 복수의 패킷으로 분할되어 전송된다. 그 때문에, RAID 컨트롤러(100)가 복수의 커맨드를 병렬로 처리하는 것이 가능한 경우에는, FC 스위치(400)에는, 상이한 커맨드에 따라서 생성된 패킷이 혼재하여 송신되게 된다.
그 때문에, 암호 처리부(430)는, 복수 송신되는 각각의 패킷을, 동일한 커맨드에 따라서 생성된 패킷마다 분류하고, 암호 처리를 행할 필요가 있다.
FC의 경우, 데이터 전송을 행할 때의 단위로 되는 패킷에는, 데이터 전송을 제어하기 위한 제어 정보를 포함한 FC 프레임 헤더가 부가되어 있다. 도 5는, FC 프레임 헤더의 포맷을 도시하는 도면이다. 도 5에 도시하는 바와 같이, FC 프레임 에는 각종의 제어 정보가 설정되는데, 이 중, 「OX_ID」에는, 동일한 커맨드에 따라서 생성된 패킷인 경우에, 동일한 값이 설정된다.
따라서, 암호 처리부(430)는, RAID 컨트롤러(100)로부터 기입 커맨드 패킷 또는 판독 커맨드 패킷을 수신했을 때에, 그 커맨드에 설정되어 있는 「OX_ID」를 내부 메모리에 기억해 둔다. 그 후, 데이터 전송 요구 패킷이나 데이터 패킷에 대한 처리를 행하는 경우에는, 각 패킷에 설정되어 있는 「OX_ID」가, 기억하고 있는 「OX_ID」와 동일한지의 여부를 판정하여, 동일한 경우에만 그 처리를 행한다.
또한, 본 실시예에서는, RAID 컨트롤러(100)와 디스크 장치(300)를 접속하는 인터페이스가 FC인 경우에 대해서 설명하고 있지만, 인터페이스가 SAS인 경우에도, 본 발명은 마찬가지로 적용할 수 있다.
그 경우, 패킷에 부가된 SAS 프레임 헤더에 설정되어 있는 정보에 기초하여, 마찬가지의 판정을 행한다. 도 6은, SAS 프레임 헤더의 포맷을 도시하는 도면이다. SAS의 경우에는, 도 6에 도시하는 「Tag」를 이용함으로써, 마찬가지의 판정을 행한다.
또한, FC나 SAS에서는, 전송되는 패킷은, 각종 커맨드 등을 포함한 제어용의 패킷과, 유저 데이터를 포함한 데이터 패킷으로 대별되는데, 암호 처리부(430)는, 데이터 패킷에 포함되는 유저 데이터만을 암호화한다. 그 때문에, 암호 처리부(430)는, 패킷을 수신했을 때에, 그 패킷이 제어용의 패킷인지 데이터 패킷인지를 판정하고, 데이터 패킷인 경우에만 암호 처리를 행한다.
FC나 SAS의 패킷에서는, 프레임 헤더에 계속되는 영역에 SCSI층의 헤더가 설 정된다. 암호 처리부(430)는, 이 SCSI층의 헤더에 포함되는 커맨드 정보에 기초하여, 패킷의 종류를 식별한다. 도 7은 SCSI층의 헤더에 포함되는 커맨드 정보를 도시하는 도면이다. 도 7의 (a)는, FC 및 SAS의 프레임 헤더의 일부를 나타내고 있고, 도 7에 나타내는 「CDB」가 커맨드 정보이다.
이러한 커맨드 정보에는, 도 7의 (b)에 나타내는 바와 같이, 커맨드의 종류를 나타내는 「OPERATION CODE」가 포함되어 있고, 「OPERATION CODE」에는, 도 7의 (c)에 나타내는 바와 같이, 각종의 커맨드가 설정된다.
따라서, 예를 들면, 암호 처리부(430)는, 패킷에 포함되는 「OPERATION CODE」에 설정되어 있는 커맨드가, 「READ(임의의 수치)」, 「WRITE(임의의 수치)」 또는 「WRITE AND VERIFY(임의의 수치)」인 경우에는, 그 패킷이, 판독 대상 또는 기입 대상의 유저 데이터를 포함한 데이터 패킷이라고 판정하고, 암호 처리를 행한다.
다음으로, 본 실시예에 따른 FC 스위치(400)의 처리 수순에 대해서 설명한다. 여기에서는, 도 8 및 9를 참조하여, 라이트 동작에서의 FC 스위치(400)의 처리 수순에 대해서 설명한 후에, 도 10을 참조하여, 리드 동작에서의 FC 스위치(400)에 대해서 처리 수순을 설명한다.
최초로, 라이트 동작에서의 FC 스위치(400)의 처리 수순에 대해서 설명한다. 도 8 및 9는, 라이트 동작에서의 FC 스위치(400)의 처리 수순을 도시하는 도면(1) 및 (2)이다.
도 8에 도시하는 바와 같이, 라이트 동작에서는, FC 스위치(400)는, RAID 컨 트롤러(100)로부터 송신된 기입 커맨드(wt 커맨드) 패킷을 수신하면(스텝 S101), 수신한 패킷의 SCSI층의 헤더에 포함되는 커맨드를 해석하고(스텝 S102), 그 커맨드가 암호 대상인지의 여부를 판정한다.
여기에서, 암호 대상인 경우에는, FC 스위치(400)는, 그 패킷의 프레임 헤더에 포함되는 「OX_ID」를 기억함과 함께(스텝 S103), 그 기입 커맨드 패킷을 디스크 장치(300)에 대하여 송신한다.
그리고, 기입 커맨드 패킷에 따라서 디스크 장치(300)로부터 송신된 데이터 전송 요구 패킷(X. RDY)을 수신하면, FC 스위치(400)는, 수신한 패킷의 프레임 헤더에 포함되는 「OX_ID」와, 기억하고 있는 「OX_ID」가 일치하고 있는지의 여부를 판정한다(스텝 S104).
여기에서, 일치한 경우에는, FC 스위치(400)는, 데이터 전송 요구 패킷에 포함되는 수신 가능 사이즈를 기억하고(스텝 S105), 또한, 이 수신 가능 사이즈 이상이고, 또한, 16바이트의 배수로 되는 새로운 수신 가능 사이즈를 설정하고, 설정한 수신 가능 사이즈를, 데이터 전송 요구 패킷에 포함시킴으로써, RAID 컨트롤러(100)에 대하여 통지한다(스텝 S106).
예를 들면, 도 8에 도시하는 바와 같이, 데이터 전송 요구 패킷에 포함되는 수신 가능 사이즈가 16×A+a바이트인 경우에는, 16×(A+1)바이트를, 새로운 수신 가능 사이즈로서 RAID 컨트롤러(100)에 통지한다.
그리고, 데이터 전송 요구 패킷에 따라서 RAID 컨트롤러(100)로부터 데이터 패킷(DATA1∼DATA4)이 송신되면, FC 스위치(400)는, 각각, 패킷의 프레임 헤더에 포함되는 「OX_ID」가, 기억하고 있는 「OX_ID」와 일치하고 있는지의 여부를 판정한다(스텝 S107).
여기에서, 일치한 경우에는, FC 스위치(400)는, 데이터 패킷에 포함되는 유저 데이터를 해석하고, 16바이트의 우수리가 있는 경우에는, 우수리분의 데이터를 유지한다. 그 경우, FC 스위치(400)는, 다음의 데이터 패킷을 수신했을 때에, 그 패킷의 선두에, 유지한 우수리 데이터를 결합한다(스텝 S108).
그리고, FC 스위치(400)는, 16바이트의 데이터가 다 모인 부분만을 AES 암호화하고, 디스크 장치(300)에 대하여 송신한다(스텝 S109). 여기에서, FC 스위치(400)는, 스텝 S105에서 기억한 수신 가능 사이즈와, 암호화한 데이터의 사이즈가 동일해진 경우에는, 그 이후, RAID 컨트롤러(100)로부터 송신되는 데이터는, 디스크 장치(300)에 송신하지 않고 유지해 둔다(스텝 S110).
이에 의해, 디스크 장치(300)에는, 데이터 전송 요구 패킷에 설정되어 있던 수신 가능 사이즈분의 데이터가 송신된다. 예를 들면, 디스크 장치(300)에는, 도 도 8에 도시하는 바와 같이, 16×A+a바이트의 데이터가 송신된다.
그리고, 도 9에 도시하는 바와 같이, 디스크 장치(300)로부터 다음의 데이터 전송 요구 패킷이 송신되면, FC 스위치(400)는, 스텝 S104∼S106과 마찬가지의 처리를 행하여, 새로운 수신 가능 사이즈를 포함시킨 데이터 전송 요구 패킷을 RAID 컨트롤러(100)에 대하여 송신한다(스텝 S111∼S113).
그리고, 데이터 전송 요구 패킷에 따라서 RAID 컨트롤러(100)로부터 데이터 패킷(DATA5∼DATA8)이 송신되면, FC 스위치(400)는, 각각, 패킷의 프레임 헤더에 포함되는 「OX_ID」가, 기억하고 있는 「OX_ID」와 일치하고 있는지의 여부를 판정한다(스텝 S114).
여기에서, 일치한 경우에는, FC 스위치(400)는, 미송신 데이터(스텝 S110을 참조)가 유지되어 있는지의 여부를 확인하고, 유지되어 있는 경우에는, 그 미송신 데이터를, 최초로 수신한 데이터 패킷에 포함되는 유저 데이터의 선두에 결합한다(스텝 S115).
그리고, FC 스위치(400)는, 데이터 패킷에 포함되는 유저 데이터를 해석하고, 16바이트의 우수리가 있는 경우에는, 우수리분의 데이터를 유지한다. 그 경우, FC 스위치(400)는, 다음의 데이터 패킷을 수신했을 때에, 그 패킷의 선두에, 유지한 우수리 데이터를 결합한다(스텝 S116).
그리고, FC 스위치(400)는, 16바이트의 데이터가 다 모인 부분만을 AES 암호화하고, 디스크 장치(300)에 대하여 송신한다(스텝 S117). 여기에서, FC 스위치(400)는, 스텝 S105에서 기억한 수신 가능 사이즈와, 암호화한 데이터의 사이즈가 동일해진 경우에는, 그 이후, RAID 컨트롤러(100)로부터 송신되는 데이터는, 디스크 장치(300)에 송신하지 않고 유지해 둔다(스텝 S118).
그리고, FC 스위치(400)는, 최종 데이터인 것을 나타내는 정보(End Sequence)를 포함한 데이터 패킷을 수신한 경우에 디스크 장치(300)가 송신하는 종료 커맨드 패킷(RSP)을 수신하면, 수신한 패킷의 프레임 헤더에 포함되는 「OX_ID」가, 기억하고 있는 「OX_ID」와 일치하고 있는지의 여부를 판정한다(스텝 S119).
여기에서, 일치한 경우에는, FC 스위치(400)는, 그 기입 커맨드에 의한 입출 력 처리를 종료한다(스텝 S120).
계속해서, 리드 동작에서의 FC 스위치(400)의 처리 수순에 대해서 설명한다. 도 10은, 리드 동작에서의 FC 스위치(400)의 처리 수순을 도시하는 도면이다.
도 10에 나타내는 바와 같이, 리드 동작에서는, FC 스위치(400)는, RAID 컨트롤러(100)로부터 송신된 판독 커맨드(rd 커맨드) 패킷을 수신하면(스텝 S201), 수신한 패킷의 SCSI층의 헤더에 포함되는 커맨드를 해석하고(스텝 S202), 그 커맨드가 복호 대상인지의 여부를 판정한다.
여기에서, 복호 대상인 경우에는, FC 스위치(400)는, 그 패킷의 프레임 헤더에 포함되는 「OX_ID」를 기억함과 함께(스텝 S203), 그 판독 커맨드 패킷을 디스크 장치(300)에 대하여 송신한다.
그리고, 판독 커맨드 패킷에 따라서 디스크 장치(300)로부터 데이터 패킷(DATA1∼DATA4)이 송신되면, FC 스위치(400)는, 각각, 패킷의 프레임 헤더에 포함되는 「OX_ID」가, 기억하고 있는 「OX_ID」와 일치하고 있는지의 여부를 판정한다(스텝 S204).
여기에서, 일치한 경우에는, FC 스위치(400)는, 데이터 패킷에 포함되는 유저 데이터를 해석하고, 16바이트의 우수리가 있는 경우에는, 우수리분의 데이터를 유지한다. 그 경우, FC 스위치(400)는, 다음의 데이터 패킷을 수신했을 때에, 그 패킷의 선두에, 유지한 우수리 데이터를 결합한다(스텝 S205).
그리고, FC 스위치(400)는, 16바이트의 데이터가 다 모인 부분만을 AES 복호화하고, RAID 컨트롤러(100)에 대하여 송신한다(스텝 S206).
그리고, FC 스위치(400)는, 최종 데이터인 것을 나타내는 정보(End Sequence)를 포함한 데이터 패킷을 송신한 경우에 디스크 장치(300)가 송신하는 종료 커맨드 패킷(RSP)을 수신하면, 수신한 패킷의 프레임 헤더에 포함되는 「OX_ID」가, 기억하고 있는 「OX_ID」와 일치하고 있는지의 여부를 판정한다(스텝 S207).
여기에서, 일치한 경우에는, FC 스위치(400)는, 그 판독 커맨드에 의한 입출력 처리를 종료한다(스텝 S208).
전술해 온 바와 같이, 본 실시예에서는, FC 스위치(400)가, 수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구 패킷을 디스크 장치(300)로부터 수신한 경우에, 제1 수신 가능 사이즈 이상이고, 또한, 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정한다. 그리고, 이 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구 패킷을 RAID 컨트롤러(100)에 대하여 송신하고, 송신한 데이터 전송 요구에 대한 응답으로서 RAID 컨트롤러(100)로부터 송신되는 제2 수신 가능 사이즈의 데이터를 포함한 데이터 패킷을 수신한다. 또한, 수신한 그 데이터를 암호화 데이터 사이즈 단위로 암호화하고, 암호화한 데이터를 제1 수신 가능 사이즈 단위로 디스크 장치(300)에 대하여 송신한다. 만약, 송신 시에 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 계속해서, 또한 암호화되는 데이터와 결합하고, 결합한 데이터를 포함시킨 데이터 패킷을 디스크 장치(300)에 대하여 송신한다. 따라서, 데이터 전송 요구 패킷으로 지정된 제1 수신 가능 사이즈 분의 데이터가, 디스크 장치(300)에 대하여 송신되게 되고, 디스크 장치(300)가, 다음의 데이터 전송을 송신하는 것이 가능하게 된다. 즉, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 데이터 전송을 중단시키지 않고 암호화를 행할 수 있다.
또한, 본 실시예에서는, FC 스위치(400)가, RAID 컨트롤러(100)로부터 송신되는 데이터 패킷에 포함되는 데이터를 암호화했을 때에, 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 RAID 컨트롤러(100)로부터 후속해서 더 송신되는 데이터 패킷에 포함되는 데이터와 결합하고, 결합한 데이터를, 암호화 데이터 사이즈 단위로 암호화한다. 그 결과, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 전송되는 모든 데이터에 대하여, 데이터 전송을 중단시키지 않고 암호화를 행할 수 있다.
또한, 본 실시예에서는, RAID 컨트롤러(100)로부터 송신되는 데이터 패킷에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 「OX_ID」가 포함되어 있기 때문에, FC 스위치(400)가, 잔여 데이터를, RAID 컨트롤러(100)로부터 후속해서 더 송신되는 데이터와 결합하는 경우에, 「OX_ID」에 기초하여 결합하기 때문에, 복수의 연속하는 데이터가 병렬로 전송되도록 하는 경우에도, 각각의 데이터마다 암호화를 행할 수 있다.
또한, 본 실시예에서는, RAID 컨트롤러(100)로부터 송신되는 데이터 패킷에는, 데이터의 종류를 나타내는 커맨드 정보가 포함되어 있기 때문에, FC 스위치(400)가, RAID 컨트롤러(100)로부터 응답되는 데이터 패킷에 포함되는 데이터를 암호화할 때에, 커맨드 정보에 기초하여, 그 데이터를 암호화할지의 여부를 판정한다. 그리고, 암호화한다고 판정한 경우에, 그 데이터를 암호화하기 때문에, 제어용의 데이터는 암호화하지 않고, 유저 데이터만을 암호화하는 등, 암호화할 필요가 있는 데이터와, 암호화할 필요가 없는 데이터를 분류할 수 있다.
또한, 본 실시예에서는, FC 스위치(400)는, 디스크 장치(300)로부터 송신되는 데이터 패킷을 수신하고, 데이터 패킷을 수신한 경우에, 그 데이터 패킷에 포함되는 암호화 데이터를 복호화 데이터 사이즈 단위로 복호화한다. 만약, 복호화했을 때에, 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 디스크 장치(300)로부터 계속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 복호화 데이터 사이즈 단위로 복호화하고, 복호화한 데이터를 RAID 컨트롤러(100)에 대하여 송신한다. 그 결과, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에도, 전송되는 모든 데이터에 대하여, 데이터 전송을 중단시키지 않고 복호화를 행할 수 있다.
또한, 본 실시예에서는, 디스크 장치(300)로부터 송신되는 데이터 패킷에 포함되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 「OX_ID」가 포함되어 있다. 따라서, 잔여 데이터를, 디스크 장치(300)로부터 계속해서 더 송신되어 오는 암호화 데이터와 결합하는 경우에, 「OX_ID」에 기초하여 결합하기 때문에, 복수의 연속하는 데이터가 병렬로 전송되도록 하는 경우에도, 각각의 데이터마다 복호화를 행할 수 있다.
또한, 본 실시예에서는, 디스크 장치(300)로부터 송신되는 데이터 패킷에는, 데이터의 종류를 나타내는 커맨드 정보가 포함되어 있고, FC 스위치(400)가, 디스크 장치(300)로부터 송신되는 데이터 패킷에 포함되는 암호화 데이터를 복호화할 때에, 커맨드 정보에 기초하여, 그 암호화 데이터를 복호화할지의 여부를 판정한다. 그리고, 복호화한다고 판정한 경우에, 그 암호화 데이터를 복호화하기 때문에, 제어용의 데이터는 복호화하지 않고, 유저 데이터만을 복호화하는 등, 복호화할 필요가 있는 데이터와, 복호화할 필요가 없는 데이터를 분류할 수 있다.
또한, 본 실시예에서는, FC 스위치(400)에 본 발명을 적용한 경우에 대해 설명했지만, 본 발명은 이에 한정되는 것은 아니며, 상기에서 설명한 암호 처리부(430)가 갖는 기능을, RAID 컨트롤러(100)나 디스크 장치(300)가 갖도록 구성하여도 된다.
또한, 본 실시예에서는, 암호 방식으로서 AES 암호 방식을 각각 이용한 경우에 대해서 설명했지만, 본 발명은 이에 한정되는 것은 아니며, 다른 암호 방식이어도, 암호 처리의 처리 단위로 되는 데이터 사이즈와, 데이터 전송의 단위로 되는 데이터 사이즈가 상이한 경우에는, 마찬가지로 적용할 수 있다.
또한, 본 실시예에서 설명한 각 처리 중, 자동적으로 행해지는 것으로서 설명한 처리의 전부 또는 일부를 수동적으로 행할 수도 있고, 혹은, 수동적으로 행해지는 것으로서 설명한 처리의 전부 또는 일부를 공지의 방법으로 자동적으로 행할 수도 있다.
이 밖에, 상기 문서 내나 도면 내에서 나타낸 처리 수순, 제어 수순, 구체적 명칭, 각종의 데이터나 파라미터를 포함하는 정보에 대해서는, 특기하는 경우를 제 외하고 임의로 변경할 수 있다.
또한, 도시한 각 장치의 각 구성 요소는 기능 개념적인 것이며, 반드시 물리적으로 도시한 바와 같이 구성되어 있을 것을 필요로 하지 않는다. 즉, 각 장치의 분산·통합의 구체적 형태는 도시한 것에 한정되지 않고, 그 전부 또는 일부를, 각종의 부하나 사용 상황 등에 따라서, 임의의 단위로 기능적 또는 물리적으로 분산·통합하여 구성할 수 있다.
(부기 1)
제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 특정한 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 장치에 있어서,
수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 이 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 수단과,
상기 전송 요구 송신 수단에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 그 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 수단과,
상기 데이터 암호화 수단에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사 이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 수단에 의해 계속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제2 장치에 대하여 송신하는 데이터 송신 수단
을 구비한 것을 특징으로 하는 데이터 암호화 장치.
(부기 2)
상기 데이터 암호화 수단은, 상기 제1 장치로부터 송신되는 데이터를 암호화할 때에, 상기 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 상기 제1 장치로부터 계속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 상기 암호화 데이터 사이즈 단위로 암호화하는 것을 특징으로 하는 부기 1에 기재된 데이터 암호화 장치.
(부기 3)
상기 제1 장치로부터 송신되는 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고,
상기 데이터 암호화 수단은, 상기 입출력 식별 정보에 기초하여, 상기 잔여 데이터를, 상기 제1 장치로부터 계속해서 더 송신되는 데이터와 결합하는 것을 특징으로 하는 부기 2에 기재된 데이터 암호화 장치.
(부기 4)
상기 제1 장치로부터 송신되는 데이터에는, 데이터의 종류를 나타내는 데이터 종별 정보가 포함되어 있고,
상기 데이터 암호화 수단은, 상기 제1 장치로부터 응답되는 데이터를 암호화 할 때에, 상기 데이터 종별 정보에 기초하여, 그 데이터를 암호화할지의 여부를 판정하여, 암호화한다고 판정한 경우에, 그 데이터를 암호화하는 것을 특징으로 하는 부기 1, 2 또는 3에 기재된 데이터 암호화 장치.
(부기 5)
제2 장치로부터 제1 장치에 대하여 전송되는 암호화 데이터를 특정한 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 장치에 있어서,
상기 제2 장치로부터 송신되는 암호화 데이터를 수신하는 데이터 수신 수단과,
상기 데이터 수신 수단에 의해 상기 암호화 데이터가 수신된 경우에, 그 암호화 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하고, 복호화했을 때에 상기 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 상기 제2 장치로부터 계속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 수단과,
상기 데이터 복호화 수단에 의해 복호화된 데이터를 상기 제1 장치에 대하여 송신하는 데이터 송신 수단
을 구비한 것을 특징으로 하는 데이터 복호화 장치.
(부기 6)
상기 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고,
상기 데이터 복호화 수단은, 상기 입출력 식별 정보에 기초하여, 상기 잔여 데이터를, 상기 제2 장치로부터 계속해서 더 송신되는 암호화 데이터와 결합하는 것을 특징으로 하는 부기 5에 기재된 데이터 복호화 장치.
(부기 7)
상기 제2 장치로부터 송신되는 암호화 데이터에는, 데이터의 종류를 나타내는 데이터 종별 정보가 포함되어 있고,
상기 데이터 복호화 수단은, 상기 제2 장치로부터 송신되는 암호화 데이터를 복호화할 때에, 상기 데이터 종별 정보에 기초하여, 그 암호화 데이터를 복호화할지의 여부를 판정하여, 복호화한다고 판정한 경우에, 그 암호화 데이터를 복호화하는 것을 특징으로 하는 부기 5 또는 6에 기재된 데이터 복호화 장치.
(부기 8)
제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 특정한 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 방법에 있어서,
수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 이 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 공정과,
상기 전송 요구 송신 공정에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 그 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 공 정과,
상기 데이터 암호화 공정에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 공정에 의해 계속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제2 장치에 대하여 송신하는 데이터 송신 공정
을 포함한 것을 특징으로 하는 데이터 암호화 방법.
(부기 9)
상기 데이터 암호화 공정은, 상기 제1 장치로부터 송신되는 데이터를 암호화할 때에, 상기 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 상기 제1 장치로부터 계속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 상기 암호화 데이터 사이즈 단위로 암호화하는 것을 특징으로 하는 부기 8에 기재된 데이터 암호화 방법.
(부기 10)
제2 장치로부터 제1 장치에 대하여 전송되는 암호화 데이터를 특정한 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 방법에 있어서,
상기 제2 장치로부터 송신되는 암호화 데이터를 수신하는 데이터 수신 공정과,
상기 데이터 수신 공정에 의해 상기 암호화 데이터가 수신된 경우에, 그 암호화 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하고, 복호화했을 때에 상 기 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 상기 제2 장치로부터 계속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 공정과,
상기 데이터 복호화 공정에 의해 복호화된 데이터를 상기 제1 장치에 대하여 송신하는 데이터 송신 공정
을 포함한 것을 특징으로 하는 데이터 복호화 방법.
(부기 11)
상기 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고,
상기 데이터 복호화 공정은, 상기 입출력 식별 정보에 기초하여, 상기 잔여 데이터를, 상기 제2 장치로부터 계속해서 더 송신되는 암호화 데이터와 결합하는 것을 특징으로 하는 부기 10에 기재된 데이터 복호화 방법.
(부기 12)
제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 중계함과 함께, 그 데이터를 특정한 암호화 데이터 사이즈 단위로 암호화하는 데이터 중계 장치에 있어서,
수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈의 배수로 되는 제2 수신 가능 사이즈를 설정하고, 이 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 수단과,
상기 전송 요구 송신 수단에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 그 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 수단과,
상기 데이터 암호화 수단에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 수단에 의해 계속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제2 장치에 대하여 송신하는 데이터 송신 수단
을 구비한 것을 특징으로 하는 데이터 중계 장치.
(부기 13)
상기 데이터 암호화 수단은, 상기 제1 장치로부터 송신되는 데이터를 암호화했을 때에, 상기 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 상기 제1 장치로부터 계속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 상기 암호화 데이터 사이즈 단위로 암호화하는 것을 특징으로 하는 부기 12에 기재된 데이터 중계 장치.
(부기 14)
제2 장치로부터 제1 장치에 대하여 전송되는 암호화 데이터를 중계함과 함께, 그 암호화 데이터를 특정한 복호화 데이터 사이즈 단위로 복호화하는 데이터 중계 장치에 있어서,
상기 제2 장치로부터 송신되는 암호화 데이터를 수신하는 데이터 수신 수단과,
상기 데이터 수신 수단에 의해 상기 암호화 데이터가 수신된 경우에, 그 암호화 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하고, 복호화했을 때에 상기 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 상기 제2 장치로부터 계속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 수단과,
상기 데이터 복호화 수단에 의해 복호화된 데이터를 상기 제1 장치에 대하여 송신하는 데이터 송신 수단
을 구비한 것을 특징으로 하는 데이터 중계 장치.
(부기 15)
상기 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고,
상기 데이터 복호화 수단은, 상기 입출력 식별 정보에 기초하여, 상기 잔여 데이터를, 상기 제2 장치로부터 계속해서 더 송신되는 암호화 데이터와 결합하는 것을 특징으로 하는 부기 14에 기재된 데이터 중계 장치.
이상과 같이, 본 발명에 따른 데이터 암호화 장치, 데이터 복호화 장치, 데이터 암호화 방법, 데이터 복호화 방법 및 데이터 중계 장치는, FC 스위치나 SAS 익스팬더 등의 데이터 중계 장치에서 데이터의 암호화 및 복호화하는 경우에 유용하고, 특히, 데이터 전송의 단위로 되는 데이터 사이즈와 암호 처리의 단위로 되는 데이터 사이즈가 상이한 경우에 바람직하다.
도 1은 본 실시예에 따른 FC 스위치의 개념을 설명하기 위한 설명도(1).
도 2는 본 실시예에 따른 FC 스위치의 개념을 설명하기 위한 설명도(2).
도 3은 본 실시예에 따른 RAID 시스템의 구성을 도시하는 기능 블록도.
도 4는 본 실시예에 따른 FC 스위치의 구성을 도시하는 기능 블록도.
도 5는 FC 프레임 헤더의 포맷을 도시하는 도면이다.
도 6은 SAS 프레임 헤더의 포맷을 도시하는 도면이다.
도 7은 SCSI층의 헤더에 포함되는 커맨드 정보를 도시하는 도면.
도 8은 라이트 동작에서의 FC 스위치의 처리 수순을 도시하는 도면(1).
도 9는 라이트 동작에서의 FC 스위치의 처리 수순을 도시하는 도면(2).
도 10은 리드 동작에서의 FC 스위치의 처리 수순을 도시하는 도면.
도 11은 종래의 RAID 시스템의 일례를 도시하는 도면.
도 12는 SCSI에 의한 데이터 전송을 설명하기 위한 설명도.
도 13은 데이터 중계 장치에 의한 암호 처리에 따른 문제를 설명하기 위한 설명도.
[도면의 주요 부분에 대한 부호의 설명]
10, 100: RAID 컨트롤러
11, 110: 호스트 인터페이스 제어부
12, 120: 메인 메모리
13, 130: 메모리 제어부
14, 140: CPU
15, 150: 디스크 인터페이스 제어부
20, 200: 호스트 장치
30, 300: 디스크 장치
3101∼310n: 디스크
400: FC 스위치
410: 컨트롤러 인터페이스 제어부
420: 디스크 인터페이스 제어부
430: 암호 처리부

Claims (7)

  1. 제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 소정의 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 장치로서,
    수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈를 1 이상의 정수배한 제2 수신 가능 사이즈를 설정하고, 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 수단과,
    상기 전송 요구 송신 수단에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 수단과,
    상기 데이터 암호화 수단에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 수단에 의해 후속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하는 데이터 송신 수단
    을 구비한 것을 특징으로 하는 데이터 암호화 장치.
  2. 제1항에 있어서,
    상기 데이터 암호화 수단은, 상기 제1 장치로부터 송신되는 데이터를 암호화했을 때에, 상기 암호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를 상기 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하고, 결합한 데이터를, 상기 암호화 데이터 사이즈 단위로 암호화하는 것을 특징으로 하는 데이터 암호화 장치.
  3. 제2항에 있어서,
    상기 제1 장치로부터 송신되는 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고,
    상기 데이터 암호화 수단은, 상기 잔여 데이터를, 상기 제1 장치로부터 후속해서 더 송신되는 데이터와 결합하는 경우에, 상기 입출력 식별 정보에 기초하여 결합하는 것을 특징으로 하는 데이터 암호화 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 장치로부터 송신되는 데이터에는, 데이터의 종류를 나타내는 데이터 종별 정보가 포함되어 있고,
    상기 데이터 암호화 수단은, 상기 제1 장치로부터 응답되는 데이터를 암호화할 때에, 상기 데이터 종별 정보에 기초하여, 그 데이터를 암호화할지의 여부를 판정하여, 암호화한다고 판정한 경우에, 그 데이터를 암호화하는 것을 특징으로 하는 데이터 암호화 장치.
  5. 제2 장치로부터 제1 장치에 대하여 전송되는 암호화 데이터를 소정의 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 장치로서,
    상기 제2 장치로부터 송신되는 암호화 데이터를 수신하는 데이터 수신 수단과,
    상기 데이터 수신 수단에 의해 상기 암호화 데이터가 수신된 경우에, 그 암호화 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하고, 복호화했을 때에 상기 복호화 데이터 사이즈에 미달하는 잔여 데이터가 생긴 경우에는, 그 잔여 데이터를, 상기 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하고, 결합한 데이터를 상기 복호화 데이터 사이즈 단위로 복호화하는 데이터 복호화 수단과,
    상기 데이터 복호화 수단에 의해 복호화된 데이터를 상기 제1 장치에 대하여 송신하는 데이터 송신 수단
    을 구비한 것을 특징으로 하는 데이터 복호화 장치.
  6. 제5항에 있어서,
    상기 제2 장치로부터 송신되는 암호화 데이터에는, 연속하는 데이터인 경우에 동일한 값이 설정되는 입출력 식별 정보가 포함되어 있고,
    상기 데이터 복호화 수단은, 상기 잔여 데이터를, 상기 제2 장치로부터 후속해서 더 송신되는 암호화 데이터와 결합하는 경우에, 상기 입출력 식별 정보에 기 초하여 결합하는 것을 특징으로 하는 데이터 복호화 장치.
  7. 제1 장치로부터 제2 장치에 대하여 전송되는 데이터를 소정의 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 방법으로서,
    수신 가능한 데이터의 사이즈를 나타내는 제1 수신 가능 사이즈의 정보를 포함한 데이터 전송 요구를 제2 장치로부터 수신한 경우에, 그 제1 수신 가능 사이즈 이상이고, 또한, 상기 암호화 데이터 사이즈를 1 이상의 정수배한 제2 수신 가능 사이즈를 설정하고, 설정한 제2 수신 가능 사이즈를 포함시킨 데이터 전송 요구를 제1 장치에 대하여 송신하는 전송 요구 송신 공정과,
    상기 전송 요구 송신 공정에 의해 송신된 데이터 전송 요구에 대한 응답으로서 상기 제1 장치로부터 송신되는 제2 수신 가능 사이즈의 데이터를 수신하고, 수신한 데이터를 상기 암호화 데이터 사이즈 단위로 암호화하는 데이터 암호화 공정과,
    상기 데이터 암호화 공정에 의해 암호화된 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하고, 송신 시에 상기 제1 수신 가능 사이즈에 미달하는 미송신 데이터가 남은 경우에는, 그 미송신 데이터를, 상기 데이터 암호화 공정에 의해 후속해서 더 암호화되는 데이터와 결합하고, 결합한 데이터를 상기 제1 수신 가능 사이즈 단위로 상기 제2 장치에 대하여 송신하는 데이터 송신 공정
    을 포함한 것을 특징으로 하는 데이터 암호화 방법.
KR1020080005457A 2007-02-15 2008-01-17 데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법 KR100954649B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-00035433 2007-02-15
JP2007035433A JP4347351B2 (ja) 2007-02-15 2007-02-15 データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置

Publications (2)

Publication Number Publication Date
KR20080076719A KR20080076719A (ko) 2008-08-20
KR100954649B1 true KR100954649B1 (ko) 2010-04-27

Family

ID=39707667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080005457A KR100954649B1 (ko) 2007-02-15 2008-01-17 데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법

Country Status (4)

Country Link
US (1) US8478984B2 (ko)
JP (1) JP4347351B2 (ko)
KR (1) KR100954649B1 (ko)
CN (1) CN101246415B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090013016A1 (en) * 2007-07-06 2009-01-08 Neoscale Systems, Inc. System and method for processing data for data security
US8134875B2 (en) * 2008-12-08 2012-03-13 Xilinx, Inc. Data storage system with removable memory module having parallel channels of DRAM memory and flash memory
US8355499B2 (en) 2008-12-12 2013-01-15 Micron Technology, Inc. Parallel encryption/decryption
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
US8885334B1 (en) 2011-03-10 2014-11-11 Xilinx, Inc. Computing system with network attached processors
US10318431B2 (en) 2015-09-17 2019-06-11 Hewlett Packard Enterprise Development Lp Obscuration of a cache signal
JP6992437B2 (ja) * 2017-11-22 2022-01-13 日本電気株式会社 ログ記録装置、ログ記録方法、ログ復号装置、及びログ復号方法
CN110557354B (zh) * 2018-05-31 2020-10-13 杭州海康威视数字技术股份有限公司 一种实现节点间通讯的方法、装置及电子设备
CN111262798B (zh) * 2018-11-30 2023-03-14 深圳市中兴微电子技术有限公司 一种信息处理方法、设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271460A (ja) 2002-03-13 2003-09-26 Mitsubishi Denki Information Technology Corp ハードディスク装置、コンピュータ
KR20040077443A (ko) * 2002-01-30 2004-09-04 소니 가부시끼 가이샤 암호화한 압축 화상 데이터를 배신하는 스트리밍 시스템및 그 스트리밍 방법
JP2006041684A (ja) 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法
KR20070005726A (ko) * 2004-05-10 2007-01-10 가부시키가이샤 소니 컴퓨터 엔터테인먼트 기록매체, 컨텐츠 재생장치, 컨텐츠 재생방법, 컴퓨터프로그램

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459455A (en) * 1991-07-29 1995-10-17 Kabushiki Kaisha Toshiba Method and apparatus for data communication between transmission terminal and reception terminal of a network system
JPH0537551A (ja) 1991-07-29 1993-02-12 Toshiba Corp データ転送装置およびデータ転送方法
JP3110572B2 (ja) 1992-10-07 2000-11-20 大日本印刷株式会社 動物モデル組立キット
JP3627765B2 (ja) 1995-06-15 2005-03-09 日本電信電話株式会社 スクランブルにより情報秘匿を行なう通信システムにおける送信装置
JP2000341328A (ja) 1999-05-27 2000-12-08 Fujitsu Ltd データ中継装置
CN2480908Y (zh) * 2001-02-26 2002-03-06 张巨洪 计算机数据加密装置
JP2004126323A (ja) * 2002-10-04 2004-04-22 Sony Corp ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置
GB2400935B (en) 2003-04-26 2006-02-15 Ibm Configuring memory for a raid storage system
GB0322683D0 (en) * 2003-09-27 2003-10-29 Koninkl Philips Electronics Nv Data encryption method and apparatus
JP2006033350A (ja) 2004-07-15 2006-02-02 Nippon Telegr & Teleph Corp <Ntt> 代理セキュアルータ装置及びプログラム
JP2006252328A (ja) 2005-03-11 2006-09-21 Toshiba Corp ディスクアレイ制御装置、ストレージシステム、およびディスクアレイ制御方法
JP2006330126A (ja) 2005-05-24 2006-12-07 Matsushita Electric Ind Co Ltd 暗号化処理方法、および復号化処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040077443A (ko) * 2002-01-30 2004-09-04 소니 가부시끼 가이샤 암호화한 압축 화상 데이터를 배신하는 스트리밍 시스템및 그 스트리밍 방법
JP2003271460A (ja) 2002-03-13 2003-09-26 Mitsubishi Denki Information Technology Corp ハードディスク装置、コンピュータ
KR20070005726A (ko) * 2004-05-10 2007-01-10 가부시키가이샤 소니 컴퓨터 엔터테인먼트 기록매체, 컨텐츠 재생장치, 컨텐츠 재생방법, 컴퓨터프로그램
JP2006041684A (ja) 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法

Also Published As

Publication number Publication date
US20080201574A1 (en) 2008-08-21
KR20080076719A (ko) 2008-08-20
US8478984B2 (en) 2013-07-02
JP4347351B2 (ja) 2009-10-21
CN101246415B (zh) 2011-05-18
JP2008199542A (ja) 2008-08-28
CN101246415A (zh) 2008-08-20

Similar Documents

Publication Publication Date Title
KR100954649B1 (ko) 데이터 암호화 장치, 데이터 복호화 장치 및 데이터 암호화 방법
US8321659B2 (en) Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data transfer controlling apparatus
US8165301B1 (en) Input-output device and storage controller handshake protocol using key exchange for data security
US8621241B1 (en) Storage and recovery of cryptographic key identifiers
TWI492088B (zh) 用於控制固態磁碟之系統、方法及電腦可讀媒體
JP4856400B2 (ja) 記憶装置及び情報処理端末
US8526615B2 (en) Storage system executing encryption and decryption processing
CN1889426B (zh) 一种实现网络安全存储与访问的方法及系统
US8843768B2 (en) Security-enabled storage controller
US20120066518A1 (en) Canister-based storage system security
US20120096281A1 (en) Selective storage encryption
CN101398824A (zh) 利用虚拟文件系统技术实现数据处理后存储的方法
CN106970889B (zh) 一种sata桥接芯片及其工作方法
US9979541B2 (en) Content management system, host device and content key access method
CN101291345A (zh) 存储资源访问控制方法、ip存储系统、存储设备和主机
KR101440585B1 (ko) 암복호화 기능을 가진 메모리 카드
CN109711207B (zh) 一种数据加密方法及装置
US20160026582A1 (en) Encrypt data of storage device
CN115189969B (zh) 一种网络加密通信方法、装置、介质及设备
US8615492B1 (en) Techniques for providing multiplexed data for backup
CN113626838A (zh) 一种基于pcie的分块加密存储方法和装置
CN117195324A (zh) 存储装置内加解密模块的调用方法、存储装置及电子设备
KR20100103745A (ko) 아이씨칩과 서버 간 보안채널 연결 방법 및 시스템과 이를 위한 기록매체
JP2009147868A (ja) ファイル転送方法、プログラム、記録媒体、ファイル転送システム、送信装置、及び受信装置
CN101147375A (zh) 用于在计算机设备和消费类电子设备之间传输信息的方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130321

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140319

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee