KR20090085685A - 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기 - Google Patents

암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기 Download PDF

Info

Publication number
KR20090085685A
KR20090085685A KR1020097012678A KR20097012678A KR20090085685A KR 20090085685 A KR20090085685 A KR 20090085685A KR 1020097012678 A KR1020097012678 A KR 1020097012678A KR 20097012678 A KR20097012678 A KR 20097012678A KR 20090085685 A KR20090085685 A KR 20090085685A
Authority
KR
South Korea
Prior art keywords
data
memory unit
field
memory
processor
Prior art date
Application number
KR1020097012678A
Other languages
English (en)
Inventor
에드워드 엘 헤플러
로버트 지 가즈다
Original Assignee
인터디지탈 테크날러지 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지탈 테크날러지 코포레이션 filed Critical 인터디지탈 테크날러지 코포레이션
Publication of KR20090085685A publication Critical patent/KR20090085685A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04KSECRET COMMUNICATION; JAMMING OF COMMUNICATION
    • H04K1/00Secret communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Programmable Controllers (AREA)
  • Logic Circuits (AREA)

Abstract

데이터 처리 시스템은, 예를 들어, 공유 메모리 아키텍처(SMA) 정적 램(SRAM)과 더블 데이터 레이트(DDR) 동기식 동적 램(SDRAM) 사이와 같이, 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달한다. 시스템은 암호화 엔진 및 데이터-이동 제어기를 포함한다. 데이터-이동 제어기는 전달되는 데이터가 암호화되어야 하는지 아닌지를 지정하는 필드를 갖는 적어도 하나의 레지스터를 포함한다. 필드가 전달되는 데이터가 암호화되어야 하는 것으로 지정하면, 필드는, 3세대 파트너쉽 프로젝트(3GPP) 표준화된 비밀 암호 알고리즘 "f8" 또는 무결성 암호 알고리즘 "f9" 등의, 수행되어야 할 암호화의 타입도 지정한다.
Figure P1020097012678
암호화, 데이터 전달, 데이터-이동 제어기, 암호화 엔진, 암호 알고리즘

Description

암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기{DATA-MOVER CONTROLLER WITH PLURAL REGISTERS FOR SUPPORTING CIPHERING OPERATIONS}
본 발명은 무선 통신 애플리케이션에 사용될 수 있는 데이터 처리의 분야에 관한 것이다. 더욱 구체적으로, 본 발명은 데이터-이동 제어기(data-mover controller) 및 암호화 엔진을 사용하여, 2개의 상이한 종류의 메모리 장치 사이에서 데이터를 암호화하여 전달하는 것에 관한 것이다.
다수의 초기 3세대 파트너쉽 프로젝트(3GPP : third Generation Partnership Project) 모뎀은 계층 1 프로토콜을 소프트웨어로 구현한 것이다. 데이터 레이트가 상승할수록, 일부 기능에 대한 하드웨어 지원의 필요성이 요구되었다. 3GPP, 이동 통신용 글로벌 시스템(GSM : Global System for Mobile Communications) 및 유니버설 이동 전화통신 시스템(UMTS : Universal Mobile Telecommunications Systems)와 같은 무선 통신 시스템에서는, 최근, 더욱 연산 집약적인(compute-intensive) 동작의 일부에 대한 가속기로서 작용하는 하드웨어 모듈이 도입되고 있다.
이러한 동작의 하나는 암호화이며, 이것에 의하여, 암호화 키의 조작 및 데 이터의 실제적인 암호화는 조작되는 데이터의 양에 비례하여 필요한 처리 용량을 증가시킨다. 3GPP 시스템의 보안 아키텍처 내에는, 2개의 표준화된 알고리즘, 비밀 암호 알고리즘 "f8" 및 무결성 암호 알고리즘 "f9"가 존재한다.
하나의 메모리(즉, 계층)로부터 다른 메모리로 데이터가 이동되는 한편, 암호화 연산을 효율적으로 수행하기 위한 수단이 요구된다.
데이터 처리 시스템은 예를 들어, 공유 메모리 아키텍처(SMA : Share Memory Architecture) 정적 램(SRAM : Static Random Access Memory)과 더블 데이터 레이트(DDR : Double Data Rate) 동기식 동적 램(SDRAM : Synchronous Dynamic Random Access Memory) 사이와 같이, 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달한다. 시스템은 암호화 엔진 및 데이터-이동 제어기를 포함한다. 데이터-이동 제어기는 전달되는 데이터가 암호화 엔진에 의해 암호화되어야 하는지 아닌지를 지정하는 필드를 갖는 적어도 하나의 레지스터를 포함한다.
필드가 전달되는 데이터가 암호화되어야 하는 것으로 지정하면, 필드는, 3GPP 표준화된 비밀 암호 알고리즘 "f8" 또는 무결성 암호 알고리즘 "f9"와 같이, 암호화 엔진에 의해 수행되어야 할 암호화의 타입을 지정할 수도 있다.
레지스터는 표준화된 무결성 암호 알고리즘 f9 연산에 의해 연산된 메시지 인증 코드(MAC : Message Authentication Code)를 지정하는 또 다른 필드를 포함할 수도 있다.
레지스터는 제1 메모리 유닛으로부터 제2 메모리 유닛으로, 또는 제2 메모리 유닛으로부터 제1 메모리 유닛으로 데이터가 이동되는지를 지정하는 또 다른 필드 를 포함할 수도 있다. 제1 및 제2 메모리 유닛은 처리 속도에 있어서 상이할 수도 있다.
레지스터는 데이터-이동 제어기에 의해 전달될 데이터 블록의 크기를 지정하는 또 다른 필드를 포함할 수도 있다. 데이터 블록 크기는 4 바이트(byte), 8 바이트, 16 바이트 또는 32 바이트일 수도 있다.
레지스터는 데이터-이동 제어기에 의해 전달될 데이터 블록의 수를 지정하는 또 다른 필드를 포함할 수도 있다.
레지스터는 데이터 전달이 완료될 경우, 인터럽트 펄스가 발생되어야 하는지를 지정하는 또 다른 필드를 포함할 수도 있다.
레지스터는 암호 헤더에 내장되어 암호화 엔진에 의해 처리되는 값을 지정하는 또 다른 필드를 포함할 수도 있다.
레지스터는 암호 길이를 지정하는 또 다른 필드를 포함할 수도 있다.
레지스터는 암호화된 헤더에 내장되어 암호화 엔진에 의해 처리되는 값을 지정하는 또 다른 필드를 포함할 수도 있다.
레지스터는 데이터가 이동될 때, 그 데이터를 암호화하기 위한 암호화 엔진에 의해 사용되는 키(key)를 지정하는 또 다른 필드를 포함할 수도 있다. 키는 128-비트 키일 수도 있다.
하나의 메모리로부터 다른 메모리로 데이터가 이동되는 한편, 암호화 연산이 효율적으로 수행된다.
도면을 참조하여 바람직한 실시예에 대해 설명하며, 도면 전반에 걸쳐 동일한 번호는 동일한 구성요소를 나타낸다.
바람직하게는, 명세서에 개시한 본 발명은 무선 송신/수신 유닛(WTRU : Wireless Transmit/Receive Unit) 및/또는 노드 B에 포함된다. 그러나, 어떠한 임의의 무선 통신 방식이라도 본 발명으로부터 이익을 얻을 것으로 기대된다.
이하, WTRU는 다음의 것으로 한정되지는 않지만, 사용자 장비, 이동국, 고정 또는 이동식 가입자 유닛, 페이저(pager), 또는 무선 환경에서 동작할 수 있는 임의의 다른 종류의 장치를 포함한다. 또한, 노드 B는 다음의 것으로 한정되지는 않지만, 기지국, 사이트 제어기, 액세스 포인트 또는 무선 환경에서의 다른 인터페이스 장치를 포함한다.
본 발명의 특징은 집적 회로(IC)에 포함되거나, 다수의 상호접속된 구성요소를 회로로 구성될 수도 있다.
본 발명은 시분할 듀플렉스(TDD : Time Division Duplex), 주파수 분할 듀플렉스(FDD : Frequency Division Duplex), 코드 분할 다중 접속(CDMA : Code Division Multiple Access), CDMA 2000, 시분할 동기식 CDMA(TDSCDMA), 직교 주파수 분할 멀티플렉싱(OFDM : Orthogonal Frequency Division Multiplexing) 등을 이용하는 통신 시스템에 적용 가능하다.
다수의 다른 모뎀 구현예와 같이, 본 발명은 데이터 처리 기능을 구현하는 하드웨어 모듈(가속기)을 가진다. 본 발명은 기존의 메모리 인스턴스(instance)의 수를 감소하기 위한 공유된 메모리를 사용한다. 하드웨어 모듈 및 처리기가 이 메모리에 액세스한다.
많은 소형의 전용 메모리에 대신하여 단일 메모리를 사용함으로써, 모뎀 등을 위한 회로의 주문형 반도체 회로(ASIC : Application-Specific Integrated Circuit) 버전의 다이(die) 크기가 감소된다. 이 메모리는 일반적으로 매우 고속일 필요가 있다. 고속 메모리(SRAM)는 일반적으로 값이 비싸며, 면적의 관점에서는, 다른 형태의 메모리 즉, DRAM만큼 밀집되어 있지 않다. 예를 들어, 본 명세서에 그 전체가 참조 문헌으로 포함되는, 발명의 명칭이 "물리 계층 처리에 사용하기 위한 소프트웨어 파라미터화가 가능한 제어 블록(Software Parameterizable Control Blocks For Use In Physical Layer Processing)"인, 2003년 4월15일자로 출원된 미국 특허 출원 번호 제10/414,125호를 참조하기로 한다.
본 발명은 다량의 데이터를 기억하기 위하여 처리기에 의해 이용 가능한 다른 메모리도 포함한다. 이 메모리는 외부의, 상업적으로 입수 가능한 DRAM 또는 SDRAM 칩에 의해 구현된다. 재정렬용 큐(reordering queue)와, 애플리케이션을 위해 처리되는 데이터를 기억하기 위한 다른 버퍼는 이러한 대형의 저속 메모리에 대한 사용의 예이다.
본 발명에 따르면, 데이터-이동 제어기는 고속의 하드웨어 액세스가능 메모리(SRAM)와, 저속의 고밀집 메모리(DRAM) 사이의 데이터 이동시의 하드웨어 가속기로서 구성되었다. 처리기가 하드웨어 가속기를 가지지 않는다는 것은, 처리기가 데이터를 가공하기 위해(shuffle around) 소프트웨어 루프를 사용해야 하므로, 초당 수백만개의 명령어(MIPS : Millions of Instructions Per Second)씩 측정되는 처리기의 연산 자원의 대부분을 소비하게 된다는 것을 의미한다.
데이터는 프로토콜 데이터 유닛(PDU : Protocol Data Unit) 및 서비스 데이터 유닛(SDU : Service Data Unit)으로 불리는 블록 단위로 종종 이동된다. 이들 블록은 3GPP 표준에 따라 암호화될 수 있다. 암호화 및 복호화의 처리에는 처리기가 매우 필요하다. 또한, 데이터를 액세스하고, 처리한 다음, 메모리에 다시 기록하는 것이 필요하다.
본 발명은 직접 메모리 액세스(DMA : Direct Memory Access) 기능을 단일 하드웨어 가속기에서 암호화 및 복호화와 결합함으로써, 데이터-이동 제어기는 데이터를 이동할 뿐만 아니라, 데이터 이동 처리의 도중에 데이터 블록을 암호화하거나 복호화한다. 하드웨어 지원이 있고 데이터가 이미 이동 처리중에 있기 때문에, 시간을 단축할 수 있다. 따라서, 별도의 하드웨어 가속기를 구현하는 경우에 비해, 더 적은 액세스가 요구된다.
일부 구현예에서는, 각 하드웨어 가속기에는 그 자신의 내부 인터페이스(버퍼) 메모리가 구비되어 있다. 많은 인스턴스의 메모리들의 급증으로 인해 이들 설계의 ASIC 구현시에 그 크기가 증가한다.
메모리 인스턴스의 수는 다수의 인터페이스(버퍼) 메모리를 단일의 공유 메모리로 결합함으로써 감소될 수도 있다. 이 메모리는 모든 하드웨어 가속기에 의해 공통의 메모리 제어기를 통해 액세스된다. 이 메모리는 일반적으로 고속 SRAM을 이용하여 구현된다. 제어 소프트웨어는, 입력되는 데이터를 공유 메모리의 어디에서 불러올 것인지, 그리고 처리된 결과를 공유 메모리의 어디에 둘 것인지를 포함하여 하드웨어 가속기의 각각의 동작을 수행하도록 하드웨어 가속기에 지시한다. 본 발명은 모든 계층 1 동작을 위해 가속기를 제공한다.
또한, 더 상위 계층 제어(계층 2 및 3)도 이 공유 메모리를 액세스하여, 계층 1과 통신하고, 송신될 데이터를 제공하며, 수신된 데이터를 받아들인다. 송신될 것으로 예정된 애플리케이션으로부터의 데이터를 유지하거나, 애플리케이션에 전달하기 위한 데이터의 패킷을 수집하고 조합하기 위하여, 종종, 더 크고, 더 느리며, 덜 밀집된 메모리가 계층 2/3 처리에 의해 사용된다.
정보의 패킷이 수신되거나, 송신될 것으로 예정되어 있을 때, 이러한 더 느리고 덜 밀집된 메모리와, 더 빠른 (더욱 값이 비싼) 메모리 사이에서 데이터가 이동해야 한다. 일부의 경우, 이들 패킷은 암호화 및/또는 복호화되어야 한다.
데이터를 이동시키고 암호화를 보조하는 가속기가 데이터-이동 제어기를 구성하도록 결합되었다. 이 결합은 수행되어야 할 액세스의 수를 감소시키며, 처리기가 데이터를 이동하고 암호화하는 고가의 처리를 경감시킨다.
데이터가 계층 1과 2 또는 3의 사이에서 이동될 때, 종종, 추가의 제어 계층이 데이터 패킷을 감싸야 한다(wrap around). 이것은 종종 데이터 패킷에 부가되어 있는 "헤더(header)"의 형태로 표현된다. 데이터-이동 제어기의 어드레싱 방식은 소스 및/또는 목적지 어드레스가 오프셋(offset)을 포함하는 것을 허용함으로써 이것을 고려한다. 이것은 처리기가 데이터를 하나의 메모리 공간에서 다른 메모리 공간으로 이동하는 것을 허용하지만, 예를 들어, 3 바이트씩 목적지 데이터를 오프셋 한다. 이동이 일단 완료되면, 처리기는 적절한 헤더 정보를, 오프셋을 통해 이 목적을 위해 예비로 남겨둔 영역에 기록할 수 있다. 이것은 계층 2 또는 3 프로토콜에 대해 데이터를 포맷할 경우에 때때로 발생하는 데이터 섞기(shuffling)를 감소시킨다.
본 발명은 SMA SRAM과 DDR SDRAM 사이에서 데이터를 전달할 수 있는 데이터 처리 시스템이다. 또한, SDRAM 내의 하나의 위치로부터 동일한 SDRAM 내의 다른 위치에 데이터를 이동할 수도 있다. 데이터가 이동되는 동안, 다음과 같이 프로그램되어 있다면, 암호화 연산을 수행하는 로직을 통과할 수도 있다.
도 1은 SMA SRAM 메모리(105)와 SDRAM(110) 사이에서 데이터를 전달하는 한편, 이와 동시에, 본 발명의 바람직한 실시예에 따라 데이터를 암호화 또는 복호화하는데 사용되는 예시적인 데이터 처리 시스템(100)의 블록도를 도시한 것이다. SMA 메모리 제어기(115)는 SMA SRAM(105)과 데이터 처리 시스템(100) 사이의 인터페이스로서 작용한다. SDRAM 메모리 제어기(120)는 SDRAM(110)과 데이터 처리 시스템(100) 사이의 인터페이스로서 작용한다. 처리기(125)(즉, 제어 CPU)는 데이터 처리 시스템(100), SMA SRAM(105), SMA 메모리 제어기(115), SDRAM(110) 및 SDRAM 메모리 제어기(120)에 대해 제어를 유지한다.
데이터 처리 시스템(100)은 데이터-이동 제어기(128), 암호화 엔진(130), 입력 데이터 레지스터(135, 140), 출력 데이터 레지스터(145, 150), 입력 멀티플렉서(MUX)(155), 출력 MUX(160) 및 선입선출(FIFO : First-In First-Out) 레지스터(165)를 포함한다.
SDRAM(110) 메모리 공간에서 액세스될 데이터의 최초 워드의 어드레스를 SDRAM(110) 어드레스 레지스터에 기록함으로써, 데이터-이동 제어기(128)가 프로그램된다. SMA SRAM(105) 어드레스 레지스터에는 SMA SRAM(105) 내의 메모리 공간에서 액세스될 데이터의 최초 워드의 어드레스가 기록된다. "Num_blocks_to_move" 레지스터에는 이동할 데이터 블록의 수가 기록된다. 모드 레지스터는 데이터 이동 방향[즉, "0"=SMA SRAM(105)에서 SDRAM(110), "1"=SDRAM(110)에서 SMA SRAM(105)]을 결정한다. 각 블록의 크기는 예를 들어, 블록당 32-비트 워드의 수로서 정의된다. 전달되는 32-비트 워드의 전체 수는 "num_blocks_to_move*block_size"로 지정된다. 데이터 처리 시스템(100)의 데이터-이동 제어기(128) 내의 모드 레지스터는 데이터가 직접 전달되어야 하는지, 또는 데이터 전달이 발생할 경우에 데이터가 암호화 엔진(130)을 통과해야 하는지를 나타낸다. 모드 레지스터에 기록함으로써 데이터-이동 제어기(128)가 데이터 이동 절차를 개시하게 된다. 데이터 전달이 완료되면, 선택에 따라 데이터-이동 제어기(128)에 의해 인터럽트가 설정된다.
이하, 하나의 메모리[예를 들어, SMA SRAM(105)]로부터 또 다른 메모리[예를 들어, SDRAM(110)]로 데이터를 이동하는 한편, 데이터를 암호화 엔진(130)에 통과시키는 데이터 처리 시스템(100)에 의해 사용되는 절차를 도시한 단계적인 예에 대해 설명할 것이다. SMA SRAM(105)에 기억된 데이터의 블록을 SDRAM(110)에 이동하는 것에 대한 결정이 행해진다. 다음으로, 처리기(125)는 제어 블록을 SMA SRAM(105)에 기록한다. 제어 블록은 의도한 동작을 위해 데이터-이동 제어기(128)를 구성하는데 필요한 모든 파라미터를 포함한다. 프로그램되어 있는 I/O 동작을 통해, 처리기(125)는 제어 신호(즉, 시작 펄스)를 데이터-이동 제어기(128)에 출력하여 데이터 이동 동작을 개시한다. 데이터-이동 제어기(128)[효과적으로는, 상태 머신(state machine)]는 제어 신호를 수신하고 일련의 상태를 순서대로 통과하여, SMA SRAM(105)으로부터 제어 블록을 검색한다. 이것은, SMA 메모리 제어기(115)를 통해 SMA 메모리(105)로부터의 요구(request)를 적절하게 어서트(assert)함으로써 달성된다. SMA 메모리(105)로부터의 데이터는 레지스터(115)에 입력되고, 데이터-이동 제어기(128) 내의 적절한 구성 레지스터에 전달된다.
일단, 연관된 제어 파라미터가 수신되면, 그 안에 포함된 정보가 해독되어, 어떤 종류의 기능이 수행되어야 하는지에 대해 데이터-이동 제어기(128)를 다시 지시한다. 이 예에서는, SMA SRAM(105)에서 SDRAM(110)으로 데이터가 이동된다. 적절하다면, 데이터-이동 제어기(128)는 연관된 레지스터에 포함된 암호 헤더 정보가 출력 레지스터(150) 및 SDRAM 메모리 제어기(120)를 통해, 입력 레지스터(135), 입력 MUX(155), FIFO(165), 암호화 엔진(130), MUX(160) 및 SDRAM(110)의 출력을 통과하도록 한다. 데이터-이동 제어기(128)는 적절한 상태를 순서대로 통과하는 것을 계속하여, 적절한 항목의 수가 전달될 때까지, SMA SRAM(105)으로부터 데이터를 전달한다.
요구가 있다면, 데이터 이동이 완료되었음을 나타내는 인터럽트가 데이터-이동 제어기(128) 내의 레지스터에 의해 발생된다. 다음으로, 데이터-이동 제어기(128)는 또 다른 제어 블록이 이동을 위해 준비되어 있는지를 알아보기 위해 검사한다. 만약 준비되어 있다면, 또 다른 데이터-이동 제어기 절차가 개시된다.
데이터-이동 제어기(128)는 버스트 액세스(burst access)를 사용하여 DDR-SDRAM(110)에 대하여 데이터를 전달하며, SMA SRAM(105)에 대하여 단일 워드 액세스를 전달한다. 단일 SDRAM 버스트 액세스가 SDRAM 페이지 경계를 교차하지 않도록, 블록 크기 및 DDR SDRAM(110) 어드레스가 설정되도록 보장하는 것은 프로그래머에게 달려 있다.
도 2는 도 1의 데이터-이동 제어기(128)의 레지스터(205-255)의 예시적인 구성을 도시한 것이다.
도 3은 SMA SRAM(105) 또는 SDRAM(110)으로의 데이터 전달을 개시하기 위하여, SDRAM(110)에 대한 소스 액세스(즉, 판독)를 위한 데이터-이동 제어기(128) 시작 어드레스를 정의하는 레지스터(205)를 도시한 것이다. 어드레스는 바이트 어드레스이며, "모드" 레지스터에서 지정된 블록 크기에 적합한 어드레스로 정렬되어야 한다. 레지스터에 기록된 값은 SDRAM 어드레스 공간의 시작 부분에 관한 것이다. 어드레스 레지스터는 데이터-이동 제어기(128)가 아이들(idle) 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트(LSB : Least Significant Bit)가 무시되지만, 워드 내의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.
도 4는 SMA SRAM(105)에 대하여 데이터 전달을 개시하기 위하여, SDRAM(110)에 대한 목적지 액세스(즉, 기록)를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터(215)를 도시한 것이다. 어드레스는 바이트 어드레스이며, "모드" 레지스터에서 지정된 블록 크기에 적합한 어드레스로 정렬되어야 한다. 레지스터에 기록된 값은 SDRAM 어드레스 공간의 시작 부분에 관한 것이다. 어드레스는 레지스 터는 데이터-이동 제어기(128)가 아이들 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트가 무시되지만, 워드 내의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.
도 5는 SMA SRAM(105)에 대한 소스 액세스(즉, 판독)를 위한 데이터-이동 제어기(128) 시작 어드레스를 정의하는 레지스터(210)를 도시한 것이다. 레지스터에 기록된 값은 SMA 어드레스 공간의 시작 부분에 관한 것이다. 어드레스 레지스터는 데이터-이동 제어기(128)가 아이들 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트가 무시되지만, 워드 내의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.
도 6은 SMA SRAM(105)에 대한 목적지 액세스(즉, 기록)를 위한 데이터-이동 제어기(128) 시작 어드레스를 정의하는 레지스터(220)를 도시한 것이다. 데이터-이동 제어기(128)에 대한 시작 어드레스는 데이터-이동 제어기(128)가 SMA SRAM(105)을 액세스하기 위해 지정된다. 레지스터에 기록된 값은 SMA 어드레스 공간의 시작 부분에 관한 것이다. 어드레스 레지스터는 데이터-이동 제어기(128)가 아이들 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트가 무시되지만, 워드 내의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.
도 7은 SDRAM(110)과 SMA SRAM(105) 사이에서 이동해야 할 블록의 수를 정의하는 레지스터(225)를 도시한 것이다. 동작이 개시되면, 데이터-이동 제어기는 이 레지스터의 값에 의해 표현된 블록의 수를 전달할 것이다. 각 블록은 모드 레지스터의 "bs" 필드에서 지정된 32-비트 워드의 수로 구성될 것이다.
도 8은 데이터-이동 제어기(128)의 모드를 지정하는 모드 레지스터(230)를 도시한 것이다. 모드 레지스터(230) 내의 각종 필드(805, 810, 815, 820, 825)는 데이터-이동 제어기의 동작시에 데이터-이동 제어기의 활동을 제어하기 위해 기록될 수도 있다.
"f" 필드(805)는 판독 전용이며, 데이터 이동 동작이 완료되었는지 아닌지(즉, 완료되지 않음에 대해 로직 0, 또는 완료됨에 대해 로직 1)를 처리기(195)에 표시한다.
"c" 필드(810)는 데이터가 암호 엔진을 통과해야 하는지 아닌지, 그리고, 통과해야 한다면, 어떤 타입의 암호화를 수행해야 하는지를 표시하기 위해 기록될 수도 있다. "c" 필드(810)가 "00"이면, 암호화가 수행되지 않으며, 데이터는 단순히 소스 어드레스 공간에서 목적지 어드레스 공간으로 통과한다. "c" 필드(810)가 "01"이면, 데이터는 소스 어드레스 공간에서 목적지 어드레스 공간으로 이동되지만, 암호화 엔진(145)을 통과하게 되고, 데이터 이동이 이루어질 때, 3GPP "f8" 암호 알고리즘을 사용하여 암호화 및/또는 복호화된다. "c" 필드(810)가 "10"이면, 데이터는 소스 어드레스 공간으로부터 액세스되며, 3GPP "f9" 암호 알고리즘을 사용하여 암호화 엔진(145)을 통과하지만, 데이터는 기억되지 않는다. 암호화 엔진(145)은 키 및 연관된 제어 레지스터 값을 사용하여, 레지스터(255)를 통해 처리기(195)에 의해 사용 가능하게 되는 메시지 인증 코드 값을 연산한다.
"i" 필드(815)는 데이터의 이동이 완료되었을 때 인터럽트를 발생하도록 프로그램될 수도 있다. "i" 필드(815)가 "0"이면, 인터럽트가 발생되지 않는다. "i" 필드(815)가 "1"이면, 데이터 이동 동작이 완료되었을 때, 인터럽트가 발생된다.
"d" 필드(820)는 소스 및 목적지 어드레스 공간으로서 사용될 하나 이상의 메모리를 식별하며, 데이터 이동 방향을 지정한다. 예를 들어, "d" 필드(820)가 "00"이면, 데이터는 SMA SRAM(105)에서 SDRAM(110)으로 이동된다. "d" 필드(820)가 "10"이면, 데이터는 SDRAM(110)에서 SMA SRAM(105)으로 이동된다. "d" 필드(820)가 "01"이면, 데이터는 SDRAM(110) 내의 하나의 위치로부터 또 다른 위치로 이동된다. "d" 필드(820)는 액세스 요구를 통해 어떤 메모리 어드레스 포인터를 호출할지를 결정하는데 사용된다.
"bs" 필드(825)는 이동해야 할 각각의 액세스 블록의 크기를 결정한다. "bs" 필드(825)는 1 워드("00" = 4 바이트), 2 워드("01" = 8 바이트), 4 워드("10" = 16 바이트) 또는 8 워드("11" = 32 바이트)를 표시하는 블록 액세스 당 값으로 설정될 수도 있다. 이동 및/또는 암호화해야 할 워드의 수는 "bs" 필드(825)와, 이동할 블록의 수를 프로그래밍함으로써 미리 결정된다. 전체 데이터 이동은 "bs" 필드(825)에 의해 표현된 값과, 레지스터(225)에서 지정된 블록의 수의 곱에 기초하여 연산된다.
도 9는 암호 헤드에 내장된 카운트 값을 정의하는 레지스터(235)를 도시한 것이다.
도 10은 암호 헤드에 내장된 "프레쉬(fresh)" 값을 정의하는 레지스터(240)를 도시한 것이다.
도 11은 암호화된 헤더에 위치되어야 할 베어러(bearer) 및 방향 값과, 암호 화되어야 할 전체 비트 수를 정의하는 레지스터(245)를 도시한 것이다. 레지스터(235, 240 및 245)는 암호 헤더에 포함될 3GPP 표준에 의해 정의되며 처리기(195)에 의해 기록되는 값을 포함한다. 암호화가 데이터 이동에 포함되면, 이들 값은 데이터-이동 제어기에 의해 적절한 위치에 삽입된다. 암호 길이 필드는 암호 엔진을 통과할 비트수를 지정한다. 블록의 수와 블록당 워드의 수는 프로그래머에 의해 미리 결정되며, 이 길이를 고려해야 한다.
도 12는 데이터 이동 도중의 암호화를 위해 사용되는 128-비트 키를 정의하는 레지스터(250)를 도시한 것이다. 키 값은 3GPP 표준에 기술된 것으로서 사용되어, f8 및 f9 암호 알고리즘을 수행할 경우에 데이터를 암호화/복호화한다.
도 13은 연산된 MAC 값을 제공하는 레지스터(255)를 도시한 것이다. f9 암호 알고리즘은 키 값과, 그것에 제공된 데이터 스트림의 값을 사용하여 서명을 작성한다. 이 서명은 시스템에 의해 사용되도록 MAC로서 보고된다.
여기에 개시된 레지스터의 설명은 본질적으로 예시를 위한 것이며, 이것에 의하여, 동일한 기능을 수행하는 제어 필드의 결합에 기초하여 다른 임의의 정의가 유도될 수 있다.
본 발명은 바람직한 실시예의 측면에서 설명되었지만, 청구범위에서 정해지는 발명의 범위 내에 있는 다른 변형도 당업자에게 명백할 것이다.
예시로서 주어지며 첨부 도면을 참조하여 이해될 수 있는 다음의 설명으로부터, 본 발명을 더욱 구체적으로 이해할 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 하나의 메모리로부터 다른 메모리로 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템의 도면이고,
도 2는 데이터-이동 제어기에 포함된 레지스터의 예시적 구성을 도시한 것이고,
도 3은 SDRAM으로부터의 소스 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,
도 4는 SDRAM에 대한 목적지 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,
도 5는 SMA 메모리에 대한 소스 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,
도 6은 SMA 메모리에 대한 목적지 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,
도 7은 SDRAM과 SMA 메모리 사이에서 이동해야 할 블록의 수를 정의하는 레지스터를 도시한 것이고,
도 8은 데이터-이동 제어기의 모드를 지정하는 레지스터를 도시한 것이고,
도 9는 암호 헤드에 내장된 카운트 값을 정의하는 레지스터를 도시한 것이고,
도 10은 암호 헤드에 내장된 프레쉬 값("fresh" value)을 정의하는 레지스터를 도시한 것이고,
도 11은 암호화된 헤더에 위치되어야 할 베어러(bearer) 및 방향 값과, 암호화되어야 할 전체 비트 수를 정의하는 레지스터를 도시한 것이고,
도 12는 데이터 이동 도중에 암호화를 위해 사용되는 128-비트 키를 정의하는 레지스터를 도시한 것이고,
도 13은 연산된 메시지 인증 코드(MAC) 값을 제공하는 레지스터를 도시한 것이다.

Claims (62)

  1. 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달하기 위한 데이터 프로세서에 있어서,
    상기 메모리 유닛들 사이에서 데이터가 전달되는 동안, 데이터를 암호화하기 위한 암호화 엔진;
    상기 데이터가 상기 암호화 엔진을 통과하도록 허용되어야 하는지 또는 상기 데이터가 상기 암호화 엔진을 통과하는 것 없이 곧바로 전달되어야 하는지를 지정하는 제1 필드를 갖는 적어도 하나의 레지스터를 포함하며, 상기 암호화 엔진 이외의 다른 경로를 통해 데이터를 수신 및 송신하는 데이터-이동 제어기(data-mover controller);
    상기 제1 메모리 유닛과 상기 제2 메모리 유닛에 전기적으로 연결되며, 상기 데이터-이동 제어기를 구성하는데 필요한 제어 파라미터를 포함하는 제어 블록을 상기 제1 메모리 유닛에 기록하고, 제어 신호를 상기 데이터-이동 제어기에 출력하여 데이터 이동 동작을 개시하게 하는 프로세서;
    상기 제1 메모리 유닛, 상기 데이터-이동 제어기, 및 상기 프로세서에 전기적으로 연결되며 상기 제1 메모리 유닛을 제어하기 위한 제1 제어기; 및
    상기 제2 메모리 유닛, 상기 데이터-이동 제어기, 및 상기 프로세서에 전기적으로 연결되며 상기 제2 메모리 유닛을 제어하기 위한 제2 제어기
    를 포함하고,
    상기 데이터-이동 제어기는, 상기 프로세서로부터의 상기 제어 신호를 수신하는 것에 응답하여 상기 제1 메모리 유닛으로부터 상기 제어 블록을 검색하고, 상기 검색된 제어 블록내의 제어 파라미터에 기초하여 어떤 유형의 기능을 수행해야 할지를 결정하는 것인, 데이터 프로세서.
  2. 제1항에 있어서, 상기 전달되는 데이터가 암호화되어야 한다고 상기 제1 필드가 지정하면, 상기 제1 필드는 또한 상기 암호화 엔진에 의해 수행되는 암호화의 유형을 지정하는 것인, 데이터 프로세서.
  3. 제2항에 있어서, 상기 암호화 엔진에 의해 수행되는 암호화의 유형은 표준화된 비밀 암호 알고리즘(standardized confidentially cipher algorithm) f8인 것인, 데이터 프로세서.
  4. 제2항에 있어서, 상기 암호화 엔진에 의해 수행되는 암호화의 유형은 표준화된 무결성 암호 알고리즘(standardized integrity cipher algorithm) f9인 것인, 데이터 프로세서.
  5. 제4항에 있어서, 상기 레지스터는 상기 표준화된 무결성 암호 알고리즘 f9에 의해 연산되는 메시지 인증 코드(MAC) 값을 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  6. 제1항에 있어서, 상기 레지스터는 데이터가 상기 제1 메모리 유닛에서 상기 제2 메모리 유닛으로 이동되는지, 또는 데이터가 상기 제2 메모리 유닛에서 상기 제1 메모리 유닛으로 이동되는지를 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  7. 제1항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달되는 데이터의 블록 크기를 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  8. 제7항에 있어서, 상기 데이터 블록 크기는 4 바이트인 것인, 데이터 프로세서.
  9. 제7항에 있어서, 상기 데이터 블록 크기는 8 바이트인 것인, 데이터 프로세서.
  10. 제7항에 있어서, 상기 데이터 블록 크기는 16 바이트인 것인, 데이터 프로세서.
  11. 제7항에 있어서, 상기 데이터 블록 크기는 32 바이트인 것인, 데이터 프로세서.
  12. 제1항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달되는 데이터 블록의 수를 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  13. 제1항에 있어서, 상기 제1 메모리는 공유 메모리 아키텍처(SMA) 정적 랜덤 액세스 메모리(SRAM)인 것인, 데이터 프로세서.
  14. 제1항에 있어서, 상기 제2 메모리는 동기식 동적 랜덤 액세스 메모리(SDRAM)인 것인, 데이터 프로세서.
  15. 제1항에 있어서, 상기 제1 메모리 유닛과 상기 제2 메모리 유닛은 처리 속도가 서로 다른 것인, 데이터 프로세서.
  16. 제1항에 있어서, 상기 레지스터는 상기 데이터의 전달이 완료될 경우에 인터럽트 펄스가 발생되어야 하는지 여부를 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  17. 제1항에 있어서, 상기 레지스터는 암호 헤더(cipher header)내에 삽입되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  18. 제1항에 있어서, 상기 레지스터는 암호 길이(encryption length)를 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  19. 제1항에 있어서, 상기 레지스터는 암호화된 헤더(encrypted header)내에 삽입되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  20. 제1항에 있어서, 상기 레지스터는, 데이터가 이동될 때, 그 데이터를 암호화하기 위해 상기 암호화 엔진에 의해 사용되는 키를 지정하는 제2 필드를 포함하는 것인, 데이터 프로세서.
  21. 제20항에 있어서, 상기 키는 128-비트 키인 것인, 데이터 프로세서.
  22. 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달하기 위한 집적 회로(IC)에 있어서,
    상기 메모리 유닛들 사이에서 데이터가 전달되는 동안, 데이터를 암호화하기 위한 암호화 엔진;
    상기 데이터가 상기 암호화 엔진을 통과하도록 허용되어야 하는지 또는 상기 데이터가 상기 암호화 엔진을 통과하는 것 없이 곧바로 전달되어야 하는지를 지정 하는 제1 필드를 갖는 적어도 하나의 레지스터를 포함하며, 상기 암호화 엔진 이외의 다른 경로를 통해 데이터를 수신 및 송신하는 데이터-이동 제어기(data-mover controller);
    상기 제1 메모리 유닛과 상기 제2 메모리 유닛에 전기적으로 연결되며, 상기 데이터-이동 제어기를 구성하는데 필요한 제어 파라미터를 포함하는 제어 블록을 상기 제1 메모리 유닛에 기록하고, 제어 신호를 상기 데이터-이동 제어기에 출력하여 데이터 이동 동작을 개시하게 하는 프로세서;
    상기 제1 메모리 유닛, 상기 데이터-이동 제어기, 및 상기 프로세서에 전기적으로 연결되며 상기 제1 메모리 유닛을 제어하기 위한 제1 제어기; 및
    상기 제2 메모리 유닛, 상기 데이터-이동 제어기, 및 상기 프로세서에 전기적으로 연결되며 상기 제2 메모리 유닛을 제어하기 위한 제2 제어기
    를 포함하고,
    상기 데이터-이동 제어기는, 상기 프로세서로부터의 상기 제어 신호를 수신하는 것에 응답하여 상기 제1 메모리 유닛으로부터 상기 제어 블록을 검색하고, 상기 검색된 제어 블록내의 제어 파라미터에 기초하여 어떤 유형의 기능을 수행해야 할지를 결정하는 것인, 집적 회로(IC).
  23. 제22항에 있어서, 상기 전달되는 데이터가 암호화되어야 한다고 상기 제1 필드가 지정하면, 상기 제1 필드는 또한 상기 암호화 엔진에 의해 수행되는 암호화의 유형을 지정하는 것인, 집적 회로(IC).
  24. 제23항에 있어서, 상기 암호화 엔진에 의해 수행되는 암호화의 유형은 표준화된 비밀 암호 알고리즘 f8인 것인, 집적 회로(IC).
  25. 제23항에 있어서, 상기 암호화 엔진에 의해 수행되는 암호화의 유형은 표준화된 무결성 암호 알고리즘 f9인 것인, 집적 회로(IC).
  26. 제25항에 있어서, 상기 레지스터는 상기 표준화된 무결성 암호 알고리즘 f9에 의해 연산되는 메시지 인증 코드(MAC) 값을 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  27. 제22항에 있어서, 상기 레지스터는 데이터가 상기 제1 메모리 유닛에서 상기 제2 메모리 유닛으로 이동되는지, 또는 데이터가 상기 제2 메모리 유닛에서 상기 제1 메모리 유닛으로 이동되는지를 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  28. 제22항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달되는 데이터의 블록 크기를 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  29. 제28항에 있어서, 상기 데이터 블록 크기는 4 바이트인 것인, 집적 회 로(IC).
  30. 제28항에 있어서, 상기 데이터 블록 크기는 8 바이트인 것인, 집적 회로(IC).
  31. 제28항에 있어서, 상기 데이터 블록 크기는 16 바이트인 것인, 집적 회로(IC).
  32. 제28항에 있어서, 상기 데이터 블록 크기는 32 바이트인 것인, 집적 회로(IC).
  33. 제22항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달되는 데이터 블록의 수를 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  34. 제22항에 있어서, 상기 제1 메모리는 공유 메모리 아키텍처(SMA) 정적 랜덤 액세스 메모리(SRAM)인 것인, 집적 회로(IC).
  35. 제22항에 있어서, 상기 제2 메모리는 동기식 동적 랜덤 액세스 메모리(SDRAM)인 것인, 집적 회로(IC).
  36. 제22항에 있어서, 상기 제1 메모리 유닛과 상기 제2 메모리 유닛은 처리 속도가 서로 다른 것인, 집적 회로(IC).
  37. 제22항에 있어서, 상기 레지스터는 상기 데이터의 전달이 완료될 경우에 인터럽트 펄스가 발생되어야 하는지 여부를 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  38. 제22항에 있어서, 상기 레지스터는 암호 헤더내에 삽입되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  39. 제22항에 있어서, 상기 레지스터는 암호화 길이를 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  40. 제22항에 있어서, 상기 레지스터는 암호화된 헤더내에 삽입되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  41. 제22항에 있어서, 상기 레지스터는, 데이터가 이동될 때, 그 데이터를 암호화하기 위해 상기 암호화 엔진에 의해 사용되는 키를 지정하는 제2 필드를 포함하는 것인, 집적 회로(IC).
  42. 제41항에 있어서, 상기 키는 128-비트 키인 것인, 집적 회로(IC).
  43. 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛(WTRU)에 있어서,
    상기 메모리 유닛들 사이에서 데이터가 전달되는 동안, 데이터를 암호화하기 위한 암호화 엔진;
    상기 데이터가 상기 암호화 엔진을 통과하도록 허용되어야 하는지 또는 상기 데이터가 상기 암호화 엔진을 통과하는 것 없이 곧바로 전달되어야 하는지를 지정하는 제1 필드를 갖는 적어도 하나의 레지스터를 포함하며, 상기 암호화 엔진 이외의 다른 경로를 통해 데이터를 수신 및 송신하는 데이터-이동 제어기(data-mover controller);
    상기 제1 메모리 유닛과 상기 제2 메모리 유닛에 전기적으로 연결되며, 상기 데이터-이동 제어기를 구성하는데 필요한 제어 파라미터를 포함하는 제어 블록을 상기 제1 메모리 유닛에 기록하고, 제어 신호를 상기 데이터-이동 제어기에 출력하여 데이터 이동 동작을 개시하게 하는 프로세서;
    상기 제1 메모리 유닛, 상기 데이터-이동 제어기, 및 상기 프로세서에 전기적으로 연결되며 상기 제1 메모리 유닛을 제어하기 위한 제1 제어기; 및
    상기 제2 메모리 유닛, 상기 데이터-이동 제어기, 및 상기 프로세서에 전기적으로 연결되며 상기 제2 메모리 유닛을 제어하기 위한 제2 제어기
    를 포함하고,
    상기 데이터-이동 제어기는, 상기 프로세서로부터의 상기 제어 신호를 수신하는 것에 응답하여 상기 제1 메모리 유닛으로부터 상기 제어 블록을 검색하고, 상기 검색된 제어 블록내의 제어 파라미터에 기초하여 어떤 유형의 기능을 수행해야 할지를 결정하는 것인, 무선 송수신 유닛(WTRU).
  44. 제43항에 있어서, 상기 전달되는 데이터가 암호화되어야 한다고 상기 제1 필드가 지정하면, 상기 제1 필드는 또한 상기 암호화 엔진에 의해 수행되는 암호화의 유형을 지정하는 것인, 무선 송수신 유닛(WTRU).
  45. 제44항에 있어서, 수행되는 암호화의 유형은 표준화된 비밀 암호 알고리즘 f8인 것인, 무선 송수신 유닛(WTRU).
  46. 제44항에 있어서, 수행되는 암호화의 유형은 표준화된 무결성 암호 알고리즘 f9인 것인, 무선 송수신 유닛(WTRU).
  47. 제46항에 있어서, 상기 레지스터는 상기 표준화된 무결성 암호 알고리즘 f9에 의해 연산되는 메시지 인증 코드(MAC) 값을 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  48. 제43항에 있어서, 상기 레지스터는 데이터가 상기 제1 메모리 유닛에서 상기 제2 메모리 유닛으로 이동되는지, 또는 데이터가 상기 제2 메모리 유닛에서 상기 제1 메모리 유닛으로 이동되는지를 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  49. 제43항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달되는 데이터의 블록 크기를 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  50. 제49항에 있어서, 상기 데이터 블록 크기는 4 바이트인 것인, 무선 송수신 유닛(WTRU).
  51. 제49항에 있어서, 상기 데이터 블록 크기는 8 바이트인 것인, 무선 송수신 유닛(WTRU).
  52. 제49항에 있어서, 상기 데이터 블록 크기는 16 바이트인 것인, 무선 송수신 유닛(WTRU).
  53. 제49항에 있어서, 상기 데이터 블록 크기는 32 바이트인 것인, 무선 송수신 유닛(WTRU).
  54. 제43항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달되는 데이터 블록의 수를 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  55. 제43항에 있어서, 상기 제1 메모리는 공유 메모리 아키텍처(SMA) 정적 랜덤 액세스 메모리(SRAM)인 것인, 무선 송수신 유닛(WTRU).
  56. 제43항에 있어서, 상기 제2 메모리는 동기식 동적 램덤 액세스 메모리(SDRAM)인 것인, 무선 송수신 유닛(WTRU).
  57. 제43항에 있어서, 상기 제1 메모리 유닛과 상기 제2 메모리 유닛은 처리 속도가 서로 다른 것인, 무선 송수신 유닛(WTRU).
  58. 제43항에 있어서, 상기 레지스터는 상기 데이터의 전달이 완료될 경우에 인터럽트 펄스가 발생되어야 하는지 여부를 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  59. 제43항에 있어서, 상기 레지스터는 암호 헤더내에 삽입되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  60. 제43항에 있어서, 상기 레지스터는 암호화 길이를 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  61. 제43항에 있어서, 상기 레지스터는 암호화된 헤더내에 삽입되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
  62. 제43항에 있어서, 상기 레지스터는, 데이터가 이동될 때, 그 데이터를 암호화하기 위해 상기 암호화 엔진에 의해 사용되는 키를 지정하는 제2 필드를 포함하는 것인, 무선 송수신 유닛(WTRU).
