KR20020021374A - 암호화 프로그램이 있는 필드 프로그래머블 게이트 어레이 - Google Patents

암호화 프로그램이 있는 필드 프로그래머블 게이트 어레이 Download PDF

Info

Publication number
KR20020021374A
KR20020021374A KR1020017014513A KR20017014513A KR20020021374A KR 20020021374 A KR20020021374 A KR 20020021374A KR 1020017014513 A KR1020017014513 A KR 1020017014513A KR 20017014513 A KR20017014513 A KR 20017014513A KR 20020021374 A KR20020021374 A KR 20020021374A
Authority
KR
South Korea
Prior art keywords
program
fpga
circuit means
input
circuit
Prior art date
Application number
KR1020017014513A
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 KR20020021374A publication Critical patent/KR20020021374A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

필드 프로그래머블 게이트 어레이(FPGA)와 해독 회로는 공통 집적회로(IC) 또는 공통 IC 패키지에 둘러싸여 있는 별도의 IC 내에 구현된다. 해독 회로는 특정 암호 키에 따라 암호화된 입력 FPGA 프로그램을 해독한 후 해독된 FPGA 프로그램을 FPGA에 기록한다. 따라서 특정 암호 키에 따라 암호화된 FPGA 프로그램은 해당 특정 암호 키에 따라 암호화된 FPGA 프로그램을 해독할 수 있는 해독 회로와 결합된 이들 FPGA만을 프로그램하는 데 사용될 수 있다. 해독 회로와 FPGA가 동일 IC 또는 동일 IC 패키지로 구현되므로 해독 회로가 생성하는 해독된 FPGA 프로그램은 쉽게 가로채어지거나 복사될 수 없다.

Description

