KR20210064258A - 암호기술 시스템 - Google Patents

암호기술 시스템 Download PDF

Info

Publication number
KR20210064258A
KR20210064258A KR1020217010777A KR20217010777A KR20210064258A KR 20210064258 A KR20210064258 A KR 20210064258A KR 1020217010777 A KR1020217010777 A KR 1020217010777A KR 20217010777 A KR20217010777 A KR 20217010777A KR 20210064258 A KR20210064258 A KR 20210064258A
Authority
KR
South Korea
Prior art keywords
circuit
encryption
cryptographic
parameter
decryption
Prior art date
Application number
KR1020217010777A
Other languages
English (en)
Inventor
라비 선카발리
아누잔 바르마
추안 청 판
패트릭 씨. 맥카티
한 호앙
Original Assignee
자일링크스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 자일링크스 인코포레이티드 filed Critical 자일링크스 인코포레이티드
Publication of KR20210064258A publication Critical patent/KR20210064258A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

회로 배열은 암호화 회로 및 복호화 회로를 포함한다. 암호기술 셸 회로(cryptographic shell circuit)는 송신 채널 및 송신 채널과 병렬인 수신 채널을 갖는다. 송신 채널은, 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함한다. 암호화 인터페이스 회로는 평문 입력 패킷 내의 데이터에 기초하여 제1 암호기술 파라미터를 결정하고 제1 암호기술 파라미터 및 평문 입력 패킷을 암호화 회로에 입력한다. 수신 채널은, 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함한다. 복호화 인터페이스 회로는 암호문 입력 패킷 내의 데이터에 기초하여 제2 암호기술 파라미터를 결정하고 제2 암호기술 파라미터 및 암호문 입력 패킷을 복호화 회로에 입력한다. 암호화 회로는 제1 암호기술 파라미터에 기초하여 평문 입력 패킷을 암호화하고, 복호화 회로는 제2 암호기술 파라미터에 기초하여 암호문 입력 패킷을 복호화한다.

Description