KR1020097012678A 2004-05-24 2005-05-06 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기 KR20090085685A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US57378904P 2004-05-24 2004-05-24
US60/573,789 2004-05-24
US10/878,729 US7636857B2 (en) 2004-05-24 2004-06-28 Data-mover controller with plural registers for supporting ciphering operations
US10/878,729 2004-06-28

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020067026438A Division KR20070017411A (ko) 2004-05-24 2005-05-06 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는데이터-이동 제어기

Publications (1)

Publication Number Publication Date
KR20090085685A true KR20090085685A (ko) 2009-08-07

Family

ID=35376587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097012678A KR20090085685A (ko) 2004-05-24 2005-05-06 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기

Country Status (16)

Country Link
US (2) US7636857B2 (ko)
EP (1) EP1751909A4 (ko)
JP (1) JP2008500638A (ko)
KR (1) KR20090085685A (ko)
AR (2) AR049693A1 (ko)
AU (3) AU2005332284B8 (ko)
BR (1) BRPI0511205A (ko)
CA (1) CA2567818A1 (ko)
GE (1) GEP20094768B (ko)
IL (1) IL179322A (ko)
MX (1) MXPA06013621A (ko)
MY (2) MY142326A (ko)
NO (1) NO20065338L (ko)
SG (1) SG145709A1 (ko)
TW (2) TW200842700A (ko)
WO (1) WO2005117329A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636857B2 (en) * 2004-05-24 2009-12-22 Interdigital Technology Corporation Data-mover controller with plural registers for supporting ciphering operations
US7869590B2 (en) * 2005-04-12 2011-01-11 Broadcom Corporation Method and system for hardware accelerator for implementing f9 integrity algorithm in WCDMA compliant handsets
US7929410B2 (en) 2005-06-29 2011-04-19 Interdigital Technology Corporation Protocol engine for processing data in a wireless transmit/receive unit
KR20090031783A (ko) * 2006-07-14 2009-03-27 인터디지탈 테크날러지 코포레이션 심볼 레이트 하드웨어 가속기
US8077644B2 (en) * 2007-07-20 2011-12-13 Infineon Technologies Ag Data transfer in a computing device
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US8788782B2 (en) * 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
CN101977186B (zh) * 2010-10-19 2012-12-12 珠海市佳讯实业有限公司 一种实现STM-1接口汇聚多路Ethernet over E1协议转换的装置
KR101992866B1 (ko) 2013-02-06 2019-06-25 동우 화인켐 주식회사 착색 감광성 수지 조성물
US10192062B2 (en) 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10169618B2 (en) 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US11061685B2 (en) 2019-02-27 2021-07-13 International Business Machines Corporation Extended asynchronous data mover functions compatibility indication

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58225422A (ja) 1982-06-25 1983-12-27 Toshiba Corp デ−タ制御装置
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US6038166A (en) * 1998-04-01 2000-03-14 Invox Technology High resolution multi-bit-per-cell memory
FR2800952B1 (fr) 1999-11-09 2001-12-07 Bull Sa Architecture d'un circuit de chiffrement mettant en oeuvre differents types d'algorithmes de chiffrement simultanement sans perte de performance
BR0015907A (pt) 1999-12-02 2002-08-06 Infineon Technologies Ag Disposição de microprocessador com codificação
WO2001049058A1 (fr) * 1999-12-27 2001-07-05 Mitsubishi Denki Kabushiki Kaisha Dispositif de radiocommunication et procede de radiocommunication
FI110974B (fi) 2000-03-01 2003-04-30 Nokia Corp Laskurin alustaminen, erityisesti radiokehyksiä varten
TW490611B (en) 2000-03-31 2002-06-11 Jian-Tsz Hou Encryption and decryption memory and access control method
DK1376922T3 (da) * 2001-04-03 2014-10-27 Mitsubishi Electric Corp Krypteringsindretning
JP2002329180A (ja) 2001-04-27 2002-11-15 Toshiba Corp 無線通信機能を有するメモリカード及びそのデータ通信方法
US7266703B2 (en) 2001-06-13 2007-09-04 Itt Manufacturing Enterprises, Inc. Single-pass cryptographic processor and method
WO2003036857A1 (en) * 2001-10-24 2003-05-01 Nokia Corporation Ciphering as a part of the multicast cencept
RU2313122C2 (ru) 2002-03-13 2007-12-20 Мацусита Электрик Индастриал Ко., Лтд. Защищенное устройство
FI114347B (fi) 2002-03-20 2004-09-30 Master S Innovations Ltd Oy Menetelmä ja laitteisto datan kääntämiseksi
JP3743509B2 (ja) 2002-03-20 2006-02-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
RU2300844C2 (ru) 2002-06-18 2007-06-10 Ооо "Крейф" Персональный криптозащитный комплекс
US8155314B2 (en) 2002-06-24 2012-04-10 Microsoft Corporation Systems and methods for securing video card output
WO2004019614A1 (en) * 2002-08-22 2004-03-04 Thomson Licensing S.A. Smart card with nrss delay line for data alignment
KR100516548B1 (ko) * 2003-02-05 2005-09-22 삼성전자주식회사 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치
JP2004288091A (ja) * 2003-03-25 2004-10-14 Fuji Xerox Co Ltd 情報処理装置及び方法
US7415115B2 (en) * 2003-05-14 2008-08-19 Broadcom Corporation Method and system for disaster recovery of data from a storage device
US7409477B2 (en) * 2003-09-03 2008-08-05 Hewlett-Packard Development Company, L.P. Memory card having a processor coupled between host interface and second interface wherein internal storage code provides a generic interface between host interface and processor
US7636857B2 (en) * 2004-05-24 2009-12-22 Interdigital Technology Corporation Data-mover controller with plural registers for supporting ciphering operations
US7694152B2 (en) * 2005-02-03 2010-04-06 International Business Machines Corporation Memory controller with performance-modulated security