암호화 프로그램이 있는 필드 프로그래머블 게이트 어레이 {FIELD PROGRAMMABLE GATE ARRAY WITH PROGRAM ENCRYPTION}
필드 프로그래머블 게이트 어레이(FPGA)는 신호 전달 경로 지정 장치를 통해 상호간에 그리고 FPGA 입력 및 출력(I/O) 단자에 연결되는 상당히 많은 수의 논리 블록을 포함한다. FPGA에 저장되어 있는 경로 데이터가 논리 블록을 제어하고 논리 블록과 FPGA의 입출력 단자 간의 데이터의 경로 지정 방법을 경로 지정 장치에 알림으로써 FPGA가 그 입력 신호를 처리하여 그 출력 신호를 생성하도록 한다. FPGA 프로그램은 따라서 단순히 FPGA 프로그래밍 단자에 입력으로 공급된 일련의 경로 데이터일 뿐이다. 사용자는 통상적으로 경로 데이터를 FPGA에 기록하는 FPGA 프로그래밍 장치에 경로 데이터를 포함하는 데이터 파일을 공급함으로써 FPGA를 프로그램(또는 재프로그램)한다.
FPGA 프로그램 개발자나 배포자는 FPGA 프로그램의 허가받지 않은 사용을 방지하는 데 관심이 있다. 예를 들면, FPGA 프로그램 개발자나 배포자는 고객이FPGA 프로그램을 공개된 인터넷 사이트로부터 편리하게 다운로드 받는다는 것을 알지만, 먼저 허가를 받지 않고 타인이 이들 프로그램을 사용하는 것을 방지하기를 원할 수 있다. 그렇지 않으면, FPGA 프로그램 개발자가 고객에게 특정 집합의 FPGA만을 프로그램하도록 허가하는 경우에 프로그램 개발자는 고객이나 다른 사람들이 다른 FPGA를 프로그램하도록 당해 FPGA 프로그램을 사용하지 못하도록 하기를 원할 것이다.
일부 컴퓨터 프로그램은 암호화되어서 먼저 특수 코드("암호 키")로 결정되는 방식으로 해독되지 않으면 컴퓨터를 프로그램하는 데 사용될 수 없다. 고객이 소프트웨어를 사용하도록 허가를 얻으면 허가업자는 고객에게 올바른 암호 키를 제공한다. 고객이 그 후 소프트웨어를 얻고 그 설치 프로그램을 호출하면 설치 프로그램은 고객에게 암호 키에 대해 묻는다. 그러면 설치 프로그램은 키에 따라 프로그램을 해독하고 고객 컴퓨터에 해독된 프로그램을 설치한다. 고객이 아니라 다른 사람도 암호화 프로그램을 다운로드 할 수 있지만, 이 사람은 설치 프로그램에 올바른 암호 키를 제공하지 못하므로 컴퓨터에 당해 프로그램을 설치할 수 없다.
FPGA 프로그래밍 장치를 암호화 회로에 장치함으로써 FPGA 프로그램을 암호화하거나 사용자에게 적절한 암호 키를 제공하도록 요구하는 프로그램을 암호화하기 위해 유사한 암호화 시스템을 사용할 수 있다. 그러나 이러한 암호화 시스템으로 인해 FPGA 프로그램이 고객 이외의 다른 사람에 의해 사용될 기회가 줄어들기는 하지만, 암호 키에 접근할 수 있는 고객이나 다른 사람은 임의의 개수의 FPGA를 프로그램 하도록 FPGA 프로그램을 사용할 수 있다. 또한, FPGA 프로그램을 해독한것을 FPGA 프로그래밍 장치의 출력에서 얻은 후 해독 절차 없이 이것을 FPGA를 프로그램 하는 데 사용할 수 있다.
여기서 우리에게 필요한 것은 특정 집합의 FPGA 이외의 것을 프로그램 하는 FPGA 프로그램을 아무나 사용하는 것을 방지하는 시스템이다.
본 발명은 프로그램을 해독할 수 있는 필드 프로그래머블 게이트 어레이(FPGA : field programmable gate array)의 특정 집합만을 프로그램하는 데 사용될 수 있도록 FPGA 프로그램을 부호화하는 시스템에 관한 것이다.
도 1은 본 발명에 따른 FPGA 프로그램 암호화 시스템을 나타내는 블록도이며,
도 2는 도 1의 암호화 프로그램을 나타내는 흐름도이며,
도 3은 도 1의 해독 회로의 적절한 구현을 나타내는 개략도이며,
도 4는 본 발명에 따른 FPGA 프로그램 암호화 시스템의 다른 실시예를 나타내는 블록도이다.
필드 프로그래머블 게이트 어레이(FPGA)는 FPGA에 기록되어 있는 FPGA 프로그램(데이터 순차)으로 제어되는 로직을 구현한다. 본 발명의 한 측면에 따르면, FPGA에 기록되기 전에 소정의 암호 키에 따라 해독되도록 해당 메모리 어레이에 기록될 FPGA 프로그램이 먼저 암호화된다.
본 발명의 한 측면에 따르면, 암호화된 FPGA 프로그램에 의해 프로그램될 FPGA를 구현하는 집적회로는 적절한 암호 키에 따라 암호화된 FPGA 프로그램을 수신 및 해독하여 해독된 FPGA 프로그램을 생성하는 내부 해독 회로를 포함한다. 해독 회로(28)는 그 후 해독된 FPGA 프로그램을 FPGA의 내부 메모리 어레이에 기록한다. 따라서 암호화된 FPGA 프로그램은 적절한 암호 키에 따라 FPGA 프로그램을 해독할 수 있는 해독 회로를 구비하지 않은 FPGA를 프로그램하는 데 사용될 수 없다. 또한 해독 회로와 FPGA는 동일 IC 내에서 구현되므로 해독 회로의 출력 단자는 쉽게 접근되지 않는다. 따라서 해독 회로의 해독된 FPGA 프로그램 출력은 쉽게 가로채어지거나 복사될 수 없다.
본 발명의 다른 측면에 따르면, 해독 회로와 FPGA는 별도의 IC 칩 상에서 구현되지만, 이들 칩은 동일 IC 패키지 내에 둘러싸여 상호 접속되어 있어서 해독 회로의 해독된 FPGA 프로그램 출력은 쉽게 접근될 수 없다.
따라서 본 발명의 과제는 FPGA 프로그램이 의도하는 FPGA의 특정 집합 이외의 FPGA를 프로그램하는 FPGA 프로그램의 사용을 방지하는 시스템을 제공하는 것이다.
이 명세서의 결론부는 본 발명의 주제를 특정하고 주장한다. 그러나 당업자는 첨부하는 도면을 참조하여 명세서의 나머지 부분을 읽음으로써 또 다른 장점 및 과제와 더불어 본 발명의 작용상의 구성과 방법을 더 잘 이해할 것이다.
필드 프로그래머블 게이트 어레이(FPGA)는 신호 전달 경로 지정 장치를 통해 상호간에 그리고 FPGA 입력 및 출력(I/O) 단자에 연결되는 상당히 많은 수의 논리 블록을 포함한다. FPGA에 저장되어 있는 경로 데이터가 논리 블록을 제어하고 논리 블록과 FPGA의 입출력 단자 간의 데이터의 경로 지정 방법을 경로 지정 장치에 알림으로써 FPGA가 그 입력 신호를 처리하여 그 출력 신호를 생성하도록 한다.FPGA 프로그램은 단순히 FPGA 프로그래밍 단자에 입력으로 공급된 일련의 경로 데이터일 뿐이다. 사용자는 통상적으로 경로 데이터를 포함하는 데이터 파일을 생성하고 이를 경로 데이터를 FPGA에 기록하는 종래의 FPGA 프로그래밍 장치에 공급함으로써 FPGA를 프로그램(또는 재프로그램)한다. 본 발명은 프로그램을 해독하는 데 적합한 FPGA의 특정 집합만을 프로그램하는 데 사용될 수 있도록 FPGA 프로그램을 암호화하는 FPGA 프로그램 암호화 시스템에 관한 것이다.
도 1은 본 발명에 따른 FPGA 프로그램 암호화 시스템(10)을 나타내는 블록도이다. 시스템(10)은 FPGA의 입력 신호(INSIG)와 그 출력 신호(OUTSIG) 간의 논리적 관계를 제어하는 FPGA 프로그램을 수신하고 저장할 수 있는 통상적인 FPGA(12)를 포함한다. 본 발명에 따르면, 통상적인 암호화 프로그램(16)은 FPGA 프로그램(14)의 각각의 연속적인 워드를 암호화하여 FPGA 프로그램(14)의 암호화 버전(18)의 대응하는 워드를 생성한다. 암호화 프로그램(16)의 암호의 바탕은 입력 암호 키(KEY)이다. 여기에서 설명하는 바와 같이, 암호화 프로그램(16)은 8 비트 FPGA 프로그램 워드를 수신하고, 8 비트 출력의 암호화된 FPGA 프로그램 워드를 생성하며, 8 비트 암호 키를 채택한다. 그러나 키와 워드의 크기는 이 시스템의 다른 실시예에서는 더 크거나 더 작을 수 있다.
FPGA(12)는 암호화된 FPGA 프로그램(18)을 해독하고 그 결과의 해독된 FPGA 프로그램을 그 프로그래밍 입력단(PI)을 통해 FPGA(12)에 로딩할 수 있는 여타 회로(24-32)와 더불어 집적회로(IC)에 통합되어 있다. IC(20) 밖에 있는 통상적인 FPGA 프로그래밍 장치(22)는 RESET 신호를 순차화기(26)로 전달한 후 암호화된FPGA 프로그램의 각 비트를 직렬 대 병렬 시프트 레지스터(24)로 직렬 시프트함으로써 각 비트가 시프트 레지스터 입력단에서 이용될 수 있을 때 CLOCK 신호 출력을 펄스로 내보낸다. 순차화기(26)는 입력 FPGA 프로그램의 수신을 준비하도록 알리는 FPGA(12)의 리셋 입력을 펄스로 내보냄으로써 RESET 신호에 응답한다. 그 후, 순차화기(26)는 부호화된 FPGA 프로그램(18)의 각각의 유입 비트를 시프트 레지스터(24)로 시프트하도록 그 입력 CLOCK 신호의 각 펄스에 응답하여 시프트 레지스터(24)의 시프트 인(SI) 입력을 펄스로 내보낸다. 시프트 레지스터(24)는 그 직렬 입력 FPGA 프로그램을 8 비트 워드의 순차로 정리하고 이를 해독 회로(28)에 공급한다. 암호화된 FPGA 프로그램(18)을 생성할 때 사용되는 동일한 암호 키(KEY)의 암호화 프로그램(16)을 사용함으로써, 해독 회로(28)는 암호화된 프로그램의 8 비트 워드의 각각을 해독하여 원래의 암호화되지 않은 FPGA 프로그램(14)의 대응하는 8 비트 워드를 다시 생성한다. IC(20)에 포함되어 있는 통상적인 불휘발성 메모리(32)는 암호 KEY를 저장하여 이를 해독 회로(28)에 제공한다.
해독 회로(28)는 각각의 해독된 FPGA 프로그램 워드 출력을 입력으로서 병렬 대 직렬 시프트 레지스터(30)에 제공한다. 순차화기(26)는 시프트 레지스터(30)의 시프트 인(SI) 입력을 펄스로 내보내서 각각의 연속된 해독 FPGA 프로그램 워드를 시프트 레지스터(30)로 로드하고 시프트 레지스터(30)로 하여금 워드의 각 비트를 FPGA(12)의 프로그래밍 입력단(PI)에 직렬 시프트하게 하는 그 시프트 아웃(SO) 입력을 펄스로 순차적으로 내보낸다. 순차화기(26)는 또한 FPGA(12)의 LOAD 입력을 펄스로 순차적으로 내보내서 해독된 FPGA 프로그램 워드의 각 비트를 저장하도록알려준다. 따라서 장치(24-32)는 암호화된 FPGA 프로그램(18)의 각 워드를 해독하고 그 결과를 FPGA(12)에 기록함으로써 암호화되지 않은 FPGA 프로그램(14)에 따라 이를 프로그램하게 한다.
암호화 시스템(10)은 FPGA 프로그램 개발자나 배포자가 허가를 받지 않고 FPGA 프로그램(14)을 사용하는 것을 방지하도록 한다. 예를 들면, FPGA 프로그램 개발자는 고객에게 암호화 FPGA 프로그램(18)뿐만 아니라 프로그램될 FPGA(12)를 포함하는 IC(20)도 제공할 수 있다. IC를 고객에게 전달하기 전에 개발자는 적절한 해독 키를 그 불휘발성 메모리(32)에 기록한다. 따라서 고객 즉 암호화 FPGA 프로그램(18)의 복사본을 얻는 사람은 누구든지 적절하게 FPGA 프로그램을 해독할 수 있는 해독 회로(28)를 구비하는 특정 IC(20) 내에 포함된 FPGA(12)만을 프로그램하도록 FPGA 프로그램을 사용할 수 있다. 여기서 유의할 사항은 해독 회로(28)가 IC(20)에 내장되어 있으므로 그 출력 단자에는 쉽게 접근할 수 없다는 것이다. 따라서 고객은 해독된 FPGA 프로그램을 FPGA(12)에 제공하도록 쉽게 가로챌 수 없고 적절한 해독 시스템을 구비하지 않은 종래의 FPGA를 프로그램하는 데 이를 사용할 수 없다. 또 유의할 사항은 암호 키도 IC(20)에 내장되어 있으므로 고객이나 임의의 사람이 이를 쉽게 이용할 수 없다는 것이다. 그래서 개발자만이 키를 알아서 개발자만이 IC(20)에 대해 프로그램을 적절하게 암호화할 수 있다. 따라서 고객이 다른 로직을 수행하도록 FPGA(12)를 다시 프로그램하기를 바랄 때는 고객은 다른 곳이 아닌 개발자로부터 적절하게 암호화된 프로그램을 얻어야 할 것이다.
암호화 프로그램과 해독 회로
도 2는 암호화 프로그램(16)으로 사용하기에 적절한 간단한 암호화 프로그램을 나타내는 도면이다. 단계(32)에서 암호화 프로그램(16)은 비암호화 프로그램(14)의 다음(첫 번째) 단어를 읽은 후 단계(34)에서 비암호화 단어의 각 비트를 암호 키의 대응하는 비트와 배타적 OR(XOR)해서 암호화된 프로그램(18) 출력의 단어를 생성한다. 마지막 처리된 비암호화 단어가 비암호화 FPGA 프로그램(14)의 마지막 단어가 아닐 때(단계 36), 암호화 프로그램(16)은 단계(32, 34)를 반복해서 암호화된 프로그램(18)의 대응하는 단어를 생성하도록 FPGA 프로그램(14)의 다음 비암호화 단어를 얻고 XOR한다. 암호화 프로그램(16)은 비암호화 FPGA 프로그램(14)의 마지막 단어가 암호화되었을 때 단계(36)를 종료한다.
도 3은 도 2의 프로그램(16)의 출력을 해독하는 데 적절한 도 1의 해독 회로(28)의 간단한 구현을 나타내는 개략도이다. 해독 회로(28)는 8개의 XOR 게이트(37)의 집합을 포함한다. 각각의 XOR 게이트(37)는 8 비트의 암호화된 단어의 비트를 8 비트 암호 키(KEY)의 대응하는 단어와 XOR해서 해독된 데이터의 대응하는 단어를 생성한다. 예를 들어 비암호화 FPGA 프로그램(14)의 8 비트 단어가 이진 값 (10011011)을 가지며 8 비트 암호 키가 값 (11010010)을 가진다고 가정하자. 암호화 프로그램(16)은 두 개의 8 비트 값들을 XOR 해서 다음과 같은 값을 가지는 암호화 FPGA 프로그램(18)의 단어를 생성한다.
암호화 단어 = 비암호화 단어 XOR 키
(01000001) (10011011) XOR (11010010)
해독 회로(28)가 암호화 단어 (01000001)을 받아들이고 이를 원래의 암호화 키 값 (11010010)과 XOR 해서 다음과 같은 원래의 비암호화 단어를 생성한다.
비암호화 단어 = 암호화 단어 XOR 키
(10011011) (01000001) XOR (11010010)
8 비트 암호화 키는 28개의 상이한 암호화 키 값을 허용한다. 암호화 키의 크기를 예를 들어 216개의 값들을 허용하도록 16 비트로 증가시킬 수 있다. 그렇게 하기 위해서는 암호화 프로그램(16)의 데이터 단어의 입력과 출력의 폭, 시프트 레지스터(24)와 시프트 레지스터(30) 간의 데이터 경로의 폭, 그리고 도 3의 해독 회로(28)의 게이트(37)의 수를 16으로 간단히 증가시킨다.
다중 칩 모듈 버전
도 4는 암호화된 FPGA 프로그램을 해독하는 도 1의 장치(24-32)가 FPGA(12)를 포함하지 않는 IC 칩(38)에 구현되는 본 발명의 다른 실시예를 나타내는 도면이다. 그러나 FPGA(12)와 IC 칩(38)은 종래의 다중 칩 모듈 기술을 이용하여 공통 IC 패키지(40)에 장착된다. FPGA(12)와 IC 칩(38) 간의 접속이 패키지(40) 내에서이루어지므로 IC 칩(38)이 생성하는 해독된 출력 순차를 복사하기를 원하는 사람이 쉽게 접근할 수 없다.
다른 설계 기법
본 발명은 몇 가지의 실시예를 참고로 기재되었지만, 이 분야의 숙련된 기술자들은 특별히 여기에 기재하지는 않았지만 본 발명에 대해 여러 가지 다양한 변경이 가능하며 이들 역시 본 발명의 사상 및 범위 내에 있음을 인식할 것이다. 예를 들면, 한 비트 이상의 프로그래밍 입력(PI)을 갖는 FPGA에 대해 시프트 레지스터(30)는 충분히 넓은 출력을 제공하도록 수정될 수 있다. 데이터를 암호화하고 해독하는 기존의 많은 시스템은 도 1의 암호화 프로그램(16)과 해독 회로(28)의 기능을 구현하는 데 사용될 수 있다. 플래시 메모리 셀과 퓨즈 기술을 포함하는 기존의 여러 가지 기술이 불휘발성 메모리(32)를 구현하는 데 사용될 수 있다. 해독 회로(28)에 암호화 키 값을 입력하는 것은 대안적으로는 IC 제조 중에 마스크 레벨에서 IC(20)를 적절히 프로그래밍함으로써 IC(20) 내의 불휘발성 메모리(레지스터, 플립-플롭, SRAM 등)에 저장되어 있는 해독 회로(28)에 대한 하드 와이어 방식 입력으로 제공될 수 있다. 암호 키는 IC(20) 외부의 소스로부터 해독 회로(28)로 제공될 수도 있다. 암호화 시스템의 바람직한 실시예가 FPGA와 접속되어 사용되는 것으로 기재되었지만, 유사한 암호화 시스템이 입력 데이터 순차에 의해 프로그램되는 다른 종류의 논리 장치와 접속되어 사용될 수 있다는 것을 인식할 것이다. 첨부하는 특허청구범위는 따라서 본 발명의 범위와 정신에 속하면서 이러한변형을 커버할 것이다.