암호기술 시스템
본 개시는 일반적으로 평문을 암호화하고 암호문을 복호화하기 위한 시스템에 관한 것이다.
필드 프로그래밍가능 게이트 어레이(FPGA, field programmable gate array)는, 예컨대, 네트워킹, 스토리지, 및 블록체인 응용예에서 암호기술(cryptography) 기능을 구현하기 위해 널리 쓰이는 플랫폼이다. FPGA는, 편리한 소프트웨어 제어, 및 기능의 추가 및/또는 개선의 용이함 제공한다.
FPGA는 암호기술 시스템의 구현예에 유리할 수 있지만, FPGA는 설계 과제를 야기한다. 암호기술 기능의 구현은, 룩업 테이블(LUT, look-up table), 플립플롭(FF, flip-flop), 및 블록 랜덤 액세스 메모리(BRAM, block random access memory)와 같은 대량의 FPGA 자원을 소비할 수 있다. 예컨대, 단일 매체 액세스 제어 보안(MACsec, media access control security) 기능은 대략 100,000개의 LUT, 대략 100,000개의 FF, 및 대략 100개의 BRAM을 소비할 수 있다. 타겟 클록 속도에 의존하여, 대량의 FPGA 자원은 회로 설계 상의 닫힘 타이밍에 대해 회로 설계자에게 과제가 될 수 있다. 타이밍 문제를 완화시키기 위하여, 광범위한 파이프라이닝이 사용될 수 있으며, 이는 구현된 회로가, 바람직한 것보다 더 많은 전력을 소비하게 할 수 있다.
개시되는 회로 배열은 암호화 회로 및 복호화 회로를 포함한다. 암호기술 셸 회로(cryptographic shell circuit)는 송신 채널 및 송신 채널과 병렬인 수신 채널을 갖는다. 송신 채널은, 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함한다. 암호화 인터페이스 회로는, 평문 입력 패킷 내의 데이터에 기초하여 제1 암호기술 파라미터를 결정하고 제1 암호기술 파라미터 및 평문 입력 패킷을 암호화 회로에 입력하도록 구성된다. 수신 채널은, 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함한다. 복호화 인터페이스 회로는, 암호문 입력 패킷 내의 데이터에 기초하여 제2 암호기술 파라미터를 결정하고 제2 암호기술 파라미터 및 암호문 입력 패킷을 복호화 회로에 입력하도록 구성된다. 암호화 회로는, 제1 암호기술 파라미터에 기초하여 평문 입력 패킷을 암호화하도록 구성되고, 복호화 회로는, 제2 암호기술 파라미터에 기초하여 암호문 입력 패킷을 복호화하도록 구성된다.
또 다른 개시되는 회로 배열은 집적 회로(IC, integrated circuit) 디바이스를 포함한다. 복수의 쌍의 암호화 회로와 복호화 회로가 IC 디바이스 상에 배치된다. 복수의 암호기술 셸 회로가 복수의 쌍의 암호화 회로와 복호화 회로에 각각 커플링된다. 각 암호기술 셸 회로는 송신 채널 및 송신 채널과 병렬인 수신 채널을 갖는다. 송신 채널은, 각 쌍의 암호화 회로와 복호화 회로 중 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함한다. 암호화 인터페이스 회로는, 평문 입력 패킷 내의 데이터에 기초하여 제1 암호기술 파라미터를 결정하고 제1 암호기술 파라미터 및 평문 입력 패킷을 암호화 회로에 입력하도록 구성된다. 수신 채널은, 각 쌍의 암호화 회로와 복호화 회로 중 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함한다. 복호화 인터페이스 회로는, 암호문 입력 패킷 내의 데이터에 기초하여 제2 암호기술 파라미터를 결정하고 제2 암호기술 파라미터 및 암호문 입력 패킷을 복호화 회로에 입력하도록 구성된다. 각 쌍의 암호화 회로와 복호화 회로 중 암호화 회로는, 제1 암호기술 파라미터에 기초하여 평문 입력 패킷을 암호화하도록 구성되고, 각 쌍의 암호화 회로와 복호화 회로 중 복호화 회로는, 제2 암호기술 파라미터에 기초하여 암호문 입력 패킷을 복호화하도록 구성된다.
다른 특징은 다음의 상세한 설명 및 청구범위를 살펴봄으로써 인지될 것이다.
다음의 상세한 설명을 검토하고 다음의 도면을 참조하면 회로 및 방법의 다양한 양상 및 특징이 분명해질 것이다.
도 1은 MACsec 응용예에 대한 예시적인 구현예에 따른 회로 배열을 도시한다.
도 2는 IPsec 응용예에 대한 예시적인 구현예에 따른 회로 배열을 도시한다.
도 3은 벌크 암호기술 응용예에 대한 예시적인 구현예에 따른 회로 배열을 도시한다.
도 4는, 하나 이상의 구현예에 따른, 송신 채널 내에서 수행되는 예시적인 프로세스의 흐름도이다.
도 5는, 하나 이상의 구현예에 따른, 수신 채널 내에서 수행되는 예시적인 프로세스의 흐름도이다.
도 6은, 다수의 재구성가능 암호기술 셸 회로 및 연관된 고정배선(hardwired) 암호기술 회로를 갖는 회로 배열을 도시한다.
도 7은, 개시되는 회로 및 프로세스가 구현될 수 있는, 프로그래밍가능 집적 회로(IC)를 도시한다.
다음의 설명에서, 본 명세서에서 제시되는 구체적인 예를 설명하기 위하여 다수의 구체적인 세부사항이 진술된다. 그러나, 아래에 주어진 모든 구체적인 세부사항 없이도 하나 이상의 다른 예 및/또는 이들 예의 변형예가 실시될 수 있다는 것이 당업자에게 분명할 것이다. 다른 경우, 본 명세서의 예의 설명을 불명확하게 하지 않기 위하여, 잘 알려진 특징은 상세히 설명되지 않았다. 설명의 용이함을 위해, 상이한 도면에서 동일한 참조 번호가 사용되어 동일한 요소 또는 동일한 요소의 추가적인 인스턴스를 지칭할 수 있다.
개시되는 회로 및 방법은, 재구성가능 암호기술 셸과 조합된 고정배선 암호기술 회로부를 사용한다. 고정배선 암호기술 회로부는 고정되어 있고 재프로그래밍가능하지 않지만, 구성가능 암호기술 셸은 재프로그래밍가능하다. 고정배선 암호기술 회로부의 기능은 고정되어 있고, 암호기술 셸의 기능은 재프로그래밍될 수 있다. 고정배선 암호기술 회로부는 응용예 특유 회로부로서 구현될 수 있고, 암호기술 셸은 프로그래밍가능 로직 회로부 내에 또는 프로그램 코드를 실행하는 프로세서로서 구현될 수 있다. 고정배선 암호기술 회로부는 암호화 기능 및 복호화 기능의 빠르고 효율적인 구현을 제공하고, 재프로그래밍가능/재구성가능 암호기술 셸은 MACsec, 인터넷 프로토콜(IPsec), 및 벌크 암호기술과 같은 상이한 응용예에 대한 유연한 구현을 제공한다.
고정배선 암호기술 회로는 암호화 회로와 복호화 회로를 포함하며, 이들은 병렬 채널을 제공한다. 송신 채널 및 송신 채널과 병렬인 수신 채널을 갖는 암호기술 셸 회로는, 상이한 보안 응용예를 구현하기 위해 재구성가능하다. 송신 채널은, 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함한다. 암호화 인터페이스 회로는, 평문 입력 패킷 내의 데이터에 기초하여 암호기술 파라미터 세트를 결정하고 암호기술 파라미터 세트 및 평문 입력 패킷을 암호화 회로에 입력하도록 구성된다. 수신 채널은, 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함한다. 복호화 인터페이스 회로는, 암호문 입력 패킷 내의 데이터에 기초하여 또 다른 암호기술 파라미터 세트를 결정하고 다른 암호기술 파라미터 세트 및 암호문 입력 패킷을 복호화 회로에 입력하도록 구성된다. 고정배선 암호기술 회로 내의 암호화 회로는, 송신 채널 상에 제공되는 암호기술 파라미터 세트에 기초하여 평문 입력 패킷을 암호화하도록 구성되고, 복호화 회로는, 수신 채널 상에 제공되는 암호기술 파라미터 세트에 기초하여 암호문 입력 패킷을 복호화하도록 구성된다.
도 1은 MACsec 응용예에 대한 예시적인 구현예에 따른 회로 배열(100)을 도시한다. 회로 배열(100)은, 암호기술 회로(102)에 대한 입력 인터페이스 및 출력 인터페이스를 제공하는 MACsec 암호기술 셸 회로(104)를 포함한다. 암호기술 회로는 암호화 회로(106), 복호화 회로(108), 키 확장 회로(110), 알고리즘 검증 회로(133), 및 통계 블록(136)을 포함한다. 암호화 회로는, MACsec 셸 회로(104)에 의해 입력되는 파라미터에 기초하여 평문 데이터를 암호화한다. 유사하게, 복호화 회로는, MACsec 셸 회로에 의해 입력되는 파라미터에 기초하여 암호문 데이터를 복호화한다. 암호화 회로는, 평문 데이터의 암호화 시에 인지되는 키 확장 회로부(110)를 사용할 수 있다. 알고리즘 검증 회로는 올바른 동작을 확인하기 위해 암호화 회로 및 복호화 회로의 테스팅을 수행한다.
MACsec 셸 회로(104)는, 동시발생(concurrent) 암호화 액티비티 및 복호화 액티비티를 지원하는 병렬 송신 채널 및 수신 채널을 구현한다. 송신 채널은 인그레스(ingress) 선입선출(FIFO, first-in-first-out) 회로(112), 헤더 프로세싱/보안 연관(SA, security association) 룩업 회로(114), 이그레스(egress) 프로세싱 회로(118), 이그레스 FIFO 회로(120), 및 흐름 제어 회로(122)를 포함한다.
인그레스 FIFO 회로(112)는, 예컨대, MAC 프로토콜과 일치하며 이더넷을 통해 송신되는 평문 데이터 수신한다. 인그레스 FIFO 회로는 헤더 프로세싱/SA 룩업 회로(114)에 의한 프로세싱을 위해 패킷 형태의 입력 데이터를 버퍼링한다. 헤더 프로세싱/SA 룩업 회로는 패킷의 헤더로부터 파라미터를 추출하고 파라미터를 사용하여 메모리 회로(116) 내의 연관된 MACsec 속성 및 파라미터를 룩업하며, 메모리 회로는, MAC 패킷 헤더 파라미터 및 SA를 재구성가능 셸 내에 연관적으로 저장하고 더 큰 SA 수에 대한 확장가능한 지원을 가능케 한다. 추출된 MAC 패킷 헤더 파라미터는 MAC 레벨 출발지 주소, 포트 번호 등을 포함하고, 연관된 속성 및 파라미터는 SA 인덱스, 암호 선택, 암호 특유 파라미터, 및 MACsec 특유 파라미터를 포함한다. 암호 선택 파라미터는 AES-GCM-128b, AES-GCM-256b, 또는 또 다른 암호 스위트를 나타낼 수 있다. 암호 특유 파라미터는 난스(nonce), 초기화 벡터 등을 포함할 수 있고, MACsec 특유 파라미터는 패킷 번호, 보안 채널 번호 등을 포함할 수 있다.
헤더 프로세싱/SA 룩업 회로는 신호 라인(134) 상에서 평문 데이터를 암호화 회로(106)에 입력하고 신호 라인(135) 상에서 셸 채널 데이터를 입력한다. 셸 채널 데이터는 SA 인덱스, 암호 선택 파라미터, 및 암호 특유 파라미터를 포함한다. 암호화 회로는 암호 선택 파라미터 및 암호 특유 파라미터에 따라서 평문 데이터를 암호화하고 암호문을 이그레스 프로세싱 회로(118)에 출력한다. 암호화 회로는, 입력 평문을 암호화하는 데 사용될 키를 선택하기 위해 SA 인덱스를 사용한다.
이그레스 프로세싱 회로(118)는, 암호화된 패킷에 대한 새로운 프레임 체크 시퀀스를 계산하고 덧붙이고, 암호화 블록을 우회하는 임의의 패킷을 데이터 스트림 내에 삽입하며, 또한 MACsec과 관련되지 않은 패킷에 대한 다른 변환을 수행할 수 있다.
이그레스 프로세싱 회로(118)로부터의 출력 데이터는 이그레스 FIFO 회로(120)에 제공되며, 이그레스 FIFO 회로는 이더넷 채널을 통해 송신하기 전에 데이터를 버퍼링한다. 이그레스 FIFO 회로는 흐름 제어 회로(122)에 시그널링하며, 이는 암호문 패킷의 인그레스 FIFO 회로(112)로의 입력을 허용하거나 역압(backpressure)을 가한다. 예컨대, 이그레스 FIFO 회로가 가득 차 있다면, 흐름 제어 회로(122)는, 이그레스 FIFO 회로(120) 내에 공간이 사용가능하게 될 때까지 인그레스 FIFO 회로(112)로의 입력에 역압을 가한다.
수신 채널은 인그레스 FIFO 회로(124), 헤더 프로세싱/SA 룩업 회로(126), 이그레스 프로세싱 회로(128), 이그레스 FIFO 회로(130), 및 흐름 제어 회로(132)를 포함한다.
인그레스 FIFO 회로(124)는, MAC 프로토콜과 일치하는 암호문 데이터를 수신한다. 인그레스 암호문 데이터는, 예컨대, 이더넷을 통해 송신될 수 있다. 인그레스 FIFO 회로(124)는 헤더 프로세싱/SA 룩업 회로(126)에 의한 프로세싱을 위해 패킷 형태의 입력 데이터를 버퍼링한다. 헤더 프로세싱/SA 룩업 회로(126)는 패킷의 헤더로부터 파라미터를 추출하고 파라미터를 사용하여 메모리 회로(116) 내의 연관된 MACsec 속성 및 파라미터를 룩업한다.
헤더 프로세싱/SA 룩업 회로(126)는 신호 라인(138) 상에서 암호문 데이터를 복호화 회로(108)에 입력하고 신호 라인(140) 상에서 셸 채널 데이터를 입력한다. 셸 채널 데이터는 SA 인덱스, 암호 선택 파라미터, 및 암호 특유 파라미터를 포함한다. 복호화 회로는 암호 선택 파라미터 및 암호 특유 파라미터에 따라서 암호문 데이터를 복호화하고 평문을 이그레스 프로세싱 회로(128)에 출력한다.
이그레스 프로세싱 회로(128)는, 복호화된 패킷에 대한 새로운 프레임 체크 시퀀스를 계산하고 덧붙이고, 복호화 블록을 우회하는 임의의 패킷을 데이터 스트림 내에 삽입하며, 또한 MACsec과 관련되지 않은 패킷에 대한 다른 변환을 수행할 수 있다.
이그레스 프로세싱 회로(128)로부터의 출력 데이터는 이그레스 FIFO 회로(130)에 제공되며, 이그레스 FIFO 회로는 이더넷 채널을 통해 송신하기 전에 데이터를 버퍼링한다. 이그레스 FIFO 회로(130)는 흐름 제어 회로(132)에 시그널링하며, 이는 평문 패킷의 인그레스 FIFO 회로(124)로의 입력을 허용하거나 역압을 가한다. 예컨대, 이그레스 FIFO 회로(130)가 가득 차 있다면, 흐름 제어 회로(132)는, 이그레스 FIFO 회로(130) 내에 공간이 사용가능하게 될 때까지 인그레스 FIFO 회로(124)로의 입력에 역압을 가한다.
암호기술 셸 회로(104)는 구성 인터페이스를 더 포함하며, 이를 통해 SA 및 연관된 속성 및 파라미터가 변경될 수 있다. 구성 인터페이스는 프로그래밍가능 로직 디바이스 내의 내부 구성 액세스 포트에 의해 또는 JTAG(Joint Test Access Group) 스캔 인터페이스에 의해 구현될 수 있으며, 일반적으로 둘 다 사용가능하다. 구성 인터페이스는 또한, 암호기술 회로의 누적된 동작 통계를 판독하기 위해 통계 블록(136)에 연결될 수 있다. 통계 블록(136)은, 암호화 회로(106) 및 복호화 회로(108)의 동작과 관련된 통계 정보 누적시키고, 정보를 메모리 회로(116) 내에 저장한다. 통계 정보는 상이한 SA 입력 값의 카운트와 보안 엔티티의 카운트, 및 MACsec 표준에 의해 정의되는 다른 데이터를 포함할 수 있다.
도 2는 IPsec 응용예에 대한 예시적인 구현예에 따른 회로 배열(200)을 도시한다. 회로 배열(200)은, 암호기술 회로(102)에 대한 입력 인터페이스 및 출력 인터페이스를 제공하는 IPsec 암호기술 셸 회로(202)를 포함한다. 암호기술 회로는, 도 1에 도시되고 전술된 하위 회로를 포함한다.
IPsec 셸 회로(202)는, 동시발생 암호화 액티비티 및 복호화 액티비티를 지원하는 병렬 송신 채널 및 수신 채널을 구현한다. 송신 채널은 인그레스 선입선출(FIFO) 회로(112), 송신 채널 인그레스 프로세싱 회로(204), 송신 채널 이그레스 프로세싱 회로(208), 이그레스 FIFO 회로(120), 및 흐름 제어 회로(122)를 포함한다.
인그레스 FIFO 회로(112)는, 예컨대, 직접 메모리 액세스(direct memory access) 프로토콜 또는 MAC 프로토콜과 일치하며 이더넷을 통해 송신되는 평문 데이터 수신한다. 인그레스 FIFO 회로는 송신 채널 인그레스 프로세싱 회로(204)에 의한 프로세싱을 위해 패킷 형태의 입력 데이터를 버퍼링한다. 송신 채널 인그레스 프로세싱 회로는 패킷의 헤더로부터 파라미터를 추출하고 파라미터를 사용하여 메모리 회로(116) 내의 연관된 IPsec 속성 및 파라미터를 룩업하며, 메모리 회로는, IP 패킷 헤더 파라미터 및 SA를 재구성가능 셸 내에 연관적으로 저장하고 더 큰 SA 수에 대한 확장가능한 지원을 가능케 한다. 추출된 IP 패킷 헤더 파라미터는 IP 레벨 출발지 주소, 목적지 주소 등을 포함하고, 연관된 속성 및 파라미터는 SA 인덱스, 암호 선택, 암호 특유 파라미터, 및 IPsec 특유 파라미터를 포함한다. 암호 선택 파라미터는 AES-GCM-128b, AES-GCM-256b, 또는 또 다른 암호 스위트를 나타낼 수 있다. 암호 특유 파라미터는 난스, 초기화 벡터 등을 포함할 수 있고, IPsec 특유 파라미터는 시퀀스 번호, 보안 파라미터 인덱스(SPI, security parameter index) 등을 포함할 수 있다.
송신 채널 인그레스 프로세싱 회로(204)는 신호 라인(134) 상에서 평문 데이터를 암호화 회로(106)에 입력하고 신호 라인(135) 상에서 셸 채널 데이터를 입력한다. 셸 채널 데이터는 SA 인덱스, 암호 선택 파라미터, 및 암호 특유 파라미터를 포함한다. 암호화 회로는 암호 선택 파라미터 및 암호 특유 파라미터에 따라서 평문 데이터를 암호화하고 암호문을 송신 채널 이그레스 프로세싱 회로(208)에 출력한다.
송신 채널 이그레스 프로세싱 회로(208)는 IPsec 특유 프로세싱을 수행하며, 이는 패킷 내에 새로운 링크 헤더를 삽입하는 것, 현재의 링크 헤더를 대체하는 것, 소프트웨어에 의한 검사를 위해 패킷을 캡처하기 위한 버퍼를 포함시키는 것, 또는 소프트웨어로부터의 암호화된 데이터 스트림 내에 패킷을 삽입하는 것을 포함할 수 있다.
송신 채널 이그레스 프로세싱 회로(208)로부터의 출력 데이터는 이그레스 FIFO 회로(120)에 제공되며, 이그레스 FIFO 회로는 이더넷 채널을 통해 송신하기 전에 데이터를 버퍼링한다. 이그레스 FIFO 회로는 흐름 제어 회로(122)에 시그널링하며, 이는 암호문 패킷의 인그레스 FIFO 회로(112)로의 입력을 허용하거나 역압을 가한다. 예컨대, 이그레스 FIFO 회로가 가득 차 있다면, 흐름 제어 회로(122)는, 이그레스 FIFO 회로(120) 내에 공간이 사용가능하게 될 때까지 인그레스 FIFO 회로(112)로의 입력에 역압을 가한다.
수신 채널은 인그레스 FIFO 회로(124), 수신 채널 인그레스 프로세싱 회로(210), 수신 채널 이그레스 프로세싱 회로(212), 이그레스 FIFO 회로(130), 및 흐름 제어 회로(132)를 포함한다.
인그레스 FIFO 회로(124)는, MAC 프로토콜과 일치하는 암호문 데이터를 수신한다. 인그레스 암호문 데이터는, 예컨대, 이더넷을 통해 송신될 수 있다. 인그레스 FIFO 회로(124)는 수신 채널 인그레스 프로세싱 회로(210)에 의한 프로세싱을 위해 패킷 형태의 입력 데이터를 버퍼링한다. 수신 채널 인그레스 프로세싱 회로(210)는 패킷의 헤더로부터 파라미터를 추출하고 파라미터를 사용하여 메모리 회로(116) 내의 연관된 IPsec 속성 및 파라미터를 룩업한다.
수신 채널 인그레스 프로세싱 회로(210)는 신호 라인(138) 상에서 암호문 데이터를 복호화 회로(108)에 입력하고 신호 라인(140) 상에서 셸 채널 데이터를 입력한다. 셸 채널 데이터는 SA 인덱스, 암호 선택 파라미터, 및 암호 특유 파라미터를 포함한다. 복호화 회로는 암호 선택 파라미터 및 암호 특유 파라미터에 따라서 암호문 데이터를 복호화하고 평문을 수신 채널 이그레스 프로세싱 회로(212)에 출력한다.
수신 채널 이그레스 프로세싱 회로(212)는 전술한 바와 같이 IPsec 특유 프로세싱을 수행한다.
수신 채널 이그레스 프로세싱 회로(212)로부터의 출력 데이터는 이그레스 FIFO 회로(130)에 제공되며, 이그레스 FIFO 회로는 DMA 또는 이더넷 채널을 통해 송신하기 전에 데이터를 버퍼링한다. 이그레스 FIFO 회로(130)는 흐름 제어 회로(132)에 시그널링하며, 이는 평문 패킷의 인그레스 FIFO 회로(124)로의 입력을 허용하거나 역압을 가한다. 예컨대, 이그레스 FIFO 회로(130)가 가득 차 있다면, 흐름 제어 회로(132)는, 이그레스 FIFO 회로(130) 내에 공간이 사용가능하게 될 때까지 인그레스 FIFO 회로(124)로의 입력에 역압을 가한다.
도 3은 벌크 암호기술 응용예에 대한 예시적인 구현예에 따른 회로 배열(300)을 도시한다. 회로 배열(300)은, 암호기술 회로(102)에 대한 입력 인터페이스 및 출력 인터페이스를 제공하는 벌크 암호기술 셸 회로(302)를 포함한다. 암호기술 회로는, 도 1에 도시되고 전술된 하위 회로를 포함한다.
벌크 암호기술 셸 회로(302)는, 동시발생 암호화 액티비티 및 복호화 액티비티를 지원하는 병렬 송신 채널 및 수신 채널을 구현한다. 송신 채널은 송신 채널 인그레스 프로세싱 회로(304) 및 송신 채널 이그레스 프로세싱 회로(306)를 포함한다. 송신 채널 인그레스 프로세싱 회로(304)는 사용자 인터페이스로부터 평문 데이터를 수신하고 메모리 회로(116) 내의 벌크 암호기술 속성 및 파라미터를 룩업하며, 메모리 회로는 SA를 재구성가능 셸 내에 연관적으로 저장하고 더 큰 SA 수에 대한 확장가능한 지원을 가능케 한다.
벌크 암호기술 셸(302)에 대한 입력을 제공하고 벌크 암호기술 셸(302)로부터의 출력을 수신하는 사용자 인터페이스는, 벌크 암호기술 셸의 입력 및 출력 신호 라인에 연결된 임의의 응용예 특유 회로부일 수 있다. 예컨대, 사용자 인터페이스는, 평문 또는 암호화된 데이터를 이동시키기 위한 프로그래밍가능 로직으로 구현되는 회로부일 수 있다. 대안적으로, 벌크 암호기술 셸의 입력 또는 출력에 DMA 제어기가 연결될 수 있다.
벌크 암호기술 셸은 응용예 특유 인터페이스에 대해 적합한 최소한의 셸이므로, 메모리(116) 내의 SA 인덱스의 룩업은, 입력되는 평문 또는 다른 응용예 특유 기준에 기초할 수 있다.
메모리(116)로부터 리트리빙(retrieving)되는 정보는 SA 인덱스, 암호 선택, 암호 특유 파라미터, 및 벌크 암호기술 특유 파라미터를 포함할 수 있다. 암호 선택 파라미터는 AES-GCM-128b, AES-GCM-256b, 또는 또 다른 암호 스위트를 나타낼 수 있다. 암호 특유 파라미터는 난스, 초기화 벡터 등을 포함할 수 있다.
송신 채널 인그레스 프로세싱 회로(304)는 신호 라인(134) 상에서 평문 데이터를 암호화 회로(106)에 입력하고 신호 라인(135) 상에서 셸 채널 데이터를 입력한다. 셸 채널 데이터는 SA 인덱스, 암호 선택 파라미터, 및 암호 특유 파라미터를 포함한다. 암호화 회로는 암호 선택 파라미터 및 암호 특유 파라미터에 따라서 평문 데이터를 암호화하고 암호문을 송신 채널 이그레스 프로세싱 회로(306)에 출력한다.
송신 채널 이그레스 프로세싱 회로(306)는 패킷 내에 새로운 메타데이터를 삽입하거나, 현재의 메타데이터를 대체하거나, 암호화 블록을 우회하는 임의의 패킷을 데이터 스트림 내에 삽입하거나, 벌크 암호기술과 관련되지 않은 패킷에 대한 다른 변환을 수행할 수 있다.
송신 채널 이그레스 프로세싱 회로(306)로부터의 출력 데이터는 사용자 인터페이스에 제공된다. 응용예에 의존하여, 이그레스 사용자 인터페이스는 인그레스 사용자 인터페이스와 동일하거나 상이할 수 있다.
수신 채널은 수신 채널 인그레스 프로세싱 회로(308) 및 수신 채널 이그레스 프로세싱 회로(310)를 포함한다. 수신 채널 인그레스 프로세싱 회로(308)는 사용자 인터페이스를 통해 암호문 데이터를 수신하고 메모리 회로(116) 내의 속성 및 파라미터를 룩업한다.
수신 채널 인그레스 프로세싱 회로(308)는 신호 라인(138) 상에서 암호문 데이터를 복호화 회로(108)에 입력하고 신호 라인(140) 상에서 셸 채널 데이터를 입력한다. 셸 채널 데이터는 SA 인덱스, 암호 선택 파라미터, 및 암호 특유 파라미터를 포함한다. 복호화 회로는 암호 선택 파라미터 및 암호 특유 파라미터에 따라서 암호문 데이터를 복호화하고 평문을 수신 채널 이그레스 프로세싱 회로(310)에 출력한다.
수신 채널 이그레스 프로세싱 회로(310)는 이그레스 프로세싱 회로(306)와 동일한 기능을 수행할 수 있다.
수신 채널 이그레스 프로세싱 회로(310)로부터의 출력 데이터는 사용자 인터페이스에 제공된다.
도 4는, 하나 이상의 구현예에 따른, 송신 채널 내에서 수행되는 예시적인 프로세스의 흐름도이다. 블록(402)에서, 암호기술 셸 회로로의 평문 데이터의 입력에 응답하여, 암호기술 셸 회로는, 일부 프로토콜에서의 패킷과 같은, 입력 데이터로부터 파라미터를 추출한다. 추출되는 파라미터는, 응용예에 의해 사용되는 보안 방식에 의존할 수 있다. 예컨대, 추출되는 파라미터는 MACsec 구현예, IPsec 구현예, 또는 벌크 암호기술 구현예를 위한 것일 수 있다.
블록(404)에서, 암호기술 셸 회로는, 추출된 파라미터와 연관된 셸 채널 파라미터를 메모리 회로 내에서 룩업한다. 셸 채널 파라미터는, 보안 응용예에 의존하여, SA 인덱스, AES-GCM-128b, AES-GCM-256b, 또는 또 다른 암호 스위트를 나타내는 암호 선택 파라미터, 및 난스, 초기화 벡터, 패킷 번호, 보안 채널 번호, 시퀀스 번호, 보안 파라미터 인덱스(SPI) 등을 비롯한 암호 특유 파라미터 포함할 수 있다.
고정배선 암호기술 회로는, 전술한 MACsec, IPsec, 또는 벌크 암호기술과 같은 다양한 보안 응용예에서 사용될 수 있다. 암호기술 셸 회로는 프로그래밍가능 로직으로 또는 소프트웨어를 실행하는 프로세서로서 구현될 수 있고, 원하는 보안 응용예에 따라서 구성될 수 있다. 그러므로, 고정배선 암호기술 회로는 셸 채널 파라미터 및 평문의 입력에 대해 분리된 신호 라인 세트를 갖는다. 블록(406)에서, 하나의 신호 라인 세트 상에서 셸 채널 파라미터가 고정배선 암호기술 회로에 입력되고, 블록(408)에서, 또 다른 신호 라인 세트 상에서 평문이 고정배선 암호기술 회로에 입력된다.
블록(410)에서, 고정배선 암호기술 회로는, 입력되는 셸 채널 파라미터에 따라서 평문을 암호화한다. 블록(412)에서, 보안 응용예에 따라서 암호기술 셸 회로에 의해 암호문이 출력된다.
도 5는, 하나 이상의 구현예에 따른, 수신 채널 내에서 수행되는 예시적인 프로세스의 흐름도이다. 블록(502)에서, 암호문을 포함하는 데이터의 암호기술 셸 회로로의 입력에 응답하여, 암호기술 셸 회로는 입력 데이터로부터 파라미터를 추출한다. 입력 데이터는 일부 프로토콜에서의 패킷 형식일 수 있다. 추출되는 파라미터는, 응용예에 의해 사용되는 보안 방식에 의존할 수 있다. 예컨대, 추출되는 파라미터는 MACsec 구현예, IPsec 구현예, 또는 벌크 암호기술 구현예를 위한 것일 수 있다.
블록(504)에서, 송신 채널의 프로세스에 관하여 전술한 바와 같이, 암호기술 셸 회로는, 추출된 파라미터와 연관된 셸 채널 파라미터를 메모리 회로 내에서 룩업한다.
고정배선 암호기술 회로는 셸 채널 파라미터 및 암호문의 입력에 대해 분리된 신호 라인 세트를 갖는다. 블록(506)에서, 하나의 신호 라인 세트 상에서 셸 채널 파라미터가 고정배선 암호기술 회로에 입력되고, 블록(508)에서, 또 다른 신호 라인 세트 상에서 암호문이 고정배선 암호기술 회로에 입력된다.
블록(510)에서, 고정배선 암호기술 회로는, 입력되는 셸 채널 파라미터에 따라서 암호문을 복호화한다. 블록(512)에서, 보안 응용예에 따라서 암호기술 셸 회로에 의해 결과적인 평문이 출력된다.
도 6은, 다수의 재구성가능 암호기술 셸 회로 및 연관된 고정배선 암호기술 회로를 갖는 회로 배열(600)을 도시한다. 재구성가능 암호기술 셸 회로는 블록(604, 606, ..., 608)으로서 도시되어 있고, 재구성가능 암호기술 셸 회로 각각은 고정배선 암호기술 회로(102)의 전용 인스턴스를 갖는다. 재구성가능 암호기술 셸 회로는 MACsec 셸 회로(104), IPsec 셸 회로(202), 벌크 암호기술 셸 회로(302), 및/또는 임의의 다른 비슷한 보안 프로토콜에 대한 암호기술 셸 회로의 인스턴스일 수 있다.
회로 배열은 다수의 상이한 보안 응용예에 대해 암호화 기능 및 복호화 기능을 제공할 수 있다. 따라서, 단일 디바이스가, 상이한 암호기술 응용예를 각각 요구하는 다수의 엔드포인트에 서비스할 수 있다. 예컨대, 단일 디바이스가 MACsec 기능, IPsec 기능, 및/또는 벌크 암호기술 기능을 제공할 수 있다. 암호기술 셸 회로(604, 606, ..., 608)의 재구성가능성은, 프로세싱 필요사항이 변화함에 따라서 자원이 상이한 암호기술 보안 응용예에 재지향될 수 있도록 한다. 예컨대, MACsec 암호기술 셸 회로로서 한 번 구현된 프로그래밍가능 자원은, 필요하다면, IPsec 암호기술 셸 회로를 구현하도록 재프로그래밍될 수 있다. 또한, 특정 보안 응용예에 대한 대역폭 요건을 만족시키기 위해, 동일한 암호기술 셸 회로의 다수의 인스턴스가 구성될 수 있다.
예컨대, 암호기술 디바이스(602)는 집적 회로(IC) 패키지일 수 있다. 암호기술 셸 회로(604, 606, ..., 608) 각각은 입력/출력 회로부(610)의 적어도 하나의 인스턴스에 커플링된다. 각 입력/출력 회로는, 목적지에 데이터를 전송하고 디바이스(602) 외부의 출발지로부터 데이터를 수신하는 고속 직렬 송수신기일 수 있다. 일부 구현예에서, 평문 또는 암호문의 출발지 또는 목적지는, 암호기술 디바이스(602)로서 동일한 IC 칩 또는 패키지 상에 구현되는 회로부일 수 있고, 암호기술 셸 회로는, 입력/출력 회로(610)에 커플링되는 대신, 디바이스의 버스 또는 프로그래밍가능 라우팅 자원을 통해 온칩/패키지 출발지/목적지에 커플링될 수 있다.
도 7은, 개시되는 회로 및 프로세스가 구현될 수 있는, 프로그래밍가능 집적 회로(IC)(700)를 도시한다. 프로그래밍가능 IC는 또한, 다른 프로그래밍가능 자원과 함께 필드 프로그래밍가능 게이트 어레이(FPGA) 로직을 포함하는 시스템 온 칩(SOC, System On Chip)으로서 지칭될 수 있다. FPGA 로직은, 여러 개의 상이한 유형의 프로그래밍가능 로직 블록을 어레이 내에 포함할 수 있다. 예컨대, 도 7은, 멀티기가비트 송수신기(MGT)(701), 구성가능 로직 블록(CLB)(702), 랜덤 액세스 메모리 블록(BRAM)(703), 입력/출력 블록(IOB)(704), 구성 및 클록킹 로직(CONFIG/CLOCK)(705), 디지털 신호 프로세싱 블록(DSP)(706), 예컨대 클록 포트와 같은 특수화된 입력/출력 블록(I/O)(707), 그리고 디지털 클록 관리자, 아날로그-디지털 컨버터, 시스템 모니터링 로직 등과 같은 기타 프로그래밍가능 로직(708)을 비롯한, 다수의 상이한 프로그래밍가능 타일을 포함하는 프로그래밍가능 IC(700)를 도시한다. FPGA 로직을 갖는 일부 프로그래밍가능 IC는 또한, 전용 프로세서 블록(PROC)(710)과 내부 및 외부 재구성 포트(도시되지 않음)를 포함한다.
일부 FPGA 로직에서, 각 프로그래밍가능 타일은, 각 인접 타일 내의 대응하는 상호연결 요소로의 표준화된 연결 및 해당 요소로부터의 표준화된 연결을 갖는 프로그래밍가능 상호연결 요소(INT)(711)를 포함한다. 따라서, 함께 취해진 프로그래밍가능 상호연결 요소들은, 도시된 FPGA 로직에 대한 프로그래밍가능 상호연결 구조를 구현한다. 도 7의 상단에 포함된 예에 의해 도시된 바와 같이, 프로그래밍가능 상호연결 요소(INT)(711)는 또한, 동일한 타일 내의 프로그래밍가능 논리 요소로의 표준화된 연결 및 해당 요소로부터의 표준화된 연결을 포함한다.
예컨대, CLB(702)는, 단일 프로그래밍가능 상호연결 요소(INT)(711)에 더하여, 사용자 로직을 구현하도록 프로그래밍될 수 있는 구성가능 로직 요소(CLE)(712)를 포함할 수 있다. BRAM(703)은, 하나 이상의 프로그래밍가능 상호연결 요소에 추가하여 BRAM 로직 요소(BRL)(713)를 포함할 수 있다. 통상적으로, 타일에 포함되는 상호연결 요소의 수는 타일의 높이에 의존한다. 도시된 BRAM 타일은 5개의 CLB와 동일한 높이를 갖지만, 다른 수(예컨대, 4개)가 또한 사용될 수 있다. DSP 타일(706)은, 알맞은 수의 프로그래밍가능 상호연결 요소에 추가하여 DSP 로직 요소(DSPL)(714)를 포함할 수 있다. IOB(704)는, 예컨대, 프로그래밍가능 상호연결 요소(INT)(711)의 인스턴스 1개에 추가하여 입력/출력 로직 요소(IOL)(715)의 인스턴스 2개를 포함할 수 있다. 당업자에게 분명할 바와 같이, 예컨대 I/O 로직 요소(715)에 연결되는, 실제 I/O 본드 패드(bond pad)는, 다양한 도시된 로직 블록 위의 층을 이루는 금속을 사용하여 제조되며, 통상적으로 입력/출력 로직 요소(715)의 영역으로 한정되지 않는다.
다이의 중심 근처의 열 영역(columnar area)(도 7에 음영으로 도시됨)은 구성, 클록, 및 다른 제어 로직을 위해 사용된다. 이 열로부터 연장되는 수평 영역(horizontal area)(709)은, 프로그래밍가능 IC의 폭에 걸쳐 클록 및 구성 신호를 배급하기 위해 사용된다. "열" 영역 및 "수평" 영역에 대한 언급은, 세로 방향(portrait orientation)으로 도면을 볼 때와 관련되어 있다는 점에 유의해야 한다.
도 7에 도시된 아키텍처를 이용하는 일부 프로그래밍가능 IC는, 프로그래밍가능 IC의 큰 부분을 이루는 일반적인 열 구조를 교란시키는, 추가적인 로직 블록을 포함한다. 추가적인 로직 블록은, 프로그래밍가능 블록 및/또는 전용 로직일 수 있다. 예컨대, 도 7에 도시된 프로세서 블록(PROC)(710)은 여러 열의 CLB 및 BRAM에 걸쳐 있다.
도 7은, 오직 예시적 프로그래밍가능 IC 아키텍처를 예시하도록 의도된다는 점에 유의해야 한다. 열 내의 로직 블록의 수, 열의 상대적인 폭, 열의 수 및 순서, 열 내에 포함되는 로직 블록의 유형, 로직 블록의 상대적인 사이즈, 및 도 7의 상단에 포함된 상호연결/로직 구현은 순수하게 예시적인 것이다. 예컨대, 실제의 프로그래밍가능 IC 내에는, 사용자 로직의 효율적인 구현을 용이하게 하기 위하여, CLB가 나타나는 모든 곳에, 하나보다 많은 인접 CLB 열이 통상적으로 포함된다.
본 명세서에 설명된 그리고/또는 도면에 도시된 동작 및 액티비티 중 하나 이상을 수행하도록 다양한 모듈이 구현될 수 있다. 이들 맥락에서, "모듈", "엔진", 또는 "블록"은, 이들 또는 관련된 동작/액티비티(예컨대, 암호화 및/또는 복호화) 중 하나 이상을 수행하는 회로이다. 예컨대, 하나 이상의 모듈/엔진은, 도 1 내지 도 3 및 도 6에 도시된 바와 같은, 이들 동작/액티비티를 구현하도록 구성 및 배열된 개별 로직 회로 또는 프로그래밍가능 로직 회로이다. 프로그래밍가능 회로는, 명령어(및/또는 구성 데이터) 세트(또는 세트들)를 실행하도록 프로그래밍된 하나 이상의 컴퓨터 회로를 포함할 수 있다. 명령어(및/또는 구성 데이터)는, 메모리(회로) 내에 저장되고 메모리(회로)로부터 액세스가능한 펌웨어 또는 소프트웨어의 형태일 수 있다. 예로서, 제1 모듈 및 제2 모듈은 CPU 하드웨어 기반 회로와 펌웨어 형태의 명령어 세트의 조합을 포함하며, 제1 모듈은, 하나의 명령어 세트를 갖는 제1 CPU 하드웨어 회로를 포함하고 제2 모듈은, 또 다른 명령어 세트를 갖는 제2 CPU 하드웨어 회로를 포함한다.
개시되는 회로 배열은 암호화 회로 및 복호화 회로를 포함한다. 암호기술 셸 회로는 송신 채널 및 송신 채널과 병렬인 수신 채널을 갖는다. 송신 채널은, 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함한다. 암호화 인터페이스 회로는, 평문 입력 패킷 내의 데이터에 기초하여 제1 암호기술 파라미터를 결정하고 제1 암호기술 파라미터 및 평문 입력 패킷을 암호화 회로에 입력하도록 구성된다. 수신 채널은, 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함한다. 복호화 인터페이스 회로는, 암호문 입력 패킷 내의 데이터에 기초하여 제2 암호기술 파라미터를 결정하고 제2 암호기술 파라미터 및 암호문 입력 패킷을 복호화 회로에 입력하도록 구성된다. 암호화 회로는, 제1 암호기술 파라미터에 기초하여 평문 입력 패킷을 암호화하도록 구성되고, 복호화 회로는, 제2 암호기술 파라미터에 기초하여 암호문 입력 패킷을 복호화하도록 구성된다. 암호기술 셸 회로는 프로그래밍가능 로직 회로부 내에 구현될 수 있다. 암호기술 셸 회로는, 프로세서로 하여금 제1 암호기술 파라미터 및 제2 암호기술 파라미터를 결정하게 하는 명령어를 실행하도록 구성된 프로세서를 포함할 수 있다. 암호기술 셸 회로는, 제1 암호기술 파라미터 및 제2 암호기술 파라미터를 지정하는 복수의 보안 연관으로 구성된 메모리 회로를 포함할 수 있다. 암호기술 셸 회로는 매체 액세스 제어 보안을 구현한다. 암호기술 셸 회로는 인터넷 프로토콜 보안을 구현할 수 있다. 암호기술 셸 회로는 벌크 암호화 및 벌크 복호화를 구현할 수 있다. 제1 암호기술 파라미터 및 제2 암호기술 파라미터는 암호 선택 코드 및 초기화 벡터를 포함할 수 있다. 송신 채널은, 암호화 인터페이스 회로로부터의 제1 암호기술 파라미터를 암호화 회로에 반송하는 제1 신호 라인 세트, 및 제1 신호 라인 세트로부터 물리적으로 분리되고, 평문 입력 패킷 내의 데이터를 암호화 회로에 반송하는 제2 신호 라인 세트를 포함할 수 있다. 수신 채널은, 복호화 인터페이스 회로로부터의 제2 암호기술 파라미터를 복호화 회로에 반송하는 제3 신호 라인 세트, 및 제3 신호 라인 세트로부터 물리적으로 분리되고, 암호문 입력 패킷의 데이터를 복호화 회로에 반송하는 제4 신호 라인 세트를 포함할 수 있다. 송신 채널 내의 제1 신호 라인 세트 및 제2 신호 라인 세트는 프로그래밍가능 로직 회로부 내에 구현될 수 있다.
또 다른 개시되는 회로 배열은 집적 회로(IC) 디바이스를 포함한다. 복수의 쌍의 암호화 회로와 복호화 회로가 IC 디바이스 상에 배치된다. 복수의 암호기술 셸 회로가 복수의 쌍의 암호화 회로와 복호화 회로에 각각 커플링된다. 각 암호기술 셸 회로는 송신 채널 및 송신 채널과 병렬인 수신 채널을 갖는다. 송신 채널은, 각 쌍의 암호화 회로와 복호화 회로 중 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함한다. 암호화 인터페이스 회로는, 평문 입력 패킷 내의 데이터에 기초하여 제1 암호기술 파라미터를 결정하고 제1 암호기술 파라미터 및 평문 입력 패킷을 암호화 회로에 입력하도록 구성된다. 수신 채널은, 각 쌍의 암호화 회로와 복호화 회로 중 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함한다. 복호화 인터페이스 회로는, 암호문 입력 패킷 내의 데이터에 기초하여 제2 암호기술 파라미터를 결정하고 제2 암호기술 파라미터 및 암호문 입력 패킷을 복호화 회로에 입력하도록 구성된다. 각 쌍의 암호화 회로와 복호화 회로 중 암호화 회로는, 제1 암호기술 파라미터에 기초하여 평문 입력 패킷을 암호화하도록 구성되고, 각 쌍의 암호화 회로와 복호화 회로 중 복호화 회로는, 제2 암호기술 파라미터에 기초하여 암호문 입력 패킷을 복호화하도록 구성된다. 복수의 암호기술 셸 회로는 매체 액세스 제어 보안, 인터넷 프로토콜 보안, 및 벌크 암호기술 중 하나를 구현할 수 있다. 복수의 암호기술 셸 회로 중 하나 이상은 매체 액세스 제어 보안을 구현할 수 있고, 복수의 암호기술 셸 회로 중 하나 이상은 인터넷 프로토콜 보안을 구현할 수 있다. 복수의 암호기술 셸 회로 중 하나 이상은 매체 액세스 제어 보안을 구현할 수 있고, 복수의 암호기술 셸 회로 중 하나 이상은 인터넷 프로토콜 보안을 구현할 수 있고, 복수의 암호기술 셸 회로 중 하나 이상은 벌크 암호기술을 구현할 수 있다. 복수의 암호기술 셸 회로는 프로그래밍가능 로직 회로부 내에 구현될 수 있다. 복수의 암호기술 셸 회로는, 하나 이상의 프로세서로 하여금 제1 암호기술 파라미터 및 제2 암호기술 파라미터를 결정하게 하는 명령어를 실행하도록 구성된 하나 이상의 프로세서를 포함할 수 있다. 복수의 암호기술 셸 회로의 각 암호기술 셸 회로는, 제1 암호기술 파라미터 및 제2 암호기술 파라미터를 지정하는 복수의 보안 연관으로 구성된 메모리 회로를 포함할 수 있다. 제1 암호기술 파라미터 및 제2 암호기술 파라미터는 암호 선택 코드 및 초기화 벡터를 포함할 수 있다. 송신 채널은, 암호화 인터페이스 회로로부터의 제1 암호기술 파라미터를 암호화 회로에 반송하는 제1 신호 라인 세트, 및 제1 신호 라인 세트로부터 물리적으로 분리되고, 평문 입력 패킷의 데이터를 암호화 회로에 반송하는 제2 신호 라인 세트를 포함할 수 있다. 수신 채널은, 복호화 인터페이스 회로로부터의 제2 암호기술 파라미터를 복호화 회로에 반송하는 제3 신호 라인 세트, 및 제3 신호 라인 세트로부터 물리적으로 분리되고, 암호문 입력 패킷의 데이터를 복호화 회로에 반송하는 제4 신호 라인 세트를 포함할 수 있다.
일부 경우에는 개별적인 도면에서 양상 및 특징이 설명될 수 있지만, 하나의 도면으로부터의 특징이 또 다른 도면의 특징과 조합될 수 있다는 것이 이해될 것이며, 이는 그러한 조합이 조합으로서 명시적으로 도시되지 않거나 명시적으로 설명되지 않은 경우에도 마찬가지이다.
회로 및 방법은 암호화 및/또는 복호화를 위한 다양한 시스템에 적용가능한 것으로 사료된다. 본 명세서를 살펴봄으로써 다른 양상 및 특징이 당업자에게 분명해질 것이다. 회로 및 방법은, 소프트웨어를 실행하도록 구성된 하나 이상의 프로세서로서, 애플리케이션 특유 집적 회로(ASIC, application specific integrated circuit)로서, 또는 프로그래밍가능 로직 디바이스 상의 로직으로서 구현될 수 있다. 본 명세서 및 도면은 예로서만 고려되도록 의도되며, 본 발명의 진정한 범위는 다음의 청구범위에 의해 나타나 있다.

Claims (15)

  1. 회로 배열에 있어서,
    암호화 회로;
    복호화 회로; 및
    송신 채널 및 상기 송신 채널과 병렬인 수신 채널을 갖는 암호기술 셸 회로(cryptographic shell circuit)
    를 포함하며,
    상기 송신 채널은, 상기 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함하고, 상기 암호화 인터페이스 회로는, 평문 입력 패킷 내의 데이터에 기초하여 제1 암호기술 파라미터를 결정하고 상기 제1 암호기술 파라미터 및 평문 입력 패킷을 상기 암호화 회로에 입력하도록 구성되고;
    상기 수신 채널은, 상기 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함하고, 상기 복호화 인터페이스 회로는, 암호문 입력 패킷 내의 데이터에 기초하여 제2 암호기술 파라미터를 결정하고 상기 제2 암호기술 파라미터 및 암호문 입력 패킷을 상기 복호화 회로에 입력하도록 구성되고;
    상기 암호화 회로는, 상기 제1 암호기술 파라미터에 기초하여 상기 평문 입력 패킷을 암호화하도록 구성되고;
    상기 복호화 회로는, 상기 제2 암호기술 파라미터에 기초하여 상기 암호문 입력 패킷을 복호화하도록 구성되는, 회로 배열.
  2. 제1항에 있어서, 상기 암호기술 셸 회로는 프로그래밍가능 로직 회로부 내에 구현되는, 회로 배열.
  3. 제1항에 있어서, 상기 암호기술 셸 회로는 프로세서를 포함하고, 상기 프로세서는, 상기 프로세서로 하여금 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터를 결정하게 하는 명령어를 실행하도록 구성되는, 회로 배열.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 암호기술 셸 회로는, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터를 지정하는 복수의 보안 연관(security association)으로 구성된 메모리 회로를 포함하는, 회로 배열.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 암호기술 셸 회로는 벌크 암호화와 벌크 복호화, 인터넷 프로토콜 보안, 및 매체 액세스 제어 보안 중 하나를 구현하는, 회로 배열.
  6. 제5항에 있어서, 상기 암호기술 셸 회로는, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터를 지정하는 복수의 보안 연관으로 구성된 메모리 회로를 포함하는, 회로 배열.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터는 암호 선택 코드 및 초기화 벡터를 포함하는, 회로 배열.
  8. 제7항에 있어서, 상기 암호기술 셸 회로는, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터를 지정하는 복수의 보안 연관으로 구성된 메모리 회로를 포함하는, 회로 배열.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 송신 채널은, 상기 암호화 인터페이스 회로로부터의 상기 제1 암호기술 파라미터를 상기 암호화 회로에 반송하는 제1 신호 라인 세트, 및 상기 제1 신호 라인 세트로부터 물리적으로 분리되고, 상기 평문 입력 패킷 내의 데이터를 상기 암호화 회로에 반송하는 제2 신호 라인 세트를 포함하고;
    상기 수신 채널은, 상기 복호화 인터페이스 회로로부터의 상기 제2 암호기술 파라미터를 상기 복호화 회로에 반송하는 제3 신호 라인 세트, 및 상기 제3 신호 라인 세트로부터 물리적으로 분리되고, 상기 암호문 입력 패킷의 데이터를 상기 복호화 회로에 반송하는 제4 신호 라인 세트를 포함하는, 회로 배열.
  10. 제9항에 있어서, 상기 암호기술 셸 회로는, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터를 지정하는 복수의 보안 연관으로 구성된 메모리 회로를 포함하는, 회로 배열.
  11. 제10항에 있어서, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터는 암호 선택 코드 및 초기화 벡터를 포함하는, 회로 배열.
  12. 회로 배열에 있어서,
    집적 회로(IC, integrated circuit) 디바이스;
    상기 IC 디바이스 상에 배치된 복수의 쌍의 암호화 회로와 복호화 회로;
    상기 복수의 쌍의 암호화 회로와 복호화 회로에 각각 커플링된 복수의 암호기술 셸 회로 - 각 암호기술 셸 회로는 송신 채널 및 상기 송신 채널과 병렬인 수신 채널을 가짐 -
    를 포함하며,
    상기 송신 채널은, 상기 복수의 쌍 중 하나의 쌍 중의 암호화 회로에 커플링된 암호화 인터페이스 회로를 포함하고, 상기 암호화 인터페이스 회로는, 평문 입력 패킷 내의 데이터에 기초하여 제1 암호기술 파라미터를 결정하고 상기 제1 암호기술 파라미터 및 평문 입력 패킷을 상기 암호화 회로에 입력하도록 구성되고;
    상기 수신 채널은, 상기 복수의 쌍 중 하나의 쌍 중의 복호화 회로에 커플링된 복호화 인터페이스 회로를 포함하고, 상기 복호화 인터페이스 회로는, 암호문 입력 패킷 내의 데이터에 기초하여 제2 암호기술 파라미터를 결정하고 상기 제2 암호기술 파라미터 및 암호문 입력 패킷을 상기 복호화 회로에 입력하도록 구성되고;
    상기 복수의 쌍 중 하나의 쌍 중의 암호화 회로는, 상기 제1 암호기술 파라미터에 기초하여 상기 평문 입력 패킷을 암호화하도록 구성되고;
    상기 복수의 쌍 중 하나의 쌍 중의 복호화 회로는, 상기 제2 암호기술 파라미터에 기초하여 상기 암호문 입력 패킷을 복호화하도록 구성되는, 회로 배열.
  13. 제12항에 있어서, 상기 복수의 암호기술 셸 회로는 매체 액세스 제어 보안, 인터넷 프로토콜 보안, 및 벌크 암호기술 중 하나 이상을 구현하는, 회로 배열.
  14. 제12항에 있어서, 상기 복수의 암호기술 셸 회로 중 하나 이상은 매체 액세스 제어 보안을 구현하고, 상기 복수의 암호기술 셸 회로 중 하나 이상은 인터넷 프로토콜 보안을 구현하는, 회로 배열.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서, 각 암호기술 셸 회로는, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터를 지정하는 복수의 보안 연관으로 구성된 메모리 회로를 포함하고, 상기 제1 암호기술 파라미터 및 상기 제2 암호기술 파라미터는 암호 선택 코드 및 초기화 벡터를 포함하는, 회로 배열.
