KR20070017411A - Data-mover controller with plural registers for supporting ciphering operations - Google Patents

Data-mover controller with plural registers for supporting ciphering operations Download PDF

Info

Publication number
KR20070017411A
KR20070017411A KR1020067026438A KR20067026438A KR20070017411A KR 20070017411 A KR20070017411 A KR 20070017411A KR 1020067026438 A KR1020067026438 A KR 1020067026438A KR 20067026438 A KR20067026438 A KR 20067026438A KR 20070017411 A KR20070017411 A KR 20070017411A
Authority
KR
South Korea
Prior art keywords
data
field
encryption
memory
integrated circuit
Prior art date
Application number
KR1020067026438A
Other languages
Korean (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 인터디지탈 테크날러지 코포레이션
Priority to KR1020067026438A priority Critical patent/KR20070017411A/en
Publication of KR20070017411A publication Critical patent/KR20070017411A/en

Links

Images

Classifications

    • 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

Abstract

데이터 처리 시스템은, 예를 들어, 공유 메모리 아키텍처(SMA) 정적 램(SRAM)과 더블 데이터 레이트(DDR) 동기식 동적 램(SDRAM) 사이와 같이, 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달한다. 시스템은 암호화 엔진 및 데이터-이동 제어기를 포함한다. 데이터-이동 제어기는 전달되는 데이터가 암호화되어야 하는지 아닌지를 지정하는 필드를 갖는 적어도 하나의 레지스터를 포함한다. 필드가 전달되는 데이터가 암호화되어야 하는 것으로 지정하면, 필드는, 3세대 파트너쉽 프로젝트(3GPP) 표준화된 비밀 암호 알고리즘 "f8" 또는 무결성 암호 알고리즘 "f9" 등의, 수행되어야 할 암호화의 타입도 지정한다.The data processing system transfers data between the first memory unit and the second memory unit, such as, for example, between shared memory architecture (SMA) static RAM (SRAM) and double data rate (DDR) synchronous dynamic RAM (SDRAM). Encrypt and forward. The system includes an encryption engine and a data-moving controller. The data-movement controller includes at least one register with a field that specifies whether the data being transferred should be encrypted or not. If the field specifies that the data being passed should be encrypted, the field also specifies the type of encryption to be performed, such as the 3rd Generation Partnership Project (3GPP) standardized secret cryptographic algorithm "f8" or integrity cryptographic algorithm "f9". .

암호화, 데이터 전달, 데이터-이동 제어기, 암호화 엔진, 암호 알고리즘 Encryption, Data Delivery, Data-Moving Controller, Encryption Engine, Cryptographic Algorithm

Description

암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기{DATA-MOVER CONTROLLER WITH PLURAL REGISTERS FOR SUPPORTING CIPHERING OPERATIONS}DATA-MOVER CONTROLLER WITH PLURAL REGISTERS FOR SUPPORTING CIPHERING OPERATIONS}

본 발명은 무선 통신 애플리케이션에 사용될 수 있는 데이터 처리의 분야에 관한 것이다. 더욱 구체적으로, 본 발명은 데이터-이동 제어기(data-mover controller) 및 암호화 엔진을 사용하여, 2개의 상이한 종류의 메모리 장치 사이에서 데이터를 암호화하여 전달하는 것에 관한 것이다.The present invention relates to the field of data processing that can be used in wireless communication applications. More specifically, the present invention relates to encrypting and transferring data between two different kinds of memory devices using a data-mover controller and an encryption engine.

다수의 초기 3세대 파트너쉽 프로젝트(3GPP : third Generation Partnership Project) 모뎀은 계층 1 프로토콜을 소프트웨어로 구현한 것이다. 데이터 레이트가 상승할수록, 일부 기능에 대한 하드웨어 지원의 필요성이 요구되었다. 3GPP, 이동 통신용 글로벌 시스템(GSM : Global System for Mobile Communications) 및 유니버설 이동 전화통신 시스템(UMTS : Universal Mobile Telecommunications Systems)와 같은 무선 통신 시스템에서는, 최근, 더욱 연산 집약적인(compute-intensive) 동작의 일부에 대한 가속기로서 작용하는 하드웨어 모듈이 도입되고 있다.Many early third generation partnership project (3GPP) modems are software implementations of the Layer 1 protocol. As data rates rose, the need for hardware support for some functions was required. In wireless communication systems such as 3GPP, Global System for Mobile Communications (GSM) and Universal Mobile Telecommunications Systems (UMTS), some of the more recently compute-intensive operations Hardware modules are being introduced that act as accelerators for.

이러한 동작의 하나는 암호화이며, 이것에 의하여, 암호화 키의 조작 및 데이터의 실제적인 암호화는 조작되는 데이터의 양에 비례하여 필요한 처리 용량을 증가시킨다. 3GPP 시스템의 보안 아키텍처 내에는, 2개의 표준화된 알고리즘, 비밀 암호 알고리즘 "f8" 및 무결성 암호 알고리즘 "f9"가 존재한다.One such operation is encryption, whereby manipulation of the encryption key and actual encryption of the data increases the required processing capacity in proportion to the amount of data to be manipulated. Within the security architecture of the 3GPP system, there are two standardized algorithms, secret cryptographic algorithm "f8" and integrity cryptographic algorithm "f9".

하나의 메모리(즉, 계층)로부터 다른 메모리로 데이터가 이동되는 한편, 암호화 연산을 효율적으로 수행하기 위한 수단이 요구된다.While data is moved from one memory (i.e., hierarchy) to another, a means is required to efficiently perform cryptographic operations.

데이터 처리 시스템은 예를 들어, 공유 메모리 아키텍처(SMA : Share Memory Architecture) 정적 램(SRAM : Static Random Access Memory)과 더블 데이터 레이트(DDR : Double Data Rate) 동기식 동적 램(SDRAM : Synchronous Dynamic Random Access Memory) 사이와 같이, 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달한다. 시스템은 암호화 엔진 및 데이터-이동 제어기를 포함한다. 데이터-이동 제어기는 전달되는 데이터가 암호화 엔진에 의해 암호화되어야 하는지 아닌지를 지정하는 필드를 갖는 적어도 하나의 레지스터를 포함한다.The data processing system may, for example, share memory architecture (SMA) static random access memory (SRAM) and double data rate (DDR) synchronous dynamic random access memory (SDRAM). The data is encrypted and transferred between the first memory unit and the second memory unit. The system includes an encryption engine and a data-moving controller. The data-movement controller includes at least one register with a field that specifies whether the data being transferred should be encrypted by the encryption engine.

필드가 전달되는 데이터가 암호화되어야 하는 것으로 지정하면, 필드는, 3GPP 표준화된 비밀 암호 알고리즘 "f8" 또는 무결성 암호 알고리즘 "f9"와 같이, 암호화 엔진에 의해 수행되어야 할 암호화의 타입을 지정할 수도 있다.If the field specifies that the data being delivered should be encrypted, the field may specify the type of encryption that should be performed by the encryption engine, such as the 3GPP standardized secret encryption algorithm "f8" or the integrity encryption algorithm "f9".

레지스터는 표준화된 무결성 암호 알고리즘 f9 연산에 의해 연산된 메시지 인증 코드(MAC : Message Authentication Code)를 지정하는 또 다른 필드를 포함할 수도 있다.The register may include another field that specifies a message authentication code (MAC) calculated by a standardized integrity cryptographic algorithm f9 operation.

레지스터는 제1 메모리 유닛으로부터 제2 메모리 유닛으로, 또는 제2 메모리 유닛으로부터 제1 메모리 유닛으로 데이터가 이동되는지를 지정하는 또 다른 필드를 포함할 수도 있다. 제1 및 제2 메모리 유닛은 처리 속도에 있어서 상이할 수도 있다.The register may include another field specifying whether data is to be moved from the first memory unit to the second memory unit, or from the second memory unit to the first memory unit. The first and second memory units may differ in processing speed.

레지스터는 데이터-이동 제어기에 의해 전달될 데이터 블록의 크기를 지정하는 또 다른 필드를 포함할 수도 있다. 데이터 블록 크기는 4 바이트(byte), 8 바이트, 16 바이트 또는 32 바이트일 수도 있다.The register may include another field that specifies the size of the data block to be delivered by the data-move controller. The data block size may be 4 bytes, 8 bytes, 16 bytes or 32 bytes.

레지스터는 데이터-이동 제어기에 의해 전달될 데이터 블록의 수를 지정하는 또 다른 필드를 포함할 수도 있다.The register may include another field specifying the number of data blocks to be delivered by the data-movement controller.

레지스터는 데이터 전달이 완료될 경우, 인터럽트 펄스가 발생되어야 하는지를 지정하는 또 다른 필드를 포함할 수도 있다.The register may include another field that specifies whether an interrupt pulse should be generated when data transfer is complete.

레지스터는 암호 헤더에 내장되어 암호화 엔진에 의해 처리되는 값을 지정하는 또 다른 필드를 포함할 수도 있다.The register may include another field embedded in the cryptographic header that specifies the value to be processed by the cryptographic engine.

레지스터는 암호 길이를 지정하는 또 다른 필드를 포함할 수도 있다.The register may include another field that specifies the length of the cipher.

레지스터는 암호화된 헤더에 내장되어 암호화 엔진에 의해 처리되는 값을 지정하는 또 다른 필드를 포함할 수도 있다.The register may include another field embedded in an encrypted header that specifies a value to be processed by the encryption engine.

레지스터는 데이터가 이동될 때, 그 데이터를 암호화하기 위한 암호화 엔진에 의해 사용되는 키(key)를 지정하는 또 다른 필드를 포함할 수도 있다. 키는 128-비트 키일 수도 있다.The register may include another field that specifies the key used by the encryption engine to encrypt the data as it is moved. The key may be a 128-bit key.

예시로서 주어지며 첨부 도면을 참조하여 이해될 수 있는 다음의 설명으로부터, 본 발명을 더욱 구체적으로 이해할 수 있다.The present invention can be understood more specifically from the following description, which is given by way of example and can be understood with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 실시예에 따른 하나의 메모리로부터 다른 메모리로 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템의 도면이고,1 is a diagram of a data processing system for encrypting and transferring data from one memory to another according to a preferred embodiment of the present invention;

도 2는 데이터-이동 제어기에 포함된 레지스터의 예시적 구성을 도시한 것이고,2 shows an exemplary configuration of a register included in the data-movement controller,

도 3은 SDRAM으로부터의 소스 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,3 shows a register defining a data-move controller start address for source access from SDRAM;

도 4는 SDRAM에 대한 목적지 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,4 shows a register defining a data-move controller start address for a destination access to SDRAM,

도 5는 SMA 메모리에 대한 소스 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,5 shows a register defining a data-move controller start address for source access to an SMA memory,

도 6은 SMA 메모리에 대한 목적지 액세스를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터를 도시한 것이고,6 shows a register defining a data-move controller start address for a destination access to an SMA memory,

도 7은 SDRAM과 SMA 메모리 사이에서 이동해야 할 블록의 수를 정의하는 레지스터를 도시한 것이고,7 shows a register defining the number of blocks to be moved between SDRAM and SMA memory,

도 8은 데이터-이동 제어기의 모드를 지정하는 레지스터를 도시한 것이고,8 shows a register designating a mode of a data-moving controller,

도 9는 암호 헤드에 내장된 카운트 값을 정의하는 레지스터를 도시한 것이고,9 shows a register defining a count value embedded in a cryptographic head,

도 10은 암호 헤드에 내장된 프레쉬 값("fresh" value)을 정의하는 레지스터를 도시한 것이고,FIG. 10 illustrates a register defining a fresh value embedded in a cryptographic head.

도 11은 암호화된 헤더에 위치되어야 할 베어러(bearer) 및 방향 값과, 암호 화되어야 할 전체 비트 수를 정의하는 레지스터를 도시한 것이고,11 shows a bearer and direction value to be located in an encrypted header and a register defining the total number of bits to be encrypted,

도 12는 데이터 이동 도중에 암호화를 위해 사용되는 128-비트 키를 정의하는 레지스터를 도시한 것이고,12 shows a register defining a 128-bit key used for encryption during data movement,

도 13은 연산된 메시지 인증 코드(MAC) 값을 제공하는 레지스터를 도시한 것이다.13 shows a register providing a calculated message authentication code (MAC) value.

도면을 참조하여 바람직한 실시예에 대해 설명하며, 도면 전반에 걸쳐 동일한 번호는 동일한 구성요소를 나타낸다.DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments are described with reference to the drawings, wherein like numerals represent like elements throughout.

바람직하게는, 명세서에 개시한 본 발명은 무선 송신/수신 유닛(WTRU : Wireless Transmit/Receive Unit) 및/또는 노드 B에 포함된다. 그러나, 어떠한 임의의 무선 통신 방식이라도 본 발명으로부터 이익을 얻을 것으로 기대된다. Preferably, the invention disclosed herein is included in a Wireless Transmit / Receive Unit (WTRU) and / or a Node B. However, any wireless communication scheme is expected to benefit from the present invention.

이하, WTRU는 다음의 것으로 한정되지는 않지만, 사용자 장비, 이동국, 고정 또는 이동식 가입자 유닛, 페이저(pager), 또는 무선 환경에서 동작할 수 있는 임의의 다른 종류의 장치를 포함한다. 또한, 노드 B는 다음의 것으로 한정되지는 않지만, 기지국, 사이트 제어기, 액세스 포인트 또는 무선 환경에서의 다른 인터페이스 장치를 포함한다.Hereinafter, a WTRU includes, but is not limited to, the following: user equipment, mobile station, fixed or mobile subscriber unit, pager, or any other kind of device capable of operating in a wireless environment. Node B also includes, but is not limited to, the following: base station, site controller, access point, or other interface device in a wireless environment.

본 발명의 특징은 집적 회로(IC)에 포함되거나, 다수의 상호접속된 구성요소를 회로로 구성될 수도 있다.Features of the present invention may be included in an integrated circuit (IC) or may comprise a plurality of interconnected components in a circuit.

본 발명은 시분할 듀플렉스(TDD : Time Division Duplex), 주파수 분할 듀플렉스(FDD : Frequency Division Duplex), 코드 분할 다중 접속(CDMA : Code Division Multiple Access), CDMA 2000, 시분할 동기식 CDMA(TDSCDMA), 직교 주파수 분할 멀티플렉싱(OFDM : Orthogonal Frequency Division Multiplexing) 등을 이용하는 통신 시스템에 적용 가능하다.The present invention relates to time division duplex (TDD), frequency division duplex (FDD), code division multiple access (CDMA), CDMA 2000, time division synchronous CDMA (TDSCDMA), orthogonal frequency division It is applicable to a communication system using orthogonal frequency division multiplexing (OFDM).

다수의 다른 모뎀 구현예와 같이, 본 발명은 데이터 처리 기능을 구현하는 하드웨어 모듈(가속기)을 가진다. 본 발명은 기존의 메모리 인스턴스(instance)의 수를 감소하기 위한 공유된 메모리를 사용한다. 하드웨어 모듈 및 처리기가 이 메모리에 액세스한다.As with many other modem implementations, the present invention has a hardware module (accelerator) that implements data processing functionality. The present invention uses shared memory to reduce the number of existing memory instances. Hardware modules and processors access this memory.

많은 소형의 전용 메모리에 대신하여 단일 메모리를 사용함으로써, 모뎀 등을 위한 회로의 주문형 반도체 회로(ASIC : Application-Specific Integrated Circuit) 버전의 다이(die) 크기가 감소된다. 이 메모리는 일반적으로 매우 고속일 필요가 있다. 고속 메모리(SRAM)는 일반적으로 값이 비싸며, 면적의 관점에서는, 다른 형태의 메모리 즉, DRAM만큼 밀집되어 있지 않다. 예를 들어, 본 명세서에 그 전체가 참조 문헌으로 포함되는, 발명의 명칭이 "물리 계층 처리에 사용하기 위한 소프트웨어 파라미터화가 가능한 제어 블록(Software Parameterizable Control Blocks For Use In Physical Layer Processing)"인, 2003년 4월15일자로 출원된 미국 특허 출원 번호 제10/414,125호를 참조하기로 한다.By using a single memory instead of many small dedicated memories, the die size of an application-specific integrated circuit (ASIC) version of the circuit for a modem or the like is reduced. This memory generally needs to be very fast. High speed memory (SRAM) is generally expensive and is not as dense as other types of memory, DRAM, in terms of area. For example, 2003, entitled "Software Parameterizable Control Blocks For Use In Physical Layer Processing," which is hereby incorporated by reference in its entirety. See US patent application Ser. No. 10 / 414,125, filed April 15, 2015.

본 발명은 다량의 데이터를 기억하기 위하여 처리기에 의해 이용 가능한 다른 메모리도 포함한다. 이 메모리는 외부의, 상업적으로 입수 가능한 DRAM 또는 SDRAM 칩에 의해 구현된다. 재정렬용 큐(reordering queue)와, 애플리케이션을 위해 처리되는 데이터를 기억하기 위한 다른 버퍼는 이러한 대형의 저속 메모리에 대 한 사용의 예이다.The present invention also includes other memories available by the processor to store large amounts of data. This memory is implemented by an external, commercially available DRAM or SDRAM chip. Reordering queues and other buffers to store the data processed for the application are examples of the use of this large, slow memory.

본 발명에 따르면, 데이터-이동 제어기는 고속의 하드웨어 액세스가능 메모리(SRAM)와, 저속의 고밀집 메모리(DRAM) 사이의 데이터 이동시의 하드웨어 가속기로서 구성되었다. 처리기가 하드웨어 가속기를 가지지 않는다는 것은, 처리기가 데이터를 가공하기 위해(shuffle around) 소프트웨어 루프를 사용해야 하므로, 초당 수백만개의 명령어(MIPS : Millions of Instructions Per Second)씩 측정되는 처리기의 연산 자원의 대부분을 소비하게 된다는 것을 의미한다.According to the present invention, a data-movement controller is configured as a hardware accelerator in moving data between a high speed hardware accessible memory (SRAM) and a low speed dense memory (DRAM). The fact that a processor does not have a hardware accelerator means that the processor must use software loops to shuffle the data, thus consuming most of the processor's computational resources, measured in Millions of Instructions Per Second (MIPS). It means to be done.

데이터는 프로토콜 데이터 유닛(PDU : Protocol Data Unit) 및 서비스 데이터 유닛(SDU : Service Data Unit)으로 불리는 블록 단위로 종종 이동된다. 이들 블록은 3GPP 표준에 따라 암호화될 수 있다. 암호화 및 복호화의 처리에는 처리기가 매우 필요하다. 또한, 데이터를 액세스하고, 처리한 다음, 메모리에 다시 기록하는 것이 필요하다. Data is often moved in blocks called Protocol Data Units (PDUs) and Service Data Units (SDUs). These blocks can be encrypted according to the 3GPP standard. The processor is very necessary for the processing of encryption and decryption. It is also necessary to access the data, process it, and then write it back to memory.

본 발명은 직접 메모리 액세스(DMA : Direct Memory Access) 기능을 단일 하드웨어 가속기에서 암호화 및 복호화와 결합함으로써, 데이터-이동 제어기는 데이터를 이동할 뿐만 아니라, 데이터 이동 처리의 도중에 데이터 블록을 암호화하거나 복호화한다. 하드웨어 지원이 있고 데이터가 이미 이동 처리중에 있기 때문에, 시간을 단축할 수 있다. 따라서, 별도의 하드웨어 가속기를 구현하는 경우에 비해, 더 적은 액세스가 요구된다.The present invention combines the Direct Memory Access (DMA) function with encryption and decryption in a single hardware accelerator, so that the data-movement controller not only moves the data, but also encrypts or decrypts the data block during the data movement process. Since there is hardware support and data is already in the process of being moved, time can be saved. Thus, less access is required compared to implementing a separate hardware accelerator.

일부 구현예에서는, 각 하드웨어 가속기에는 그 자신의 내부 인터페이스(버퍼) 메모리가 구비되어 있다. 많은 인스턴스의 메모리들의 급증으로 인해 이들 설 계의 ASIC 구현시에 그 크기가 증가한다. In some implementations, each hardware accelerator is provided with its own internal interface (buffer) memory. The proliferation of many instances of memory increases their size in ASIC implementations of these designs.

메모리 인스턴스의 수는 다수의 인터페이스(버퍼) 메모리를 단일의 공유 메모리로 결합함으로써 감소될 수도 있다. 이 메모리는 모든 하드웨어 가속기에 의해 공통의 메모리 제어기를 통해 액세스된다. 이 메모리는 일반적으로 고속 SRAM을 이용하여 구현된다. 제어 소프트웨어는, 입력되는 데이터를 공유 메모리의 어디에서 불러올 것인지, 그리고 처리된 결과를 공유 메모리의 어디에 둘 것인지를 포함하여 하드웨어 가속기의 각각의 동작을 수행하도록 하드웨어 가속기에 지시한다. 본 발명은 모든 계층 1 동작을 위해 가속기를 제공한다. The number of memory instances may be reduced by combining multiple interface (buffer) memories into a single shared memory. This memory is accessed through a common memory controller by all hardware accelerators. This memory is typically implemented using high speed SRAM. The control software instructs the hardware accelerator to perform each operation of the hardware accelerator, including where to retrieve incoming data from and where to place the processed results in the shared memory. The present invention provides an accelerator for all layer 1 operations.

또한, 더 상위 계층 제어(계층 2 및 3)도 이 공유 메모리를 액세스하여, 계층 1과 통신하고, 송신될 데이터를 제공하며, 수신된 데이터를 받아들인다. 송신될 것으로 예정된 애플리케이션으로부터의 데이터를 유지하거나, 애플리케이션에 전달하기 위한 데이터의 패킷을 수집하고 조합하기 위하여, 종종, 더 크고, 더 느리며, 덜 밀집된 메모리가 계층 2/3 처리에 의해 사용된다.In addition, higher layer control (layers 2 and 3) also access this shared memory to communicate with layer 1, provide data to be transmitted, and accept the received data. Larger, slower, less dense memory is often used by layer 2/3 processing to retain data from an application intended to be transmitted or to collect and combine packets of data for delivery to the application.

정보의 패킷이 수신되거나, 송신될 것으로 예정되어 있을 때, 이러한 더 느리고 덜 밀집된 메모리와, 더 빠른 (더욱 값이 비싼) 메모리 사이에서 데이터가 이동해야 한다. 일부의 경우, 이들 패킷은 암호화 및/또는 복호화되어야 한다.When a packet of information is received or is expected to be transmitted, data must move between this slower and less dense memory and faster (more expensive) memory. In some cases, these packets must be encrypted and / or decrypted.

데이터를 이동시키고 암호화를 보조하는 가속기가 데이터-이동 제어기를 구성하도록 결합되었다. 이 결합은 수행되어야 할 액세스의 수를 감소시키며, 처리기가 데이터를 이동하고 암호화하는 고가의 처리를 경감시킨다.Accelerators for moving data and assisting encryption have been combined to construct a data-movement controller. This combination reduces the number of accesses that must be performed and relieves the expensive processing of the processor to move and encrypt the data.

데이터가 계층 1과 2 또는 3의 사이에서 이동될 때, 종종, 추가의 제어 계층 이 데이터 패킷을 감싸야 한다(wrap around). 이것은 종종 데이터 패킷에 부가되어 있는 "헤더(header)"의 형태로 표현된다. 데이터-이동 제어기의 어드레싱 방식은 소스 및/또는 목적지 어드레스가 오프셋(offset)을 포함하는 것을 허용함으로써 이것을 고려한다. 이것은 처리기가 데이터를 하나의 메모리 공간에서 다른 메모리 공간으로 이동하는 것을 허용하지만, 예를 들어, 3 바이트씩 목적지 데이터를 오프셋한다. 이동이 일단 완료되면, 처리기는 적절한 헤더 정보를, 오프셋을 통해 이 목적을 위해 예비로 남겨둔 영역에 기록할 수 있다. 이것은 계층 2 또는 3 프로토콜에 대해 데이터를 포맷할 경우에 때때로 발생하는 데이터 섞기(shuffling)를 감소시킨다.When data is moved between layers 1 and 2 or 3, often, an additional control layer must wrap around the data packet. This is often expressed in the form of "headers" appended to data packets. The addressing scheme of the data-movement controller takes this into account by allowing the source and / or destination address to include an offset. This allows the processor to move data from one memory space to another, but offsets the destination data by 3 bytes, for example. Once the move is complete, the processor can write the appropriate header information to the area reserved for this purpose via an offset. This reduces the data shuffling that sometimes occurs when formatting data for Layer 2 or 3 protocols.

본 발명은 SMA SRAM과 DDR SDRAM 사이에서 데이터를 전달할 수 있는 데이터 처리 시스템이다. 또한, SDRAM 내의 하나의 위치로부터 동일한 SDRAM 내의 다른 위치에 데이터를 이동할 수도 있다. 데이터가 이동되는 동안, 다음과 같이 프로그램되어 있다면, 암호화 연산을 수행하는 로직을 통과할 수도 있다.The present invention is a data processing system capable of transferring data between SMA SRAM and DDR SDRAM. It is also possible to move data from one location in the SDRAM to another location in the same SDRAM. While the data is being moved, it may pass through logic to perform cryptographic operations if programmed as follows.

도 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)에 대해 제어를 유지한다.1 illustrates an example data processing system 100 used to transfer data between SMA SRAM memory 105 and SDRAM 110 while simultaneously encrypting or decrypting data in accordance with a preferred embodiment of the present invention. A block diagram is shown. The SMA memory controller 115 acts as an interface between the SMA SRAM 105 and the data processing system 100. The SDRAM memory controller 120 acts as an interface between the SDRAM 110 and the data processing system 100. Processor 125 (ie, control CPU) maintains control over data processing system 100, SMA SRAM 105, SMA memory controller 115, SDRAM 110, and SDRAM memory controller 120.

데이터 처리 시스템(100)은 데이터-이동 제어기(128), 암호화 엔진(130), 입력 데이터 레지스터(135, 140), 출력 데이터 레지스터(145, 150), 입력 멀티플렉서(MUX)(155), 출력 MUX(160) 및 선입선출(FIFO : First-In First-Out) 레지스터(165)를 포함한다.Data processing system 100 includes data-movement controller 128, encryption engine 130, input data registers 135 and 140, output data registers 145 and 150, input multiplexer (MUX) 155, output MUX 160 and First-In First-Out (FIFO) registers 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)에 의해 인터럽트가 설정된다.By writing the address of the first word of data to be accessed in the SDRAM 110 memory space into the SDRAM 110 address register, the data-movement controller 128 is programmed. The address of the first word of data to be accessed in the memory space in the SMA SRAM 105 is recorded in the SMA SRAM 105 address register. The number of data blocks to move is recorded in the "Num_blocks_to_move" register. The mode register determines the direction of data movement (i.e., "0" = SDRAM 110 in SMA SRAM 105, "1" = SMA SRAM 105 in SDRAM 110). The size of each block is defined as, for example, the number of 32-bit words per block. The total number of 32-bit words passed is specified as "num_blocks_to_move * block_size". The mode register in the data-movement controller 128 of the data processing system 100 indicates whether the data should be passed directly or if the data should pass through the encryption engine 130 when data transfer occurs. Writing to the mode register causes the data-movement controller 128 to initiate the data movement procedure. When data transfer is complete, an interrupt is set by the data-movement controller 128 as desired.

이하, 하나의 메모리[예를 들어, 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) 내의 적절한 구성 레지스터에 전달된다.Hereinafter, a data processing system that moves data from one memory (eg, SMA SRAM 105) to another memory (eg, SDRAM 110) while passing the data through to the encryption engine 130. A step by step example illustrating the procedure used by 100 will be described. A determination is made about moving the block of data stored in the SMA SRAM 105 to the SDRAM 110. Processor 125 then writes the control block to SMA SRAM 105. The control block contains all the parameters needed to configure the data-movement controller 128 for the intended operation. Through a programmed I / O operation, processor 125 outputs a control signal (ie, start pulse) to data-movement controller 128 to initiate a data movement operation. The data-movement controller 128 (effectively, the state machine) receives the control signal and traverses a series of states in order to retrieve the control block from the SMA SRAM 105. This is accomplished by properly asserting a request from the SMA memory 105 via the SMA memory controller 115. Data from SMA memory 105 is entered into register 115 and passed to the appropriate configuration register in data-movement controller 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)으로부터 데이터를 전 달한다.Once the associated control parameter is received, the information contained therein is decrypted, again instructing the data-movement controller 128 as to what kind of function should be performed. In this example, data is moved from the SMA SRAM 105 to the SDRAM 110. If appropriate, the data-moving controller 128 has the cryptographic header information contained in the associated register via the output register 150 and the SDRAM memory controller 120, the input register 135, input MUX 155, FIFO 165. Pass through the output of the encryption engine 130, the MUX 160, and the SDRAM 110. The data-movement controller 128 continues to pass through the appropriate states in order, passing data from the SMA SRAM 105 until the appropriate number of items has been delivered.

요구가 있다면, 데이터 이동이 완료되었음을 나타내는 인터럽트가 데이터-이동 제어기(128) 내의 레지스터에 의해 발생된다. 다음으로, 데이터-이동 제어기(128)는 또 다른 제어 블록이 이동을 위해 준비되어 있는지를 알아보기 위해 검사한다. 만약 준비되어 있다면, 또 다른 데이터-이동 제어기 절차가 개시된다.If there is a request, an interrupt is generated by a register in the data-movement controller 128 indicating that the data move is complete. Next, the data-movement controller 128 checks to see if another control block is ready for movement. If so, another data-move controller procedure is initiated.

데이터-이동 제어기(128)는 버스트 액세스(burst access)를 사용하여 DDR-SDRAM(110)에 대하여 데이터를 전달하며, SMA SRAM(105)에 대하여 단일 워드 액세스를 전달한다. 단일 SDRAM 버스트 액세스가 SDRAM 페이지 경계를 교차하지 않도록, 블록 크기 및 DDR SDRAM(110) 어드레스가 설정되도록 보장하는 것은 프로그래머에게 달려 있다.The data-movement controller 128 transfers data to the DDR-SDRAM 110 using burst access and single word access to the SMA SRAM 105. It is up to the programmer to ensure that the block size and DDR SDRAM 110 address are set so that a single SDRAM burst access does not cross the SDRAM page boundaries.

도 2는 도 1의 데이터-이동 제어기(128)의 레지스터(205-255)의 예시적인 구성을 도시한 것이다.FIG. 2 shows an exemplary configuration of registers 205-255 of the data-move controller 128 of FIG. 1.