Claims (18)

  1. 입력 신호에 대하여 입력으로 제공되는 암호화된 제1 프로그램으로 정의되는 논리 연산을 수행하여 출력 신호를 생성하는 장치에 있어서,
    상기 제1 프로그램을 수신 및 해독하여 제2 프로그램을 생성하는 제1 회로 수단, 그리고
    상기 제2 프로그램을 수신 및 저장하고 상기 입력 신호에 대하여 상기 제2 프로그램으로 정의되는 논리 연산을 수행하여 상기 출력 신호를 생성하는 제2 회로 수단
    을 포함하는 장치.
  2. 제1항에서,
    상기 제2 회로 수단은 필드 프로그래머블 게이트 어레이를 포함하는 장치.
  3. 제1항에서,
    상기 제1 회로 수단과 상기 제2 회로 수단은 공통 집적회로 내에 구현되는 장치.
  4. 제1항에서,
    집적회로 패키지를 더 포함하며,
    상기 제1 회로 수단과 상기 제2 회로 수단은 상기 집적회로 패키지 내에 둘러싸이는 장치.
  5. 제1항에서,
    상기 제1 회로 수단에 입력 암호 키를 제공하는 제3 수단을 더 포함하며,
    상기 제1 회로 수단은 상기 암호 키로 결정되는 방식으로 상기 제1 프로그램을 해독하는 장치.
  6. 제5항에서,
    상기 제3 수단은 불휘발성 메모리를 포함하는 장치.
  7. 제1항에서,
    상기 암호 키로 결정되는 방식으로 상기 제1 프로그램을 해독하는 상기 제1 회로 수단에 입력 암호 키를 제공하는 제3 수단, 그리고
    집적회로 패키지
    를 더 포함하며,
    상기 제1 회로 수단, 상기 제2 회로 수단, 그리고 상기 제3 수단은 상기 집적회로 패키지에 내포되는 장치.
  8. 제7항에서,
    상기 제2 회로 수단은 필드 프로그래머블 게이트 어레이를 포함하는 장치.
  9. 제8항에서,
    상기 제3 수단은 불휘발성 메모리를 포함하는 장치.
  10. 입력 신호에 대하여 입력으로 제공되는 제1 프로그램으로 정의되는 논리 연산을 수행하여 출력 신호를 생성하는 장치에 있어서,
    상기 제1 프로그램을 암호화하여 암호화된 제2 프로그램을 생성하는 수단,
    상기 암호화된 제2 프로그램을 수신 및 해독하여 상기 제1 프로그램의 복사본을 생성하는 제1 회로 수단, 그리고
    상기 제1 프로그램의 상기 복사본을 수신하고 상기 입력 신호에 대하여 상기 제1 프로그램의 상기 복사본으로 정의되는 논리 연산을 수행하여 상기 출력 신호를 생성하는 제2 회로 수단
    을 포함하는 장치.
  11. 제10항에서,
    상기 제2 회로 수단은 필드 프로그래머블 게이트 어레이를 포함하는 장치.
  12. 제10항에서,
    상기 제1 회로 수단과 상기 제2 회로 수단은 공통 집적회로 내에 구현되는장치.
  13. 제10항에서,
    집적회로 패키지를 더 포함하며,
    상기 제1 회로 수단과 상기 제2 회로 수단은 상기 집적회로 패키지에 내포되는 장치.
  14. 제10항에서,
    상기 제1 회로 수단에 입력 암호 키를 제공하는 제3 수단을 더 포함하며,
    상기 암호화 수단은 상기 암호 키로 결정되는 방식으로 상기 제1 프로그램을 암호화하며, 상기 제1 회로 수단은 상기 암호 키로 결정되는 방식으로 상기 제2 프로그램을 해독하는 장치.
  15. 제14항에서,
    상기 제3 수단은 불휘발성 메모리를 포함하는 장치.
  16. 제14항에서,
    집적회로 패키지
    를 더 포함하며,
    상기 제1 회로 수단과 상기 제2 회로 수단은 상기 집적회로 패키지에 내포되는 장치.
  17. 제14항에서,
    상기 제1 회로 수단과 상기 제2 회로 수단은 공통 집적회로 내에 구현되는 장치.
  18. 입력 신호에 대하여 입력으로 제공되는 제1 프로그램으로 정의되는 논리 연산을 수행하여 출력 신호를 생성하는 장치를 프로그래밍하는 방법에 있어서,
    상기 제1 프로그램을 키의 값으로 결정되는 방식으로 암호화하여 암호화된 제2 프로그램을 생성하는 단계,
    상기 암호화된 제2 프로그램을 상기 키의 값으로 결정되는 방식으로 해독하여 상기 제1 프로그램의 복사본을 생성하는 단계, 그리고
    상기 제1 프로그램의 상기 복사본을 입력으로서 상기 장치에 공급하는 단계
    를 포함하는 방법.
