KR100908765B1 - 패킷 암호화 시스템 및 방법 - Google Patents

패킷 암호화 시스템 및 방법 Download PDF

Info

Publication number
KR100908765B1
KR100908765B1 KR1020037008413A KR20037008413A KR100908765B1 KR 100908765 B1 KR100908765 B1 KR 100908765B1 KR 1020037008413 A KR1020037008413 A KR 1020037008413A KR 20037008413 A KR20037008413 A KR 20037008413A KR 100908765 B1 KR100908765 B1 KR 100908765B1
Authority
KR
South Korea
Prior art keywords
data
processor
processors
packet
processing
Prior art date
Application number
KR1020037008413A
Other languages
English (en)
Other versions
KR20030078873A (ko
Inventor
아더 존 로우
스티븐 제이. 데이비스
Original Assignee
모사이드 테크놀로지스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모사이드 테크놀로지스, 인코포레이티드 filed Critical 모사이드 테크놀로지스, 인코포레이티드
Publication of KR20030078873A publication Critical patent/KR20030078873A/ko
Application granted granted Critical
Publication of KR100908765B1 publication Critical patent/KR100908765B1/ko

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • 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
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

프로세서는 암호화를 위해 프로세싱될 데이터 패킷들을 수신하기 위한 입력 포트를 구비한다. 마스터 컨트롤러는 상기 패킷들을 분석하고, 상기 데이터 패킷에 수행하기 위한 프로세스들의 리스트와 이의 순서를 포함하는 헤더를 제공하도록 기능한다. 상기 마스터 컨트롤러는 상기 프로세서의 전체 프로세싱 기능에 관한 프로세스 관련 데이터로 프로그램된다. 상기 헤더는 데이터 패킷에 첨부된다. 상기 첨부된 헤더 정보를 가진 패킷은 버퍼 내에 저장된다. 버퍼 컨트롤러는 상기 버퍼 내에 저장된 각각의 패킷에 대해 상기 패킷 내의 헤더에 기초하여 상기 패킷을 프로세싱할 다음 프로세서를 결정하도록 기능한다. 그 후 상기 컨트롤러는 프로세싱을 위해 상기 결정된 프로세서에 상기 패킷을 제공한다. 상기 프로세싱된 패킷은 상기 프로세싱이 행해졌다는 소정의 지시를 가지고 되돌려진다. 예를 들어, 상기 프로세스는 프로세스들의 리스트로부터 삭제될 수 있다. 상기 버퍼 컨트롤러는 패킷에 대한 다음 프로세스가 없을 때까지 반복적으로 다음 프로세스의 결정을 하고, 다음 프로세스가 없을 때 출력 포트에 제공된다.

Description

패킷 암호화 시스템 및 방법{PACKET ENCRYPTION SYSTEM AND METHOD}
본 발명은 다중 프로세서(multi processor)에서 데이터 암호를 제공한다.
인터넷의 발달 이전에는, 회사의 데이터 네트워크는 통상적으로 공공 전화 회사로부터 임차한 전용 통신 회선으로 구성되었다. 데이터 네트워크의 하드웨어 기기가 전화 회사의 독점적 재산이었고, 그 매체에 대해 절대적 독점을 가지고 사용을 통제했기 때문에, 보안은 큰 문제가 아니었다. 왜냐하면 상기 단일 공급자가 보안을 확보하도록 계약으로 강요받았고, 외부로부터 스위칭 네트워크로의 접근이 곤란하여 외부의 해킹 및 조작에 대해 어느 정도 저항하도록 했기 때문이다.
오늘날, 점점 더 많은 회사가 세계의 어떠한 다른 단일 컴퓨터 네트워크보다 더 폭넓게 동시에 활용될 수 있어 다국적 회사 네트워크용으로 쉽게 이용가능한 인터넷의 가치를 깨닫고 있다. 또한 소비자 수준의 산물이기 때문에, 인터넷 접근은 통상적으로 전용 전화 회사 네트워크에 의해 제공되는 동일한 서비스보다 훨씬 더 적은 비용으로 제공될 수 있다. 마지막으로, 엔드 유저(end user)의 인터넷 이용가능성은, 개인들이 가정이나 다른 원격 위치에서 회사 네트워크에 쉽게 접근할 수 있게 한다.
그러나 인터넷은 공공 회사에 의해 운영되지만, 공개 프로토콜(protocol), 면밀한 검토(scrutiny)에 노출된 인-밴드 라우팅(in-band routing) 및 제어를 사용한다. 이런 환경이 인터넷을 해커들을 위한 비옥한 실험장으로 만든다. 산업 스파이 활동은 오늘날 돈이 벌리는 사업이고, 인터넷에서 사업하는 회사들은 주의하지 않으면 공격에 노출되게 된다.
오늘날 인터넷상에 여러 표준들이 강력한 인증과 프라이버시(privacy)를 위해 존재한다. 프라이버시는 암호화/복호화를 통해 이루어진다. 전형적으로 암호화/복호화는 메시지 내용의 프라이버시를 유지하는 동안 대화 상대(party)들 사이의 개방 채널을 통해 데이터를 전송하도록 의도된 알고리즘에 기초되어 수행된다. 이것은 송신자가 암호화 키(key)를 사용하여 데이터를 암호화하고 수신자가 복호화 키를 사용하여 그것을 복호화함으로써 이루어진다. 대칭키(symmetric key) 암호학에서 암호화 키와 복호화 키는 같으나, 공개키(public key) 암호학에서 암호화 키와 복호화 키는 상이하다.
암호 알고리즘의 유형들
암호 알고리즘은 전형적으로 공개키와 비밀키 알고리즘으로 분류된다. 비밀키 알고리즘에서 키들은 비밀이지만, 공개키에서는 키들 중 하나는 일반 대중에 공지되어 있다. 블록 암호(block cipher)가 오늘날 사용되는 비밀키 암호 시스템을 대표한다. 블록 암호는 예를 들어 32-128 비트(bit)인, 하나의 데이터 블록을 입력 데이터로써 취하고, 같은 숫자의 비트를 출력 데이터로 생성한다. 암호화 및 복호화 작업은, 전형적으로 56 내지 128 비트 범위의 길이를 가진, 키를 사용하여 수행된다. 암호 알고리즘은 키의 정확한 값을 알지 않고서는 메시지를 복호화하는 것이 매우 어렵도록 설계된다.
블록 암호에 부가하여, 인터넷 보안 프로토콜은 공개키에 기초한 알고리즘에도 의존한다. 포그(Pogue)와 리베스트(Rivest)에 수여된 미국 특허번호 제 5,144,667호에 개시된 리베스트, 샤미르, 아델만(Rivest, Shamir, Adelman; RSA) 암호 시스템과 같은 공개키 암호 시스템은 두 개의 키를 사용하는데, 그 중 하나는 비밀 - 프라이빗(private) - 이고, 다른 하나는 공개적으로 이용할 수 있는 것이다. 일단 누군가가 공개키를 공개하면, 누구든지 그 사람에게 그 공개키를 사용하여 암호화된 비밀 메시지를 보낼 수 있다. 그러나, 상기 메시지의 복호화는 비밀키를 사용해야만 이루어질 수 있다. 이런 공개키 암호의 장점은 비밀키가 사전에 대화 상대 모두에게 배포되지 않아도 된다는 것이다. 반면에, 대칭 암호가 사용될 때에는, 메시지를 받도록 예정된 각 대화 상대에 대해 하나씩, 여러 개의 비밀키가 생성되고 비밀키는 비밀리에 전달된다. 안전한 방식으로 비밀키를 배포하기 위한 시도는 비밀키 암호만을 사용하여 메시지를 보낼 때 직면하는 것과 유사한 문제를 초래하며, 이는 전형적으로 키 분배 문제로 언급된다.
키 교환은 공개키 기술의 또 다른 응용이다. 키 교환 프로토콜에서, 두 상대방은 그들의 대화가 제3자에 의해 가로채여질 때조차도 비밀키에 동의할 수 있다. 미국 특허번호 제4,200,770호에서 개시된, 디피-헬먼(Diffie-Hellman) 지수(exponential) 키 교환 방법은 그러한 프로토콜의 예이다.
RSA 및 디피-헬먼 키 교환과 같은, 대부분의 공개키 알고리즘은, 모듈러 멱승(modular exponentiation)에 기초되어 있는데, 그것은 αx의 모드(mod) p의 계산이다. 이 표현은 "α를 x번 곱하고, 그 결과를 p로 나누고 그 나머지를 취하는 것"을 의미한다. 이 작업을 수행하기 위해서는 많은 곱셈 작업과 나눗셈 작업이 요구되기 때문에 이 수식을 수행하기는 매우 힘들다. 1985년 4월의 Mathematics of Computation Vol. 44, No. 170의 "시험적인 나눗셈 없는 모듈러 곱셈"에 개시된 몽고메리(Montgomery)의 방법과 같은 기술은, 필요한 나눗셈의 수를 감소시킬 수 있지만 전반적인 계산의 어려움을 극복하지는 못한다. 또한, 현대 암호 시스템에서 사용되는 숫자는 매우 커서(전형적으로 1024 비트 이상), 통상적인 CPU에서 제공되는 곱셈과 나눗셈 명령은 직접 사용될 수도 없다. 대신에, CPU 상에서 수행될 수 있도록 큰 곱셈 작업과 나눗셈 작업을 작은 작업으로 감소시킨 특별한 알고리즘이 사용된다. 이 알고리즘들은 일반적으로 포함된 기계 워드의 개수의 제곱에 비례하는 런 타임(run time)을 가진다. 이런 요소들이 매우 느린 동작인 큰 숫자들의 곱셈이 되도록 한다. 예를 들어, 펜티엄 프로세서는 32x32 비트의 곱셈을 10 클록 사이클에 수행할 수 있다. 2048 비트 숫자는 64개의 32 비트 워드로 표현할 수 있다. 2048x2048 비트 곱셈은 64x64를 32x32비트 곱셈 작업으로 분리할 것을 요구하고, 그것은 펜티엄 프로세서 상에서 다른 파이프라인(pipeline) 프로세스가 수행되지 않는다고 가정할 때 40960 클록을 필요로 한다. 2048 비트 멱지수를 가진 멱지수법은 만일 직접적인 방식으로 행해진다면 4096 곱셈 작업까지 요구하고, 약 1억 6천 7백만 클록 사이클을 요구한다. 만일 펜티엄 프로세서가 166MHz로 작동한다면, 전체 작업은 대강 1초를 요구한다. 물론, 나눗셈 작업은 전체 계산 시간에 추가 시간을 요구한다. 분명히, 펜티엄과 같은 일반 CPU는 어떠한 높은 속도로 키를 생성하고 교환하는 것을 기대할 수 없다.
공개키 알고리즘은 너무 계산 집약적이기 때문에, 전형적으로 전체 메시지를 암호화하는데에는 사용될 수 없다. 대신에, 비밀키 암호 시스템이 메시지 전송을 위해 사용된다. 메시지를 암호화하기 위해 사용된, 이른바 세션(session) 키로 불리는, 비밀키는 무작위로 선택되고 공개키를 사용하여 암호화된다. 그 후 상기 세션키와 암호화된 메시지는 상대방에게 보내진다. 상대방이 세션키를 복호화하기 위해 비밀키를 사용하며, 그 후 상기 메시지는 세션키를 사용하여 복호화된다. 여러 가지 세션키가 각각의 통신을 위해 사용되며, 만약 언제든 세션키의 보안이 깨진다면, 그것으로 암호화된 메시지만 접근할 수 있도록 하기 위함이다. 또한, 공개키/비밀키 방법은, 정상 동작 중에는 종료하지 않는 또는 연장된 기간 동안 계속하는 쌍방향 터미널 세션과 같은, 통신 중인 연속적인 데이터 스트림(stream)을 보호하는데 유용하다. 이 경우에, 세션키는 키 교환 기술을 반복함으로써 주기적으로 바뀌는 것이 바람직하다. 또한, 세션키의 빠른 교환은 세션키의 보안이 깨졌을 경우에 손상되는 데이터의 양을 제한한다.
암호화 디바이스
소프트웨어-기반의 솔루션(solution)을 사용하여 회사 네트워크에 접근을 허용하는, 네트워크-레벨의 암호화 디바이스가 광범위하게 사용되고 있다. 제품들은 통상적으로 전적으로 소프트웨어에서 암호화를 수행한다. 소프트웨어 복잡성과 프로세서 속도는 그러한 시스템의 처리량을 제한한다. 또한, 공개키 기술을 사용한 세션키 생성은 시간을 소비하는 작업이며 따라서 필요할 때만 수행된다. 소프트웨어는 소프트웨어를 통해 구현된 암호화 알고리즘의 수정 및 업데이트가 쉽다는 등의 장점이 있다.
다른 이용가능한 디바이스는 암호를 제공하기 위해 하드웨어 및 소프트 웨어의 결합을 허용한다. 예를 들어, 엔트러스트 센티넬(Entrust Sentinel) x.25 암호화 제품은 DES(데이터 암호 표준, data encryption standard) 대칭-키 암호화를 수행하기 위해 AMD에 의해 생산된 DES 칩을 사용한다. DES 알고리즘의 하드웨어 실행은 소프트웨어 실행보다 훨씬 더 빠르며, 이는 DES가 하드웨어에서 효율적으로 실행하도록 설계되었고 전용 하드웨어 솔루션이 더 효율적이라고 알려졌기 때문이다. 소프트웨어의 실행시 범용 프로세서 상에 많은 중앙 처리 장치(CPU) 명령을 차지하는 치환(transposition)은, 병렬 전용 룩업 테이블(parallel special-purpose lookup table)을 사용하여 행해진다.
또한 센티넬은 공개키 작업을 수행하기 위해 모토롤라 DSP5600 프로세서도 사용한다. 설계될 때, DSP(digital signal processor)에 의한 단일-사이클 곱셈 지원은 이 프로세서를 통상적인 CISC(complex instruction set computer) 마이크로프로세서보다 더욱 빠르게 만들었다.
대부분의 하드웨어 암호화 디바이스는 이들이 지원하는 알고리즘의 개수에 있어서 매우 제한되어 있다. 예를 들어, 센티넬에서 사용된 AMD 칩은 단지 DES만을 수행한다. Hi/Fn의 최근 디바이스들은 DES 및 RC4를 수행할 수 있다. 그러나, RC5 및 IDEA와 같은 다른 표준 알고리즘은 또 다른 제품의 사용을 필요로 한다.
본 발명은 다중 프로세서에서 데이터 암호를 제공한다. (상기 암호라는 용어는 암호화 및 복호화 모두를 포함하는 것으로 사용된다.) 본 발명의 실시예에서, 수신된 데이터 패킷은 패킷에 수행될 프로세스를 식별하는 제어 데이터를 포함하도록 수정된다. 연속적인 프로세서에서, 제어 데이터에 의해 식별된, 암호화 프로세스를 포함하는 프로세스가 수행된다.
데이터 패킷 암호 시스템은 제어 데이터를 포함하기 위해 수신된 패킷을 수정하는, 예컨대, 마스터 프로세서와 같은, 제어 프로세스를 포함할 수 있으며, 제어 데이터는 패킷에 수행될 프로세스를 식별한다. 복수의 프로세서들은 제어 데이터에 의해 식별된, 암호화 프로세스를 포함하는 프로세스를 수행한다. 상기 시스템은, 패킷 내의 제어 데이터에 응답하여 제어 데이터를 포함한 패킷을 프로세서에서 프로세서로 전달(forward)하는 상호접속부(interconnection)를 포함할 수 있다. 그 후 프로세싱된 패킷은 제어 데이터 없이, 예를 들어 인터넷으로 전달된다.
상호접속부는 버퍼 컨트롤러(buffer controller)를 구비한 패킷 버퍼를 포함할 수 있다. 버퍼 컨트롤러는 복수의 프로세서 중에서 데이터 패킷을 프로세싱할 다음 프로세서를 결정한다. 버퍼 컨트롤러는 프로세서 리소스(processor resource) 이용가능성(availability)에 대한 정보를 유지하는 리소스 매니저(resource manager)를 포함할 수 있다.
제어 데이터는 적어도 하나의 프로세서에서 프로세싱될 코드를 포함할 수 있고, 또한 암호화 키 또는 인증 키를 포함할 수 있다. 또한 개별 프로세서는 결과 데이터를 제어 데이터에 추가할 수 있다.
프로세서들은 IP 헤더(header) 조작(manipulation), 암호화 및 인증을 포함한 IPSEC 프로토콜 프로세싱을 수행할 수 있다. 또한 SSL 프로토콜 프로세스들과 같은 다른 프로세스들도 수행될 수 있다.
특정 실시예에 따르면, 데이터를 프로세싱하기 위한 데이터 프로세서가 제공되고, 데이터 프로세서는, 데이터 패킷들을 수신하기 위한 입력 포트; 복수의 프로세서 각각과 통신하기 위한 적어도 하나의 포트; 데이터 패킷에 수행할 프로세스들의 리스트 및 이들의 순서를 포함하는 헤더를 제공하기 위해서 수신된 데이터를 프로세싱하기 위한, 상기 적어도 하나의 포트와 통신하는 제 1 프로세서 - 상기 헤더는 상기 헤더와 관련된 데이터 패킷 내에 저장됨 - ; 상기 적어도 하나의 포트로부터 수신된 데이터를 저장하기 위한 버퍼; 및 패킷 내의 상기 헤더를 기초로 상기 복수의 프로세서 중에서 상기 데이터 패킷을 프로세싱할 다음 프로세서를 결정하고, 상기 다음 프로세서로 공급(provision)하기 위한 적어도 하나의 포트에 상기 데이터 패킷을 제공하기 위한 데이터 컨트롤러를 포함한다.
본 발명의 특정 실시예에 따르면, 데이터를 프로세싱하기 위한 데이터 프로세서가 제공되고, 데이터 프로세서는, 데이터를 저장하기 위한 버퍼; 복수의 전용 프로세서 - 이들 각각은 상기 버퍼 내로부터의 데이터를 프로세싱함 - ; 및 상기 전용 프로세서 중에서 상기 데이터를 프로세싱할 다음 프로세서를 결정하고, 상기 데이터를 상기 결정된 다음 프로세서에 제공하기 위한, 각각의 전용 프로세서와 통신하는 버퍼 컨트롤러를 포함한다.
특정 실시예에 따르면, 데이터 패킷을 프로세싱하기 위한 데이터 프로세서가 제공되는데, 데이터 프로세서는, 어드레싱(addressing) 네트워크; 복수의 전용 프로세서 - 각각의 전용 프로세서는 상기 어드레싱 네트워크를 통해 수신된 데이터 패킷을 프로세싱하고, 상기 프로세싱된 데이터 패킷을 상기 어드레싱 네트워크에 제공하며, 상기 어드레싱 네트워크는 상기 복수의 전용 프로세서들을 상호접속함 - ; 및 라우팅 데이터를 상기 데이터 패킷에 제공하기 위한 제 1 프로세서 - 상기 라우팅 데이터는 상기 데이터 패킷과 관련되며, 상기 데이터 패킷을 상기 어드레싱 네트워크를 통해 미리 결정된 순서로 차례로 상기 복수의 프로세서에 송신하는데 사용됨 - 를 포함하며, 여기서 데이터 패킷들은 상기 상이한 라우팅 데이터에 의한 상이한 순서로 상기 어드레싱 네트워크를 통해 송신되며, 각각의 전용 프로세서는 전체 하이 레벨 패킷 프로세싱 동작에 대한 지식 없이 기능을 수행하기 위한 것이다.
본 발명의 다른 측면에 따르면, 스트림 데이터를 프로세싱하기 위한 방법이 제공되는데, 상기 방법은,
입력 포트에서 데이터 패킷들을 포함한 스트림 데이터를 수신하는 단계;
수신된 데이터 패킷들을 프로세싱하는 단계로서, 각각의 데이터 패킷에 상기 패킷에 수행할 프로세스들의 리스트와 이들의 순서를 포함한 헤더를 제공하기 위해서 상기 수신된 데이터 패킷들을 프로세싱하는 단계 - 상기 헤더는 상기 헤더와 관련된 상기 패킷 내에 저장됨 - ;
상기 관련된 헤더를 구비한 상기 패킷을 저장을 위한 버퍼에 제공하는 단계;
상기 버퍼 내의 각각의 패킷에 대해서,
상기 패킷 내의 상기 헤더를 기초로 상기 패킷을 프로세싱할 다음 프로세서를 결정하는 단계;
프로세싱을 위해 상기 결정된 다음 프로세서에 상기 패킷을 제공하는 단계;
상기 프로세서로부터 상기 프로세싱된 패킷을 수신하여, 상기 프로세싱된 패킷을 상기 버퍼에 저장하는 단계 - 상기 저장된 패킷은 상기 다음 프로세서에 의한 상기 프로세싱이 완료되었다는 지시 및 상기 다음 프로세서에 의한 어떠한 프로세싱도 요구되지 않는다는 지시 중 하나를 포함함 - ; 및
패킷의 헤더에 추가 프로세스가 없다는 것이 지시될 때, 상기 패킷을 출력 포트에 제공하는 단계를 포함한다.
본 발명의 또 다른 측면에 따르면, 데이트를 프로세싱하기 위한 아키텍쳐를 제공하며, 상기 아키텍쳐는
데이터를 수신하고 이용가능한 프로세스로부터 선택된 프로세스들의 리스트 - 상기 프로세스들의 리스트는 상기 데이터에 수행될 프로세스들의 리스트임 - 와 이들의 순서로 상기 데이터를 포맷팅(formatting)하기 위한 제 1 프로세싱 엘리먼트;
상기 이용가능한 프로세스로부터 적어도 하나의 프로세스를 수행하기 위한 추가 프로세서; 및
상기 리스트된 프로세스들의 상기 순서에 따라서 상기 프로세스들을 수행하기 위한 프로세서들에 데이터를 제공하기 위한 라우팅 메모리(routing memory)를 포함한다.
도 1은 데이터 프로세싱을 위한 파이프라인 프로세서의 종래기술 블록도이다.
도 2는 도 1의 파이프라인 프로세서를 사용하여 패킷을 프로세싱하기 위한 방법의 단순화된 흐름도이다.
도 3은 본 발명의 일 실시예의 단순화된 아키텍처 도이다.
도 4는 본 발명에 따른 방법의 단순화된 흐름도이다.
도 5는 본 발명에 따른 프로세서 아키텍처의 단순화된 블록도이다.
도 6은 슈퍼 패킷에 대한 데이터 구조도이다.
도 7은 본 발명에 따른 프로세서 아키텍처의 단순화된 블록도이다.
도 8은 본 발명에 따른 프로세서 아키텍처의 단순화된 블록도이다.
도 9a 내지 9d는 슈퍼 패킷에 수행되는 프로세싱 동작의 전체에 걸친 슈퍼 패킷에 대한 데이터 구조도이다.
도 10은 본 발명에 따른 아키텍처로 사용하기 위한 프로세서 어레이(processor array)의 단순화된 블록도이다.
이하에서 도면을 참조하여 본 발명의 바람직한 실시예를 서술할 것이다.
데이터 프로세싱에서, 데이터는 보통 패킷(packet)이라 불리는 형태로 수신되는 것이 일반적이다. 패킷은 내용(content) 데이터와 분류(classification) 데이터를 포함한 데이터의 작은 세트(set)이다. 분류 데이터는 하나 이상의 포맷(format) 데이터, 라우팅(routing) 데이터, 데이터 타입 정보, 데이터 분류, 패킷 그룹핑(grouping) 데이터 등을 포함한다.
각각의 패킷이 수신되면, 데이터의 그러한 분류에 관한 요구에 따라서 데이터에 작용하도록, 패킷의 분류 데이터에 따라서 처리된다.
이제 종래 기술에 따른 패킷 분류와 프로세싱에 관한 실시예가 도 1과 도 2를 참조하여 서술된다. 도 1에서 직렬 파이프라인 프로세서의 단순화된 블록도가 도시된다. 프로세서는 데이터 입력 포트(12)에서 일렬로 수신된 데이터를 프로세싱하기 위한 단일 파이프라인 경로(10)를 구비하는 것으로 도시된다. 데이터는 파이프라인(14)의 제 1 단계에서 분류된다. 그 후 분류된 데이터는 어드레스 라인(address line; 16)들을 통해 적합한 다음 파이프라인 단계로 라우팅 된다. 다음 파이프라인 단계들의 예시는 암호 프로세싱(cipher processing), 라우팅 프로세서 등을 포함한다.
도 2를 참조하면, 입력 포트(12)에서 수신된 패킷에 대한 패킷 프로세싱의 단순화된 흐름도가 도시된다. 패킷은 20에서 수신된다. 패킷은 패킷 포맷을 결정하기 위해서 프로세서(22)에서 분류된다. 여기서, 상기 포맷은 암호화되고, 그 후 암호화된 패킷 데이터는 복호화를 위해 암호 프로세서(ciper processor; 24)에 제공된다. 일단 복호화되면, 평문(plain text)은 데이터 버퍼(26)에 저장되고, 데이터 버퍼에서 목적 프로세스(28)로 전송되며, 목적 프로세스(28)는 예컨대 PC의 통신 포트로 전송되기 위해서 데이터를 재포맷팅(reformat)한다.
도 1과 도 2의 패킷 프로세서는 효율적이고, 특정 태스크(task)를 수행하기에 통상적으로 최적화된 병렬 하드웨어 기반 프로세서를 이용함에도 불구하고, 상기 프로세서 아키텍처는 매우 유연(flexible)하지 못하다. 각각의 파이프라인 단계는 부분적으로 프로세싱된 패킷을 송신(direct)하기 위해서 바로 다음의 파이프라인 단계들에 대한 모든 지식을 필요로 한다. 또한, 일부 파이프라인 단계들은 완전히 이용되지만, 다른 단계들은 완전히 이용되지 않는다. 그래서 효율성이 떨어진다. 마지막으로 각각의 패킷은 패킷들이 처리될 필요가 없을 때 처리되지 않는 것을 보장하기 위한 소정의 단순 스위칭을 가지고서 동일한 경로를 따른다.
도 3을 참조하면, 본 발명의 일 실시예의 단순화된 아키텍처 다이어그램이 도시된다. 여기서, 버퍼 컨트롤러(31)를 구비한 데이터 버퍼(30)가 패킷 프로세서의 중심에 배치되는 것으로 도시된다. 버퍼는 패킷을 저장하고 프로세서 사이의 상호접속부로써 기능한다. 버퍼 컨트롤러는 버퍼에 저장된 패킷들의 이용가능한 프로세서로의 전송을 제어하며, 도시된 바와 같이 별개의 프로세서일 수 있거나, 또는 버퍼를 통해 분배될 수도 있다. 수신된 패킷은 제일 먼저, 마스터(master) 프로세서(32)로 전달(forward) 되며, 마스터 프로세서(32)는 각각의 패킷을 포맷팅 하여, 상기 패킷을 프로세싱할 필요가 있는 프로세스를 지시하는 헤더를 상기 패킷 내에 삽입시킨다. 마스터 프로세서는 프로그램될 수 있고, 하이(hi) 레벨에서 패킷들의 프로세싱을 이해한다. 패킷이 재포맷팅 된 후, 데이터 버퍼로 반환되고, 패킷은 데이터 버퍼로부터 첫째로 리스팅된 기능을 수행하기 위한 프로세싱 엘리먼트(34)로 라우팅 된다. 예를 들어, 도 2의 실시예에서 제 1 기능은 패킷의 포맷을 결정하는 것이다. 패킷 포맷이 결정되고, 각각의 결정된 포맷에 대해 여러 가능한 기능들이 헤더의 리스트에 추가되거나 리스트에서 제거될 수 있다. 예를 들어, 암호화된 패킷은 일부 형태의 키 식별자(key identifier)와 함께 암호 기능이 패킷에 추가될 수 있다. 그 후 키 식별자와 패킷은 버퍼로부터 암호 프로세서에 제공된다. 암호 버퍼에서 패킷은 복호화되고 복호화된 패킷은 버퍼로 반환된다. 버퍼는 추가 기능이 헤더 내에 남아있는 한 프로세서에 패킷 제공을 계속한다. 헤더가 비게 되면, 상기 패킷은, 예를 들어 수신된 데이터 버퍼 내에, 저장을 위해 출력 포트(36)로 전송된다. 택일적으로 마지막 기능은 데이터의 데이터 출력 포트(38)로의 제공을 지시한다.
도 3의 중앙 데이터 버퍼로 인해, 프로세서의 타입과 수를 쉽게 변경, 업그레이드, 확장할 수 있다. 새로운 기능이 지원될 때마다, 마스터 프로세서는 새로운 기능과 프로세스를 리스팅 하기에 적합한 패킷을 알기 위해 재프로그램된다.
유익하게도, 마스터 프로세서만이 헤더 내에 기능을 삽입한다. 따라서, 오직 마스터 프로세서만이 패킷 프로세싱에 관한 데이터를 캡쳐(capture)할 필요가 있으며, 프로세싱 방법이나 성능이 변경되었을 때 오직 마스터 프로세서만이 재프로그래밍을 필요로 한다.
도 4를 참조하면, 본 발명에 따른 방법의 단순화된 흐름도가 도시된다. 여기서, 패킷은 수신된다. 마스터 프로세서(32)는 분류, 암호 프로세싱, 패킷 결합, 및 결합된 데이터를 데이터 출력 포트에 제공하는 것을 지시하는 헤더를 삽입한다. 그 후 버퍼는 포맷팅된 패킷을 수신하고 그것을 분류 프로세서(34)에 제공하며, 분류 프로세서(34)는 패킷 내의 분류 데이터를 제거하여 알려진 분류 코드로 대체한다. 그 후 패킷은 버퍼에 반환된다. 상기 반환된 패킷은, 헤더에서 기능을 제거하거나, 기능을 완료된 것으로 지시함으로써, 패킷에서 제거된 분류 단계를 갖는다. 그 후 분류된 패킷은 암호화를 위한, 동일하거나 상이한 프로세서(34)에 제공된다. 상기 암호 프로세서는 패킷 데이터를 복호화하고 암호화되지 않은 평문(clear text) 패킷을 버퍼에 반환한다. 이제 평문 패킷은 결합 프로세서(34)에 제공되며, 결합 프로세서(34)는 패킷이 단편화된 더 큰 패킷의 일부인지 결정하고, 패킷을 결합기(combiner) 내에 이미 존재하는 더 큰 패킷의 다른 단편들과 결합시키기 위해 패킷 분류 정보를 검출한다. 더 큰 패킷이 완성되면, 이는 버퍼에 반환되고, 출력 데이터 포트(38)에 제공된다.
당업자에게 자명하다시피, 상기와 같은 아키텍처의 사용은 프로세서 능력, 프로그래밍, 및 파워를 업데이트하는 것을 매우 용이하게 한다. 예를 들어, 새로운 암호 프로세서가 쉽게 부가된다. 새로운 리소스(resource)가 암호 프로세서로 버퍼에 식별되어, 버퍼가 새로운 프로세서에 요구되는 암호 기능을 구비한 패킷들을 전송할 수 있게 한다. 유사하게, 분류 프로세서는 프로세서 시스템의 나머지에 영향을 주지 않고 업그레이드되거나 변경될 수 있다.
또한, 도 3에 따른 코어(core) 프로세서는 버퍼와 마스터 프로세서를 포함한다. 마스터 프로세서는 업그레이드 가능하고 유동적인 패킷 프로세싱을 허용하도록 프로그램될 수 있다. 버퍼는 복수의 다른 전용 프로세서를 인식하고 인터페이스 할 수 있다. 물론, 필요하다면, 전용 프로세서들은 동일한 집적 프로세서 내에 포함된다.
도 5를 참조하면, 본 발명에 따른 다른 프로세서의 단순화된 아키텍쳐 다이어그램이 도시된다. 슈퍼 패킷 버퍼(51)는 복수의 데이터 엘리먼트(52)와 통신한다. 데이터 엘리먼트(52)들은 슈퍼 패킷 버퍼(51)에 데이터를 제공하고 슈퍼 패킷 버퍼(51)로부터 데이터를 수신하기 위한 것이다. 데이터 엘리먼트(D1)가 데이터를 제공하고, 데이터 엘리먼트(D2)가 데이터를 수신하는 것으로 도시되지만, 선택적으로 데이터 엘리먼트(52)들은 슈퍼 패킷 버퍼(SPB)(51)와의 쌍방향 통신을 지원한다.
또한 SPB는 복수의 프로세서와 통신한다. 프로세서(53)들은 데이터 패킷에 요구된 추가 프로세싱의 결정을 포함하는 데이터 프로세싱을 제공한다. 프로세서(54)들은 클라이언트 프로세서들로 언급되며, 수신된 패킷들에 데이터 프로세싱을 수행한다. 통상적으로 클라이언트 프로세서(54)는, 완비되고 독립적으로 패킷에 수행될 수 있는 단일 형태의 프로세싱에 전속된다. 암호 프로세싱은 일종의 상기와 같은 프로세스이다. 따라서, DES 암호화 엔진은 통상적으로 데이터를 수신하고, 데이터를 암호화하고, 암호화된 데이터를 SPB에 반환하기 위한 클라이언트 프로세서를 형성한다.
각각의 통신 포트는 통상적으로 SPB(51) 내에서 실행하는 드라이버 프로세스(driver process)에 의해 제어된다. 예를 들어, DES 암호화 엔진을 위한 드라이버 프로세스는, 통상적으로 패킷으로부터 헤더를 제거하고, 데이터를 키 또는 키 식별자 형태인 키 데이터와 함께 프로세서에 의해 암호화되도록 제공한다. 그 후 DES 프로세서는 데이터를 프로세싱하고 프로세싱된 데이터를 드라이버 프로세스에 반환하며, 드라이버 프로세서는 헤더 데이터를 재삽입하고, DES 프로세싱을 완료된 것으로 지시하고, 패킷을 다시 SPB(51)에 전송한다. 드라이버 프로세스들의 사용은 전용 태스크를 수행하기 위한 비-전용 프로세싱 엘리먼트 - 레거시(legacy) 프로세서 - 들의 사용을 허용한다. 또한 드라이버 프로세스의 사용은 시스템 유지 능력과 업그레이드 능력을 보장한다.
도 6을 참조하면, 예시적인 슈퍼 패킷 데이터 구조가 도시된다. 슈퍼 패킷은 헤더, 동작들의 순차 리스트, 동작들에 관한 데이터, 키 데이터, 및 패킷 데이터를 포함한다. 헤더는 슈퍼 패킷을 식별하고 이를 추적하는데 사용되는 데이터를 제공한다. 선택적으로, 헤더는 성능 감시, 디버깅(debugging), 보안 검사(audit), 및 로그가 유용한 다른 기능들에 사용되기 위한 검사 정보(auditing information)를 포함한다.
제어 엔트리(control entry)들은 데이터 버퍼 내의 데이터에 요구되는 프로세스, 즉 기능들의 리스트를 포함한다. 일반적으로 이러한 프로세스들은 일반적인 양식으로 리스트 되어, 슈퍼 패킷 버퍼가 슈퍼 패킷을 상기 기능을 수행하기 위한 다수의 이용가능한 프로세서들 중 임의의 프로세서로 라우팅시킨다. 일부 기능들은 데이터를 요구하며, 이러한 데이터는 각각의 기능 식별자에 뒤이어 저장되거나 또는 슈퍼 패킷 내의 필드(field)들의 개별 세트 내에 저장된다. 예를 들어, 암호 프로세서는 수행할 암호화/복호화에 대한 지시를 요구할 수 있다. 또한 시스템 패킷 헤더는 프로세서에서 프로세싱되기 위해 마이크로코드(microcode)를 포함할 수 있다. 택일적으로, 개별 프로세서에 의해 요구되는 상기 코드의 모두 또는 일부는, 프로세서들에 상주하거나 프로세서들에 접근할 수 있다. 키 데이터는 필드들의 다음 세트에 저장되고, 통상적으로 실제 슈퍼 패킷들 내에 저장하는 대신에 식별자에 의해 키들을 식별한다. 마지막으로, 프로세싱될 데이터는 슈퍼 패킷 내에 포함된다.
도 7을 참조하면, 본 발명의 다른 실시예의 아키텍처 다이어그램이 도시된다. 여기서, 버퍼 컨트롤러는 프로세서 리소스 이용가능성 등에 대한 정보를 유지하는 리소스 매니저(71)를 포함하고, 슈퍼 패킷 버퍼(51) 내에서 실행하는 분산형 에이전트(distributed agent; 72)들은 이들의 헤더에 따라 슈퍼 패킷들을 프로세서(75)들에 제공하도록 작동한다. 클라이언트 특정 에이전트(73)들은 드라이버 프로세서의 일부로써 기능하고 클라이언트(75)에 의해 적절하게 프로세싱될 데이터를 결정하기 위해 에이전트(72)들과 통신한다. 클라이언트(75)가 결정되면, 드라이버 프로세스(74)의 나머지는 클라이언트(75)에 의해 수신되기 위해 데이터를 포맷팅 한다.
도 8을 참조하면, 인터넷 프로토콜 보안(IPSEC) 프로세싱을 지원하는데 사용되는 프로세서의 단순화된 아키텍처 다이어그램이 도시된다. 본 발명에 따른 아키텍처를 구비한 프로세서를 달성한 데이터의 프로세스가 도 9a - 도 9d에서 도시된다. 데이터 엘리먼트(81)는, 데이터 슈퍼 패킷 형태인 데이터를 슈퍼 패킷 버퍼(51)에 제공하기 전에, 데이터의 진입(ingress) 프로세싱(1)을 수행한다. 데이터 슈퍼 패킷은 단일 프로세스 - 데이터 패킷을 프로세싱하기 위한 서버 프로세서(82) - 를 나타내는 헤더를 포함한다. 그 후 슈퍼 패킷은 IPSEC 서버(82)에 제공되며, 여기서 슈퍼 패킷은 적절한 프로세싱을 더욱 잘 나타내는 슈퍼 패킷으로 (2)에서 변환된다. 구체적으로, 수행될 프로세스들을 식별하는 제어 데이터 엘리먼트들 및, 아마도, 제어 마이크로코드 및 키들이, 패킷에 부가된다. 상기 IPSEC 서버(82)는 각각의 인입(incoming) 데이터 패킷에 수행될 전체 프로세스에 대한 지식을 갖는 유일한 프로세서이다. 다른 모든 프로세서들은 어떻게 전체적인 구성(scheme)에 적합한지에 대한 지식 없이 이들의 단일 기능을 수행한다. 다양한 프로세서들이 범용 프로세서들 또는 전용 프로세서들로 프로그램될 수 있다.
슈퍼 패킷은 서버 프로세서(82)에서 슈퍼 패킷 버퍼(51)로 반환된다. 일단, 제어(2)에 응답하여, 슈퍼 패킷은 IP 헤더 조작(3)을 위한 클라이언트 프로세서에 제공된다. 상기 프로세스의 결과로, 슈퍼 패킷 내의 데이터는 IP 헤더 정보 및 입호화된 보안 페이로드(ESP; encapsulated security payload) 헤더 정보와 함께 (90)에서 도시된다(도 9b). 그 후 프로세서 즉, 제어(2)는 수행된 것으로 표시되고, 슈퍼 패킷은 슈퍼 패킷 버퍼(51)로 반환된다. 다음 프로세스(4)는 제어(3), 3 DES 암호화에 의해 지시된 프로세스이다. 클라이언트(84)는 이러한 기능을 제공한다. 슈퍼 패킷은 클라이언트(84)에 제공되며, 도 9b의 (92)에서 도시된 것과 같이 여기서 암호화가 수행되고 기능 제어(3)가 수행된 것으로 표시된다. 수행될 다음 기능(5)은 HMAC96-MD5 인증이다. 클라이언트(85)가 이 기능을 수행한다. 슈퍼 패킷이 클라리언트(85)에 제공되며, 도 9c의 (94)에서 도시된 것과 같이 여기서 해쉬드 메시지 인증 코드(HMAC; Hashed Message Authentication Code)가 버퍼 내의 데이터에 부가된다. 슈퍼 패킷이 슈퍼 패킷 버퍼(51)로 반환되면, 상기 기능이 수행된 것으로 표시된다.
다음 기능(6)은 제어(5)이며, 이것은 IPSEC 헤더 조작(manipulation)을 필요로 한다. 클라이언트(83)는 이 기능뿐만 아니라 제어(2)의 기능도 수행할 수 있다. 슈퍼 패킷은 도 9c의 (96)에서 도시된 것과 같이 데이터가 재포맷팅 되는 클라이언트(83)에 제공된다. 그리고 다시 기능 제어(5)가 수행된 것으로 표시되고, 슈퍼 패킷은 슈퍼 패킷 버퍼로 반환된다. 마지막으로, 남은 기능은 데이터 엘리먼트(86)에 의해 수행될 이그레스(egress) 프로세싱(7)에 관한 것이며, 이것의 결과는 도 9d의 (98)에서 도시된다. 슈퍼 패킷은 통신을 위한 프로세싱된 데이터 패킷을 남겨두고 이것의 헤더가 제거된다. 선택적으로, 제거된 헤더 정보는 수행(performance)의 실시간 모니터링과 수행(performance) 데이터의 로깅(logging)에 사용하기 위해 서버(82)에 제공된다.
본 기술분야의 당업자에 자명한 바와 같이, 오직 서버에만 전체 프로세스에 관한 데이터가 제공된다. 암호 프로세서 클라이언트(84)를 새 버전의 암호 프로세서로 교체하는 것은 실질적으로 전체 아키텍처나 시스템에 어떤 영향도 없다. 서버(82)가 프로세스를 수행하기 위한 단계를 아는 것이 필요할지라도, 이러한 단계들은 하이(hi) 레벨이며, 서버(82)가 3DES, IP 헤더 조작 또는 HMAC에 관한 어떤 것도 이해할 필요는 없다. 유익하게도, 더 높은 처리량을 얻기 위해 클라이언트 프로세서를 교체하는 대신에, 하나 이상의 단일 태스크용 클라이언트 프로세서를 제공하기 위해, 새로운 클라이언트 프로세서를 시스템에 간단히 부가할 수 있다.
모듈러(modular) 실시예를 참조로 아키텍처가 설명되었지만, 전체 프로세서 아키텍처가 단일 집적 회로 내에서 구현될 수 있다. 집적 회로는 장래의 전용 모듈 및 주문형(application specific) 데이터 프로세싱 클라이언트 모듈을 허용하도록 외부 프로세서들을 위한 인터페이스를 제공하는 것이 바람직하다.
물론, 프로세싱 기능들의 단일 그룹이 동일 순서로 충분히 여러 번 수행된다면, 이런 기능들을 단일 클라이언트 프로세서 내에 그룹화하는 것이 바람직하다. 예를 들어, 암호화는 그룹화된 복수의 개별 기능들이다. 요구되는 IPSEC 패킷 처리량이 요구되는 각 클라이언트 프로세서의 전체 처리량과 같을 때, 파이프라인에 정렬된 동일한 기능의 엘리먼트들을 포함하는 IPSEC 패킷 프로세서는 슈퍼 패킷 버퍼에 대한 클라이언트 프로세서로서 사용되는 것이 바람직하다. 이와 같은 방식으로, SPB 오버헤드(overhead) 중 많은 부분이 제거된다. 물론, 다른 프로세싱 동작을 위해 클라이언트 프로세서들을 사용하는 유연성은 사라지며, 따라서 리소스 사용량이 최대 리소스 사용보다 적을 때, 더 유연한 구조를 유지하는 것이 종종 바람직하다.
택일적으로, 단일 파이프라인 프로세서에는 전체 파이프라인 또는 파이프라인 프로세서의 일부를 형성하는, 덜 활용되는(underutilised) 단일 프로세서에 대한 접근을 제공하기 위한 복수의 입력 포트가 제공된다. 물론, 이러한 실시예는 파이프라인 프로세서에 상당한 복잡도를 추가하므로, 전술된 개별 클라이언트 프로세서 또는 전용 기능 파이프라인 프로세서를 사용하는 것보다 덜 바람직한 것으로 여겨진다.
도 10에서 도시된 것과 같은 본 발명의 다른 실시예에 따르면, 많은 프로세서가 네트워크에 상호접속된다. 서버 프로세서(100)는 프로세서들의 어레이(102) 내에서 슈퍼 패킷을 스위칭하는데 사용하기 위한 스위칭 정보를 슈퍼 패킷의 제어 데이터 내에 저장한다. 패킷은 서버 프로세서(100)에서 프로세싱을 위한 제 1 프로세서(102)로 송신(direct)된다. 헤더와 패킷 데이터는 데이터의 프로세싱에 영향을 미치지 않기 위해 분리된다. 데이터가 프로세싱되면, 헤더 데이터는 출력 어드레싱 스위치에 제공되고, 슈퍼 패킷 데이터는 슈도 파이프라인 방식(pseudo pipelined fashion)으로 다음 프로세싱 엘리먼트로 자동으로 라우팅 된다. 상호접속 라인과 출력 스위치는 이전 실시예들의 패킷 버퍼의 상호접속 기능을 제공한다. 이와 같은 실시예는 전체 하드웨어 복잡도를 증가시키면서 유연성, 확장성, 기능성 등을 감소시킨다. 즉, 이와 같은 실시예의 성능은 전술된 더 유연한 아키텍처보다 더 우수하며, 많은 어플리케이션에서 유연성의 부족 등은 큰 단점으로 여겨지지 않는다.
택일적으로, 슈퍼 패킷이 개별 프로세스들에 관한 데이터를 포함하기 때문에, 프로세서에서 실행하기 위한 실행 가능 코드를 슈퍼 패킷에 인코딩하는 것이 가능하다. 이와 같은 범용 프로세서가 제공됨에 따라서, 그리고 전용 클라이언트 프로세서들의 범위를 벗어난 기능들이 요구될 때에, 실행 가능 코드와 슈퍼 패킷은 이들의 프로세싱을 위한 범용 프로세서에 제공된다. 추가 택일적으로는, 코드에 대한 포인터(pointer)만이 전체 슈퍼 패킷 크기를 감소시키기 위해 제공된다.
도면들에 따라, 본 발명은 암호화 기능에 특히 잘 적용되고, 여기서 비밀키들은 전체 시스템 보안을 향상시키기 위해 단일 기능 모듈에서 보호된다. 슈퍼 패킷 버퍼는 이러한 모듈들 내에 저장된 비밀키를 위태롭게 하지 않고 이들의 프로세싱을 수행하기 위해서 필수적으로 패킷들을 상이한 모듈들에 송신한다.
본 발명의 사상이나 범위를 벗어남 없이 많은 다른 실시예들을 예견할 수 있을 것이다.

Claims (68)

  1. 데이터 암호화 시스템으로서,
    제어 데이터를 포함하도록 수신된 패킷을 수정하는 제어 프로세서 - 상기 제어 데이터는 상기 패킷에 대해 수행될 프로세스들을 식별함 - ;
    암호화 프로세스를 포함하는, 상기 제어 데이터에 의해 식별되는 프로세스들을 수행하는 복수의 프로세서들;
    상기 패킷 내의 제어 데이터에 응답하여, 상기 제어 데이터를 갖는 상기 패킷을 프로세서에서 프로세서로 전달(forwarding)하는 상호접속부(interconnection); 및
    출력부(output) - 프로세싱된 패킷은 상기 제어 데이터 없이 상기 출력부로부터 전달됨 -
    를 포함하는, 데이터 암호화 시스템.
  2. 제 1항에 있어서,
    상기 상호접속부는, 상기 복수의 프로세서들 중에서 상기 패킷을 프로세싱할 다음 프로세서를 결정하는 버퍼 컨트롤러를 구비한 패킷 버퍼를 포함하는 것을 특징으로 하는 데이터 암호화 시스템.
  3. 제 2항에 있어서,
    상기 버퍼 컨트롤러는, 프로세서 리소스(processor resource) 이용가능성(availability)에 대한 정보를 유지하는 리소스 매니저(resource manager)를 포함하는 것을 특징으로 하는 데이터 암호화 시스템.
  4. 제 1항 내지 제 3항 중 어느 하나의 항에 있어서,
    상기 제어 데이터는 상기 복수의 프로세서들 중 적어도 하나에서 프로세싱될 코드를 포함하는 것을 특징으로 하는 데이터 암호화 시스템.
  5. 제 1항 내지 제 3항 중 어느 하나의 항에 있어서,
    상기 제어 데이터는 암호화 키 또는 인증 키를 더 포함하는 것을 특징으로 하는 데이터 암호화 시스템.
  6. 제 1항 내지 제 3항 중 어느 하나의 항에 있어서,
    상기 복수의 프로세서들은 상기 제어 데이터에 결과 데이터(result data)를 부가하는 프로세서를 포함하는 것을 특징으로 하는 데이터 암호화 시스템.
  7. 제 1항 내지 제 3항 중 어느 하나의 항에 있어서,
    상기 복수의 프로세서들은 IPSEC 프로토콜 프로세싱을 수행하는 것을 특징으로 하는 데이터 암호화 시스템.
  8. 제 1항 내지 제 3항 중 어느 하나의 항에 있어서,
    상기 복수의 프로세서들은 IP 헤더 조작(manipulation) 및 암호화를 수행하는 프로세서를 포함하는 것을 특징으로 하는 데이터 암호화 시스템.
  9. 제 1항 내지 제 3항 중 어느 하나의 항에 있어서,
    상기 복수의 프로세서들은 인증 프로세싱을 수행하는 프로세서를 포함하는 것을 특징으로 하는 데이터 암호화 시스템.
  10. 데이터 패킷 암호화 방법으로서,
    제어 데이터를 포함하도록 수신된 패킷을 수정하는 단계 - 상기 제어 데이터는 상기 패킷에 대해 수행될 프로세스들을 식별함 - ; 및
    연속하는 복수의 프로세서들에서, 상기 제어 데이터에 의해 식별된, 암호화 프로세스를 포함하는 프로세스들을 수행하는 단계
    를 포함하는, 데이터 패킷 암호화 방법.
  11. 제 10항에 있어서,
    상기 패킷은 상기 패킷 내의 제어 데이터에 응답하는 상호접속부를 통해 프로세서에서 프로세서로 전달되는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  12. 제 11항에 있어서,
    상기 상호접속부는, 상기 복수의 프로세서들 중에서 상기 패킷을 프로세싱할 다음 프로세서를 결정하는 버퍼 컨트롤러를 포함하는 패킷 버퍼를 포함하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  13. 제 12항에 있어서,
    상기 버퍼 컨트롤러는 프로세서 리소스 이용가능성에 대한 정보를 유지하는 리소스 매니저를 포함하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  14. 제 10항 내지 제 13항 중 어느 하나의 항에 있어서,
    상기 제어 데이터는 상기 프로세서들 중 적어도 하나에서 프로세싱될 코드를 포함하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  15. 제 10항 내지 제 13항 중 어느 하나의 항에 있어서,
    상기 제어 데이터는 암호화 키 또는 인증 키를 더 포함하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  16. 제 10항 내지 제13항 중 어느 하나의 항에 있어서,
    상기 복수의 프로세서들은 상기 제어 데이터에 결과 데이터를 부가하는 프로세서를 포함하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  17. 제 10항 내지 제13항 중 어느 하나의 항에 있어서,
    상기 프로세서들은 IPSEC 프로토콜 프로세싱을 수행하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  18. 제 10항 내지 제 13항 중 어느 하나의 항에 있어서,
    상기 복수의 프로세서들은 IP 헤더 조작 및 암호화를 수행하는 프로세서를 포함하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  19. 제 10항 내지 제13항 중 어느 하나의 항에 있어서,
    상기 복수의 프로세서들은 인증 프로세싱을 수행하는 프로세서를 포함하는 것을 특징으로 하는 데이터 패킷 암호화 방법.
  20. 데이터를 프로세싱하는 데이터 프로세서로서,
    데이터 패킷들을 수신하기 위한 입력 포트;
    복수의 프로세서들 각각과 통신하기 위한 적어도 하나의 포트;
    상기 적어도 하나의 포트와 통신하고, 상기 데이터 패킷에 대해 수행할 프로세스들의 리스트 및 순서를 포함하는 헤더를 제공하도록 수신된 데이터를 프로세싱하는 제 1 프로세서 - 상기 헤더는 상기 헤더와 관련된 데이터 패킷 내에 저장됨 - ;
    상기 적어도 하나의 포트로부터 수신된 데이터를 저장하기 위한 버퍼; 및
    패킷 내의 상기 헤더를 기초로, 상기 복수의 프로세서들 중에서 상기 데이터 패킷을 프로세싱할 다음 프로세서를 결정하고, 상기 다음 프로세서에 제공하기 위한 상기 적어도 하나의 포트에 상기 데이터 패킷을 제공하기 위한 버퍼 컨트롤러
    를 포함하는, 데이터 프로세서.
  21. 제 20항에 있어서,
    상기 제 1 프로세서는 상기 다음 프로세서에 실행 가능 코드를 제공하기 위한 수단을 포함하며, 상기 실행 가능 코드는 관련 패킷을 프로세싱하도록 실행되는 것을 특징으로 하는 데이터 프로세서.
  22. 제 20항에 있어서,
    상기 제 1 프로세서는 상기 다음 프로세서에 제공할 실행 가능 코드의 지시(indication)를 제공하기 위한 수단을 포함하고, 상기 실행 가능 코드는 관련 패킷을 프로세싱하도록 실행되는 것을 특징으로 하는 데이터 프로세서.
  23. 제 20항에 있어서,
    상기 버퍼 컨트롤러는 복수의 이용가능한 프로세서들로부터 상기 다음 프로세서를 결정하기 위한 것이며, 각각의 상기 복수의 이용가능한 프로세서들은 가능한 다음 프로세서인 것을 특징으로 하는 데이터 프로세서.
  24. 데이터를 프로세싱하는 데이터 프로세서로서,
    데이터의 패킷들을 수신하는 입력 포트;
    복수의 프로세서들;
    상기 복수의 프로세서들 각각과 통신하는 적어도 하나의 포트;
    상기 적어도 하나의 포트와 통신하며, 상기 데이터 패킷에 대해 수행하기 위한 프로세스들의 리스트 및 순서를 포함하는 헤더를 제공하도록 수신된 데이터를 처리하는 제1 프로세서 - 상기 헤더는 상기 헤더와 연관된 데이터의 패킷 내에 저장됨 - ;
    상기 적어도 하나의 포트로부터 수신된 데이터를 저장하기 위한 버퍼;
    패킷 내의 상기 헤더에 기초하여 상기 복수의 프로세서들 중 상기 데이터 패킷을 프로세싱하기 위하여 다음 프로세서를 결정하고, 상기 다음 프로세서로의 제공을 위해 상기 적어도 하나의 포트로 상기 데이터 패킷을 제공하는 버퍼 컨트롤러
    를 포함하는, 데이터 프로세서.
  25. 제 24항에 있어서,
    상기 복수의 프로세서들은 복수의 전용(special purpose) 프로세서들인 것을 특징으로 하는 데이터 프로세서.
  26. 제 25항에 있어서,
    상기 복수의 전용 프로세서들은 암호(cryptographic) 프로세서들을 포함하며, 상기 암호 프로세서들은 상기 암호 프로세서 내에 저장된 비밀키들을 구비하고 상기 암호 프로세서들의 외부에서 접근할 수 없는 것을 특징으로 하는 데이터 프로세서.
  27. 제 26항에 있어서,
    상기 복수의 전용 프로세서들은, 적어도 하나의 네트워크 보안 프로토콜을 지원하기 위해서, 네트워크 보안 프로토콜 프로세싱을 수행하기 위한 복수의 프로세서들을 포함하는 것을 특징으로 하는 데이터 프로세서.
  28. 데이터를 프로세싱하는 데이터 프로세서로서,
    데이터를 저장하는 버퍼;
    복수의 전용 프로세서들 - 상기 복수의 전용 프로세서들 각각은 상기 버퍼로부터 제공된 상기 데이터를 프로세싱함 - ; 및
    상기 각각의 전용 프로세서와 통신하고, 상기 전용 프로세서들 중에서 상기 데이터를 프로세싱할 다음 프로세서를 결정하며, 상기 데이터를 상기 결정된 다음 프로세서에 제공하는 버퍼 컨트롤러
    를 포함하는, 데이터 프로세서.
  29. 제 28항에 있어서,
    상기 복수의 전용 프로세서들은, 데이터를 데이터 구조(data structure)로 포맷팅(formatting)하기 위한 적어도 하나의 서버 프로세서를 포함하며, 상기 데이터 구조는 상기 데이터에 대해 수행할 프로세스들의 리스트와 순서를 구비하는 헤더 포함하는 것을 특징으로 하는 데이터 프로세서.
  30. 제 29항에 있어서,
    상기 버퍼 컨트롤러는 상기 데이터에 대해 수행할 프로세스들의 상기 리스트와 상기 순서에 따라서 다음 프로세스를 결정하기 위한 것인 것을 특징으로 하는 데이터 프로세서.
  31. 데이터 패킷을 프로세싱하는 데이터 프로세서로서,
    어드레싱 네트워크(addressing network);
    복수의 전용 프로세서 - 상기 복수의 전용 프로세서 각각은 상기 어드레싱 네트워크를 통해 수신된 데이터 패킷을 프로세싱하고 상기 프로세싱된 데이터 패킷을 상기 어드레싱 네트워크에 제공하며, 상기 어드레싱 네트워크는 상기 복수의 전용 프로세서들을 상호접속시킴 - ; 및
    상기 데이터 패킷에 상기 데이터 패킷과 연관된 라우팅 데이터를 제공하고, 상기 데이터 패킷을 상기 어드레싱 네트워크를 통해 미리 결정된 순서로 차례로 상기 복수의 전용 프로세서에 송신하는데 사용하는 제 1 프로세서
    를 포함하며, 데이터 패킷들은 상이한 상기 라우팅 데이터로 인해 상이한 순서로 상기 어드레싱 네트워크를 통해 송신되며, 각각의 전용 프로세서는 전체 하이 레벨 패킷 프로세싱 동작 전반에 대한 지식 없이 기능을 수행하기 위한 것임을 특징으로 하는 데이터 프로세서.
  32. 제 31항에 있어서,
    각각의 상기 복수의 전용 프로세서들은 실행 가능 지시들을 수신하고 실행하기 위한 것이며, 상기 실행 가능 지시들은 상기 데이터 패킷의 데이터 경로와 상이한 데이터 경로를 따라 상기 복수의 전용 프로세서들에 제공되는 것을 특징으로 하는 데이터 프로세서.
  33. 제 31항에 있어서,
    각각의 상기 복수의 전용 프로세서들은 실행 가능 지시들을 수신하고 실행하기 위한 것이며, 상기 실행 가능 지시들은 상기 데이터 패킷의 데이터 경로와 동일한 데이터 경로를 따라 상기 복수의 전용 프로세서들에 제공되는 것을 특징으로 하는 데이터 프로세서.
  34. 스트림 데이터(stream data)를 프로세싱하는 방법으로서,
    입력 포트에서 데이터 패킷들을 포함하는 스트림 데이터를 수신하는 단계;
    수신된 상기 데이터 패킷들 각각이 상기 데이터 패킷에서 수행될 프로세서들의 리스트 및 순서를 포함하는 헤더를 제공하도록 수신된 상기 데이터 패킷들을 프로세싱하는 단계 - 상기 헤더는 상기 헤더가 관련되는 상기 데이터 패킷 내에 저장됨 - ;
    상기 관련된 헤더를 갖는 상기 데이터 패킷을 저장을 위한 버퍼에 제공하는 단계;
    상기 버퍼 내의 각각의 데이터 패킷에 대하여,
    상기 데이터 패킷 내의 상기 헤더에 기초하여 상기 데이터 패킷을 프로세싱할 다음 프로세서를 결정하는 단계;
    프로세싱을 위해 상기 결정된 다음 프로세서에 상기 데이터 패킷을 제공하는 단계;
    결정된 상기 다음 프로세서로부터 프로세싱된 상기 데이터 패킷을 수신하여 이를 상기 버퍼 내에 저장하는 단계 - 저장된 상기 데이터 패킷은 상기 다음 프로세서에 의한 프로세싱이 완료되었다는 지시 및 상기 다음 프로세서에 의한 어떠한 프로세싱도 요구되지 않는다는 지시 중 하나를 포함함 - ; 및
    상기 데이터 패킷의 헤더 내에 추가 프로세스들이 지시되지 않을 때, 상기 데이터 패킷을 출력 포트에 제공하는 단계
    를 포함하는, 스트림 데이터 프로세싱 방법.
  35. 제 34항에 있어서,
    상기 데이터 패킷을 상기 출력 포트에 제공하기 이전에, 상기 헤더가 상기 데이터 패킷으로부터 제거되는 것을 특징으로 하는 스트림 데이터 프로세싱 방법.
  36. 제 35항에 있어서,
    상기 방법은 단일 집적 디바이스 내에서 구현되는 것을 특징으로 하는 스트림 데이터 프로세싱 방법.
  37. 제 35항에 있어서,
    상기 방법은 단일 집적 디바이스 내에서 구현되는 반면 상기 다음 프로세서들의 일부 또는 전부는 상기 집적 디바이스 외부에 위치하고, 상기 다음 프로세서들의 일부 또는 전부는 상기 집적 디바이스와 통신하는 것을 특징으로 하는 스트림 데이터 프로세싱 방법.
  38. 제 37항에 있어서,
    상기 집적 디바이스는 상기 입력 포트, 상기 출력 포트, 상기 헤더를 제공하기 위한 서버 프로세서, 및 패킷 데이터를 저장하고 다음 프로세서들 사이에서 상기 패킷 데이터를 라우팅하기 위한 데이터 버퍼를 포함하는 것을 특징으로 하는 스트림 데이터 프로세싱 방법.
  39. 제 38항에 있어서,
    상기 서버 프로세서는 프로그램 가능한 것을 특징으로 하는 스트림 데이터 프로세싱 방법.
  40. 제 38항에 있어서,
    상기 입력 포트와 상기 출력 포트는 각각 진입(ingress) 프로세싱 및 진출(egress) 프로세싱하기 위한 데이터 엘리먼트들을 포함하는 것을 특징으로 하는 스트림 데이터 프로세싱 방법.
  41. 데이터를 프로세싱하는 시스템으로서,
    데이터를 수신하고, 이용가능한 프로세스들로부터 선택된 프로세스들의 리스트 및 순서와 함께 상기 데이터를 포맷팅(formatting)하기 위한 제 1 프로세싱 엘리먼트 - 상기 프로세스들의 리스트는 상기 데이터에 대해 수행될 프로세스들의 리스트임 - ;
    상기 이용가능한 프로세스들로부터 적어도 하나의 프로세스를 수행하기 위한 추가 프로세서들; 및
    상기 리스트내의 프로세스들의 상기 순서에 따라서 상기 리스트내의 프로세스들을 수행하기 위한 프로세서들에 상기 데이터를 제공하기 위한 라우팅 메모리
    를 포함하는, 데이터 프로세싱 시스템.
  42. 제 41항에 있어서,
    상기 라우팅 메모리는, 패킷들을 버퍼링하기 위한 패킷 버퍼 메모리, 및 상기 포맷팅된 데이터를 프로세싱할 프로세서를 결정하고 상기 결정된 프로세서에 상기 포맷팅된 데이터를 제공하는 프로세서를 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  43. 제 41항에 있어서,
    상기 라우팅 메모리는 프로세스들의 상기 리스트 및 상기 순서에 따라서 미리 결정된 순서로 프로세서들 사이에 패킷을 라우팅하기 위한 어드레스 스위칭 네트워크를 포함하고, 상기 어드레스 스위칭 네트워크는 패킷이 다양한 프로세스 리스트 및 순서 중 임의의 것에 따라서 추가의 프로세서들 사이에서 라우팅 되는 것을 허용하도록 동적인 것을 특징으로 하는 데이터 프로세싱 시스템.
  44. 제 41항에 있어서,
    상기 추가 프로세서들 중 하나 이상은 상기 데이터를 프로세싱하기 위한 전용 단일 기능 프로세서들인 것을 특징으로 하는 데이터 프로세싱 시스템.
  45. 제 44항에 있어서,
    상기 추가 프로세서들 중 절반 이상은 상기 데이터를 프로세싱하기 위한 전용 단일 기능 프로세서들인 것을 특징으로 하는 데이터 프로세싱 시스템.
  46. 제 45항에 있어서,
    상기 추가 프로세서들 중 절반 이상은 상기 라우팅 메모리와 인터페이스 하기 위한 프로세서 모듈들인 것을 특징으로 하는 데이터 프로세싱 시스템.
  47. 데이터 프로세싱 시스템으로서,
    복수의 데이터 프로세서들;
    데이터 패킷을 수신하고, 수신된 상기 데이터 패킷을 제어 데이터를 포함하도록 수정하기 위한 마스터 프로세서 - 상기 제어 데이터는 상기 데이터 패킷에 대해 수행될 기능(function)들의 리스트를 포함함 - ; 및
    상기 데이터 패킷의 상기 제어 데이터에 응답하여, 상기 복수의 데이터 프로세서들 중에서 상기 기능들의 리스트 내의 기능을 수행하기 위한 전용의 데이터 프로세서를 결정하고,
    상기 데이터 패킷을 프로세싱하기 위해 상기 기능들의 리스트 내의 상기 기능을 수행하기 위한 상기 결정된 데이터 프로세서에 제어 데이터를 갖는 상기 데이터 패킷을 전달하는
    컨트롤러
    를 포함하는, 데이터 프로세싱 시스템.
  48. 제 47항에 있어서,
    상기 데이터 패킷 내의 수행될 상기 기능들의 리스트의 완료 후에, 상기 데이터 프로세싱 시스템에 의하여 프로세싱된 상기 데이터 패킷을 상기 제어 데이터 없이 제공하기 위한 출력 포트를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  49. 제 48항에 있어서,
    상기 복수의 데이터 프로세서들, 상기 마스터 프로세서, 상기 컨트롤러 및 상기 출력 포트를 상호접속시키기 위한 데이터 버퍼를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  50. 제 49항에 있어서,
    상기 데이터 버퍼는 상기 컨트롤러를 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  51. 제 47항에 있어서,
    상기 컨트롤러는 상기 복수의 데이터 프로세서들의 이용가능성에 대한 정보를 유지하기 위한 리소스 매니저 회로를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  52. 제 47항에 있어서,
    상기 제어 데이터는 상기 복수의 데이터 프로세서들 중 적어도 하나에서 프로세싱될 코드를 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  53. 제 47항에 있어서,
    상기 제어 데이터는 암호화 키 또는 인증 키를 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  54. 제 47항에 있어서,
    상기 데이터 프로세서들에 의해 수행되는 상기 기능들은 상기 제어 데이터에 결과 데이터를 부가하는 기능을 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  55. 제 47항에 있어서,
    상기 데이터 프로세서들에 의해 수행되는 상기 기능들은 인터넷 프로토콜 보안(IPSEC) 프로토콜 프로세싱을 수행하는 기능을 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  56. 제 47항에 있어서,
    상기 데이터 프로세서들에 의해 수행되는 상기 기능들은 인터넷 프로토콜(IP) 헤더 조작 및 암호화를 수행하는 기능을 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  57. 제 47항에 있어서,
    상기 데이터 프로세서들에 의해 수행되는 상기 기능들은 인증 프로세싱을 수행하는 기능을 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
  58. 데이터 프로세서로서,
    데이터 패킷들을 수신하기 위한 입력 포트;
    상기 입력 포트에 접속된 마스터 프로세서 - 상기 마스터 프로세서는, 상기 데이터 패킷에 대해 수행될 명령어들을 포함하는 헤더를 포함하도록 수신된 상기 데이터 패킷을 수정하고, 상기 수정된 데이터 패킷을 버퍼에 제공함 - ;
    상기 헤더에 응답하여 복수의 프로세서들 내의 프로세서에 상기 수정된 데이터 패킷을 제공하도록 상기 버퍼에 대해 작용하는 컨트롤러 - 상기 컨트롤러는 상기 수정된 데이터 패킷을 출력 포트에 제공하도록 추가로 상기 버퍼에 대해 작용함 -
    를 포함하는, 데이터 프로세서.
  59. 복수의 데이터 프로세서들에서 데이터 패킷들을 프로세싱하는 방법으로서,
    데이터 패킷을 수신하는 단계;
    상기 데이터 패킷에 대해 수행될 기능들의 리스트를 포함하는 제어 데이터를 포함하도록 수신된 상기 데이터 패킷을 수정하는 단계;
    상기 제어 데이터에 응답하여, 상기 복수의 프로세서들 중에서 상기 기능들의 리스트 내의 기능을 수행하기 위한 전용의 데이터 프로세서를 결정하는 단계; 및
    상기 데이터 패킷에 기능들을 수행하기 위하여 상호접속된 복수의 데이터 프로세서들에서 상기 데이터 패킷을 프로세서에서 프로세서로 전달하는 단계
    를 포함하는, 데이터 패킷 프로세싱 방법.
  60. 제 59항에 있어서,
    상기 기능들의 리스트 내의 기능들의 완료 시, 상기 복수의 데이터 프로세서들에 의해 프로세싱된 상기 데이터 패킷을 상기 제어 데이터 없이 제공하는 단계를 더 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  61. 제 59항에 있어서,
    상기 데이터 패킷을 전달하는 단계는, 상호접속부 내에 포함된 패킷 버퍼를 통해서 상기 복수의 데이터 프로세서들에서 상기 데이터 패킷을 프로세서에서 프로세서로 전달하는 단계를 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  62. 제 59항에 있어서,
    상기 결정하는 단계는, 상기 복수의 프로세서들의 이용가능성에 대한 정보를 유지하는 단계를 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  63. 제 59항에 있어서,
    상기 수정하는 단계는, 상기 데이터 프로세서들 중에서 적어도 하나에서 프로세싱될 코드를 포함하는 제어 데이터를 포함하도록 수신된 상기 데이터 패킷을 수정하는 단계를 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  64. 제 59항에 있어서,
    상기 수정하는 단계는, 암호화 키 또는 인증 키를 포함하는 제어 데이터를 포함하도록 수신된 상기 데이터 패킷을 수정하는 단계를 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  65. 제 59항에 있어서,
    각각의 상기 복수의 데이터 프로세서들에서 상기 제어 데이터에 결과 데이터를 부가하는 단계를 더 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  66. 제 59항에 있어서,
    상기 기능들은, 상기 데이터 프로세서들에서 인터넷 프로토콜 보안(IPSEC) 프로토콜 프로세싱을 수행하는 기능을 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  67. 제 59항에 있어서,
    상기 기능들은, 각각의 데이터 프로세서들에서 인터넷 프로토콜(IP) 헤더 조작 및 암호화를 수행하는 기능을 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
  68. 제 59항에 있어서,
    상기 기능들은, 상기 데이터 프로세서들 각각에서 인증 프로세싱을 수행하는 것을 포함하는 것을 특징으로 하는 데이터 패킷 프로세싱 방법.
KR1020037008413A 2000-12-22 2001-12-21 패킷 암호화 시스템 및 방법 KR100908765B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/741,829 2000-12-22
US09/741,829 US6959346B2 (en) 2000-12-22 2000-12-22 Method and system for packet encryption
PCT/CA2001/001858 WO2002052777A2 (en) 2000-12-22 2001-12-21 Packet encrypton system and method

Publications (2)

Publication Number Publication Date
KR20030078873A KR20030078873A (ko) 2003-10-08
KR100908765B1 true KR100908765B1 (ko) 2009-07-22

Family

ID=24982383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037008413A KR100908765B1 (ko) 2000-12-22 2001-12-21 패킷 암호화 시스템 및 방법

Country Status (7)

Country Link
US (4) US6959346B2 (ko)
EP (2) EP1354442A2 (ko)
KR (1) KR100908765B1 (ko)
CN (2) CN1284327C (ko)
AU (1) AU2002218909A1 (ko)
CA (2) CA2777505C (ko)
WO (1) WO2002052777A2 (ko)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8460367B2 (en) 2000-03-15 2013-06-11 Orbusneich Medical, Inc. Progenitor endothelial cell capturing with a drug eluting implantable medical device
GB2382960B (en) 2001-12-05 2005-03-16 Ipwireless Inc Method and arrangement for data processing in a communication system
TWI230532B (en) * 2002-03-05 2005-04-01 Admtek Inc Pipelined engine for encryption/authentication in IPSEC
US20050232303A1 (en) * 2002-04-26 2005-10-20 Koen Deforche Efficient packet processing pipeline device and method
DE60215481T2 (de) * 2002-07-19 2007-07-05 Tektronix International Sales Gmbh Einrichtung und Verfahren zur Kommunikationsüberwachung in einem Mobilfunknetz
US20040216122A1 (en) * 2002-07-23 2004-10-28 Charles Gram Method for routing data through multiple applications
US20040039936A1 (en) * 2002-08-21 2004-02-26 Yi-Sern Lai Apparatus and method for high speed IPSec processing
US7451326B2 (en) * 2002-08-26 2008-11-11 Mosaid Technologies, Inc. Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies
EP1422908B1 (de) * 2002-11-25 2005-11-30 Siemens Aktiengesellschaft Verfahren und Anordnung zum verschlüsselten Übertragen von Kommunikationsdatenströmen über ein paketorientiertes Kommunikationsnetz
US8010789B2 (en) * 2003-11-13 2011-08-30 Lantronix, Inc. Secure data transfer using an embedded system
WO2005050925A1 (en) * 2003-11-21 2005-06-02 Canon Kabushiki Kaisha A MODULAR APPROACH TO THE TCP/IPv6 HARDWARE IMPLEMENTATION
US20050177713A1 (en) * 2004-02-05 2005-08-11 Peter Sim Multi-protocol network encryption system
JP4567391B2 (ja) * 2004-07-26 2010-10-20 パナソニック株式会社 モジュール間通信装置および方法
US8316431B2 (en) * 2004-10-12 2012-11-20 Canon Kabushiki Kaisha Concurrent IPsec processing system and method
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
US7502928B2 (en) * 2004-11-12 2009-03-10 Sony Computer Entertainment Inc. Methods and apparatus for secure data processing and transmission
US20060187828A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Packet identifier for use in a network device
JP2007079789A (ja) * 2005-09-13 2007-03-29 Nec Corp 計算機システム及びイベント処理方法
US20080082822A1 (en) * 2006-09-29 2008-04-03 Charles Rodney Starrett Encrypting/decrypting units having symmetric keys and methods of using same
US7818464B2 (en) * 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
US8599747B1 (en) * 2006-12-20 2013-12-03 Radisys Canada Inc. Lawful interception of real time packet data
US7796462B2 (en) 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
FR2915647B1 (fr) * 2007-04-27 2009-06-12 Thales Sa Systeme et procede de traitement parallelise.
US8347359B2 (en) * 2007-12-28 2013-01-01 Bruce Backa Encryption sentinel system and method
US8765170B2 (en) * 2008-01-30 2014-07-01 The Procter & Gamble Company Personal care composition in the form of an article
WO2010077653A2 (en) * 2008-12-08 2010-07-08 The Procter & Gamble Company Personal care composition in the form of an article having a hydrophobic surface-resident coating
JP5639659B2 (ja) * 2009-12-08 2014-12-10 ザ プロクター アンド ギャンブルカンパニー 多孔質溶解性固体基材と、マトリックスミクロスフェアを含む表面残留コーティング
JP5808336B2 (ja) * 2009-12-08 2015-11-10 ザ プロクター アンド ギャンブルカンパニー 多孔質溶解性固体基材、及び感水活性物質を含有する表面常在コーティング
US8850225B2 (en) * 2010-04-16 2014-09-30 Exelis Inc. Method and system for cryptographic processing core
RU2553295C2 (ru) 2010-07-02 2015-06-10 Дзе Проктер Энд Гэмбл Компани Моющий продукт и способы его изготовления
JP5759544B2 (ja) 2010-07-02 2015-08-05 ザ プロクター アンド ギャンブルカンパニー 活性剤を送達する方法
CA2803629C (en) 2010-07-02 2015-04-28 The Procter & Gamble Company Filaments comprising an active agent nonwoven webs and methods for making same
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
JP2013161122A (ja) * 2012-02-01 2013-08-19 Canon Inc データ処理装置、情報処理方法、及びプログラム
US9722918B2 (en) 2013-03-15 2017-08-01 A10 Networks, Inc. System and method for customizing the identification of application or content type
US9912555B2 (en) 2013-03-15 2018-03-06 A10 Networks, Inc. System and method of updating modules for application or content identification
US9838425B2 (en) 2013-04-25 2017-12-05 A10 Networks, Inc. Systems and methods for network access control
US9294503B2 (en) 2013-08-26 2016-03-22 A10 Networks, Inc. Health monitor based distributed denial of service attack mitigation
WO2015164227A2 (en) 2014-04-22 2015-10-29 The Procter & Gamble Company Compositions in the form of dissolvable solid structures
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9756071B1 (en) 2014-09-16 2017-09-05 A10 Networks, Inc. DNS denial of service attack protection
US9537886B1 (en) 2014-10-23 2017-01-03 A10 Networks, Inc. Flagging security threats in web service requests
US10326590B2 (en) * 2014-11-11 2019-06-18 Intel Corporation Technologies for trusted device on-boarding
US9621575B1 (en) 2014-12-29 2017-04-11 A10 Networks, Inc. Context aware threat protection
US9584318B1 (en) 2014-12-30 2017-02-28 A10 Networks, Inc. Perfect forward secrecy distributed denial of service attack defense
US9900343B1 (en) 2015-01-05 2018-02-20 A10 Networks, Inc. Distributed denial of service cellular signaling
US9848013B1 (en) 2015-02-05 2017-12-19 A10 Networks, Inc. Perfect forward secrecy distributed denial of service attack detection
US10063591B1 (en) 2015-02-14 2018-08-28 A10 Networks, Inc. Implementing and optimizing secure socket layer intercept
US10536357B2 (en) * 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US9787581B2 (en) 2015-09-21 2017-10-10 A10 Networks, Inc. Secure data flow open information analytics
US10469594B2 (en) 2015-12-08 2019-11-05 A10 Networks, Inc. Implementation of secure socket layer intercept
US10812348B2 (en) 2016-07-15 2020-10-20 A10 Networks, Inc. Automatic capture of network data for a detected anomaly
US10341118B2 (en) 2016-08-01 2019-07-02 A10 Networks, Inc. SSL gateway with integrated hardware security module
US10257163B2 (en) 2016-10-24 2019-04-09 Fisher-Rosemount Systems, Inc. Secured process control communications
US10619760B2 (en) 2016-10-24 2020-04-14 Fisher Controls International Llc Time-series analytics for control valve health assessment
US10270745B2 (en) * 2016-10-24 2019-04-23 Fisher-Rosemount Systems, Inc. Securely transporting data across a data diode for secured process control communications
US10530748B2 (en) 2016-10-24 2020-01-07 Fisher-Rosemount Systems, Inc. Publishing data across a data diode for secured process control communications
US10877465B2 (en) 2016-10-24 2020-12-29 Fisher-Rosemount Systems, Inc. Process device condition and performance monitoring
US10382562B2 (en) 2016-11-04 2019-08-13 A10 Networks, Inc. Verification of server certificates using hash codes
US10250475B2 (en) 2016-12-08 2019-04-02 A10 Networks, Inc. Measurement of application response delay time
US10397270B2 (en) 2017-01-04 2019-08-27 A10 Networks, Inc. Dynamic session rate limiter
WO2018140675A1 (en) 2017-01-27 2018-08-02 The Procter & Gamble Company Compositions in the form of dissolvable solid structures comprising effervescent agglomerated particles
JP7028877B2 (ja) 2017-01-27 2022-03-02 ザ プロクター アンド ギャンブル カンパニー 溶解性固形構造体形態の組成物
US10187377B2 (en) 2017-02-08 2019-01-22 A10 Networks, Inc. Caching network generated security certificates
EP3624765A1 (en) 2017-05-16 2020-03-25 The Procter and Gamble Company Conditioning hair care compositions in the form of dissolvable solid structures
CA3010945A1 (en) * 2017-07-10 2019-01-10 3D Bridge Solutions Inc. Systems, devices and methods for protecting 3d rendered designs
JP1639110S (ko) 2018-07-16 2019-08-13
WO2020112208A2 (en) * 2018-09-14 2020-06-04 SeaPort, Inc. Methods and systems for encoding and decoding communications
US11666514B2 (en) 2018-09-21 2023-06-06 The Procter & Gamble Company Fibrous structures containing polymer matrix particles with perfume ingredients
US11038856B2 (en) * 2018-09-26 2021-06-15 Marvell Asia Pte, Ltd. Secure in-line network packet transmittal
CN114206307B (zh) 2019-06-28 2024-08-23 宝洁公司 包含阴离子表面活性剂的可溶性固体纤维制品
EP3993757A1 (en) 2019-07-03 2022-05-11 The Procter & Gamble Company Fibrous structures containing cationic surfactants and soluble acids
USD939359S1 (en) 2019-10-01 2021-12-28 The Procter And Gamble Plaza Packaging for a single dose personal care product
KR20220062613A (ko) 2019-10-14 2022-05-17 더 프록터 앤드 갬블 캄파니 고체 물품을 함유하는 생분해성 및/또는 가정 퇴비화가능 사셰
CA3157576A1 (en) 2019-11-20 2021-05-27 The Procter & Gamble Company Porous dissolvable solid structure
MX2022005532A (es) 2019-12-01 2022-06-08 Procter & Gamble Composiciones acondicionadoras para el cabello con un sistema de conservacion que contiene benzoato de sodio y glicoles y/o esteres de glicerilo.
USD941051S1 (en) 2020-03-20 2022-01-18 The Procter And Gamble Company Shower hanger
USD962050S1 (en) 2020-03-20 2022-08-30 The Procter And Gamble Company Primary package for a solid, single dose beauty care composition
USD965440S1 (en) 2020-06-29 2022-10-04 The Procter And Gamble Company Package
CN115867357A (zh) 2020-07-31 2023-03-28 宝洁公司 用于毛发护理的含有球粒的水溶性纤维小袋
US11633338B2 (en) 2020-08-11 2023-04-25 The Procter & Gamble Company Moisturizing hair conditioner compositions containing brassicyl valinate esylate
MX2023001046A (es) 2020-08-11 2023-02-16 Procter & Gamble Composiciones acondicionadoras para el cabello de viscosidad baja que contienen esilato de valinato de brassicilo.
EP4196234A1 (en) 2020-08-11 2023-06-21 The Procter & Gamble Company Clean rinse hair conditioner compositions containing brassicyl valinate esylate
CA3201309A1 (en) 2020-12-01 2022-06-09 The Procter & Gamble Company Aqueous hair conditioner compositions containing solubilized anti-dandruff actives
USD1045064S1 (en) 2020-12-17 2024-10-01 The Procter & Gamble Company Single-dose dissolvable personal care unit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052881A2 (en) * 1999-03-01 2000-09-08 Sun Microsystems, Inc. Method and apparatus for load distribution

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5144667A (en) 1990-12-20 1992-09-01 Delco Electronics Corporation Method of secure remote access
US5524250A (en) * 1991-08-23 1996-06-04 Silicon Graphics, Inc. Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers
EP0737350B1 (en) * 1993-12-16 2002-06-26 Voice Compression Technologies Inc System and method for performing voice compression
JP2801530B2 (ja) * 1994-08-17 1998-09-21 株式会社フジキカイ 横型製袋充填包装機及びその制御方法
US5548646A (en) * 1994-09-15 1996-08-20 Sun Microsystems, Inc. System for signatureless transmission and reception of data packets between computer networks
US5768389A (en) * 1995-06-21 1998-06-16 Nippon Telegraph And Telephone Corporation Method and system for generation and management of secret key of public key cryptosystem
WO1997026735A1 (en) * 1996-01-16 1997-07-24 Raptor Systems, Inc. Key management for network communication
US6141681A (en) * 1997-03-07 2000-10-31 Advanced Micro Devices, Inc. Method of and apparatus for transferring and interpreting a data package
US6704866B1 (en) * 1997-07-11 2004-03-09 Cisco Technology, Inc. Compression and encryption protocol for controlling data flow in a network
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
EP0949567A2 (de) * 1998-04-09 1999-10-13 Siemens Aktiengesellschaft Multiprozessorsystem sowie Verfahren zum Abarbeiten anfallender Aufträge in einem Multiprozessorsystem
US6195024B1 (en) * 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US6940847B1 (en) * 1999-01-15 2005-09-06 Telefonaktiebolaget Lm Ericsson (Publ) System and method for providing access to service nodes from entities disposed in an integrated telecommunications network
US6606706B1 (en) * 1999-02-08 2003-08-12 Nortel Networks Limited Hierarchical multicast traffic security system in an internetwork
US6484257B1 (en) * 1999-02-27 2002-11-19 Alonzo Ellis System and method for maintaining N number of simultaneous cryptographic sessions using a distributed computing environment
US7600131B1 (en) * 1999-07-08 2009-10-06 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US6449656B1 (en) * 1999-07-30 2002-09-10 Intel Corporation Storing a frame header
US6505192B1 (en) * 1999-08-12 2003-01-07 International Business Machines Corporation Security rule processing for connectionless protocols
US6732315B2 (en) * 2000-01-31 2004-05-04 Texas Instruments Incorporated Home networking over phone lines
US6636966B1 (en) * 2000-04-03 2003-10-21 Dphi Acquisitions, Inc. Digital rights management within an embedded storage device
US6604147B1 (en) * 2000-05-09 2003-08-05 Lucent Technologies Inc. Scalable IP edge router
CN1276574A (zh) * 2000-06-27 2000-12-13 封�波 基于网站数据库的移动信息识别系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052881A2 (en) * 1999-03-01 2000-09-08 Sun Microsystems, Inc. Method and apparatus for load distribution

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"IP Encapsulating Security and Payload (ESP)", RFC STANDARD TRACK, RFC 2406 (1998.11.)
"Security Architecture for the Internet Protocol", RFC STANDARD TRACK, RFC 2401 (1998.11.)

Also Published As

Publication number Publication date
US20020087708A1 (en) 2002-07-04
CA2432322C (en) 2012-07-24
US20060064510A1 (en) 2006-03-23
CA2432322A1 (en) 2002-07-04
WO2002052777A3 (en) 2002-09-26
US8639912B2 (en) 2014-01-28
EP1354442A2 (en) 2003-10-22
KR20030078873A (ko) 2003-10-08
AU2002218909A1 (en) 2002-07-08
CN1964251A (zh) 2007-05-16
CN1964251B (zh) 2012-07-25
CA2777505C (en) 2015-06-16
EP2299653A1 (en) 2011-03-23
US20100064116A1 (en) 2010-03-11
WO2002052777A2 (en) 2002-07-04
US9325811B2 (en) 2016-04-26
CA2777505A1 (en) 2002-07-04
CN1486555A (zh) 2004-03-31
CN1284327C (zh) 2006-11-08
US6959346B2 (en) 2005-10-25
US20140122582A1 (en) 2014-05-01
US7631116B2 (en) 2009-12-08

Similar Documents

Publication Publication Date Title
KR100908765B1 (ko) 패킷 암호화 시스템 및 방법
US7158637B2 (en) Security communication packet processing apparatus and the method thereof
US5796836A (en) Scalable key agile cryptography
US8468337B2 (en) Secure data transfer over a network
US6704866B1 (en) Compression and encryption protocol for controlling data flow in a network
US7913261B2 (en) Application-specific information-processing method, system, and apparatus
WO2018175140A1 (en) Hardware-accelerated secure communication management
WO1993026109A1 (en) Apparatus for providing cryptographic support in a network
US6983382B1 (en) Method and circuit to accelerate secure socket layer (SSL) process
AU2009200695A1 (en) Multi-protocol network encryption system
Lu et al. Ipsec implementation on xilinx virtex-ii pro fpga and its application
Malina et al. Hardware-accelerated cryptography for software-defined networks with P4
Nam et al. A Hardware Architecture of NIST Lightweight Cryptography applied in IPSec to Secure High-throughput Low-latency IoT Networks
McGregor et al. Performance impact of data compression on virtual private network transactions
JP2004180234A (ja) 暗号パケット処理装置
Haskins Securing asynchronous transfer mode networks.
Elbirt et al. Efficient implementation of Galois field fixed field constant multiplication
WO2024068737A1 (en) Encrypted satellite communications
Donenfeld WireGuard Linux Kernel Integration Techniques
Tan et al. A 10 Gbit/s IPSec Gateway Implementation
Wu et al. Design Challenges in Security Processing
Astarloa et al. Secure ethernet point-to-point links for autonomous electronic ballot boxes

Legal Events

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

Payment date: 20130719

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140702

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 11