도 3은 SMA SRAM(105) 또는 SDRAM(110)으로의 데이터 전달을 개시하기 위하여, SDRAM(110)에 대한 소스 액세스(즉, 판독)를 위한 데이터-이동 제어기(128) 시작 어드레스를 정의하는 레지스터(205)를 도시한 것이다. 어드레스는 바이트 어드레스이며, "모드" 레지스터에서 지정된 블록 크기에 적합한 어드레스로 정렬되어야 한다. 레지스터에 기록된 값은 SDRAM 어드레스 공간의 시작 부분에 관한 것이다. 어드레스 레지스터는 데이터-이동 제어기(128)가 아이들(idle) 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트(LSB : Least Significant Bit)가 무시되지만, 워드 내의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.3 is a register defining a data-move controller 128 start address for source access (ie, read) to SDRAM 110 to initiate data transfer to SMA SRAM 105 or SDRAM 110. 205 is shown. The address is a byte address and must be aligned with the address appropriate for the block size specified in the "mode" register. The value written to the register relates to the beginning of the SDRAM address space. The address register may be written only when the data-movement controller 128 is in an idle state. The least significant bit (LSB) is ignored during access, but is used when encrypting to specify the offset of the data in the word.

도 4는 SMA SRAM(105)에 대하여 데이터 전달을 개시하기 위하여, SDRAM(110)에 대한 목적지 액세스(즉, 기록)를 위한 데이터-이동 제어기 시작 어드레스를 정의하는 레지스터(215)를 도시한 것이다. 어드레스는 바이트 어드레스이며, "모드" 레지스터에서 지정된 블록 크기에 적합한 어드레스로 정렬되어야 한다. 레지스터에 기록된 값은 SDRAM 어드레스 공간의 시작 부분에 관한 것이다. 어드레스는 레지스터는 데이터-이동 제어기(128)가 아이들 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트가 무시되지만, 워드 내의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.4 shows a register 215 that defines a data-move controller start address for destination access (ie, write) to SDRAM 110 to initiate data transfer to SMA SRAM 105. The address is a byte address and must be aligned with the address appropriate for the block size specified in the "mode" register. The value written to the register relates to the beginning of the SDRAM address space. The address may be written only when the data-movement controller 128 is in an idle state. The least significant bit is ignored during access, but is used when encrypting to specify the offset of the data in the word.

도 5는 SMA SRAM(105)에 대한 소스 액세스(즉, 판독)를 위한 데이터-이동 제어기(128) 시작 어드레스를 정의하는 레지스터(210)를 도시한 것이다. 레지스터에 기록된 값은 SMA 어드레스 공간의 시작 부분에 관한 것이다. 어드레스 레지스터는 데이터-이동 제어기(128)가 아이들 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트가 무시되지만, 워드 내의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.5 shows a register 210 that defines a data-move controller 128 start address for source access (ie, read) to the SMA SRAM 105. The value written to the register relates to the beginning of the SMA address space. The address register may be written only when the data-movement controller 128 is in the idle state. The least significant bit is ignored during access, but is used when encrypting to specify the offset of the data in the word.

도 6은 SMA SRAM(105)에 대한 목적지 액세스(즉, 기록)를 위한 데이터-이동 제어기(128) 시작 어드레스를 정의하는 레지스터(220)를 도시한 것이다. 데이터-이동 제어기(128)에 대한 시작 어드레스는 데이터-이동 제어기(128)가 SMA SRAM(105)을 액세스하기 위해 지정된다. 레지스터에 기록된 값은 SMA 어드레스 공간의 시작 부분에 관한 것이다. 어드레스 레지스터는 데이터-이동 제어기(128)가 아이들 상태일 때에만 기록될 수도 있다. 액세스 도중에는 최하위 비트가 무시되지만, 워드 내 의 데이터의 오프셋을 지정하기 위해 암호화할 경우에는 사용된다.6 shows a register 220 that defines a data-move controller 128 start address for destination access (ie, write) to the SMA SRAM 105. The start address for the data-movement controller 128 is designated for the data-movement controller 128 to access the SMA SRAM 105. The value written to the register relates to the beginning of the SMA address space. The address register may be written only when the data-movement controller 128 is in the idle state. The least significant bit is ignored during access, but is used when encrypting to specify the offset of the data in the word.

도 7은 SDRAM(110)과 SMA SRAM(105) 사이에서 이동해야 할 블록의 수를 정의하는 레지스터(225)를 도시한 것이다. 동작이 개시되면, 데이터-이동 제어기는 이 레지스터의 값에 의해 표현된 블록의 수를 전달할 것이다. 각 블록은 모드 레지스터의 "bs" 필드에서 지정된 32-비트 워드의 수로 구성될 것이다.7 shows a register 225 that defines the number of blocks to be moved between the SDRAM 110 and the SMA SRAM 105. When operation begins, the data-movement controller will pass the number of blocks represented by the value of this register. Each block will consist of the number of 32-bit words specified in the "bs" field of the mode register.

도 8은 데이터-이동 제어기(128)의 모드를 지정하는 모드 레지스터(230)를 도시한 것이다. 모드 레지스터(230) 내의 각종 필드(805, 810, 815, 820, 825)는 데이터-이동 제어기의 동작시에 데이터-이동 제어기의 활동을 제어하기 위해 기록될 수도 있다.8 shows a mode register 230 that specifies the mode of the data-movement controller 128. Various fields 805, 810, 815, 820, 825 in the mode register 230 may be written to control the activity of the data-movement controller in operation of the data-movement controller.

"f" 필드(805)는 판독 전용이며, 데이터 이동 동작이 완료되었는지 아닌지(즉, 완료되지 않음에 대해 로직 0, 또는 완료됨에 대해 로직 1)를 처리기(195)에 표시한다.field " f " is read only and indicates to processor 195 whether the data movement operation is complete (i.e., logic 0 for incomplete or logic 1 for complete).

"c" 필드(810)는 데이터가 암호 엔진을 통과해야 하는지 아닌지, 그리고, 통과해야 한다면, 어떤 타입의 암호화를 수행해야 하는지를 표시하기 위해 기록될 수도 있다. "c" 필드(810)가 "00"이면, 암호화가 수행되지 않으며, 데이터는 단순히 소스 어드레스 공간에서 목적지 어드레스 공간으로 통과한다. "c" 필드(810)가 "01"이면, 데이터는 소스 어드레스 공간에서 목적지 어드레스 공간으로 이동되지만, 암호화 엔진(145)을 통과하게 되고, 데이터 이동이 이루어질 때, 3GPP "f8" 암호 알고리즘을 사용하여 암호화 및/또는 복호화된다. "c" 필드(810)가 "10"이면, 데이터는 소스 어드레스 공간으로부터 액세스되며, 3GPP "f9" 암호 알고리즘을 사 용하여 암호화 엔진(145)을 통과하지만, 데이터는 기억되지 않는다. 암호화 엔진(145)은 키 및 연관된 제어 레지스터 값을 사용하여, 레지스터(255)를 통해 처리기(195)에 의해 사용 가능하게 되는 메시지 인증 코드 값을 연산한다.A "c" field 810 may be written to indicate whether the data should pass through the crypto engine and, if so, what type of encryption should be performed. If the "c" field 810 is "00", no encryption is performed, and the data simply passes from the source address space to the destination address space. If the "c" field 810 is "01", the data is moved from the source address space to the destination address space, but passes through the encryption engine 145 and when the data movement is made, use the 3GPP "f8" encryption algorithm. Encrypted and / or decrypted. If the "c" field 810 is "10", data is accessed from the source address space and passes through the encryption engine 145 using the 3GPP "f9" cryptographic algorithm, but no data is stored. Cryptographic engine 145 uses the key and associated control register values to compute message authentication code values that are made available to processor 195 via register 255.

"i" 필드(815)는 데이터의 이동이 완료되었을 때 인터럽트를 발생하도록 프로그램될 수도 있다. "i" 필드(815)가 "0"이면, 인터럽트가 발생되지 않는다. "i" 필드(815)가 "1"이면, 데이터 이동 동작이 완료되었을 때, 인터럽트가 발생된다.Field “815” may be programmed to generate an interrupt when the movement of data is complete. If the "i" field 815 is "0", no interrupt is generated. If the "i" field 815 is "1", an interrupt is generated when the data movement operation is completed.

"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)는 액세스 요구를 통해 어떤 메모리 어드레스 포인터를 호출할지를 결정하는데 사용된다.Field “820” identifies one or more memories to be used as source and destination address spaces and specifies the direction of data movement. For example, if the "d" field 820 is "00", data is moved from the SMA SRAM 105 to the SDRAM 110. If the "d" field 820 is "10", data is moved from the SDRAM 110 to the SMA SRAM 105. If the "d" field 820 is "01", data is moved from one location in the SDRAM 110 to another. Field “820” is used to determine which memory address pointer to call via an access request.

"bs" 필드(825)는 이동해야 할 각각의 액세스 블록의 크기를 결정한다. "bs" 필드(825)는 1 워드("00" = 4 바이트), 2 워드("01" = 8 바이트), 4 워드("10" = 16 바이트) 또는 8 워드("11" = 32 바이트)를 표시하는 블록 액세스 당 값으로 설정될 수도 있다. 이동 및/또는 암호화해야 할 워드의 수는 "bs" 필드(825)와, 이동할 블록의 수를 프로그래밍함으로써 미리 결정된다. 전체 데이터 이동은 "bs" 필드(825)에 의해 표현된 값과, 레지스터(225)에서 지정된 블록의 수의 곱에 기초하여 연산된다.field 825 determines the size of each access block to be moved. The "bs" field 825 may contain 1 word ("00" = 4 bytes), 2 words ("01" = 8 bytes), 4 words ("10" = 16 bytes), or 8 words ("11" = 32 bytes It may also be set to a value per block access indicating (). The number of words to be moved and / or encrypted is predetermined by programming the "bs" field 825 and the number of blocks to move. The total data movement is calculated based on the product of the value represented by the "bs" field 825 and the number of blocks specified in the register 225.

도 9는 암호 헤드에 내장된 카운트 값을 정의하는 레지스터(235)를 도시한 것이다.9 shows a register 235 that defines a count value embedded in the cryptographic head.

도 10은 암호 헤드에 내장된 "프레쉬(fresh)" 값을 정의하는 레지스터(240)를 도시한 것이다.10 illustrates a register 240 that defines a " fresh " value embedded in the cryptographic head.

도 11은 암호화된 헤더에 위치되어야 할 베어러(bearer) 및 방향 값과, 암호화되어야 할 전체 비트 수를 정의하는 레지스터(245)를 도시한 것이다. 레지스터(235, 240 및 245)는 암호 헤더에 포함될 3GPP 표준에 의해 정의되며 처리기(195)에 의해 기록되는 값을 포함한다. 암호화가 데이터 이동에 포함되면, 이들 값은 데이터-이동 제어기에 의해 적절한 위치에 삽입된다. 암호 길이 필드는 암호 엔진을 통과할 비트수를 지정한다. 블록의 수와 블록당 워드의 수는 프로그래머에 의해 미리 결정되며, 이 길이를 고려해야 한다.FIG. 11 shows a bearer and direction value to be located in an encrypted header and a register 245 that defines the total number of bits to be encrypted. Registers 235, 240, and 245 are defined by the 3GPP standard to be included in the cryptographic header and contain values recorded by processor 195. If encryption is involved in the data movement, these values are inserted at the appropriate locations by the data-movement controller. The cipher length field specifies the number of bits to pass through the cipher engine. The number of blocks and the number of words per block are predetermined by the programmer and this length must be taken into account.

도 12는 데이터 이동 도중의 암호화를 위해 사용되는 128-비트 키를 정의하는 레지스터(250)를 도시한 것이다. 키 값은 3GPP 표준에 기술된 것으로서 사용되어, f8 및 f9 암호 알고리즘을 수행할 경우에 데이터를 암호화/복호화한다.12 shows a register 250 that defines a 128-bit key used for encryption during data movement. The key value is used as described in the 3GPP standard to encrypt / decrypt data when performing the f8 and f9 cryptographic algorithms.

도 13은 연산된 MAC 값을 제공하는 레지스터(255)를 도시한 것이다. f9 암호 알고리즘은 키 값과, 그것에 제공된 데이터 스트림의 값을 사용하여 서명을 작성한다. 이 서명은 시스템에 의해 사용되도록 MAC로서 보고된다.13 shows a register 255 providing a computed MAC value. The f9 cryptographic algorithm creates a signature using the key value and the value of the data stream provided to it. This signature is reported as a MAC for use by the system.

여기에 개시된 레지스터의 설명은 본질적으로 예시를 위한 것이며, 이것에 의하여, 동일한 기능을 수행하는 제어 필드의 결합에 기초하여 다른 임의의 정의가 유도될 수 있다.The description of the registers disclosed herein is for illustrative purposes only, whereby any other definition may be derived based on a combination of control fields that perform the same function.

본 발명은 바람직한 실시예의 측면에서 설명되었지만, 청구범위에서 정해지는 발명의 범위 내에 있는 다른 변형도 당업자에게 명백할 것이다.While the present invention has been described in terms of preferred embodiments, other variations that fall within the scope of the invention as defined in the claims will be apparent to those skilled in the art.

Claims (63)

제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템으로서,A data processing system for encrypting and transferring data between a first memory unit and a second memory unit, (a) 상기 메모리 유닛들 사이에서 데이터가 전달되는 동안, 데이터를 암호화하기 위한 암호화 엔진; 및(a) an encryption engine for encrypting data while data is being transferred between the memory units; And (b) 전달되는 데이터가 상기 암호화 엔진에 의해 암호화되어야 하는지 아닌지를 지정하는 제1 필드를 갖는 적어도 하나의 레지스터를 포함하는 데이터-이동 제어기(b) a data-movement controller comprising at least one register having a first field specifying whether data to be transferred should be encrypted by the encryption engine or not; 를 포함하는, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.And a data processing system for encrypting and delivering the data. 제1항에 있어서, 상기 제1 필드가 상기 전달되는 데이터가 암호화되어야 하는 것으로 지정하면, 상기 제1 필드는 상기 암호화 엔진에 의해 수행되어야 하는 암호화의 타입도 지정하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.2. The method of claim 1, wherein if the first field specifies that the data to be transmitted should be encrypted, the first field also specifies the type of encryption that must be performed by the encryption engine. Data processing system. 제2항에 있어서, 상기 시스템은 3세대 파트너쉽 프로젝트(3GPP) 시스템이며, 상기 암호화 엔진에 의해 수행되어야 하는 암호화의 타입은 표준화된 비밀 암호 알고리즘(standardized confidentially cipher algorithm) f8인 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data encryption method of claim 2, wherein the system is a third generation partnership project (3GPP) system and the type of encryption that must be performed by the encryption engine is a standardized confidentially cipher algorithm f8. Data processing system for delivery. 제2항에 있어서, 상기 시스템은 3세대 파트너쉽 프로젝트(3GPP) 시스템이며, 상기 암호화 엔진에 의해 수행되어야 하는 암호화의 타입은 표준화된 무결성 암호 알고리즘(standardized integrity cipher algorithm) f9인 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The system of claim 2, wherein the system is a third generation partnership project (3GPP) system and the type of encryption that must be performed by the encryption engine is a standardized integrity cipher algorithm f9. Data processing system for delivery. 제4항에 있어서, 상기 레지스터는 상기 표준화된 무결성 암호 알고리즘 f9에 의해 연산되는 메시지 인증 코드(MAC) 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.5. The data processing system of claim 4, wherein the register includes a second field that specifies a message authentication code (MAC) value calculated by the standardized integrity cryptographic algorithm f9. 제1항에 있어서, 상기 레지스터는 데이터가 상기 제1 메모리 유닛에서 상기 제2 메모리 유닛으로 이동되는지, 또는 데이터가 상기 제2 메모리 유닛에서 상기 제1 메모리 유닛으로 이동되는지를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The memory device of claim 1, wherein the register comprises a second field specifying whether data is moved from the first memory unit to the second memory unit, or whether data is moved from the second memory unit to the first memory unit. And a data processing system for encrypting and delivering the data. 제1항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달될 데이터의 블록 크기를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.2. The data processing system of claim 1, wherein the register includes a second field specifying a block size of data to be delivered by the data-movement controller. 제7항에 있어서, 상기 데이터 블록 크기는 4 바이트인 것인, 데이터를 암호 화하여 전달하기 위한 데이터 처리 시스템.8. The data processing system of claim 7, wherein the data block size is 4 bytes. 제7항에 있어서, 상기 데이터 블록 크기는 8 바이트인 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.8. The data processing system of claim 7, wherein the data block size is 8 bytes. 제7항에 있어서, 상기 데이터 블록 크기는 16 바이트인 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.8. The data processing system of claim 7, wherein the data block size is 16 bytes. 제7항에 있어서, 상기 데이터 블록 크기는 32 바이트인 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.8. The data processing system of claim 7, wherein the data block size is 32 bytes. 제1항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달될 데이터 블록의 수를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the register includes a second field that specifies the number of data blocks to be delivered by the data-movement controller. 제1항에 있어서, 상기 제1 메모리는 공유 메모리 아키텍처(SMA) 정적 램(SRAM)인 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the first memory is a shared memory architecture (SMA) static RAM (SRAM). 제1항에 있어서, 상기 제2 메모리는 동기식 동적 램(SDRAM)인 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the second memory is synchronous dynamic RAM (SDRAM). 제1항에 있어서, 상기 제1 및 제2 메모리 유닛은 처리 속도가 상이한 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the first and second memory units have different processing speeds. 제1항에 있어서, 상기 레지스터는 상기 데이터의 전달이 완료될 경우에 인터럽트 펄스가 발생되어야 하는지를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the register includes a second field that specifies whether an interrupt pulse should be generated when the transfer of data is completed. 제1항에 있어서, 상기 레지스터는 암호 헤더(cipher header)에 내장되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the register includes a second field embedded in a cipher header and specifying a value processed by the encryption engine. 제1항에 있어서, 상기 레지스터는 암호 길이(encryption length)를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the register includes a second field that specifies an encryption length. 제1항에 있어서, 상기 레지스터는 암호화된 헤더(encrypted header)에 내장되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data processing system of claim 1, wherein the register includes a second field embedded in an encrypted header and specifying a value processed by the encryption engine. 제1항에 있어서, 상기 레지스터는, 데이터가 이동될 때, 그 데이터를 암호화하기 위한 상기 암호화 엔진에 의해 사용되는 키를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.The data of claim 1, wherein the register includes a second field that specifies a key used by the encryption engine to encrypt the data when the data is moved. Processing system. 제20항에 있어서, 상기 키는 128-비트 키인, 데이터를 암호화하여 전달하기 위한 데이터 처리 시스템.21. The data processing system of claim 20, wherein the key is a 128-bit key. 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달하기 위한 집적 회로로서,An integrated circuit for encrypting and transferring data between a first memory unit and a second memory unit, (a) 상기 메모리 유닛들 사이에서 데이터가 전달되는 동안, 데이터를 암호화하기 위한 암호화 엔진; 및(a) an encryption engine for encrypting data while data is being transferred between the memory units; And (b) 전달되는 데이터가 상기 암호화 엔진에 의해 암호화되어야 하는지 아닌지를 지정하는 제1 필드를 갖는 적어도 하나의 레지스터를 포함하는 데이터-이동 제어기(b) a data-movement controller comprising at least one register having a first field specifying whether data to be transferred should be encrypted by the encryption engine or not; 를 포함하는, 데이터를 암호화하여 전달하기 위한 집적 회로.Including an integrated circuit for encrypting and delivering data. 제22항에 있어서, 상기 제1 필드가 상기 전달되는 데이터가 암호화되어야 하는 것으로 지정하면, 상기 제1 필드는 상기 암호화 엔진에 의해 수행되어야 하는 암호화의 타입도 지정하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The method of claim 22, wherein if the first field specifies that the data to be transmitted is to be encrypted, the first field also specifies the type of encryption that must be performed by the encryption engine. Integrated circuit for 제23항에 있어서, 상기 집적 회로는 3세대 파트너쉽 프로젝트(3GPP) 시스템과 연계되어 동작하며, 상기 암호화 엔진에 의해 수행되어야 하는 암호화의 타입은 표준화된 비밀 암호 알고리즘 f8인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.24. The system of claim 23, wherein the integrated circuit operates in conjunction with a third generation partnership project (3GPP) system, wherein the type of encryption that must be performed by the encryption engine is a standardized secret encryption algorithm f8. Integrated circuit for delivery. 제23항에 있어서, 상기 집적 회로는 3세대 파트너쉽 프로젝트(3GPP) 시스템과 연계되어 동작하며, 상기 암호화 엔진에 의해 수행되어야 하는 암호화의 타입은 표준화된 무결성 암호 알고리즘 f9인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.24. The system of claim 23, wherein the integrated circuit operates in conjunction with a third generation partnership project (3GPP) system, wherein the type of encryption that must be performed by the encryption engine is a standardized integrity encryption algorithm f9. Integrated circuit for delivery. 제25항에 있어서, 상기 레지스터는 상기 표준화된 무결성 암호 알고리즘 f9에 의해 연산되는 메시지 인증 코드(MAC) 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.27. The integrated circuit of claim 25, wherein the register includes a second field that specifies a message authentication code (MAC) value computed by the standardized integrity cryptographic algorithm f9. 제22항에 있어서, 상기 레지스터는 데이터가 상기 제1 메모리 유닛에서 상기 제2 메모리 유닛으로 이동되는지, 또는 데이터가 상기 제2 메모리 유닛에서 상기 제1 메모리 유닛으로 이동되는지를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The apparatus of claim 22, wherein the register is configured to indicate a second field that specifies whether data is moved from the first memory unit to the second memory unit or whether data is moved from the second memory unit to the first memory unit. Integrated circuit for encrypting and transmitting data. 제22항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달될 데이터의 블록 크기를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the register comprises a second field specifying a block size of data to be delivered by the data-movement controller. 제28항에 있어서, 상기 데이터 블록 크기는 4 바이트인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.29. The integrated circuit of claim 28 wherein the data block size is 4 bytes. 제28항에 있어서, 상기 데이터 블록 크기는 8 바이트인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.29. The integrated circuit of claim 28 wherein the data block size is 8 bytes. 제28항에 있어서, 상기 데이터 블록 크기는 16 바이트인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.29. The integrated circuit of claim 28 wherein the data block size is 16 bytes. 제28항에 있어서, 상기 데이터 블록 크기는 32 바이트인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.29. The integrated circuit of claim 28 wherein the data block size is 32 bytes. 제22항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달될 데이터 블록의 수를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the register includes a second field specifying a number of data blocks to be delivered by the data-movement controller. 제22항에 있어서, 상기 제1 메모리는 공유 메모리 아키텍처(SMA) 정적 램(SRAM)인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22 wherein the first memory is a shared memory architecture (SMA) static RAM (SRAM). 제22항에 있어서, 상기 제2 메모리는 동기식 동적 램(SDRAM)인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the second memory is synchronous dynamic RAM (SDRAM). 제22항에 있어서, 상기 제1 및 제2 메모리 유닛은 처리 속도가 상이한 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the first and second memory units have different processing speeds. 제22항에 있어서, 상기 레지스터는 상기 데이터의 전달이 완료될 경우에 인터럽트 펄스가 발생되어야 하는지를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the register includes a second field that specifies whether an interrupt pulse should be generated when the transfer of data is complete. 제22항에 있어서, 상기 레지스터는 암호 헤더에 내장되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the register includes a second field embedded in a cryptographic header and specifying a value processed by the cryptographic engine. 제22항에 있어서, 상기 레지스터는 암호화 길이를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the register comprises a second field specifying an encryption length. 제22항에 있어서, 상기 레지스터는 암호화된 헤더에 내장되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integrated circuit of claim 22, wherein the register includes a second field embedded in an encrypted header and specifying a value to be processed by the encryption engine. 제22항에 있어서, 상기 레지스터는, 데이터가 이동될 때, 그 데이터를 암호화하기 위한 상기 암호화 엔진에 의해 사용되는 키를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.23. The integration of claim 22 wherein the register includes a second field that specifies a key used by the encryption engine to encrypt the data as it is moved. Circuit. 제41항에 있어서, 상기 키는 128-비트 키인 것인, 데이터를 암호화하여 전달하기 위한 집적 회로.42. The integrated circuit of claim 41 wherein the key is a 128-bit key. 제1 메모리 유닛과 제2 메모리 유닛 사이에서 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛(WTRU)으로서,A wireless transmit / receive unit (WTRU) for encrypting and transferring data between a first memory unit and a second memory unit, (a) 상기 메모리 유닛들 사이에서 데이터가 전달되는 동안, 데이터를 암호화하기 위한 암호화 엔진; 및(a) an encryption engine for encrypting data while data is being transferred between the memory units; And (b) 전달되는 데이터가 상기 암호화 엔진에 의해 암호화되어야 하는지 아닌지를 지정하는 제1 필드를 갖는 적어도 하나의 레지스터를 포함하는 데이터-이동 제어기(b) a data-movement controller comprising at least one register having a first field specifying whether data to be transferred should be encrypted by the encryption engine or not; 를 포함하는, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.Wireless transmission and reception unit for transmitting the encrypted data. 제43항에 있어서, 상기 제1 필드가 상기 전달되는 데이터가 암호화되어야 하 는 것으로 지정하면, 상기 제1 필드는 상기 암호화 엔진에 의해 수행되어야 하는 암호화의 타입도 지정하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The method of claim 43, wherein if the first field specifies that the data to be transmitted is to be encrypted, the first field also specifies the type of encryption that must be performed by the encryption engine. A wireless transmit / receive unit for transmitting. 제44항에 있어서, 상기 무선 송수신 유닛은 3세대 파트너쉽 프로젝트(3GPP) 시스템과 연계되어 동작하며, 수행되어야 하는 암호화의 타입은 표준화된 비밀 암호 알고리즘 f8인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.45. The wireless system of claim 44, wherein the wireless transmit / receive unit operates in conjunction with a third generation partnership project (3GPP) system, and the type of encryption that must be performed is a standardized secret encryption algorithm f8. Transceiver unit. 제44항에 있어서, 상기 무선 송수신 유닛은 3세대 파트너쉽 프로젝트(3GPP) 시스템과 연계되어 동작하며, 수행되어야 하는 암호화의 타입은 표준화된 무결성 암호 알고리즘 f9인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.45. The wireless system of claim 44, wherein the wireless transmit / receive unit operates in conjunction with a third generation partnership project (3GPP) system, and the type of encryption that must be performed is a standardized integrity encryption algorithm f9. Transceiver unit. 제46항에 있어서, 상기 레지스터는 상기 표준화된 무결성 암호 알고리즘 f9에 의해 연산되는 메시지 인증 코드(MAC) 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.47. The WTRU of claim 46 wherein the register includes a second field specifying a message authentication code (MAC) value computed by the standardized integrity cryptographic algorithm f9. 제43항에 있어서, 상기 레지스터는 데이터가 상기 제1 메모리 유닛에서 상기 제2 메모리 유닛으로 이동되는지, 또는 데이터가 상기 제2 메모리 유닛에서 상기 제1 메모리 유닛으로 이동되는지를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The method of claim 43, wherein the register further comprises a second field specifying whether data is moved from the first memory unit to the second memory unit, or whether data is moved from the second memory unit to the first memory unit. A wireless transmit / receive unit for encrypting and transmitting data. 제43항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달될 데이터의 블록 크기를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the register includes a second field specifying a block size of data to be delivered by the data-movement controller. 제49항에 있어서, 상기 데이터 블록 크기는 4 바이트인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.50. The WTRU of claim 49 wherein the data block size is 4 bytes. 제49항에 있어서, 상기 데이터 블록 크기는 8 바이트인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.50. The WTRU of claim 49 wherein the data block size is eight bytes. 제49항에 있어서, 상기 데이터 블록 크기는 16 바이트인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.50. The WTRU of claim 49 wherein the data block size is 16 bytes. 제49항에 있어서, 상기 데이터 블록 크기는 32 바이트인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.50. The WTRU of claim 49 wherein the data block size is 32 bytes. 제43항에 있어서, 상기 레지스터는 상기 데이터-이동 제어기에 의해 전달될 데이터 블록의 수를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the register includes a second field specifying a number of data blocks to be delivered by the data-movement controller. 제43항에 있어서, 상기 제1 메모리는 공유 메모리 아키텍처(SMA) 정적 램(SRAM)인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the first memory is a shared memory architecture (SMA) static RAM (SRAM). 제43항에 있어서, 상기 제2 메모리는 동기식 동적 램(SDRAM)인 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the second memory is synchronous dynamic RAM (SDRAM). 제43항에 있어서, 상기 제1 및 제2 메모리 유닛은 처리 속도가 상이한 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the first and second memory units have different processing speeds. 제43항에 있어서, 상기 레지스터는 상기 데이터의 전달이 완료될 경우에 인터럽트 펄스가 발생되어야 하는지를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the register includes a second field that specifies whether an interrupt pulse should be generated when the transfer of data is complete. 제43항에 있어서, 상기 레지스터는 암호 헤더에 내장되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the register includes a second field embedded in a cryptographic header and specifying a value to be processed by the cryptographic engine. 제43항에 있어서, 상기 레지스터는 암호화 길이를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the register includes a second field specifying an encryption length. 제43항에 있어서, 상기 레지스터는 암호화된 헤더에 내장되며 상기 암호화 엔진에 의해 처리되는 값을 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The WTRU of claim 43 wherein the register includes a second field embedded in an encrypted header and specifying a value to be processed by the encryption engine. 제43항에 있어서, 상기 레지스터는, 데이터가 이동될 때, 그 데이터를 암호화하기 위한 상기 암호화 엔진에 의해 사용되는 키를 지정하는 제2 필드를 포함하는 것인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.44. The apparatus of claim 43, wherein the register includes a second field that specifies a key used by the encryption engine to encrypt data as it is moved. Transceiver unit. 제62항에 있어서, 상기 키는 128-비트 키인, 데이터를 암호화하여 전달하기 위한 무선 송수신 유닛.63. The WTRU of claim 62 wherein the key is a 128-bit key.
KR1020067026438A 2004-05-24 2005-05-06 Data-mover controller with plural registers for supporting ciphering operations KR20070017411A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020067026438A KR20070017411A (en) 2004-05-24 2005-05-06 Data-mover controller with plural registers for supporting ciphering operations

Applications Claiming Priority (3)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020097012678A Division KR20090085685A (en) 2004-05-24 2005-05-06 Data-mover controller with plural registers for supporting ciphering operations

Publications (1)

Publication Number Publication Date
KR20070017411A true KR20070017411A (en) 2007-02-09

Family

ID=43651195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067026438A KR20070017411A (en) 2004-05-24 2005-05-06 Data-mover controller with plural registers for supporting ciphering operations

Country Status (1)

Country Link
KR (1) KR20070017411A (en)

Similar Documents

Publication Publication Date Title
US8112635B2 (en) Data-mover controller with plural registers for supporting ciphering operations
US20200349866A1 (en) Lightweight cryptographic engine
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
JP4684550B2 (en) Cryptographic device that supports multiple modes of operation
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
KR20070017411A (en) Data-mover controller with plural registers for supporting ciphering operations

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