KR1020217010777A 2018-09-27 2019-09-11 암호기술 시스템 KR20210064258A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/144,705 2018-09-27
US16/144,705 US10659437B1 (en) 2018-09-27 2018-09-27 Cryptographic system
PCT/US2019/050627 WO2020068426A1 (en) 2018-09-27 2019-09-11 Cryptographic system

Publications (1)

Publication Number Publication Date
KR20210064258A true KR20210064258A (ko) 2021-06-02

Family

ID=68052001

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217010777A KR20210064258A (ko) 2018-09-27 2019-09-11 암호기술 시스템

Country Status (6)

Country Link
US (1) US10659437B1 (ko)
EP (1) EP3857424B1 (ko)
JP (1) JP7371092B2 (ko)
KR (1) KR20210064258A (ko)
CN (1) CN112740217B (ko)
WO (1) WO2020068426A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210092103A1 (en) * 2018-10-02 2021-03-25 Arista Networks, Inc. In-line encryption of network data
TWI748570B (zh) * 2020-07-22 2021-12-01 瑞昱半導體股份有限公司 資料處理裝置
US11657040B2 (en) 2020-10-30 2023-05-23 Xilinx, Inc. Blockchain machine network acceleration engine
US11743051B2 (en) 2020-10-28 2023-08-29 Xilinx, Inc. Blockchain machine compute acceleration engine with a block verify and a block validate
US11956160B2 (en) * 2021-06-01 2024-04-09 Mellanox Technologies, Ltd. End-to-end flow control with intermediate media access control security devices

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118869A (en) 1998-03-11 2000-09-12 Xilinx, Inc. System and method for PLD bitstream encryption
US6351814B1 (en) * 1999-07-21 2002-02-26 Credence Systems Corporation Field programmable gate array with program encryption
US20020184487A1 (en) 2001-03-23 2002-12-05 Badamo Michael J. System and method for distributing security processing functions for network applications
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
US7266703B2 (en) * 2001-06-13 2007-09-04 Itt Manufacturing Enterprises, Inc. Single-pass cryptographic processor and method
JP2003324423A (ja) 2002-05-01 2003-11-14 Nec Electronics Corp データ処理方法、暗号化方法、復号化方法、認証方法及びこれらの装置
US7180776B1 (en) 2002-08-30 2007-02-20 Xilinx, Inc. Systems and methods for programming a secured CPLD on-the-fly
US6794896B1 (en) 2003-04-21 2004-09-21 Xilinx, Inc. Method and apparatus for multithreading
US7010664B1 (en) 2003-04-30 2006-03-07 Xilinx, Inc. Configurable address generator and circuit using same
US7685434B2 (en) * 2004-03-02 2010-03-23 Advanced Micro Devices, Inc. Two parallel engines for high speed transmit IPsec processing
US7424553B1 (en) 2004-04-15 2008-09-09 Xilinx, Inc. Method and apparatus for communicating data between a network transceiver and memory circuitry
US7853799B1 (en) 2004-06-24 2010-12-14 Xilinx, Inc. Microcontroller-configurable programmable device with downloadable decryption
US7757294B1 (en) 2004-08-27 2010-07-13 Xilinx, Inc. Method and system for maintaining the security of design information
EP1873961A1 (en) * 2005-04-07 2008-01-02 Matsushita Electric Industrial Co., Ltd. Circuit building device
US7536559B1 (en) 2005-05-05 2009-05-19 Xilinx, Inc. Method and apparatus for providing secure programmable logic devices
JP2007142591A (ja) * 2005-11-15 2007-06-07 Matsushita Electric Ind Co Ltd 暗号管理方法
US8074077B1 (en) 2007-04-12 2011-12-06 Xilinx, Inc. Securing circuit designs within circuit design tools
US8422679B2 (en) * 2008-10-17 2013-04-16 Motorola Solutions, Inc. Method and device for sending encryption parameters
US8713327B1 (en) 2009-02-02 2014-04-29 Xilinx, Inc. Circuit for and method of enabling communication of cryptographic data
US8284801B1 (en) 2010-01-26 2012-10-09 Xilinx, Inc. Method and apparatus for controlling an operating mode for an embedded Ethernet media access controller
US8539254B1 (en) 2010-06-01 2013-09-17 Xilinx, Inc. Method and integrated circuit for protecting against differential power analysis attacks
US8966253B1 (en) 2010-06-01 2015-02-24 Xilinx, Inc. Method and apparatus for authenticating a programmable device bitstream
CN101958789B (zh) * 2010-09-17 2012-07-04 北京航空航天大学 一种通信链路中高速数据加/解密模块
US7958414B1 (en) 2010-09-22 2011-06-07 Xilinx, Inc. Enhancing security of internal memory
KR101451369B1 (ko) * 2011-04-29 2014-10-16 엘에스아이 코포레이션 암호화된 전송 고체 상태 디스크 제어기
CN102546150A (zh) * 2012-02-07 2012-07-04 中国科学院软件研究所 面向密码设备的能量泄露采集方法及系统
WO2014049830A1 (ja) * 2012-09-28 2014-04-03 富士通株式会社 情報処理装置および半導体装置
US8981810B1 (en) 2013-04-22 2015-03-17 Xilinx, Inc. Method and apparatus for preventing accelerated aging of a physically unclonable function
US9047474B1 (en) 2014-02-21 2015-06-02 Xilinx, Inc. Circuits for and methods of providing isolation in an integrated circuit
US9934185B2 (en) 2015-01-12 2018-04-03 Xilinx, Inc. Processing system network controller with interface to programmable logic
US9755649B1 (en) 2015-02-09 2017-09-05 Xilinx, Inc. Protection against tamper using in-rush current
AT517983B1 (de) 2015-11-18 2018-11-15 Siemens Ag Oesterreich Schutz eines Computersystems vor Seitenkanalattacken
US10102370B2 (en) * 2015-12-21 2018-10-16 Intel Corporation Techniques to enable scalable cryptographically protected memory using on-chip memory
JP6620595B2 (ja) 2016-02-25 2019-12-18 富士通株式会社 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法
US20170257369A1 (en) * 2016-03-04 2017-09-07 Altera Corporation Flexible feature enabling integrated circuit and methods to operate the integrated circuit
JP6696352B2 (ja) * 2016-08-18 2020-05-20 富士通株式会社 プログラマブルロジック装置、情報処理装置、処理方法、及び処理プログラム
US9941880B1 (en) 2016-11-16 2018-04-10 Xilinx, Inc. Secure voltage regulator
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
CN108123793A (zh) * 2017-12-19 2018-06-05 杭州中天微系统有限公司 基于apb总线的spi通信装置