Also Published As

Publication number Publication date
EP1751909A2 (en) 2007-02-14
WO2005117329A3 (en) 2007-01-11
CA2567818A1 (en) 2005-12-08
BRPI0511205A (pt) 2007-11-27
AR065977A2 (es) 2009-07-15
US7636857B2 (en) 2009-12-22
AU2005332284A8 (en) 2008-08-14
JP2008500638A (ja) 2008-01-10
TW200842700A (en) 2008-11-01
US20100088529A1 (en) 2010-04-08
US8112635B2 (en) 2012-02-07
GEP20094768B (en) 2009-09-10
EP1751909A4 (en) 2008-04-16
NO20065338L (no) 2007-01-19
IL179322A (en) 2011-06-30
AU2005332284A1 (en) 2007-01-11
AU2008207639A1 (en) 2008-09-25
WO2005117329A2 (en) 2005-12-08
SG145709A1 (en) 2008-09-29
US20050262344A1 (en) 2005-11-24
TWI347551B (en) 2011-08-21
AR049693A1 (es) 2006-08-30
MXPA06013621A (es) 2007-02-28
TW200602973A (en) 2006-01-16
AU2009202654A1 (en) 2009-07-30
AU2005332284B8 (en) 2008-08-14
MY139114A (en) 2009-08-28
IL179322A0 (en) 2007-03-08
MY142326A (en) 2010-11-15
AU2008207639B2 (en) 2009-07-23
AU2005332284B2 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
US8112635B2 (en) Data-mover controller with plural registers for supporting ciphering operations
JP4684550B2 (ja) 多数の動作モードを支援する暗号化装置
US7885404B2 (en) Cryptographic systems and methods supporting multiple modes
US8374343B2 (en) DES hardware throughput for short operations
US7552344B2 (en) Hardware-based encryption/decryption employing dual ported key storage
EP3803672B1 (en) Memory-efficient hardware cryptographic engine
US11429751B2 (en) Method and apparatus for encrypting and decrypting data on an integrated circuit
KR20070017411A (ko) 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는데이터-이동 제어기

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application