KR1020017014513A 1999-07-21 2000-06-20 암호화 프로그램이 있는 필드 프로그래머블 게이트 어레이 KR20020021374A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/358,687 1999-07-21
US09/358,687 US6351814B1 (en) 1999-07-21 1999-07-21 Field programmable gate array with program encryption
PCT/US2000/016982 WO2001008411A1 (en) 1999-07-21 2000-06-20 Field programmable gate array with program encryption

Publications (1)

Publication Number Publication Date
KR20020021374A true KR20020021374A (ko) 2002-03-20

Family

ID=23410634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017014513A KR20020021374A (ko) 1999-07-21 2000-06-20 암호화 프로그램이 있는 필드 프로그래머블 게이트 어레이

Country Status (6)

Country Link
US (1) US6351814B1 (ko)
EP (1) EP1205071A1 (ko)
JP (1) JP2004519111A (ko)
KR (1) KR20020021374A (ko)
TW (1) TW472488B (ko)
WO (1) WO2001008411A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100680944B1 (ko) * 2003-05-27 2007-02-08 주식회사 하이닉스반도체 반도체 소자의 제조방법
KR100825461B1 (ko) * 2005-12-22 2008-04-28 한국전자통신연구원 소프트웨어를 이용한 fpga 프로그램 데이터 보호 방법

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810152B2 (en) * 2002-05-08 2010-10-05 Broadcom Corporation System and method for securely controlling access to device functions
US7681043B1 (en) * 2002-05-08 2010-03-16 Broadcom Corporation System and method for configuring device features via programmable memory
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US6889208B1 (en) * 1999-04-15 2005-05-03 Victor Company Of Japan, Ltd. Contents sale system
GB9930145D0 (en) 1999-12-22 2000-02-09 Kean Thomas A Method and apparatus for secure configuration of a field programmable gate array
GB2375418B (en) * 1999-12-22 2004-06-23 Algotronix Ltd Method and apparatus for secure configuration of a field programmable gate array
US7240218B2 (en) 2000-02-08 2007-07-03 Algotronix, Ltd. Method of using a mask programmed key to securely configure a field programmable gate array
JP2003523143A (ja) * 2000-02-09 2003-07-29 スイスコム・モバイル・アクチエンゲゼルシヤフト 復号器,復号方法及びチップカード
US7725860B1 (en) * 2000-06-19 2010-05-25 Herman Kwong Contact mapping using channel routing
US7380131B1 (en) 2001-01-19 2008-05-27 Xilinx, Inc. Copy protection without non-volatile memory
US7299203B1 (en) * 2001-04-19 2007-11-20 Xilinx, Inc. Method for storing and shipping programmable ASSP devices
US20020168067A1 (en) * 2001-05-08 2002-11-14 Timofei Kouzminov Copy protection method and system for a field-programmable gate array
GB0114317D0 (en) * 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
US7191339B1 (en) * 2001-09-10 2007-03-13 Xilinx, Inc. System and method for using a PLD identification code
US7346783B1 (en) * 2001-10-19 2008-03-18 At&T Corp. Network security device and method
US7783901B2 (en) * 2001-12-05 2010-08-24 At&T Intellectual Property Ii, L.P. Network security device and method
JP2004007472A (ja) * 2002-03-22 2004-01-08 Toshiba Corp 半導体集積回路、データ転送システム、及びデータ転送方法
US7191342B1 (en) * 2002-06-04 2007-03-13 Xilinx, Inc. Methods and circuits for allowing encrypted and unencrypted configuration data to share configuration frames
US7878902B2 (en) * 2003-07-16 2011-02-01 Igt Secured verification of configuration data for field programmable gate array devices
US7757294B1 (en) 2004-08-27 2010-07-13 Xilinx, Inc. Method and system for maintaining the security of design information
US7564345B2 (en) 2004-11-12 2009-07-21 Verayo, Inc. Volatile device keys and applications thereof
JP2008530663A (ja) * 2005-02-11 2008-08-07 ユニバーサル データ プロテクション コーポレーション マイクロプロセッサのデータセキュリティの方法およびシステム
US7788502B1 (en) 2005-03-10 2010-08-31 Xilinx, Inc. Method and system for secure exchange of IP cores
US7971072B1 (en) 2005-03-10 2011-06-28 Xilinx, Inc. Secure exchange of IP cores
GB2424557A (en) * 2005-03-24 2006-09-27 Sony Uk Ltd FPGA with hardware decryptor for configuration programme which adds second key to itself before re-encrypting and overwriting itself in memory when run
US7716497B1 (en) 2005-06-14 2010-05-11 Xilinx, Inc. Bitstream protection without key storage
US7479798B1 (en) * 2006-05-16 2009-01-20 Altera Corporation Selectively disabled output
US8560863B2 (en) * 2006-06-27 2013-10-15 Intel Corporation Systems and techniques for datapath security in a system-on-a-chip device
KR20080013130A (ko) * 2006-08-07 2008-02-13 삼성전자주식회사 표시 장치의 구동 장치 및 구동 방법
US7636802B1 (en) * 2007-04-11 2009-12-22 Xilinx, Inc. Data transfer using the configuration port of a programmable logic device
JP5385681B2 (ja) * 2009-05-15 2014-01-08 キヤノン株式会社 画像形成装置用集積回路
US8427193B1 (en) 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits
US8418006B1 (en) 2010-12-07 2013-04-09 Xilinx, Inc. Protecting a design for an integrated circuit using a unique identifier
US8386990B1 (en) 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
US9584129B1 (en) * 2014-06-20 2017-02-28 Altera Corporation Integrated circuit applications using partial reconfiguration
US10659437B1 (en) * 2018-09-27 2020-05-19 Xilinx, Inc. Cryptographic system
CN112685758B (zh) * 2020-12-31 2024-02-06 南方电网科学研究院有限责任公司 基于椭圆曲线加密算法的数据加密系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823308A (en) * 1984-02-02 1989-04-18 Knight Technology Ltd. Microcomputer with software protection
US5365587A (en) * 1993-03-11 1994-11-15 International Business Machines Corporation Self modifying access code for altering capabilities
TW330999B (en) * 1996-03-08 1998-05-01 Matsushita Electric Ind Co Ltd Microprocessor suitable for reproducing AV data while protecting the AV data from illegal copy and image information processing system using the microprocessor
US6058476A (en) * 1996-05-22 2000-05-02 Matsushita Electric Industrial Co., Inc. Encryption apparatus for ensuring security in communication between devices
US5970142A (en) * 1996-08-26 1999-10-19 Xilinx, Inc. Configuration stream encryption
US6089460A (en) * 1996-09-13 2000-07-18 Nippon Steel Corporation Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100680944B1 (ko) * 2003-05-27 2007-02-08 주식회사 하이닉스반도체 반도체 소자의 제조방법
KR100825461B1 (ko) * 2005-12-22 2008-04-28 한국전자통신연구원 소프트웨어를 이용한 fpga 프로그램 데이터 보호 방법

Also Published As

Publication number Publication date
TW472488B (en) 2002-01-11
US6351814B1 (en) 2002-02-26
EP1205071A1 (en) 2002-05-15
JP2004519111A (ja) 2004-06-24
WO2001008411A1 (en) 2001-02-01

Similar Documents

Publication Publication Date Title
US6351814B1 (en) Field programmable gate array with program encryption
EP0536943B1 (en) Data security arrangements for semiconductor programmable logic devices
US7203842B2 (en) Method and apparatus for secure configuration of a field programmable gate array
US7606362B1 (en) FPGA configuration bitstream encryption using modified key
US9208357B1 (en) FPGA configuration bitstream protection using multiple keys
US4465901A (en) Crypto microprocessor that executes enciphered programs
US4278837A (en) Crypto microprocessor for executing enciphered programs
US7162644B1 (en) Methods and circuits for protecting proprietary configuration data for programmable logic devices
US5034980A (en) Microprocessor for providing copy protection
US6441641B1 (en) Programmable logic device with partial battery backup
US6308256B1 (en) Secure execution of program instructions provided by network interactions with processor
US6981153B1 (en) Programmable logic device with method of preventing readback
US6366117B1 (en) Nonvolatile/battery-backed key in PLD
US7058177B1 (en) Partially encrypted bitstream method
US7334173B2 (en) Method and system for protecting processors from unauthorized debug access
US7117373B1 (en) Bitstream for configuring a PLD with encrypted design data
US20070288765A1 (en) Method and Apparatus for Secure Configuration of a Field Programmable Gate Array
KR20070118589A (ko) 마이크로프로세서 데이터 보안을 위한 방법 및 시스템
JP2004515001A (ja) 解読アルゴリズムおよび解読鍵を有するプログラマブルロジックデバイス
US7734043B1 (en) Encryption key obfuscation and storage
US7925013B1 (en) System for data encryption and decryption of digital data entering and leaving memory
US8612772B1 (en) Security core using soft key
US20020168067A1 (en) Copy protection method and system for a field-programmable gate array
US6748368B1 (en) Proprietary core permission structure and method
WO2001046810A1 (en) Method and apparatus for secure configuration of a field programmable gate array

Legal Events

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