Also Published As

Publication number Publication date
CN112740217A (zh) 2021-04-30
CN112740217B (zh) 2024-02-02
US20200143088A1 (en) 2020-05-07
WO2020068426A1 (en) 2020-04-02
US10659437B1 (en) 2020-05-19
EP3857424B1 (en) 2024-04-10
JP2022502910A (ja) 2022-01-11
JP7371092B2 (ja) 2023-10-30
EP3857424A1 (en) 2021-08-04

Similar Documents

Publication Publication Date Title
JP7371092B2 (ja) 暗号システム
US9363078B2 (en) Method and apparatus for hardware-accelerated encryption/decryption
Hanley et al. Hardware comparison of the ISO/IEC 29192-2 block ciphers
US12010209B2 (en) Memory-efficient hardware cryptographic engine
Samir et al. ASIC and FPGA comparative study for IoT lightweight hardware security algorithms
Salman et al. Efficient hardware accelerator for IPSec based on partial reconfiguration on Xilinx FPGAs
Kashyap et al. Compact and on-the-fly secure dynamic reconfiguration for volatile FPGAs
Liu et al. Secure Video Streaming with Lightweight Cipher PRESENT in an SDN Testbed.
Cheung et al. Implementation of an FPGA based accelerator for virtual private networks
Martinasek et al. 200 Gbps hardware accelerated encryption system for FPGA network cards
Feghali et al. Security: Adding Protection to the Network via the Network Processor.
Nguyen et al. Performance enhancement of encryption and authentication IP cores for IPSec based on multiple-core architecture and dynamic partial reconfiguration on FPGA
US20220284132A1 (en) Method for securing logic circuits
Sever et al. A high speed FPGA implementation of the Rijndael algorithm
Yamamoto et al. Compact architecture for ASIC and FPGA implementation of the KASUMI block cipher
Seetharaman et al. Enhanced TACIT encryption and decryption algorithm for secured data routing in 3-D network-on-chip based interconnection of SoC for IoT application
Venkateswarlu et al. Implementation of Cryptographic Algorithm on FPGA
Cardona et al. Partial Crypto-Reconfiguration of nodes based on FPGA for WSN
Nam et al. A Hardware Architecture of NIST Lightweight Cryptography applied in IPSec to Secure High-throughput Low-latency IoT Networks
Pandey et al. Design, integration and implementation of crypto cores in an SoC environment
Niu et al. A 10 Gbps in-line network security processor based on configurable hetero-multi-cores
Fuhrmann et al. Implementation and benchmarking of a crypto processor for a Nb-IoT SoC platform
Cavo et al. Implementation and benchmarking of a crypto processor for a NB-IoT SoC platform
Sugier Implementing Serpent cipher in field programmable gate arrays
Anwar et al. Integration of AES on heterogeneous many-core system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal