KR100711190B1 - Ide/ata 데이터 전송을 위한 실시간 데이터암호화/암호해제 시스템 및 방법 - Google Patents

Ide/ata 데이터 전송을 위한 실시간 데이터암호화/암호해제 시스템 및 방법 Download PDF

Info

Publication number
KR100711190B1
KR100711190B1 KR1020040063347A KR20040063347A KR100711190B1 KR 100711190 B1 KR100711190 B1 KR 100711190B1 KR 1020040063347 A KR1020040063347 A KR 1020040063347A KR 20040063347 A KR20040063347 A KR 20040063347A KR 100711190 B1 KR100711190 B1 KR 100711190B1
Authority
KR
South Korea
Prior art keywords
data
data storage
ide
storage device
host device
Prior art date
Application number
KR1020040063347A
Other languages
English (en)
Other versions
KR20050016232A (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
Priority claimed from US10/635,833 external-priority patent/US7386734B2/en
Application filed by 에노바 테크놀러지 코포레이션 filed Critical 에노바 테크놀러지 코포레이션
Publication of KR20050016232A publication Critical patent/KR20050016232A/ko
Application granted granted Critical
Publication of KR100711190B1 publication Critical patent/KR100711190B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

호스트 디바이스와 데이터 저장 디바이스 사이에 동작 가능하게 접속된 암호 인터페이스를 포함하는 데이터 암호화/암호해제 시스템에 대해 개시한다. 상기 호스트 디바이스와 상기 데이터 저장 디바이스는 전체 ATA 프로토콜을 지원하는 각각의 IDE 제어기를 포함한다. 상기 암호 인터페이스는 호스트 디바이스측 IDE 제어기와 데이터 저장 디바이스측 IDE 제어기를 포함하며, 각각의 제어기는 일부의 ATA 프로토콜을 지원한다. 상기 암호 인터페이스는 또한 상기 호스트 디바이스와 상기 데이터저장 디바이스 사이에 IDE/ATA 데이터 전송 동안 상기 호스트 디바이스측 IDE 제어기와 상기 데이터 저장 디바이스측 IDE 제어기와 함께 실시간 데이터 암호화를 확실하게 수행하도록 구성되어 있다.
호스트 디바이스, 데이터 저장 디바이스, 암호 인터페이스

Description

IDE/ATA 데이터 전송을 위한 실시간 데이터 암호화/암호해제 시스템 및 방법{REAL TIME DATA ENCRYPTION/DECRYPTION SYSTEM AND METHOD FOR IDE/ATA DATA TRANSFER}
도 1은 IDE/ATA 데이터 전송을 위한 실시간 데이터 암호화/암호해제 시스템의 개략 블록도.
도 2는 울트라 다이렉트 메모리 액세스(UDMA)/멀티워드 DMA 데이터-아웃 전송의 개략 블록도.
도 3은 UDMA/멀티워드 DMA 데이터-인 전송의 개략 블록도.
도 4는 프로그램된 입력/출력(PIO) 데이터-아웃 전송의 개략 블록도.
도 5는 PIO 데이터-인 전송의 개략 블록도.
도 6은 도 1의 실시간 데이터 암호화/암호해제(또는 "암호해독"으로도 지칭됨) 시스템의 일실시예에 대한 개략도.
도 7은 IDE/ATA 데이터 전송 동안의 실시간 데이터 암호화/암호해제 방법을 개략적으로 설명하는 흐름도.
도 8은 UDMA/멀티워드 DMA 데이터 전송 동안의 실시간 데이터 암호화/암호해제 방법을 개략적으로 설명하는 흐름도.
도 9는 PIO 데이터 전송 동안의 실시간 데이터 암호화/암호해제 방법을 개략적으로 설명하는 흐름도.
본 출원은 "데이터 저장용 암호화/암호해제 디바이스"를 발명의 명칭으로 하여 2000년 11월 3일에 출원되어 현재 계류 중인 미국특허출원 제09/704,769호의 일부계속출원(CIP 출원)이다.
본 발명은 전반적으로 데이터 암호화/암호해제(또는 "암호해독"으로도 지칭됨)에 관한 것이며, 특히 IDE/ATA데이터 전송용 실시간 데이터 암호화/암호해제 시스템에 관한 것이다.
인테그레이티드 드라이브 일렉트로닉스(IDE)는 컴퓨터 마더보드 버스와 디스크 저장 디바이스들간에 사용되는 표준 전자 인터페이스이다. IDE는 미국 국립 표준 협회(ANSI)에 의해 표준으로 채택되었으며, ANSI는 IDE에 대한 공식 명칭을 어드밴스드 테크롤러지 어태치먼트(ATA)로 명명하였다. IDE/ATA는 컴퓨터 또는 호스트 디바이스가 데이터 저장 디바이드와 데이터를 송수신하는데 사용되는 전자 프로토콜로도 지칭된다. IDE에 사용되는 데이터 전송 방식에는 프로그램된 입력/출력(PIO) 방식 및 다이렉트 메모리 액세스(DMA) 방식의 2가지 방식이 있다. PIO 모드에서는, 데이터 전송이 호스트 디바이스에 의해 개시되어 수행된다. DMA 모드에서는, 데이터 전송이 호스트 디바이스와 데이터 저장 디바이스 사이의 핸드쉐이킹을 위한 신호에 의해 제어된다.
물리적 액세스 제어가 보장되지 않는 저장 매체에 독점적인 또는 개인적인 정보를 유지하고 있는 경우, 데이터 암호화 및 암호해제는 허가되지 않은 액세스로부터 데이터를 보호하는 메커니즘을 제공한다. 데이터가 호스트 디바이스로부터 데이터 저장 디바이스로 송신될 때 그 데이터를 암호화하고, 저장된 데이터가 호스트 디바이스의 요청에 의해 데이터 저장 디바이스로부터 복원될 때 그 저장된 데이터를 암호해제함으로써, 그 데이터는 암호화에 의해 보호되게 된다.
종래의 데이터 중계 방법에서는, 호스트 디바이스와 데이터 저장 디바이스 사이에 직렬로 설치된 IDE 브릿지 또는 인터페이스를 통해 데이터를 전송한다. 이러한 유형의 데이터 전송에서는, IDE 인터페이스가 데이터 버퍼링/데이터흐름 제어를 위해 IDE 인터페이스의 양측에 전체 ATA 프로토콜을 지원하는 IDE 제어기를 구현해야 한다. IDE 인터페이스는 IDE/ATA 데이터 전송 동안 데이터 저장 디바이스와 관련하여서는 가상의 호스트 디바이스 역할을 하는 동시에 호스트 디바이스와 관련하여서는 가상의 데이터 저장 디바이스 역할을 한다. 이러한 데이터 중계 방법에 있어서의 문제점은 IDE 인터페이스가 데이터흐름 제어를 유지하기 위해 대용량 데이터 버퍼를 구현해야만 한다는 점이다. 이러한 대용량 데이터 버퍼는 고가의 정적 랜덤-액세스 매모리(SRAM) 등을 이용하는 IDE 주문형 반도체(ASIC)로 구현되기도 하므로, 그에 따라 칩제조비용이 고가로 되어 버린다.
본 발명은 일반적으로 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이에 동작 가능하게 접속되어, 전체적인 데이터 전송 효율에 영향을 주지 않고 IDE/ATA 데이터 전송 동안 상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에 실시간 데이터 암호화 및 암호해제를 수행할 수 있는 적어도 하나의 암호 인터페이스를 포함하는 것을 특징으로 하는 데이터 암호화 시스템에 관한 것이다.
본 발명의 일실시예에서, IDE/ATA 데이터 전송의 조정(data transfer intervention)에 이용되는 암호 인터페이스는 일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기, 및 일부의 ATA 프로토콜을 지원하는 제2 IDE 제어기를 포함하며, 상기 제2 IDE 제어기는 상기 제1 IDE 제어기에 동작 가능하게 접속되어 있다. 상기 제1 및 제2 IDE 제어기는 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송 동안 데이터가 스트리밍되고 있을 때에는 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE 제어기 사이에 IDE/ATA 데이터흐름 제어를 제공하도록 구성되어 있다. 상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기는 전체 ATA 프로토콜을 지원한다.
본 발명의 다른 실시예에서, IDE/ATA 데이터 전송 조정을 위한 암호 인터페이스는 일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기, 및 일부의 ATA 프로토콜을 지원하는 제2 IDE 제어기를 포함하며, 상기 제2 IDE 제어기는 상기 제1 IDE 제어기에 동작 가능하게 접속되어 있다. 상기 제1 및 제2 IDE 제어기는 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송 동안 데이터가 스트리밍되고 있지 않을 때에는 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE 제어기 사이에 IDE/ATA 데이터흐름 제어를 지연 제공하도록 구성되어 있다. 상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기는 전체 ATA 프로토콜을 지원한다.
본 발명의 또 다른 실시예에서, 호스트 디바이스와 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송 동안 데이터를 암호화하는 방법은,
상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이에 적어도 하나의 IDE/ATA 데이터 전송을 인터셉트하는 단계, 상기 호스트 디바이스와 상기 데이터 저장디바이스 사이에 데이터가 스트리밍되고 있을 때에는 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 IDE/ATA 데이터흐름 제어를 제공하는 단계, 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있지 않을 때에는 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 IDE/ATA 데이터흐름 제어의 제공을 지연시키는 단계, 및 데이터의 실시간 암호화를 확실하게 실시하는 단계를 포함한다.
본 발명의 상기 및 다른 특징은 첨부된 도면과 본 발명의 후술하는 상세한 설명의 검토로부터 분명하게 이해하게 될 것이다.
본 발명은 본 발명은 첨부된 도면과 함께 읽을 때 후술하는 상세한 설명으로부터 가장 잘 이해할 수 있다. 통상적인 실행에 따라, 도면의 다양한 특징 부분을 축척대로 도시하지 않았음을 강조하는 바이다. 대조적으로, 상기 다양한 특징의 치수는 간략화를 위해 임의로 확대 또는 감소시킨 것이다. 도면에서 동일한 도면부호는 동일한 구성요소를 나타낸다.
본 발명의 일실시예들이 도 1 내지 도 9를 참조하여 상세하게 설명되어 있다. 본 발명의 다른 실시예, 특징 및/또는 장점은 아래의 상세한 설명으로부터 명백해질 것이고, 또는 본 발명을 실시함으로써 습득될 수 있다.
도 1은 IDE/ATA 데이터 전송을 위한 실시간 데이터 암호화/암호해제(encryption/decryption) 시스템(8)의 개략적인 블록도이다. 실시간 데이터 암호화/암호해제 시스템(8)은 호스트 디바이스(16)의 IDE 제어기(12)와 데이터 저장 디바이스(18)의 IDE 제어기(14)의 사이에 동작 가능하게 접속되어 있는 암호 인터페이스(10)를 포함한다. 암호 인터페이스(10)는 전체적인 데이터 전송 효율에 악영향을 주지 않으면서, 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 IDE/ATA 데이터 전송 동안 실시간 데이터 암호화/암호해제를 확실하게 수행하도록 되어 있다.
IDE 제어기(12)는 전체 표준 ATA 프로토콜을 지원하며, 데이터흐름 제어를 위한 일반적인 대용량의 데이터 버퍼(20)를 포함한다. 또한, IDE 제어기(14)도 전체 표준 ATA 프로토콜을 지원하고, 데이터흐름 제어를 위한 일반적인 대용량의 데이터 버퍼(22)를 포함한다. 일반적으로, 호스트 디바이스(16)는 데스크톱, 노트북 컴퓨터, 마이크로프로세서, 라우터, 인터페이스 카드, 또는 데이터를 생성할 수 있는 다른 장치일 수 있고, 데이터 저장 디바이스(18)는 디스크 드라이브, 테이프 드라이브, 플로피 디스켓, 콤팩트 디스크 드라이브, 광자기 드라이브, 디지털 비디오 레코더, 플래쉬 메모리 카드, PCMCIA 카드 또는 추출을 위해 데이터를 저장할 수 있는 다른 장치일 수 있다.
본 발명의 일실시예에서는, 도 1에 도시된 바와 같이, 암호 인터페이스(10)는 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 IDE/ATA 데이터 전송을 인터셉트하고, 소용량 입력 데이터 버퍼(26)와 소용량 출력 데이터 버퍼(28) 사이에 동작 가능하게 접속된 암호 엔진(cipher engine)(24)에 의해 암호화/암호해제를 확실하게 행하도록 프로그래밍되어 있다.
암호 인터페이스(10)의 암호 엔진(24)은, 호스트 디바이스(16)과 데이터 저장 디바이스(18) 사이의 IDE/ATA 데이터 전송 동안, DES(Data Encryption Standard), TDES(Triple DES), 또는 AES(Advanced Encryption Standard)와 같은 여러 가지의 알려진 암호 알고리즘을 이용하여, 여러 개의 표준 파이프라인 스테이지(standard pipeline stage)에서 데이터를 암호화/함호해제 한다. 다른 형태의 암호 엔진 및/또는 암호 알고리즘 또한 본 발명을 실시하는데 사용될 수 있다.
본 발명의 다른 실시예에서, 암호 인터페이스(10)는, 데이터가 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이에 스트리밍되고 있는 동안, 호스트 디바이스측 IDE 제어기(30)와 데이터 저장 디바이스측 IDE 제어기(32)에 의해, 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로 또는 그 반대로 IDE/ATA 데이터흐름 제어를 직접 제공/통과시키도록 프로그래밍되어 있다. 각각의 IDE 제어기(30,32)는, 도 1에 도시된 바와 같이, 일부분의 ATA 프로토콜을 지원하도록 되어 있다. 도 1에 도시된 바와 같이, 암호 인터페이스(10)는 호스트 디바이스측 IDE 제어기(30)에 의해 호스트 IDE/ATA 데이터흐름 제어를 인터셉트하고, 데이터 저장 디바이스측 IDE 제어기(32)에 의해 데이터 저장 디바이스(18)에 대한 제어를 발생함으로써, 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로 IDE/ATA 데이터흐름 제어를 제공한다.
마찬가지로, 암호 인터페이스(10)는 데이터 저장 디바이스측 IDE 제어기(32)에 의해 호스트 IDE/ATA 데이터흐름 제어를 인터셉트하고, 호스트 디바이스측 IDE 제어기(30)에 의해 호스트 디바이스(18)에 대한 제어를 발생함으로써, 데이터 저장 디바이스(18)에서 호스트 디바이스(18)로 IDE/ATA 데이터흐름 제어를 제공한다. 암호 엔진(24)과 조합하여, IDE 제어기(30, 32)에 일부분의 ATA 프로토콜을 구현함으로써, 암호 인터페이스(10)가 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 IDE/ATA 데이터 전송 동안 실시간으로 데이터를 확실하게 암호화/암호해제할 수 있게 된다. 암호 인터페이스(10)는 적어도 호스트 디바이스(16) 및 데이터 저장 디바이스(18) 정도의 고속으로 데이터를 처리하여 전체 데이터 전송 효율을 손상시키지 않도록 구성되어 있다.
본 발명의 다른 실시예에서, 암호 인터페이스(10)는, 도 7의 단계(148 및 152)를 참조하여 후술하는 바와 같이, 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이에 데이터가 연속적으로 스트리밍되고 있지 않으면, 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로 또는 그 반대로의 IDE/ATA 데이터흐름 제어의 제공을 지연하도록 프로그래밍되어 있다.
IDE 제어기(12, 14)의 기능적 측면에서 보면, IDE/ATA 데이터 전송은, 암호 인터페이스(10)에 의한 조정없이, 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이에 직접적으로 행해지고 있다. 따라서, 암호 인터페이스(10)는, 관련 기술 분야에서 종래에 행해졌던 바와 같이, 대용량의 데이터 버퍼와 전체 ATA 프로토콜의 지원과 같은 기존의 데이터 버퍼링/데이터흐름 제어 성능을 포함할 필요가 없다. 또한, 호스트 디바이스와 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송을, 호스트 디바이스(16)와 암호 인터페이스(10) 사이와 같이, 두 개의 독립된 데이터 전송으로 분리할 필요가 없다. IDE 제어기(12, 14)는 각각 IDE/ATA 데이터 전송 동안 데이터 버퍼링/데이터흐름 제어의 핸들링을 담당한다. 암호 인터페이스(10)는 일반적으로 "전달자(forwarder)", 또는 IDE/ATA 데이터 전송 동안 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 IDE/ATA 순응 데이터흐름 제어 통과 브리지로서 기능한다. 암호 인터페이스(10)의 IDE 제어기(30, 32)는 암호 데이터 처리를 수행하기 위해 요구되는 ATA 명령을 해석하기만 하면 된다.
도 1에 도시된 바와 같이, 호스트 디바이스(16)는 소용량 입력 데이터 버퍼(26), 암호 엔진(24), 및 소용량 출력 데이터 버퍼(28)를 통해 인입 데이터를 실시간으로 확실하게 암호화하는 암호 인터페이스(10)에 의해 데이터 저장 디바이스(18)에 데이터를 저장할 수 있다. 호스트 디바이스(16)는 소용량 입력 데이터 버퍼(26), 암호 엔진(24), 및 소용량 출력 데이터 버퍼(28)를 통해 실시간으로 데이터를 확실하게 암호해제하는 암호 인터페이스(10)에 의해 데이터 저장 디바이스(18)로부터 암호화되어 저장되어 있는 데이터를 복원할 수 있다.
본 발명의 또 다른 실시예에서, 암호 인터페이스(10)는 ASIC으로서 구현될 수 있다. 암호 엔진(24)의 파이프라인 스테이지에서 데이터를 유지하기 위해 사용되는 소용량 입력 데이터 버퍼(26)와 출력 데이터 버퍼(28)는 래치 또는 레지스터를 이용하여 구현될 수 있다. 이러한 구현은 고가인 SRAM 매크로 등을 사용할 필요성을 제거한다. 본 발명의 의도한 사상과 범위에 부합하는 다른 구현에 의해 암호 인터페이스(10)의 다른 구현예도 가능하다.
도 2는 UDMA/Multi-world DMA 데이터-아웃 전송의 개략도이다. UDMA는 컴퓨터 버스를 통해 하드디스크 드라이브에서 컴퓨터의 RAM으로 데이터를 전송하기 위한 프로토콜이다. UDAM 프로토콜은 버스트 모드(burst mode)로 데이터를 전송하고, ATA 데이터 전송 동안 데이터 보호를 위해 순환 중복 검사(CRC : Cylindrical Redundancy Checking)를 이용한다. 데이터 버스트 모드는 데이터 버스트 초기화, 데이터 버스트 일시중지(pausing), 및 데이터 버스트 완료 과정을 포함한다. 일례로서, UDMA/Multi-word DMA 데이터-아웃 전송은 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로의 UDMA/Multi-word DMA 데이터 전송으로 정의될 수 있다. 다른 예로서, UDMA/Multi-wod DMA 데이터-아웃 전송은 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로의 UDMA/Multi-word DMA 데이터 전송으로 정의될 수 있다.
데이터 버스트 초기화 과정의 개시 전에, 암호 인터페이스(10)는, 데이터 전송 모드, 데이터 전송 크기 등과 같은 주요 IDE/ATA 데이터 전송 파라미터를 인터셉트하여, 도 2의 단계 50에 개략적으로 나타낸 바와 같이, 이들 파라미터에 따라 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 UDMA/Multi-word DMA 데이터 전송을 준비한다.
여러 개의 데이터 버스트로 구성되는 UDMA/Multi-word DMA 데이터-아웃 전송의 초기에는, 암호 인터페이스(10)는, 데이터 전송을 초기화하고 인입 데이터를 소용량 입력 버퍼(26)(도 1에 도시됨)를 통해 암호 엔진(24)(도 1에 도시됨)에 보내기 위해, 호스트 디바이스(16)와 함께 버스트 초기화 과정을 수행한다. 인입 데이터가 암호화되고, 소용량 출력 데이터 버퍼(28)(도 1에 도시됨)에 전송된 후에는, 도 2의 단계 52에 개략적으로 도시된 바와 같이, 암호 인터페이스(10)가 데이터 저장 디바이스(18)와 함께 버스트 초기화 과정을 수행하고, 암호화된 데이터를 데이터 저장 디바이스(18)에 전송한다.
데이터 버스트의 전송 동안, 만일 호스트 디바이스(16) 또는 데이터 저장 디바이스(18)가 데이터흐름 제어 문제 때문에 데이터 전송의 일시중지를 요청하면, 암호 인터페이스(10)는, 도 2의 단계 58에 개략적으로 도시된 바와 같이, 일시적인 데이터 전송의 중지를 위해 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 대응하는 데이터 전송 일시중지 명령/응답 신호를 즉시 제공한다. 따라서, 암호 인터페이스(10)는 UDMA/Multi-word DMA 데이터-아웃 전송 동안 데이터흐름 제어에는 전혀 관계하지 않는다. 대신에, 암호 인터페이스(10)는 데이터흐름 제어를 통과시키고 IDE 컨트를러(30)(도 1에 도시됨)와 암호 엔진(24)(도 1에 도시됨)의 각각에 의해 데이터 암호화를 수행하도록 조정한다.
도 2의 단계 54에서 개략적으로 도시된 바와 같이, 만일 호스트 디바이스(16)나 데이터 저장 디바이스(18)가 전송 중에 데이터 버스트를 종료해야할 필요가 있으면, 암호 인터페이스(10)는, 데이터 전송의 완료를 위해 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 대응하는 데이터 전송 완료 명령/응답 신호를 전달한다.
버스트 완료 과정 중에, IDE 제어기(12)(도 1에 도시됨)는, 각 데이터 버스트의 끝에서 에러 검사를 위해 평문 데이터(plain text data)로부터 계산된 CRC 값을 IDE 제어기(30)(도 1에 도시됨)로 전송한다. 암호 인터페이스(10)의 IDE 제어기(32)(도 1에 도시됨)는, 각 데이터 버스트의 끝에서 에러 검사를 위해 암호문 데이터(cipher text data)로부터 계산된 CRC 값을 데이터 저장 디바이스(18)로 전송한다. 만일 전송된 암호문 CRC 값이 오류이면, 데이터 저장 디바이스(18)는, 암호 인터페이스(10)에 의해 취해지는 어떠한 추가 동작없이 데이터 전송이 종료하자마자 CRC 에러 상태 비트에 의해 호스트 디바이스(16)에 불일치(discrepancy)를 보고한다.
만일, 전송된 평문 CRC 값이 오류이면, 암호 인터페이스(10)는, 이를 데이터 저장 디바이스(18)에 알려주기 위해, 마지막 데이터 버스트 완료 과정 동안 데이터 저장 디바이스(18)에 미리 정의된 에러 CRC 값을 전송함으로써, 데이터 저장 디바이스(18)로 CRC 에러를 전달한다. 마지막 데이터 버스트 완료 과정은 도 2의 단계 60에 개략적으로 나타나 있다.
도 2의 단계 62에 개략적으로 도시된 바와 같이, 데이터 전송이 완료되면, 데이터 저장 디바이스(18)는, 이를 호스트 디바이스(16)에 알려주기 위해, 대응하는 ATA 정보를 호스트 디바이스(16)로 전달한다.
도 3은 UDMA/Multi-word DMA 데이터-인 전송을 개략적으로 나타낸 도면이다. 일례로서, UDMA/Multi-word DMA 데이터-인 전송은 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로의 UDMA/Multi-word DMA 데이터 전송으로 정의될 수 있다. 다른 예로서, UDMA/Multi-word DMA 데이터-인 전송은 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로의 UDMA/Multi-word DMA 데이터 전송으로 정의될 수 있다.
단계 70에 개략적으로 도시된 바와 같이, 암호 인터페이스(10)는, 데이터 전송 모드, 데이터 전송 크기 등과 같은 주요 IDE/ATA 데이터 전송 파라미터를 인터셉트하여, 이들 파라미터에 따라 데이터 저장 디바이스(18)와 호스트 디바이스(16)사이의 UDMA/Multi-word DMA 데이터 전송을 준비한다. 암호 인터페이스(10)는, 데이터 전송을 초기화하고 소용량 입력 버퍼(26)(도 1에 도시됨)를 통해 암호해제하기 위해 암호화된 데이터를 암호 엔진(24)(도 1에 도시됨)으로 보내기 위해, 데이터 저장 디바이스(18)와 함께 버스트 초기화 과정을 수행한다. 인입 데이터가 암호해제되고 소용량 출력 데이터 버퍼(28)(도 1에 도시됨)에 전송된 후에는, 도 3의 단계 72에 개략적으로 도시된 바와 같이, 암호 인터페이스(10)는 호스트 디바이스(16)와 함께 버스트 초기화 과정을 수행하고, 암호해제된 데이터를 호스트 디바이스 (16)로 전송한다.
데이터 버스트의 전송 동안, 만일 데이터 저장 디바이스(18) 또는 호스트 디바이스(16)가 데이터흐름 제어 문제 때문에 데이터 전송의 일시정지를 요구하면, 도 3의 단계 78에 개략적으로 도시된 바와 같이, 암호 인터페이스는, 일시적인 데이터 전송의 중지를 위해 데이터 저장 디바이스(18)와 호스트 디바이스(16) 사이의 대응하는 데이터 전송 일시중지 명령/응답 신호를 즉시 전달한다. 암호 인터페이스(10)는, 따라서, UDMA/Multi-word DMA 데이터인 전송 동안 데이터흐름 제어에 전혀 관여하지 않는다. 대신에, 암호 인터페이스(10)는, UDMA/Multi-word DMA 데이터-인(data-in) 전송 동안 데이터흐름 제어를 통과시키고 IDE 제어기(32)(도 1에 도시됨)와 암호 엔진(24)의 각각을 통해 데이터 암호해제를 수행하도록 조정된다.
데이터 저장 디바이스(18) 또는 호스트 디바이스(16)가 데이터 버스트 전송을 완료할 필요가 있을 경우, 암호 인터페이스(10)는 대응하는 데이터 전송 완료 명령/응답 신호를 데이터 저장 디바이스(18)와 호스트 디바이스 사이에 즉시 보내어, 도 3의 단계 74에 개략적으로 나타낸 바와 같이, 데이터 전송의 완료를 가능하게 한다.
단계 80에서, 암호 인터페이스(10)는 데이터 저장 디바이스(18)를 이용하여 최종 버스트 완료 과정을 실행한다. 암호 엔진(24)은 최종의 나머지 데이터를 암호해제하여 그것을 소용량 출력 데이터 버퍼(28)에 전송한다. 암호 인터페이스(10)는 호스트 디바이스(16)를 이용하여 버스트 완료 절차를 실행한다. 데이터 전송에서 데이터 저장 디바이스측에서 CRC 에러가 발생되면, 데이터 전송의 완료 시 CRC 에러 상태 비트에 의해 호스트 디바이스(16)에 데이터 저장 디바이스(18)가 에러를 보고함에 따라 암호 인터페이스(10)는 특정 동작을 취하지 않는다.
데이터 전송의 호스트 디바이스측에서 CRC 에러가 발생되면, 데이터 저장 디바이스측 데이터 전송이 이미 완료되었기 때문에 암호 인터페이스(10)는 데이터 저장 디바이스(18)에 상기 에러를 보내지 않는다. 단계 82에 개략적으로 나타낸 바와 같이, 상기 불일치를 해소하기 위해서는, 암호 인터페이스(10)는 CRC 에러가 데이터 저장 디바이스(18)에 의해 검출되었음을 호스트 디바이스(16)에 알려주기 위해 CRC 에러 상태 비트를 "참(true)"로 단정함으로써 ATA 정보를 처리하고, 그 결과 호스트 디바이스(16)는 데이터의 재전송과 같은 교정 동작을 취할 수 있다.
도 4는 호스트 디바이스(16)로부터 데이터 저장 디바이스(18)로의 PIO 데이터-아웃 전송을 개략적으로 나타내는 도면이다. PIO 모드에서, 데이터 전송은 마이크로프로세서 등의 호스트 디바이스에 의해 초기화되고 실행된다. 데이터흐름 제어는 호스트 중앙처리 장치(CPU) 또는 호스트 ATA 어댑터에 의해 데이터 저장 디바이스로 보내어지는 판독 및 기입 데이터 스트로브를 포함한다. 일 실시예에서, PIO 데이터-아웃 전송은 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로의 PIO 데이터 전송으로서 정의될 수 있다. 또 다른 실시예에서, PIO 데이터-아웃 전송은 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로의 PIO 데이터 전송으로서 정의될 수 있다.
초기에, 암호 인터페이스(10)는 도 4의 단계 "100"에 개략적으로 도시된 바와같이, 데이터 전송 모드, 데이터 전송 크기 등의 중요한 IDE/ATA 데이터 전송 변수를 인터셉트하여, 이러한 변수에 따라 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 PIO 데이터-아웃 전송을 준비한다. 호스트 디바이스(16)는 암호 인터페이스(10)에 데이터를 전송하기 위해 기입 스트로브를 발생시킨다. 암호 인터페이스(10)는 인입 데이터를 소용량 입력 데이터 버퍼(26)(도 1에 도시됨)를 거쳐 암호화를 위한 암호 엔진(24)(도 1에 도시됨)으로 향하게 한다. 암호 인터페이스(10)의 IDE 제어기(30)(도 1에 도시됨)는, 도 4의 단계 "102"에 도시된 바와 같이, 인입 데이터가 암호화되어 데이터 저장 디바이스(18)에 전송되기 직전까지 IDE 제어기(32)(도 1에 도시됨)를 거쳐 데이터 저장 디바이스(18)의 IDE 제어기(14)(도 1에 도시됨)에 이러한 기입 스트로브를 보내는 것을 지연시키도록 프로그램된다.
도 4의 단계 "104"에 전반적으로 도시된 바와 같이, 암호화된 데이터가 데이터 저장 디바이스(18)에의 전송을 위해 준비될 때, 암호 인터페이스(10)의 IDE 제어기(30)(도 1에 도시됨)는 나머지 데이터 전송 기간 동안 데이터 저장 디바이스(18)의 IDE 제어기(14)(도 1에 도시됨)에 기입 스트로브를 직접 보낸다. 호스트측 데이터 전송의 종료 시에, 암호 인터페이스(10)는 도 4의 단계 "106"에 도시된 바와 같이 기입 스트로브를 즉각적으로 발생시키고, 그것을 저장 장치측 데이터 전송에 첨부시킨다.
도 5는 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로의 PIO 데이터-인 전송을 개략적으로 나타낸 도면이다. 한 예에서, PIO 데이터-인 전송은 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로의 PIO 데이터 전송으로서 정의될 수 있다. 다른 예에서, PIO 데이터-인 전송은 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로의 PIO 데이터 전송으로서 정의될 수 있다.
초기에, 암호 인터페이스(10)는 도 5의 단계 110에 도시된 바와같이, 데이터 전송 모드, 데이터 전송 크기 등의 주요 IDE/ATA 데이터 전송 변수를 인터셉트하여, 이러한 변수에 따라 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이의 PIO 데이터-인 전송을 준비한다. 암호 인터페이스(10)는 데이터 저장 디바이스(18)로부터 데이터의 복원을 개시하기 위해 IDE 제어기(32)(도 1에 도시됨)를 위한 판독 스트로브를 발생시킨다. 데이터 저장 디바이스(18)는 소용량 입력 데이터 버퍼(26)(도 1에 도시됨)를 경유한 암호해제를 위해 암호 인터페이스(10)의 암호 엔진(24)으로 암호화된 데이터를 전송함으로써 응답한다. 암호 인터페이스(10)는 암호해제된 데이터가 소용량 출력 데이터 버퍼(28)(도 1에 도시됨)를 거쳐 호스트 디바이스(16)로 전송되기 직전까지 도 5에 도시된 바와 같이 판독 스트로브의 생성을 지속한다.
도 5의 단계 "114"에 도시된 바와 같이, 호스트 디바이스(16)는 암호 인터페이스(10)로부터 암호해제된 데이터를 검색하기 위해 판독 스트로브를 생성한다. 호스트 디바이스 생성 판독 스트로브(the host device-generated read strobes)는 나머지 데이터 전송 기간 동안에 IDE 제어기(30)(도 1에 도시됨), IDE 제어기(32) 및 IDE 제어기(14)(도 1에 도시됨)에 의해 데이터 저장 디바이스(18)로 직접 보내어 진다.
도 5의 단계 "116"에 도시된 바와 같이, 데이터 저장 디바이스측 데이터 전송의 완료시에, 암호 인터페이스(10)의 IDE 제어기(30)는 호스트 디바이스(16)가 암호 인터페이스(10)로부터 나머지 인입 암호해제 데이터의 판독을 지속하는 동안 호스트 디바이스 생성 판독 스트로브의 제공을 중단한다.
PIO 데이터-인 및 데이터-아웃 전송은 암호 인터페이스(10)의 양쪽에서 동일한 데이터 출력율을 발생하며, 이에 의해 암호 인터페이스(10)의 각각의 측에서의 스트로브 기간의 차이로 인해 암호 인터페이스(10)가 데이터흐름 제어를 지원해야 할 통상의 필요성을 방지한다.
PIO 데이터 전송의 초기 및 최종 부분은 데이터 전송의 이러한 상대적으로 짧은 부분에서 데이터 스트로브가 보내어지지 않더라도 데이터흐름 제어 문제에 봉착하지 않는다. 그 한가지 이유는 이러한 데이터 전송 부분이 비교적 짧기 때문이다. 다른 이유는 호스트 디바이스(16)와 암호 인터페이스(10) 사이에서만의 데이터 전송이 데이터흐름 제어를 필요로 하지는 않기 때문이다. 또한, 암호 인터페이스(10)와 데이터 저장 디바이스(18) 사이에서만의 데이터 전송이 데이터흐름의 제어를 필요로 하지도 않는다. 전반적으로, 데이터흐름 제어는 암호 인터페이스(10)의 양쪽에서 전송된 데이터의 양에 차이가 있을 때 암호 인터페이스(10)에 의해 요구될 것이지만, 이러한 비교적 짧은 초기/최종 데이터 전송 부분이 호스트 디바이스측 또는 데이터 저장 디바이스측 중의 한 쪽에서만 발생하기 때문에, 일반적으로 암호 인터페이스(10)에 의해 데이터흐름 제어가 요구되지는 않는다.
도 6은 도 1의 암호 인터페이스(10)의 암호 엔진(24)의 일실시예를 전반적으로 도시한다. 구체적으로는, 암호 인터페이스(10)의 암호 엔진(24)은 도 6의 출력 버퍼 풀(full) 메시지에 의해 도시된 바와 같이 소용량 출력 데이터 버퍼(28)가 가득찼다는 것을 검출하는 즉시 데이터 암호화/암호해제를 멈추도록 프로그램된다. 구체적으로, 모든 파이프라인 암호화 스테이지는 데이터 처리를 즉시 멈추고, 소용량 입력 데이터 버퍼(26)로부터 더 이상의 데이터가 받아들여지지 않는다. 암호화 파이프라인 내에 존재하는 어떠한 데이터도 더 이상 다음의 스테이지로 전진하지 못한다. 전체적인 암호화 동작은 암호 엔진(24)이 소용량 출력 데이터 버퍼(28)가 더 이상 풀상태가 아니라는 것을 검출할 때까지 "동결상태(frozen)"를 나타난다. 이 시점에서, 암호 엔진(24)은 데이터 처리를 재개하고, 각각의 암호화 파이프라인 스테이지는 전에 정지되었던 위치에서부터 동작을 지속한다. 당업자는 이러한 암호화 구성이 회로 구성 및 그에 따른 데이터 처리를 간략화시킬뿐만 아니라, 제조 비용을 감소시킨다는 것을 이해할 수 있을 것이다.
도 7은 IDE/ATA 데이터 전송 동안의 실시간 데이터 암호화/암호해제 방법을 전반적으로 나타내는 플로차트이다. 도 7의 단계 140에서, ATA 정보는 인터페이스(10)(도 1에 도시됨)를 통해 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이에서 교환된다. 암호 인터페이스(10)는 주요 ATA 파라미터를 인터셉트하고, 인입 데이터를 수신하고, 그 데이터를 처리하여, 처리된 데이터를 데이터 저장 디바이스(18) 또는 호스트 디바이스(16)에 각각 전송한다. 일 실시예에서는 데이터 처리가 데이터 암호화를 지칭할 것이며, 또 다른 실시예에서는 데이터 처리가 데이터 암호해제를 지칭할 수도 있다.
단계 142에서, 암호 인터페이스(10)는 데이터흐름 제어를 각각 호스트 디바이스(16) 또는 데이터 저장 디바이스(18)로부터 수신한다. 단계 144에서, 암호 인터페이스(10)는 모든 데이터가 처리되었는지를 판정하도록 프로그램되어 있다. 모든 데이터가 처리된 경우에는, 호스트 디바이스(16)는, 도 7의 단계 146에 도시된 바와 같이, IDE 제어기(12)(도 1에 도시됨), IDE 제어기(30)(도 1에 도시됨), 및 IDE 제어기(32)(도 1에 도시됨)를 통해 데이터 저장 디바이스(18)의 상태를 체크하거나 판독하고, 데이터 전송이 정지된다. 모든 데이터가 처리되지는 않은 경우, 도 7의 단계 148에 도시된 바와 같이, 암호 인터페이스(10)는 데이터가 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이에서 스트리밍되고 있는지의 여부를 판정하도록 프로그램되어 있다.
단계 150에서, 데이터가 스트리밍되고 있는 경우, 암호 인터페이스(10)는 수신된 데이터흐름 제어를 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로, 또는 그 역으로 즉시 보내도록 프로그램되어 있다. 단계 152에서, 데이터가 스트리밍되고 있지 않는 경우, 암호 인터페이스(10)는 수신된 데이터흐름 제어의 전달 및 재생을 지연시키도록 프로그램되어 있다. 실시간 데이터 암호화/암호해제 사이클은 화살표 154에 의해 나타낸 바와 같이 계속된다.
도 8은 UDMA/Multi-word DMA 데이터 전송 동안의 실시간 데이터 암호화/암호해제 방법을 일반적으로 나타내는 플로차트이다. 단계 "160"에서, ATA 정보가 암호 인터페이스(10)를 통해 호스트 디바이스(16)와 데이터 저장 디바이스(18) 사이에서 교환된다. 암호 인터페이스(10)는 주요 ATA 파라미터를 인터셉트하고, 호스트 디바이스(16)(도 1에 도시됨) 및 데이터 저장 디바이스(18)(도 1에 도시됨)로 데이터 버스트를 초기화하고, 인입 데이터를 수신하고, 그 데이터를 처리하여 처리된 데이터를 각각 데이터 저장 디바이스(18) 또는 호스트 디바이스(16)에 전송한다. 일 실시예에서는 데이터 처리가 데이터 암호화를 지칭할 수도 있고, 또 다른 실시예에서는 데이터 처리가 데이터 암호해제를 지칭할 수도 있다.
단계 162에서, 암호 인터페이스(10)는 각각 호스트 디바이스(16) 또는 데이터 저장 디바이스(18)로부터 데이터흐름 제어를 수신한다. 단계 164에서, 암호 인터페이스(10)는 각각 호스트 디바이스(16) 또는 데이터 저장 디바이스(18)로부터 완료 제어가 수신되었는지 여부를 판정하도록 프로그램되어 있다. 완료 제어가 수신된 경우에는, 암호 인터페이스(10)는, 단계 "168"에 나타낸 바와 같이, 데이터 전송이 종료되었는지를 판정하도록 프로그램되어 있다. 데이터 전송이 종료된 경우에는, 암호 인터페이스(10)는, 단계 170에 나타낸 바와 같이, 각각 호스트 디바이스(16) 또는 데이터 저장 디바이스(18)로 데이터 버스트 완료 과정을 실행한다.
단계 172에서, UDMA/Multi-word DMA 데이터-아웃 전송의 경우, 암호 인터페이스(10)는 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로 ATA 정보를 보내도록 프로그램되어 있고, 데이터 전송이 정지된다. UDMA/Multi-word DMA 데이터-인 전송의 경우, 암호 인터페이스(10)는 처리된 ATA 정보를 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로 전송하도록 프로그램되어 있고, 데이터 전송이 정지된다.
완료 제어가 수신되지 않았을 경우, 암호 인터페이스(10)는, 도 8의 단계 168에 나타낸 바와 같이, 수신된 데이터흐름 제어를 각각 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로, 또는 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로 즉시 보내도록 프로그램되어 있다. 마찬가지로, 데이터 전송이 종료되지 않았을 경우, 암호 인터페이스(10)는, 도 8의 단계 168에 나타낸 바와 같이, 수신된 데이터흐름 제어를 각각 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로, 또는 데이터 저장 디바이스(18)에서 호스트 디바이스(16)로 즉시 보내도록 프로그램되어 있다. 실시간 암호화/암호해제 사이클은 화살표 174로 나타낸 바와 같이 계속된다.
도 9는 PIO 데이터 전송 동안의 실시간 데이터 암호화/암호해제 방법을 나타내는 플로차트이다. 단계 180에서, ATA 정보가 암호 인터페이스(10)(도 1에 도시됨)를 통해 호스트 디바이스(16)(도 1에 도시됨)와 데이터 저장 디바이스(18)(도 1에 도시됨) 사이에서 교환된다. 암호 인터페이스(10)는 주요 ATA 파리미터를 인터셉트한다.
단계 182에서, 암호 인터페이스(10)는 인입되는 초기 데이터를 수신하여 그초기 데이터를 처리한다. PIO 데이터-아웃 전송의 경우에, 암호 인터페이스(10)는 호스트 디바이스 생성 기입 스트로브의 전달을 지연하도록 프로그램되어 있다. PIO 데이터-인 전송의 경우에, 암호 인터페이스(10)는 판독 스트로브(read strobe)를 생성하도록 프로그램되어 있다.
단계 184에서, 암호 인터페이스(10)는 인입 데이터를 수신하여 그 인입 데이터를 처리한다. 또한, PIO 데이터-아웃 전송의 경우에, 암호 인터페이스(10)는 호스트 디바이스 생성 기입 스트로브를 호스트 디바이스(16)에서 데이터 저장 디바이스(18)로 보내도록 프로그램되어 있다. PIO 데이터-인 전송의 경우에, 암호 인터페이스(10)는 호스트 디바이스 생성 판독 스트로브를 호스트 디바이스(16)에서 데이터 저장 디바이스(18)에 보내도록 프로그램되어 있다.
단계 186에서, 암호 인터페이스(10)는 데이터 전송이 종료되었는지 판정하도록 프로그램되어 있다. 데이터 전송이 종료되지 않았을 경우, 화살표 190에 의해 나타낸 바와 같이, 실시간 데이터 암호화/암호해제 사이클이 계속된다. 데이터 전송이 종료되지 않았다면, 단계 188에 나타낸 바와 같이, 암호 인터페이스(10)는 PIO 데이터-아웃 전송의 경우에 기입 스트로브를 생성하고, 도 4의 단계 106을 참고하여 앞에서 설명한 바와 같이, 그 기입 스트로브를 저장 디바이스측 데이터 전송에 첨부하도록 프로그램되어 있고, 데이터 전송 프로세스는 정지된다. 도9의 단계 188에 추가로 나타낸 바와 같이, PIO 데이터-인 전송의 경우, 암호 인터페이스(10)는 호스트 디바이스 생성 판독 스트로브를 보내지 않도록 프로그램되어 있고, 데이터 전송 프로세스는 정지된다.
이상과 같이 본 발명은 여러 가지 특정 구현예를 통해 설명되었지만, 당업자는 본 발명의 사상과 청구의 범위 내에서 본 발명을 변형하여 실시할 수 있음을 인식할 것이다. 또한, 어느 한 구현예의 일부로서 예시되거나 설명된 특징은 그러한 특징이 전술한 특정 구현예에 한정되지 않도록 또 다른 구현예를 제공하게끔 다른 구현에에서 이용될 수 있다. 따라서, 그러한 구현예 및 변경이 첨부되는 청구의 범위 및 그 등가물 내에 포함되는 한, 본 발명은 그러한 모든 구현예를 포함하는 것으로 간주된다.
본 발명에 의하면, 칩제조비용을 저렴하게 할 수 있다.

Claims (32)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 데이터 암호화 시스템에 있어서,
    적어도 하나의 호스트 디바이스;
    적어도 하나의 데이터 저장 디바이스; 및
    상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에 동작 가능하게 접속되며, IDE/ATA 데이터 전송 동안 상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있을 때에는, 상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에 IDE/ATA 데이터흐름 제어를 제공하도록 구성되는 적어도 하나의 암호 인터페이스(cryptographic interface)
    를 포함하는 데이터 암호화 시스템.
  6. 데이터 암호화 시스템에 있어서,
    적어도 하나의 호스트 디바이스;
    적어도 하나의 데이터 저장 디바이스; 및
    상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에 동작 가능하게 접속되며, IDE/ATA 데이터 전송 동안 상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 연속적으로 스트리밍되고 있지 않을 때에는, 상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이의 IDE/ATA 데이터흐름 제어의 제공을 지연시키도록 구성되는 적어도 하나의 암호 인터페이스
    를 포함하는 데이터 암호화 시스템.
  7. IDE/ATA 데이터 전송 조정을 위한 암호 인터페이스에 있어서,
    일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기; 및
    일부의 ATA 프로토콜을 지원하고, 상기 제1 IDE 제어기에 동작 가능하게 접속되는 제2 IDE 제어기
    를 포함하며,
    상기 제1 및 제2 IDE 제어기는, IDE/ATA 데이터 전송 동안 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있을 때에는, 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE 제어기 사이에 IDE/ATA 데이터흐름 제어를 제공하도록 구성되며,
    상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기의 각각이 전체 ATA 프로토콜을 지원하는,
    암호 인터페이스.
  8. IDE/ATA 데이터 전송 조정을 위한 암호 인터페이스에 있어서,
    일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기; 및
    일부의 ATA 프로토콜을 지원하며, 상기 제1 IDE 제어기에 동작 가능하게 접속되는 제2 IDE 제어기
    를 포함하며,
    상기 제1 및 제2 IDE 제어기는, IDE/ATA 데이터 전송 동안 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있고 있지 않을 때에는, 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE제어기 사이의 IDE/ATA 데이터흐름 제어의 제공을 지연시키도록 구성되며,
    상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기의 각각이 전체 ATA 프로토콜을 지원하는,
    암호 인터페이스.
  9. 제7항에 있어서,
    IDE/ATA 데이터 전송 동안, 상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에서, 상기 제1 및 제2 IDE 제어기와 함께 실시간 데이터 암호 처리를 확실하게 수행하도록 구성되는 적어도 하나의 암호 엔진을 더 포함하는, 암호 인터페이스.
  10. 제8항에 있어서,
    IDE/ATA 데이터 전송 동안, 상기 적어도 하나의 호스트 디바이스와 상기 적어도 하나의 데이터 저장 디바이스 사이에서, 상기 제1 및 제2 IDE 제어기와 함께 실시간 암호 데이터 처리를 확실하게 수행하도록 구성되는 적어도 하나의 암호 엔진을 더 포함하는, 암호 인터페이스.
  11. 제9항에 있어서,
    상기 적어도 하나의 암호 엔진이 적어도 하나의 소용량 입력 데이터 버퍼와 적어도 하나의 소용량 출력 데이터 버퍼 사이에 동작 가능하게 접속되는, 암호 인터페이스.
  12. 제10항에 있어서,
    상기 적어도 하나의 암호 엔진이 적어도 하나의 소용량 입력 데이터 버퍼와 적어도 하나의 소용량 출력 데이터 버퍼 사이에 동작 가능하게 접속되는, 암호 인터페이스.
  13. 제11항에 있어서,
    상기 적어도 하나의 호스트 IDE 제어기가 적어도 하나의 대용량 데이터 버퍼를 포함하는, 암호 인터페이스.
  14. 제11항에 있어서,
    상기 적어도 하나의 데이터 저장 IDE 제어기가 적어도 하나의 대용량 데이터 버퍼를 포함하는, 암호 인터페이스.
  15. 제12항에 있어서,
    상기 적어도 하나의 호스트 IDE 제어기가 적어도 하나의 대용량 데이터 버퍼를 포함하는, 암호 인터페이스.
  16. 제12항에 있어서,
    상기 적어도 하나의 데이터 저장 IDE 제어기가 적어도 하나의 대용량 데이터 버퍼를 포함하는, 암호 인터페이스.
  17. 제11항에 있어서,
    상기 적어도 하나의 암호 엔진은 상기 적어도 하나의 소용량 출력 데이터 버퍼가 완전히 채워져 있음을 검출하면 암호 데이터 처리를 중지시키도록 프로그램되어 있는, 암호 인터페이스.
  18. IDE/ATA 데이터 전송 조정을 위한 암호 인터페이스에 있어서,
    일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기; 및
    일부의 ATA 프로토콜을 지원하며, 상기 제1 IDE 제어기에 동작 가능하게 접속되는 제2 IDE 제어기
    를 포함하며,
    상기 제1 및 제2 IDE 제어기는, UDMA/멀티워드 DMA 데이터 전송 동안 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있을 때에는, 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE제어기 사이에 데이터흐름 제어를 제공하도록 구성되며,
    상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기가 전체 ATA 프로토콜을 지원하는,
    암호 인터페이스.
  19. IDE/ATA 데이터 전송 조정을 위한 암호 인터페이스에 있어서,
    일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기; 및
    일부의 ATA 프로토콜을 지원하며, 상기 제1 IDE 제어기에 동작 가능하게 접속되는 제2 IDE 제어기
    를 포함하며,
    상기 제1 및 제2 IDE 제어기는, UDMA/멀티워드 DMA 데이터 전송 동안 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있지 않을 때에는, 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE 제어기 사이의 데이터흐름 제어의 제공을 지연시키도록 구성되며,
    상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기는 전체 ATA 프로토콜을 지원하는,
    암호 인터페이스.
  20. IDE/ATA 데이터 전송 조정을 위한 암호 인터페이스에 있어서,
    일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기; 및
    일부의 ATA 프로토콜을 지원하며, 상기 제1 IDE 제어기에 동작 가능하게 접속되는 제2 IDE 제어기
    를 포함하며,
    상기 제1 및 제2 IDE 제어기는, PIO 데이터 전송 동안 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있을 때에는, 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE 제어기 사이의 데이터흐름 제어를 제공하도록 구성되며,
    상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기는 전체 ATA 프로토콜을 지원하는,
    암호 인터페이스.
  21. IDE/ATA 데이터 전송 조정을 위한 암호 인터페이스에 있어서,
    일부의 ATA 프로토콜을 지원하는 제1 IDE 제어기; 및
    일부의 ATA 프로토콜을 지원하며, 상기 제1 IDE 제어기에 동작 가능하게 접속되는 제2 IDE 제어기
    를 포함하며,
    상기 제1 및 제2 IDE 제어기는, PIO 데이터 전송 동안 적어도 하나의 호스트 디바이스와 적어도 하나의 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있지 않을 때에는, 상기 적어도 하나의 호스트 디바이스의 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 디바이스의 데이터 저장 IDE 제어기 사이의 데이터흐름 제어의 제공을 지연시키도록 구성되며,
    상기 적어도 하나의 호스트 IDE 제어기와 상기 적어도 하나의 데이터 저장 IDE 제어기의 각각은 전체 ATA 프로토콜을 지원하는,
    암호 인터페이스.
  22. 호스트 디바이스와 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송 동안 데이터를 암호화하는 방법에 있어서,
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 적어도 하나의 IDE/ATA 데이터 전송을 인터셉트하는 단계,
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있을 때에는 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이에 IDE/ATA 데이터흐름 제어를 제공하는 단계;
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이에 데이터가 스트리밍되고 있지 않을 때에는 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 IDE/ATA 데이터흐름 제어의 제공을 지연시키는 단계; 및
    데이터의 실시간 암호화를 확실하게 실시하는 단계
    를 포함하는, 데이터 암호화 방법.
  23. 호스트 디바이스와 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송 동안 데이터 전송을 조정하는 방법에 있어서,
    IDE/ATA 데이터흐름 제어를 수신하는 단계;
    종료 제어가 수신되었는지를 판정하는 단계; 및
    상기 종료 제어가 수신되지 않은 경우에는, 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이에 상기 수신된 IDE/ATA 데이터흐름 제어를 즉시 제공하는 단계
    를 포함하는 데이터 전송 조정 방법.
  24. 제23항에 있어서,
    데이터 전송이 완료되었는지를 판정하는 단계; 및
    데이터 전송이 완료되지 않은 경우에는, 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 상기 수신된 IDE/ATA 데이터흐름 제어를 즉시 제공하는 단계를 더 포함하는, 데이터 전송 조정 방법.
  25. 호스트 디바이스와 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송 동안 실시간 데이터 암호화를 위한 데이터흐름 제어를 조정하는 방법에 있어서,
    인입 데이터를 처리하는 단계;
    호스트 디바이스 생성 기입 스트로브(host device generated write strobes)를 상기 호스트 디바이스에서 상기 데이터 저장 디바이스로 전송하는 단계;
    상기 인입 데이터 전송이 완료되었는지를 판정하는 단계;
    상기 인입 데이터 전송이 완료되지 않은 경우에, 상기 호스트 디바이스에서 상기 데이터 저장 디바이스로 상기 호스트 디바이스 생성 기입 스트로브를 연속적으로 제공하는 단계; 및
    상기 인입 데이터 전송이 완료된 경우에, 상기 호스트 디바이스에서 상기 데이터 저장 디바이스로의 전송을 위한 대응하는 기입 스트로브를 생성하는 단계
    를 포함하는 데이터흐름 제어 조정 방법.
  26. 호스트 디바이스와 데이터 저장 디바이스 사이의 IDE/ATA 데이터 전송 동안 실시간 데이터 암호화를 위한 데이터흐름 제어를 조정하는 방법에 있어서,
    인입 데이터를 처리하는 단계;
    호스트 디바이스 생성 판독 스트로브(host device generated read strobes)를 상기 호스트 디바이스에서 상기 데이터 저장 디바이스로 전송하는 단계;
    상기 인입 데이터 전송이 완료되었는지를 판정하는 단계;
    상기 인입 데이터 전송이 완료되지 않은 경우에, 상기 호스트 디바이스에서 상기 데이터 저장 디바이스로 상기 호스트 디바이스 생성 판독 스트로브를 연속적으로 제공하는 단계; 및
    데이터 전송이 완료된 것으로 판정되는 경우에는, 상기 호스트 디바이스로부터 상기 데이터 저장 디바이스로 상기 호스트 디바이스가 생성한 판독 스트로브를 제공하는 것을 금지시키는 단계
    를 포함하는 데이터흐름 제어 조정 방법.
  27. 호스트 디바이스와 데이터 저장 디바이스 사이의 UDMA/멀티워드 DMA 데이터-아웃 전송 동안의 데이터 암호화 방법에 있어서,
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 적어도 하나의 IDE/ATA 데이터 전송을 인터셉트하는 단계;
    암호화를 위한 인입 데이터를 준비하기 위해 상기 호스트 디바이스로 초기화 과정을 수행하는 단계;
    상기 암호화를 위한 인입 데이터를 프리페치(pre-fetch)하는 단계;
    암호화된 인입 데이터를 전송하기 위해 상기 데이터 저장 디바이스로 초기화 과정을 수행하는 단계;
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 중의 하나로부터 일시중지 또는 종료가 수신될 때까지 모든 인입 데이터에 대해 암호화를 연속적으로 수행하는 단계;
    종료, 초기화 및 일시중지 등의 데이터흐름 제어를 제공하는 단계;
    데이터-아웃 전송이 완료되었는지를 판정하는 단계;
    모든 암호화된 데이터가 상기 데이터 저장 디바이스에 전송될 때에 데이터-아웃 전송을 종료하는 단계; 및
    상기 데이터 저장 디바이스에서 상기 호스트 디바이스로 ATA 정보를 제공하는 단계
    를 포함하는 데이터 암호화 방법.
  28. 상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 UDMA/멀티워드 DMA 데이터-인 전송 동안의 데이터 암호화 방법에 있어서,
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 적어도 하나의 IDE/ATA 데이터 전송을 인터셉트하는 단계;
    암호화된 데이터를 암호해제를 준비하기 위해 상기 데이터 저장 디바이스로 초기화 과정을 수행하는 단계;
    암호해제를 위해 상기 데이터 저장 디바이스로부터 암호화된 데이터를 프리페치(pre-fetch)하는 단계;
    암호해제된 데이터를 전송하기 위해 상기 호스트 디바이스로 초기화 과정을 수행하는 단계;
    상기 호스트 디바이스 또는 상기 데이터 저장 디바이스 중의 하나로부터 일시중지 또는 종료가 수신될 때까지 모든 암호화된 데이터에 대한 암호해제를 연속적으로 수행하는 단계;
    종료, 초기화 및 일시중지 등의 데이터흐름 제어를 제공하는 단계;
    데이터-인 전송이 완료되었는지를 판정하는 단계;
    모든 암호해제된 데이터가 상기 호스 디바이스에 전송될 때에 데이터-인 전송을 종료하는 단계; 및
    상기 데이터 저장 디바이스에서 상기 호스트 디바이스로 ATA 정보를 제공하는 단계
    를 포함하는 데이터 암호화 방법.
  29. 호스트 디바이스와 데이터 저장 디바이스 사이의 PIO 데이터-아웃 전송 동안의 데이터 암호화 방법에 있어서,
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 적어도 하나의 IDE/ATA 데이터 전송을 인터셉트하는 단계;
    상기 호스트 디바이스가 생성한 기입 스트로브로부터 인입 데이터를 수신하는 단계;
    상기 인입 데이터가 암호화되어 상기 데이터 저장 디바이스에 전송되기 직전까지 상기 호스트 디바이스가 생성한 기입 스트로브를 상기 데이터 저장 디바이스에 지연 제공하는 단계;
    나머지 데이터 전송 기간 동안 상기 호스트 디바이스가 생성한 기입 스트로브를 상기 데이터 저장 디바이스에 제공하는 단계; 및
    호스트 데이터 전송의 완료를 대기하고, 그 후 기입 스트로브를 생성하여 상기 데이터 저장 디바이스에 추가하는 단계
    를 포함하는 데이터 암호화 방법.
  30. 호스트 디바이스와 데이터 저장 디바이스 사이의 PIO 데이터-인 전송 동안의 데이터 암호화 방법에 있어서,
    상기 호스트 디바이스와 상기 데이터 저장 디바이스 사이의 적어도 하나의 IDE/ATA 데이터 전송을 인터셉트하는 단계;
    상기 데이터 저장 디바이스로부터 암호화된 데이터의 복원을 개시하기 위해 판독 스트로브를 생성하는 단계;
    암호해제된 데이터가 상기 호스트 디바이스에 전송되기 직전까지 상기 데이터 저장 디바이스로부터의 암호화된 데이터의 복원을 위한 판독 스트로브를 연속적으로 생성하는 단계;
    나머지 데이터 전송 기간 동안 상기 호스트가 생성한 판독 스트로브를 상기 데이터 저장 디바이스에 직접 제공하는 단계; 및
    상기 호스트 디바이스가 나머지 암호해제된 데이터의 판독을 지속하는 동안 상기 호스트 디바이스가 생성한 판독 스트로브의 제공을 중단하는 단계
    를 포함하는 데이터 암호화 방법.
  31. UDMA 데이터-아웃 전송을 암호화하는 처리 동안 CRC를 관리하는 방법에 있어서,
    데이터 저장 디바이스측에서 CRC 에러가 발생하는 경우, 상기 데이터 저장 디바이스가 이 CRC 에러를 데이터 전송의 종료 시에 설정되는 CRC 에러 상태 비트에 의해 호스트 디바이스에 보고할 때에는, 아무런 동작도 행하지 않는 단계; 및
    상기 호스트 디바이스측에서 CRC 에러가 발생한 경우에는, 최종 데이터 버스트 전송 과정에서 소정의 오류 CRC 값을 상기 데이터 저장 디바이스에 전송하는 단계
    를 포함하는 CRC 관리 방법.
  32. UDMA 데이터-인 전송을 암호화하는 처리 동안 CRC를 관리하는 방법에 있어서,
    데이터 저장 디바이스측에서 CRC 에러가 발생하는 경우, 상기 데이터 저장 디바이스가 이 CRC 에러를 데이터 전송의 종료 시에 설정되는 CRC 에러 상태 비트에 의해 호스트 디바이스에 보고할 때에는, 아무런 동작도 행하지 않는 단계; 및
    CRC 에러가 호스트 디바이스측에서 발생한 경우에는, 상기 데이터 저장 디바이스에 의해 CRC 에러가 검출되었다는 것을 상기 호스트 디바이스에 통보하기 위해 상기 CRC 에러 상태 비트를 "참(true)"으로 단정하는 단계
    를 포함하는 CRC 관리 방법.
KR1020040063347A 2003-08-06 2004-08-06 Ide/ata 데이터 전송을 위한 실시간 데이터암호화/암호해제 시스템 및 방법 KR100711190B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/635,833 US7386734B2 (en) 2000-11-03 2003-08-06 Real time data encryption/decryption system and method for IDE/ATA data transfer
US10/635,833 2003-08-06

Publications (2)

Publication Number Publication Date
KR20050016232A KR20050016232A (ko) 2005-02-21
KR100711190B1 true KR100711190B1 (ko) 2007-04-24

Family

ID=34549753

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040063347A KR100711190B1 (ko) 2003-08-06 2004-08-06 Ide/ata 데이터 전송을 위한 실시간 데이터암호화/암호해제 시스템 및 방법

Country Status (3)

Country Link
JP (1) JP2005110219A (ko)
KR (1) KR100711190B1 (ko)
TW (1) TWI348853B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090248910A1 (en) * 2008-04-01 2009-10-01 Apple Inc. Central dma with arbitrary processing functions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020126546A1 (en) 2001-01-05 2002-09-12 Jung-Hyuk Im Apparatus and method for securing recording medium driver
US20030070073A1 (en) 2001-10-09 2003-04-10 Alps Electric Co., Ltd. Card authenticating apparatus
TW535122B (en) * 2000-11-06 2003-06-01 Enova Technology Corp Encryption/Decryption device for data storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW535122B (en) * 2000-11-06 2003-06-01 Enova Technology Corp Encryption/Decryption device for data storage
US20020126546A1 (en) 2001-01-05 2002-09-12 Jung-Hyuk Im Apparatus and method for securing recording medium driver
US20030070073A1 (en) 2001-10-09 2003-04-10 Alps Electric Co., Ltd. Card authenticating apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
INPADOC리스트 *

Also Published As

Publication number Publication date
KR20050016232A (ko) 2005-02-21
TWI348853B (en) 2011-09-11
JP2005110219A (ja) 2005-04-21
TW200507573A (en) 2005-02-16

Similar Documents

Publication Publication Date Title
US7386734B2 (en) Real time data encryption/decryption system and method for IDE/ATA data transfer
JP4698982B2 (ja) 暗号処理を行うストレージシステム
US5943421A (en) Processor having compression and encryption circuitry
US20130290736A1 (en) Data storage device, data control device and method for encrypting data
US8165301B1 (en) Input-output device and storage controller handshake protocol using key exchange for data security
US6295604B1 (en) Cryptographic packet processing unit
KR100823734B1 (ko) iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템
US20080052537A1 (en) Storage device, write-back method, and computer product
US11809346B2 (en) System architecture with secure data exchange
JP2004226969A (ja) 暗号システム及び多様なモードを支援する方法
US8064600B2 (en) Encoded digital video content protection between transport demultiplexer and decoder
KR20090085685A (ko) 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기
CN111797046B (zh) PCIe控制器及其数据传输方法
US8478984B2 (en) Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data relay apparatus
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP4893040B2 (ja) 暗号化データ記録装置
US20050259458A1 (en) Method and system of encrypting/decrypting data stored in one or more storage devices
US7194627B2 (en) Method and system for data encryption and decryption
KR100711190B1 (ko) Ide/ata 데이터 전송을 위한 실시간 데이터암호화/암호해제 시스템 및 방법
US20040250096A1 (en) Method and system for data encryption and decryption
CN108563603B (zh) 一种基于uasp协议的高效数据加密设备
EP1457859A2 (en) Data encryption/decryption device
WO2016131330A1 (zh) 一种控制存储加密的方法和终端
CN101977106A (zh) 实时数据密码运算方法
CN109558347B (zh) PCIe控制器与使用PCIe控制器的密钥更新

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140416

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160325

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee