KR101303278B1 - 비트스트림 보호를 위한 fpga 장치 및 그 방법 - Google Patents

비트스트림 보호를 위한 fpga 장치 및 그 방법 Download PDF

Info

Publication number
KR101303278B1
KR101303278B1 KR1020110134839A KR20110134839A KR101303278B1 KR 101303278 B1 KR101303278 B1 KR 101303278B1 KR 1020110134839 A KR1020110134839 A KR 1020110134839A KR 20110134839 A KR20110134839 A KR 20110134839A KR 101303278 B1 KR101303278 B1 KR 101303278B1
Authority
KR
South Korea
Prior art keywords
bitstream
decryption
authentication
authentication code
stored
Prior art date
Application number
KR1020110134839A
Other languages
English (en)
Other versions
KR20130067849A (ko
Inventor
구본석
임정석
한재우
양광모
김수현
김효원
박정형
김춘수
윤이중
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020110134839A priority Critical patent/KR101303278B1/ko
Priority to US13/454,143 priority patent/US8726038B2/en
Publication of KR20130067849A publication Critical patent/KR20130067849A/ko
Application granted granted Critical
Publication of KR101303278B1 publication Critical patent/KR101303278B1/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
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • 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
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 비트스트림 보호를 위한 FPGA 장치 및 그 방법에 관한 것으로, FPGA 장치는 내부에서만 접근 가능하며, 내부에서 난수 발생기에 의해 발생된 암복호용 키 및 초기값이 저장되는 키 저장부, 내부 비휘발성 메모리로서 인증 및 암복호화 설정을 위한 비트스트림이 저장되는 설정용 비트스트림 저장부, 및 키 저장부에 저장된 암복호용 키 및 초기값을 호출하여 설정용 비트스트림 저장부에 저장된 비트스트림에 대한 암호화 수행 결과로서 생성된 암호화된 비트스트림 및 인증코드를 외부 비휘발성 메모리에 저장하고, 암호화된 비트스트림을 이용하여 디자인 설계 시에 외부 비휘발성 메모리에 저장된 암호화된 비트스트림에 대한 무결성을 검증하는 인증 및 암복호화 설정부를 포함한다.

Description

비트스트림 보호를 위한 FPGA 장치 및 그 방법{FPGA apparatus and method for protecting bitstream}
본 발명은 비트스트림 보호를 위한 FPGA 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 FPGA(Field Programmable Gate Array)의 디자인 설계를 위한 비트스트림의 인증 및 암복호화를 위한 수단을 FPGA 내부에 구비하여 비트스트림의 불법적인 획득 및 변조를 방지하도록 하는 비트스트림 보호를 위한 FPGA 장치 및 그 방법에 관한 것이다.
일반적으로, FPGA는 주문형 반도체(ASIC, Application-Specific Integrated Circuit)보다 속도가 느리지만, 개발기간이 짧고, 오류를 현장에서 재수정할 수 있으며, 초기 개발비가 저렴한 장점으로 인해 다양한 분야에서 사용되고 있으며 관련기술의 발전도 꾸준히 이루어지고 있다. FPGA는 크게 SRAM(Static Random Access Memory)기반의 제품과 플래시(Flash) 메모리 기반의 제품으로 구분되며, SRAM 기반의 제품이 시장 점유율의 대부분을 차지하고 있는 실정이다.
FPGA의 프로그래밍은 디자인 설정용 데이터인 비트스트림을 FPGA 내부로 로딩(Loading)시킴으로써 이루어지는데, SRAM 기반의 FPGA는 그 구조상 휘발성 (Volatile) 특성을 가지므로 전원 공급이 차단되면 FPGA에 설정된 디자인은 사라진다. 따라서, 현행 FPGA 제품들은 FPGA 외부에 EEPROM(Electrically Erasable Programmable Read-Only Memory)나 플래시(Flash) 메모리와 같은 비휘발성 (Non-volatile) 메모리를 두고 여기에 비트스트림 정보를 저장하여, 전원이 공급될 때마다 FPGA를 자동적으로 재프로그래밍하는 방식으로 동작한다.
현행 SRAM기반 FPGA 제품들은 외부 비휘발성 메모리에 기록된 비트스트림 정보의 불법적인 획득을 방지하기 위해, 암호화된 비트스트림을 비휘발성 메모리에 저장하고, 전원이 공급되면 이를 FPGA 내부에 위치한 복호화 로직회로가 복호화하여 로직 설정 메모리로 전달함으로써 프로그래밍하는 비트스트림 보호 방법을 제공하고 있다.
FPGA 내부의 복호화 로직회로에는 DES(Data Encryption Standard)나 AES(Advanced Encryption Standard)와 같은 상용 표준 블록암호 알고리즘을 처리하는 회로를 사용하며, 이 부분은 FPGA 내부의 프로그래머블한 일반 구성요소와 달리 제조과정에서 고정된 회로로 구현되며 사용자의 접근이나 변경이 불가능하다.
또한, 복호화용 키 저장공간에는 암호화된 비트스트림을 복호화하는데 필요한 키 정보가 저장된다. 이 저장 정보가 노출되면 비트스트림을 평문 형태로 획득 가능하므로, 이 공간의 저장정보는 주변장치(흔히 PC 또는 노트북)에서 쓰기(Write)는 가능하지만 읽기(Read)는 불가능한 특징을 가진다.
한편, 상기의 암호화 및 복호화를 통한 현행 FPGA 제품들의 비트스트림 보호 방식은 비트스트림의 불법적인 획득이나 복제로부터 데이터를 보호하는 기밀성 (Confidentiality)은 제공하지만, 암호화된 비트스트림 데이터의 무결성(Integrity) 기능은 제공하지 못하는 한계를 가진다.
즉, 공격자가 해당 FPGA의 서비스 무력화 등을 목적으로 암호화된 비트스트림을 임의로 변조하였을 때에도, FPGA 내부의 복호화 로직회로는 변조된 비트스트림을 복호화하여 로직 설정 메모리로 전달하므로, FPGA에는 비정상적으로 변조된 디자인이 프로그래밍될 수 있다.
아울러, 최근에는 주로 스마트 카드(Smart Card)를 대상으로 시도되던 부채널 공격기법인 전력분석공격(Power Analysis Attack)을 SRAM 기반 FPGA 제품에 적용하여, FPGA가 프로그래밍될 때마다 내부의 복호화 로직회로가 동작하면서 발생하는 소모전력을 획득 및 분석함으로써, 복호화용 키 저장공간에 저장된 복호화 키 정보를 획득하는데 성공한 사례가 발표되고 있다.
따라서, 반도체 디자인에 대한 보호와 시스템의 안전성을 확보하기 위해서는 현재까지 알려진 공격방법에 대해 보다 안전하게 FPGA 비트스트림을 보호할 수 있는 방법이나 장치가 필요하다.
본 발명의 목적은, 현행 FPGA 제품에서 제공하는 비트스트림에 대한 기밀성 기능뿐만 아니라 무결성을 보장하는 기능까지 제공함으로써, 비트스트림의 임의 변조를 차단하고, FPGA가 동작 시에 발생하는 누설정보를 이용한 부채널 공격으로부터 안전하게 비트스트림을 보호할 수 있는 비트스트림 보호를 위한 FPGA 장치 및 그 방법을 제공함에 있다.
또한, 본 발명의 다른 목적은 사용상의 편의성을 위해 기존 FPGA 프로그래밍 방식을 거의 그대로 유지면서도 상기의 목적을 달성하는 비트스트림 보호를 위한 FPGA 장치 및 그 방법을 제공함에 있다.
상기의 목적을 달성하기 위한 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치는, 내부에 배치되어, 비트스트림의 암복호화를 위한 암복호용 키 및 초기값을 생성하는 난수 발생기, 내부에서만 접근 가능하며, 상기 난수 발생기에 의해 발생된 암복호용 키 및 초기값이 저장되는 키 저장부, 내부 비휘발성 메모리로서, 인증 및 암복호화 설정을 위한 비트스트림이 저장되는 설정용 비트스트림 저장부, 및 상기 키 저장부에 저장된 상기 암복호용 키 및 상기 초기값을 호출하여 상기 설정용 비트스트림 저장부에 저장된 비트스트림에 대한 암호화 수행 결과로서 생성된 암호화된 비트스트림 및 인증코드를 외부 비휘발성 메모리에 저장하고, 상기 암호화된 비트스트림을 이용하여 상기 FPGA의 디자인 설계 시에 상기 외부 비활성 메모리에 저장된 암호화된 비트스트림에 대한 무결성을 검증하는 인증 및 암복호화 설정부를 포함한다.
이때, 상기 인증 및 암복호화 설정부는, 상기 외부 비휘발성 메모리에 저장된 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리에 저장된 인증코드를 비교하여 상기 암호화된 비트스트림에 대한 무결성을 검증하는 것을 특징으로 한다.
상기 인증 및 암복호화 설정부는, 기 설정된 인증 및 암복호화 알고리즘에 대하여 사용자로부터 입력된 인증 및 암복호화 알고리즘으로 재설정 가능한 것을 특징으로 한다.
상기 인증 및 암복호화 설정부는, 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하지 않으면, 상기 외부 비휘발성 메모리에 저장된 상기 인증코드 및 상기 암호화된 비트스트림을 제거하는 것을 특징으로 한다.
또한, 본 발명은, 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하는 경우 복호화된 비트스트림이 저장되는 로직 저장부를 더 포함한다.
이때, 상기 복호화된 비트스트림은 해당 FPGA의 반도체 디자인을 설정하는데 이용되는 것을 특징으로 한다.
상기 설정용 비트스트림 저장부는, 변경된 비트스트림이 저장되는 것을 특징으로 한다.
상기 인증 및 암복호화 설정부는, 상기 암복호용 키 및 상기 초기값을 이용하여 상기 변경된 비트스트림에 대한 암호화를 재수행하고, 그 결과로서 인증코드 및 암호화된 비트스트림을 재생성하는 것을 특징으로 한다.
상기 키 저장부는, 상기 FPGA의 내부 비휘발성 메모리 영역 및 배터리 백업을 위한 SRAM(Static Random Access Memory) 영역 중 하나가 이용되는 것을 특징으로 한다.
상기 키 저장부는, 상기 인증 및 암복호화 설정부만 접근 가능하도록 설정된 것을 특징으로 한다.
한편, 상기의 목적을 달성하기 위한 본 발명에 따른 비트스트림 보호를 위한 방법은, FPGA 내부에 배치된 난수 발생기에 의해 발생된 암복호용 키 및 초기값을 상기 FPGA의 내부에서만 접근 가능한 메모리 영역에 저장하는 단계, 상기 저장하는 단계에서 저장된 상기 암복호용 키 및 상기 초기값을 호출하여 상기 비트스트림에 대한 암호화를 수행하고, 그 결과로서 인증코드 및 암호화된 비트스트림을 생성하는 단계, 상기 인증코드 및 상기 암호화된 비트스트림을 외부 비휘발성 메모리에 저장하는 단계, 상기 암호화된 비트스트림을 이용하여 상기 FPGA의 디자인 설계 시에 상기 외부 비휘발성 메모리에 저장된 상기 암호화된 비트스트림에 대한 복호화를 수행하는 단계, 및 상기 외부 비휘발성 메모리에 저장된 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리에 저장된 인증코드를 비교하여 상기 암호화된 비트스트림에 대한 무결성을 검증하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은, 사용자로부터 새로운 인증 및 암복호화 알고리즘을 입력받는 단계, 및 상기 FPGA의 내부에 기 설정된 인증 및 암복호화 알고리즘에 대하여 상기 사용자로부터 입력된 인증 및 암복호화 알고리즘으로 재설정하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 본 발명은, 상기 무결성을 검증하는 단계에서 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하지 않으면, 상기 외부 비휘발성 메모리에 저장된 상기 인증코드 및 상기 암호화된 비트스트림을 제거하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 본 발명은, 상기 무결성을 검증하는 단계에서 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하는 경우 복호화된 비트스트림을 저장하는 단계를 더 포함한다.
이때, 상기 복호화된 비트스트림은 해당 FPGA의 반도체 디자인을 설정하는데 이용되는 것을 특징으로 한다.
또한, 본 발명은, 변경된 비트스트림이 내부 비휘발성 메모리 영역에 저장되는 단계를 더 포함하고, 상기 암복호용 키 및 상기 초기값을 이용하여 상기 변경된 비트스트림에 대한 암호화를 재수행하고, 그 결과로서 인증코드 및 암호화된 비트스트림을 재생성하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에 따르면, FPGA 내부의 난수 발생기에서 생성된 난수값을, 인증-암복호화 연산에 사용되는 키 정보 및 초기값으로 사용하고, 이 값을 FPGA의 외부로 노출되지 않게 함으로써 FPGA 비트스트림에 대한 기밀성을 보장하고, 뿐만 아니라 무결성까지 보장할 수 있는 이점이 있다.
또한, 본 발명은 FPGA 동작 시 누설정보를 이용한 부채널 공격으로부터 안전하게 비트스트림을 보호할 수 있으며, 사용자의 필요에 따라 변경 및 재설정이 가능하므로 부채널 공격으로부터 안전하게 비트스트림을 보호할 수 있는 이점이 있다.
또한, 본 발명은 PC 등 주변장치의 변경요소가 거의 발생하지 않고, 기존의 FPGA 프로그래밍 방식을 그대로 유지하면서도 안전한 비트스트림 보호 기능을 제공할 수 있는 이점이 있다.
도 1은 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 구성을 설명하는데 참조되는 블록도이다.
도 2는 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제1 실시예를 도시한 예시도이다.
도 3은 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제2 실시예를 도시한 예시도이다.
도 4는 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제3 실시예를 도시한 예시도이다.
도 5는 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제4 실시예를 도시한 예시도이다.
도 6 내지 도 8은 본 발명에 따른 비트스트림 보호 방법에 대한 동작 흐름을 도시한 순서도이다.
본 발명에 적용되는 FPGA(field programmable gate array, 필드 프로그래머블 게이트 어레이)는 프로그래머블 논리 요소와 프로그래밍가능 내부선이 포함된 반도체 소자이다. 프로그래머블 논리 요소는 AND, OR, XOR, 및 NOT 등이 해당될 수 있으며, 더 복잡한 디코더나 계산기능의 조합 기능 등과 같이 기본적인 논리 게이트의 기능을 복제하여 프로그래밍할 수 있다. FPGA는 프로그래밍가능 논리 요소에 간단한 플립플롭이나 메모리 블록으로 된 메모리 요소를 포함하고 있다.
FPGA는 시스템 설계자가 프로그래밍 한 비트스트림을 내부 메모리 블록에 저장하면, 저장된 비트스트림에 근거하여 FPGA의 논리 요소와 내부선을 연결함으로써 반도체 디자인을 설계한다.
본 발명에 따른 비트스트림 보호를 위한 FPGA 장치는 FPGA의 반도체 디자인을 설계하기 위한 비트스트림의 기밀성과 무결성을 보장하고, FPGA가 동작 시에 발생하는 누설정보를 이용한 부채널 공격으로부터 비트스트림을 안전하게 보호하도록 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다.
도 1은 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 구성을 설명하는데 참조되는 블록도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치는, 난수 발생기(110), 키 저장부(120), 인증 및 암복호화 설정부(130), 설정용 비트스트림 저장부(140), 및 로직 저장부(150)를 포함한다.
난수 발생기(110)는 FPGA(100) 내부에 배치되어, 비트스트림의 암복호화를 위한 암복호용 키 및 초기값을 생성한다. 이때, 난수 발생기(110)는 새로운 비트스트림이 입력될 때마다 새로운 암복호용 키 및 초기값을 발생할 수 있다. 경우에 따라서 암호화된 비트스트림에 대하여 수정된 비트스트림이 입력되는 경우, 난수 발생기(110)는 새로운 암복호용 키 및 초기값을 발생할 수 있다.
키 저장부(120)는 FPGA(100) 내부에서만 접근 가능하며, 난수 발생기(110)에 의해 생성된 암복호용 키 및 초기값이 저장된다. 따라서, 키 저장부(120)는 외부에서는 접근이 불가능하여 키 저장부(120)에 저장된 암복호용 키 및 초기값을 읽을 수 없다.
여기서, 키 저장부(120)는 별도의 저장 유닛으로 구현되지 않고, 기존 FPGA(100)의 내부 비휘발성 메모리 영역 또는 배터리 백업을 위한 SRAM(Static Random Access Memory) 영역 등이 활용될 수 있다. 다만, 키 저장부(120)는 본 발명에 따른 인증 및 암복호화 설정부(130)만 접근 가능하도록 설정된다.
설정용 비트스트림 저장부(140)는 FPGA(100)의 내부 비휘발성 메모리로서, 인증 및 암복호화 설정을 위한 비트스트림이 저장된다. 여기서, FPGA(100)의 내부 비휘발성 메모리는 외부에서 쓰기(Write)만 가능하고, 읽기(Read)는 불가능한 메모리 영역이다.
인증 및 암복호화 설정부(130)는 키 저장부(120)에 저장된 암복호용 키 및 초기값을 이용하여 설정용 비트스트림 저장부(140)에 저장된 비트스트림에 대한 암호화를 수행한다. 인증 및 암복호화 설정부(130)는 비트스트림에 대한 암호화 수행 결과로서 인증코드 및 암호화된 비트스트림을 생성한다.
인증 및 암복호화 설정부(130)는 인증코드 및 암호화된 비트스트림을 외부 비휘발성 메모리(200)에 저장한다.
한편, 사용자에 의해 암호화된 비트스트림이 변경된 경우, 수정된 비트스트림은 설정용 비트스트림 저장부(140)에 저장된다.
이 경우, 설정용 비트스트림 저장부(140)에 변경된 비트스트림이 저장되면, 인증 및 암복호화 설정부(130)는 키 저장부(120)에 저장된 암복호용 키 및 초기값, 또는 난수 발생기(110)에 의해 새로 생성된 암복호용 키 및 초기값을 이용하여 변경된 비트스트림에 대한 암호화를 수행한다. 이때, 인증 및 암복호화 설정부(130)는 변경된 비트스트림에 대한 암호화를 수행한 결과로서 인증코드 및 암호화된 비트스트림을 재생성한다.
재생성 된 인증코드 및 암호화된 비트스트림은 마찬가지로 외부 비휘발성 메모리(200)에 저장된다.
한편, 인증 및 암복호화 설정부(130)는 FPGA(100)의 디자인 설계를 위하여, 외부 비휘발성 메모리(200)에 저장된 인증코드 및 암호화된 비트스트림을 호출하고, 키 저장부(120)에 저장된 암복호용 키 등을 이용하여 암호화된 비트스트림에 대한 복호화를 수행한다. 이때, 인증 및 암복호화 설정부(130)는 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리(200)로부터 호출된 인증코드를 비교하여 외부 비휘발성 메모리(200)에 저장된 인증코드를 검증한다.
만일, 해당 인증코드의 검증에 성공한 경우, 즉, 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리(200)로부터 호출된 인증코드가 서로 일치하는 경우, 인증 및 암복호화 설정부(130)는 복호화된 비트스트림을 로직 저장부(150)에 저장한다.
이때, 로직 저장부(150)에 저장된 복호화된 비트스트림은 최종적으로 해당 FPGA(100)의 반도체 디자인을 설계하는데 이용된다.
한편, 해당 인증코드의 검증에 실패한 경우, 즉, 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리(200)로부터 호출된 인증코드가 서로 일치하지 않는 경우, 인증 및 암복호화 설정부(130)는 외부 비휘발성 메모리(200)에 저장된 인증코드 및 암호화된 비트스트림이 외부에 의해 변조된 것으로 판단하여 해당 인증코드 및 암호화된 비트스트림을 제거하도록 한다.
여기서, 본 발명에 적용되는 인증 및 암복호화 설정부(130)는 기 설정된 인증 및 암복호화 알고리즘에 대하여 사용자로부터 입력된 인증 및 암복호화 알고리즘으로 재설정 가능한 것으로 한다.
따라서, 인증 및 암복호화 설정부(130)는 사용자의 요청에 따라 재설정된 인증 및 암복호화 알고리즘을 적용하여 FPGA의 비트스트림에 대한 인증 및 암복호화를 수행하는 것이 가능하게 된다.
도 2는 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제1 실시예를 도시한 예시도이다.
도 2에 도시된 바와 같이, 난수 발생기(110)는 FPGA(100) 내부에서 비트스트림의 암복호화를 위한 암복호용 키 및 초기값을 발생하고, 이때 생성된 암복호용 키 및 초기값은 (a)와 같이 키 저장부(120)에 저장된다.
인증 및 암복호화 설정부(130)는 (b)와 같이 비트스트림이 입력되면, (c)와 같이 키 저장부(120)에 접근하여 암복호용 키 및 초기값을 호출하고, 이를 이용하여 비트스트림을 암호화한다.
도 2의 실시예에서는 (b) 과정에서 비트스트림이 외부에서 입력되는 것으로 도시하였으나, 내부의 설정용 비트스트림 저장부(140)에 저장된 비트스트림을 호출하여 암호화를 수행할 수 있다.
이때, 인증 및 암복호화 설정부(130)는 암호화 결과로서 생성된 암호화된 비트스트림 및 인증코드를 (d)와 같이 외부 비휘발성 메모리(200)에 저장한다.
도 3은 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제2 실시예를 도시한 예시도이다. 특히, 외부 비휘발성 메모리(200)에 저장된 암호화된 비트스트림 및 인증코드의 검증에 성공한 예를 나타낸 것이다.
도 3에 도시된 바와 같이, 인증 및 암복호화 설정부(130)는 FPGA(100)의 디자인 설계를 위하여, (a)와 같이 외부 비휘발성 메모리(200)에 저장된 암호화된 비트스트림 및 인증코드를 호출한다.
또한, 인증 및 암복호화 설정부(130)는 (a) 과정에서 호출된 암호화된 비트스트림의 복호화를 위하여 (b)와 같이 키 저장부(120)에 저장된 암복호용 키 및 초기값을 호출하고, 이를 이용하여 암호화된 비트스트림에 대한 복호화를 수행한다. 이때, 인증 및 암복호화 설정부(130)는 외부 비휘발성 메모리(200)에 저장된 인증코드의 무결성을 검증한다.
일 예로서, 인증 및 암복호화 설정부(130)는 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리(200)로부터 호출된 인증코드를 비교하여 외부 비휘발성 메모리(200)에 저장된 인증코드를 검증한다.
해당 인증코드의 검증에 성공한 경우, 즉, 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리(200)로부터 호출된 인증코드가 서로 일치하는 경우, 인증 및 암복호화 설정부(130)는 외부 비휘발성 메모리(200)에 저장된 인증코드 및 암호화된 비트스트림이 외부에 의해 변조되지 않은 것으로 판단하여 (c)와 같이 복호화된 비트스트림을 로직 저장부(150)에 저장한다.
따라서, FPGA(100)는 로직 저장부(150)에 저장된 복호화된 비트스트림을 최종적으로 해당 FPGA(100)의 반도체 디자인을 설계하는데 적용한다.
도 4는 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제3 실시예를 도시한 예시도이다. 특히, 외부 비휘발성 메모리(200)에 저장된 암호화된 비트스트림 및 인증코드의 검증에 성공하지 못한 예를 나타낸 것이다.
도 4에 도시된 바와 같이, 인증 및 암복호화 설정부(130)는 FPGA(100)의 디자인 설계를 위하여, (a)와 같이 외부 비휘발성 메모리(200)에 저장된 암호화된 비트스트림 및 인증코드를 호출한다.
또한, 인증 및 암복호화 설정부(130)는 (a) 과정에서 호출된 암호화된 비트스트림의 복호화를 위하여 (b)와 같이 키 저장부(120)에 저장된 암복호용 키 및 초기값을 호출하고, 이를 이용하여 암호화된 비트스트림에 대한 복호화를 수행한다. 이때, 인증 및 암복호화 설정부(130)는 외부 비휘발성 메모리(200)에 저장된 인증코드의 무결성을 검증한다.
일 예로서, 인증 및 암복호화 설정부(130)는 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리(200)로부터 호출된 인증코드를 비교하여 외부 비휘발성 메모리(200)에 저장된 인증코드를 검증한다.
이때, 해당 인증코드의 검증에 실패한 경우, 즉, 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리(200)로부터 호출된 인증코드가 서로 일치하지 않는 경우, 인증 및 암복호화 설정부(130)는 외부 비휘발성 메모리(200)에 저장된 인증코드 및 암호화된 비트스트림이 외부에 의해 변조된 것으로 판단하여 (d)와 같이 해당 인증코드 및 암호화된 비트스트림을 제거하기 위한 제어 명령을 외부 비휘발성 메모리(200)로 출력한다.
따라서, 외부 비휘발성 메모리(200)에 저장된 암호화된 비트스트림 및 인증코드는 제거되고, 이로써 변조된 비트스트림이 FPGA(100)의 반도체 디자인 설계에 이용되는 것을 방지할 수 있게 된다.
도 5는 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치의 동작을 설명하기 위한 제4 실시예를 도시한 예시도이다. 특히, 기존에 암호화된 비트스트림에 대하여 변경된 비트스트림을 적용하는 예를 나타낸 것이다.
도 5에 도시된 바와 같이, 사용자, 즉, 시스템 설계자에 의해 암호화된 비트스트림이 변경된 경우, 변경된 비트스트림은 (a)와 같이 설정용 비트스트림 저장부(140)에 저장된다.
이 경우, 설정용 비트스트림 저장부(140)에 변경된 비트스트림이 저장되면, 인증 및 암복호화 설정부(130)는 (b)와 같이 설정용 비트스트림 저장부(140)에 저장된 변경된 비트스트림을 호출하고, (c)와 같이 암복호용 키 및 초기값을 호출하여, 변경된 비트스트림에 대한 암호화를 수행한다.
이때, 인증 및 암복호화 설정부(130)는 변경된 비트스트림에 대한 암호화 수행 결과로서 생성된 암호화된 비트스트림 및 인증코드를 (d)와 같이 외부 비휘발성 메모리(200)에 저장한다.
따라서, 외부 비휘발성 메모리(200)에는 변경된 비트스트림에 대한 암호화된 비트스트림 및 인증코드가 저장되게 된다.
이후, 인증 및 암복호화 설정부(130)는 외부 비휘발성 메모리(200)에 저장된 암호화된 비트스트림 및 인증코드를 호출하여 FPGA(100)의 반도체 디자인을 설계하는데 이용하도록 한다.
도 6 내지 도 8은 본 발명에 따른 비트스트림 보호 방법에 대한 동작 흐름을 도시한 순서도이다.
먼저, 도 6은 FPGA의 비트스트림을 암호화하는 동작을 설명하는데 참조되는 순서도이다.
도 6에 도시된 바와 같이, 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치는, FPGA 내부의 난수 발생기에 의해 암복호용 키 및 초기값이 발생되면(S100), 'S100' 과정에서 생성된 암복호용 키 및 초기값을 FPGA의 내부에서만 접근 가능한 메모리 영역에 저장한다(S110).
한편, 비트스트림 보호를 위한 FPGA 장치는 내부 비휘발성 메모리 영역에 인증 및 암복호화를 위한 설정용 비트스트림이 저장되면, 저장된 비트스트림을 호출한다(S120).
이후, 비트스트림 보호를 위한 FPGA 장치는 'S100' 과정에서 발생된 암복호용 키 및 초기값을 이용하여 'S120' 과정에서 호출된 비트스트림을 암호화하고, 그 결과로서 암호화된 비트스트림 및 인증코드를 생성한다(S130).
'S130' 과정에서 생성된 암호화된 비트스트림 및 인증코드는 외부 비휘발성 메모리에 저장된다(S140).
도 7 은 FPGA의 비트스트림을 복호화하는 동작을 설명하는데 참조되는 순서도이다.
도 7에 도시된 바와 같이, 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치는, 반도체 디자인 설계를 위하여, 외부 비휘발성 메모리에 저장된 암호화된 비트스트림 및 인증코드를 호출한다(S200).
또한, 비트스트림 보호를 위한 FPGA 장치는 'S200' 과정에서 호출된 암호화된 비트스트림의 복호화를 위하여 내부에서만 접근 가능한 메모리 영역에 저장된 암복호용 키 및 초기값을 호출하고(S210), 'S210' 과정에서 호출된 암복호용 키 및 초기값을 이용하여 암호화된 비트스트림에 대한 복호화를 수행한다(S220). 이때, 비트스트림 보호를 위한 FPGA 장치는 외부 비휘발성 메모리에 저장된 인증코드의 무결성을 검증한다.
이때, 비트스트림 보호를 위한 FPGA 장치는 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리로부터 호출된 인증코드를 비교하여 외부 비휘발성 메모리에 저장된 인증코드를 검증한다.
비트스트림 보호를 위한 FPGA 장치는 해당 인증코드의 검증에 성공한 경우(S230), 즉, 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하는 경우, 외부 비휘발성 메모리에 저장된 인증코드 및 암호화된 비트스트림이 외부에 의해 변조되지 않은 것으로 판단하여 복호화된 비트스트림을 FPGA의 디자인 설정을 위한 로직 설정용 메모리 영역에 저장한다(S240).
따라서, FPGA는 로직 저장부(150)에 저장된 복호화된 비트스트림을 최종적으로 해당 FPGA의 반도체 디자인을 설계하는데 적용한다.
반면, 비트스트림 보호를 위한 FPGA 장치는 해당 인증코드의 검증에 성공하지 못한 경우(S230), 즉, 복호화를 수행한 결과로 생성된 인증코드와 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하지 않는 경우, 외부 비휘발성 메모리에 저장된 인증코드 및 암호화된 비트스트림이 외부에 의해 변조된 것으로 판단하여 외부 비휘발성 메모리에 저장된 암호화된 비트스트림 및 인증코드를 제거한다(S250).
이로써 변조된 비트스트림이 FPGA의 반도체 디자인 설계에 이용되는 것을 방지할 수 있게 된다.
도 8은 FPGA의 변경된 비트스트림을 암호화하는 동작을 설명하는데 참조되는 순서도이다.
도 8에 도시된 바와 같이, 본 발명에 따른 비트스트림 보호를 위한 FPGA 장치는, 기존에 저장된 비트스트림이 변경되면(S300), 내부의 난수 발생기가 암복호용 키 및 초기값을 발생한다(S310). 'S310' 과정에서 발생된 암복호용 키 및 초기값은 FPGA의 내부에서만 접근 가능한 메모리 영역에 저장된다(S320).
한편, 비트스트림 보호를 위한 FPGA 장치는 내부 비휘발성 메모리 영역에 저장된, 변경된 비트스트림을 호출하고(S330), 'S310' 과정에서 발생된 암복호용 키 및 초기값을 이용하여 'S330' 과정에서 호출된 변경된 비트스트림을 암호화하고, 그 결과로서 암호화된 비트스트림 및 인증코드를 생성한다(S340).
'S340' 과정에서 생성된 암호화된 비트스트림 및 인증코드는 외부 비휘발성 메모리에 저장된다(S350).
따라서, 비트스트림이 변경되더라도, 변경된 비트스트림에 대하여 다시 암호화를 수행함으로써, 변경된 비트스트림을 FPGA에 적용하는 것이 가능하게 된다.
이상과 같이 본 발명에 의한 비트스트림 보호를 위한 FPGA 장치 및 그 방법은 예시된 도면을 참조로 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않고, 기술사상이 보호되는 범위 이내에서 응용될 수 있다.
100: FPGA 110: 난수 발생기
120: 키 저장부 130: 인증 및 암복호화 설정부
140: 설정용 비트스트림 저장부 150: 로직 저장부
200: 외부 비휘발성 메모리

Claims (15)

  1. 내부에 배치되어, 비트스트림의 암복호화를 위한 암복호용 키 및 초기값을 생성하는 난수 발생기;
    내부에서만 접근 가능하며, 상기 난수 발생기에 의해 발생된 암복호용 키 및 초기값이 저장되는 키 저장부;
    내부 비휘발성 메모리로서, 인증 및 암복호화 설정을 위한 비트스트림이 저장되는 설정용 비트스트림 저장부; 및
    상기 키 저장부에 저장된 상기 암복호용 키 및 상기 초기값을 호출하여 상기 설정용 비트스트림 저장부에 저장된 비트스트림에 대한 암호화 수행 결과로서 생성된 암호화된 비트스트림 및 인증코드를 외부 비휘발성 메모리에 저장하고, 상기 암호화된 비트스트림을 이용하여 디자인 설계 시에 상기 외부 비활성 메모리에 저장된 암호화된 비트스트림에 대한 무결성을 검증하는 인증 및 암복호화 설정부를 포함하고,
    상기 키 저장부는 상기 인증 및 암복호화 설정부만 접근 가능하도록 설정된 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  2. 청구항 1에 있어서,
    상기 인증 및 암복호화 설정부는,
    상기 외부 비휘발성 메모리에 저장된 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리에 저장된 인증코드를 비교하여 상기 암호화된 비트스트림에 대한 무결성을 검증하는 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  3. 청구항 2에 있어서,
    상기 인증 및 암복호화 설정부는,
    상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하지 않으면, 상기 외부 비휘발성 메모리에 저장된 상기 인증코드 및 상기 암호화된 비트스트림을 제거하는 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  4. 청구항 2에 있어서,
    상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하는 경우 복호화된 비트스트림이 저장되는 로직 저장부를 더 포함하고,
    상기 복호화된 비트스트림이 해당 FPGA의 반도체 디자인을 설정하는데 이용되는 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  5. 청구항 1에 있어서,
    상기 설정용 비트스트림 저장부는,
    사용자에 의해 상기 암호화된 비트스트림이 변경된 경우, 상기 사용자에 의해 변경된 비트스트림이 저장되는 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  6. 청구항 5에 있어서,
    상기 인증 및 암복호화 설정부는,
    상기 암복호용 키 및 상기 초기값을 이용하여 상기 변경된 비트스트림에 대한 암호화를 재수행하고, 그 결과로서 인증코드 및 암호화된 비트스트림을 재생성하는 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  7. 청구항 1에 있어서,
    상기 인증 및 암복호화 설정부는,
    기 설정된 인증 및 암복호화 알고리즘에 대하여 사용자로부터 입력된 인증 및 암복호화 알고리즘으로 재설정 가능한 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  8. 청구항 1에 있어서,
    상기 키 저장부는,
    상기 FPGA의 내부 비휘발성 메모리 영역 및 배터리 백업을 위한 SRAM(Static Random Access Memory) 영역 중 하나가 이용되는 것을 특징으로 하는 비트스트림 보호를 위한 FPGA 장치.
  9. 삭제
  10. FPGA 내부에 배치된 난수 발생기에 의해 발생된 암복호용 키 및 초기값을 상기 FPGA 내부에 배치되고 상기 암복호용 키 및 초기값을 이용하여 비트스트림에 대한 암호화와 복호화를 수행하는 인증 및 암호화 설정부만 접근 가능하도록 설정된 메모리 영역에 저장하는 단계;
    상기 인증 및 암호화 설정부가 상기 저장하는 단계에서 상기 메모리 영역에 저장된 상기 암복호용 키 및 상기 초기값을 호출하여 상기 비트스트림에 대한 암호화를 수행하고, 그 결과로서 인증코드 및 암호화된 비트스트림을 생성하는 단계;
    상기 인증코드 및 상기 암호화된 비트스트림을 외부 비휘발성 메모리에 저장하는 단계;
    상기 암호화된 비트스트림을 이용하여 상기 FPGA의 디자인 설계 시에 상기 외부 비휘발성 메모리에 저장된 상기 암호화된 비트스트림에 대한 복호화를 수행하는 단계; 및
    상기 외부 비휘발성 메모리에 저장된 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리에 저장된 인증코드를 비교하여 상기 암호화된 비트스트림에 대한 무결성을 검증하는 단계를 포함하는 것을 특징으로 하는 비트스트림 보호를 위한 방법.
  11. 청구항 10에 있어서,
    사용자로부터 새로운 인증 및 암복호화 알고리즘을 입력받는 단계; 및
    상기 FPGA의 내부에 기 설정된 인증 및 암복호화 알고리즘에 대하여 상기 사용자로부터 입력된 인증 및 암복호화 알고리즘으로 재설정하는 단계를 더 포함하는 것을 특징으로 하는 비트스트림 보호를 위한 방법.
  12. 청구항 10에 있어서,
    상기 무결성을 검증하는 단계에서, 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하지 않으면, 상기 외부 비휘발성 메모리에 저장된 상기 인증코드 및 상기 암호화된 비트스트림을 제거하는 단계를 더 포함하는 것을 특징으로 하는 비트스트림 보호를 위한 방법.
  13. 청구항 10에 있어서,
    상기 무결성을 검증하는 단계에서 상기 암호화된 비트스트림에 대한 복호화를 수행한 결과로 생성된 인증코드와 상기 외부 비휘발성 메모리로부터 호출된 인증코드가 서로 일치하는 경우 복호화된 비트스트림을 저장하는 단계를 더 포함하고,
    상기 복호화된 비트스트림은 해당 FPGA의 반도체 디자인을 설정하는데 이용되는 것을 특징으로 하는 비트스트림 보호를 위한 방법.
  14. 청구항 10에 있어서,
    사용자에 의해 상기 암호화된 비트스트림이 변경된 경우, 상기 사용자에 의해 변경된 비트스트림이 내부 비휘발성 메모리 영역에 저장되는 단계를 더 포함하는 것을 특징으로 하는 비트스트림 보호를 위한 방법.
  15. 청구항 14에 있어서,
    상기 암복호용 키 및 상기 초기값을 이용하여 상기 변경된 비트스트림에 대한 암호화를 재수행하고, 그 결과로서 인증코드 및 암호화된 비트스트림을 재생성하는 단계를 더 포함하는 것을 특징으로 하는 비트스트림 보호를 위한 방법.
KR1020110134839A 2011-12-14 2011-12-14 비트스트림 보호를 위한 fpga 장치 및 그 방법 KR101303278B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110134839A KR101303278B1 (ko) 2011-12-14 2011-12-14 비트스트림 보호를 위한 fpga 장치 및 그 방법
US13/454,143 US8726038B2 (en) 2011-12-14 2012-04-24 FPGA apparatus and method for protecting bitstream

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110134839A KR101303278B1 (ko) 2011-12-14 2011-12-14 비트스트림 보호를 위한 fpga 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20130067849A KR20130067849A (ko) 2013-06-25
KR101303278B1 true KR101303278B1 (ko) 2013-09-04

Family

ID=48611470

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110134839A KR101303278B1 (ko) 2011-12-14 2011-12-14 비트스트림 보호를 위한 fpga 장치 및 그 방법

Country Status (2)

Country Link
US (1) US8726038B2 (ko)
KR (1) KR101303278B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101954863B1 (ko) * 2018-07-09 2019-03-06 서울대학교산학협력단 온라인 월렛 장치 및 이의 생성과 검증 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710675B2 (en) 2015-03-26 2017-07-18 Intel Corporation Providing enhanced replay protection for a memory
US9792229B2 (en) 2015-03-27 2017-10-17 Intel Corporation Protecting a memory
CN104954362B (zh) * 2015-04-27 2018-08-14 深圳市美贝壳科技有限公司 序列号的加密和解密方法及其装置
US10038552B2 (en) * 2015-11-30 2018-07-31 Honeywell International Inc. Embedded security architecture for process control systems
US10396991B2 (en) 2016-06-30 2019-08-27 Microsoft Technology Licensing, Llc Controlling verification of key-value stores
CN106201352B (zh) * 2016-07-07 2019-11-29 广东高云半导体科技股份有限公司 非易失性fpga片上数据流文件的保密系统及解密方法
US10509757B2 (en) * 2016-09-22 2019-12-17 Altera Corporation Integrated circuits having expandable processor memory
KR101991775B1 (ko) 2018-12-18 2019-06-21 (주)엘에스시스텍 Fpga기반의 데이터 암복호화 방법
US11537724B2 (en) * 2019-03-26 2022-12-27 International Business Machines Corporation Generating data migration plan for in-place encryption of data
US11144652B1 (en) * 2019-12-19 2021-10-12 Xilinx, Inc. Secure update of programmable integrated circuits in data center computing environments
US11295000B1 (en) 2020-09-28 2022-04-05 Xilinx, Inc. Static configuration of accelerator card security modes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303095A (ja) * 2002-04-10 2003-10-24 Sony Corp プログラマブル論理回路装置、および回路構成方法
US20070288765A1 (en) * 1999-12-22 2007-12-13 Kean Thomas A Method and Apparatus for Secure Configuration of a Field Programmable Gate Array
KR20080093635A (ko) * 2007-04-17 2008-10-22 삼성전자주식회사 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치
KR20090080115A (ko) * 2006-11-08 2009-07-23 마이크론 테크놀로지, 인크. 외부 비휘발성 메모리에 저장된 정보의 암호화를 위한 방법 및 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6172520B1 (en) * 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
GB9930145D0 (en) * 1999-12-22 2000-02-09 Kean Thomas A Method and apparatus for secure configuration of a field programmable gate array
AU2209301A (en) 1999-12-22 2001-07-03 Algotronix Limited Method and apparatus for secure configuration of a field programmable gate array
US6535043B2 (en) * 2000-05-26 2003-03-18 Lattice Semiconductor Corp Clock signal selection system, method of generating a clock signal and programmable clock manager including same
US6894527B1 (en) * 2003-05-12 2005-05-17 Xilinx, Inc. Evolved circuits for bitstream protection
US7725738B1 (en) * 2005-01-25 2010-05-25 Altera Corporation FPGA configuration bitstream protection using multiple keys
US7606362B1 (en) * 2005-01-25 2009-10-20 Altera Corporation FPGA configuration bitstream encryption using modified key
WO2008014494A2 (en) * 2006-07-28 2008-01-31 Drc Computer Corporation Fpga co-processor for accelerated computation
US7952387B1 (en) * 2008-08-13 2011-05-31 Altera Corporation Securing memory based IP in FPGAs
US8242805B1 (en) * 2010-09-07 2012-08-14 Xilinx, Inc. Method and apparatus for restricting the use of integrated circuits

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288765A1 (en) * 1999-12-22 2007-12-13 Kean Thomas A Method and Apparatus for Secure Configuration of a Field Programmable Gate Array
JP2003303095A (ja) * 2002-04-10 2003-10-24 Sony Corp プログラマブル論理回路装置、および回路構成方法
KR20090080115A (ko) * 2006-11-08 2009-07-23 마이크론 테크놀로지, 인크. 외부 비휘발성 메모리에 저장된 정보의 암호화를 위한 방법 및 시스템
KR20080093635A (ko) * 2007-04-17 2008-10-22 삼성전자주식회사 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101954863B1 (ko) * 2018-07-09 2019-03-06 서울대학교산학협력단 온라인 월렛 장치 및 이의 생성과 검증 방법
WO2020013381A1 (ko) * 2018-07-09 2020-01-16 서울대학교산학협력단 온라인 월렛 장치 및 이의 생성과 검증 방법

Also Published As

Publication number Publication date
KR20130067849A (ko) 2013-06-25
US8726038B2 (en) 2014-05-13
US20130159725A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
KR101303278B1 (ko) 비트스트림 보호를 위한 fpga 장치 및 그 방법
US20170046281A1 (en) Address dependent data encryption
TWI468971B (zh) 安全軟體下載
KR101546204B1 (ko) 호스트 디바이스, 반도체 메모리 디바이스, 및 인증 방법
US8281115B2 (en) Security method using self-generated encryption key, and security apparatus using the same
US7752407B1 (en) Security RAM block
WO2007091492A1 (ja) セキュア処理装置、方法、プログラム
US20110083020A1 (en) Securing a smart card
US6101605A (en) Method and apparatus for performing a secure operation
CN114785503B (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
CN108063664A (zh) 基于配置的密码密钥生成
CN107925574B (zh) 秘密数据的安全编程
WO2011130970A1 (zh) 一种移动终端的数据保护装置及方法
CN106919858B (zh) 芯片、所述芯片的数据保护装置及方法
CN101174941B (zh) 一种移动终端文件离线数字版权保护方法及装置
CN103347017A (zh) 数据处理方法和片上系统
CN106168931A (zh) 具有多个分区的安全ram块
CN110932853B (zh) 一种基于可信模块的密钥管理装置和密钥管理方法
JP7057675B2 (ja) 半導体装置及び暗号鍵の生成方法
CN107861892B (zh) 一种实现数据处理的方法及终端
CN105939192A (zh) 数据加密的方法及装置
JP2007193800A (ja) カード認証システムのセキュリティレベルを向上させる装置及び方法
KR102295470B1 (ko) 보안 기능이 없는 usb 메모리를 위한 보안 usb 동글
US9218484B2 (en) Control method and information processing apparatus
JP2008003774A (ja) マイクロコンピュータ

Legal Events

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

Payment date: 20160630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 7