KR100341665B1 - 암호및변경검출기능을갖는기밀데이타프로세서 - Google Patents
암호및변경검출기능을갖는기밀데이타프로세서 Download PDFInfo
- Publication number
- KR100341665B1 KR100341665B1 KR1019960701013A KR19960701013A KR100341665B1 KR 100341665 B1 KR100341665 B1 KR 100341665B1 KR 1019960701013 A KR1019960701013 A KR 1019960701013A KR 19960701013 A KR19960701013 A KR 19960701013A KR 100341665 B1 KR100341665 B1 KR 100341665B1
- Authority
- KR
- South Korea
- Prior art keywords
- chip
- confidential
- spu
- clock
- information
- Prior art date
Links
- 230000008859 change Effects 0.000 title claims description 39
- 238000001514 detection method Methods 0.000 title claims description 31
- 238000000034 method Methods 0.000 claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 81
- 230000006870 function Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000011068 loading method Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 abstract description 38
- 238000013461 design Methods 0.000 abstract description 15
- 238000012545 processing Methods 0.000 abstract description 13
- 229910052751 metal Inorganic materials 0.000 description 31
- 239000002184 metal Substances 0.000 description 31
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 25
- 229910052710 silicon Inorganic materials 0.000 description 25
- 239000010703 silicon Substances 0.000 description 25
- 238000012360 testing method Methods 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 11
- 229920003205 poly(diphenylsiloxane) Polymers 0.000 description 10
- 230000001960 triggered effect Effects 0.000 description 9
- 230000000670 limiting effect Effects 0.000 description 8
- 238000005259 measurement Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 8
- 230000000630 rising effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 7
- 230000007123 defense Effects 0.000 description 7
- 239000000523 sample Substances 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000004888 barrier function Effects 0.000 description 5
- 239000003990 capacitor Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000009118 appropriate response Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000003989 dielectric material Substances 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000011248 coating agent Substances 0.000 description 3
- 238000000576 coating method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003278 mimic effect Effects 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 201000009032 substance abuse Diseases 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 241000962514 Alosa chrysochloris Species 0.000 description 1
- 240000007320 Pinus strobus Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000000227 grinding Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010884 ion-beam technique Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000021363 nonassociative learning Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/81—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/109—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
- G06F21/725—Protecting 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 operating on a secure reference time value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/77—Protecting 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 smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/86—Secure or tamper-resistant housings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2135—Metering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2153—Using hardware token as a secondary aspect
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 특별히 기밀 데이타 프로세싱을 위하여 디자인된 마이크로 프로세서인 기밀프로세싱장치(SPU)를 구현한 것이다. SPU 내에 키이들. 암호/해독 알고리즘을 집적시켜, 전 기밀 프로세스는 포터블하고 물리적 경계를 통해 쉽게 배치되어진다. 본 발명은 3개의 상관 시스템의 조합에 근거한다; (i) SPU 를 존재에 대해 경계시키고 기밀 공격의 특성을 특징화시켜주는 검출기; (ii) 다양한 검출기로부터 데이타를 상관시켜, 비밀 데이타 및 그 디자인에 대한 SPU 의 보전에 해하여 극심한 공격을 가중시키는 필터; (iii) 공격 또는 존재하는 공격을 처리하기 위하여, 환경하에서 가장 적절하게 필터에 의해 계산되는 대응책인 응답. 검출기, 필터 및 응답 모두에서 광범위한 능력을 갖는 본 발명은 기밀/정책의 적절한 레벨로 프로그램되는 매우 높은 유연성을 SPU 에 근거한 장치에 허용한다.
Description
1.배경
본 발명은 전자 데이타 처리시스템용 집적회로에 관한 것으로서, 특히 집적회로에 저장된 비밀정보의 검사, 추출 및 변경을 효과적으로 방지할 수 있는 기밀 집적회로의 구조, 수행 및 사용에 관한 것이다.
정보가 기밀로 처리되고 전송되어야 할 많은 장치가 있다. 예를 들면, 현금자동지급기는 허가받지 않은 침입자가 은행의 고객구좌를 억세스하는 것을 방지하기 위하여 인식키(여기서는 비밀번호 또는 핀 번호)의 기밀의 저장 및 전송을 요구한다. 이와 마찬가지로, 페이-퍼-뷰(PPV) 케이블 및 위성텔레비전 시스템은 허가받지 않은 가입자로부터 허가받은 가입자를 구별하고 암호화된 방송텔레비전신호를 해독하는 키이들을 보호하여야 한다.
일반적으로, 하나 또는 그이상의 집적회로들이 전자적으로 정보를 처리하기 위하여 사용되어진다. 이러한 집적회로들은 키이들과 암호 및 해독하기 위한 독점 알고리즘과 같은 비밀정보를 자체 내에 저장할 뿐만 아니라 암호 및 해독 "엔진" 을 수행한다. 명백히, 허가받지 않은 사람이 이러한 집적회로에 의해 처리된 비밀정보를 검사, 추출 및 변경하는 것을 방지할 수 있는 집적회로들이 필요하다. 게다가, 때때로 임의 비밀정보(즉, 키이들)를 파괴하는 것이 요구되어지고 침입검출에 따른 다른 비밀정보(즉, 재산거래에 사용된 구좌정보와 같은 경과 데이타)를 보존하는 것이 요구된다.
현존하는 기밀시스템이 갖는 하나의 문제는 프로세스의 어느 위치에서 비밀정보(키이들, 암호/해독 알고리즘 등)가 기밀로 유지되지 않은 환경에서 암호화되지 않은("클리어텍스트(cleartext)") 형태로 잠재적인 침입자들에게 이용될 수 있다는 것이다. 필요한 것은 키이들과 암호/해독 엔진과 알고리즘이 구현될 수 있고 침입자들로부터 보호될 수 있는 하나의 기밀 집적회로이다. 이러한 집적회로들은 처리되고 있는 정보(즉, 칩에 대한 입력등)가 암호화된 상태를 제외하고 허가받지 않은 사람에게 이용가능한 오프-칩으로 되지 않도록 효과적으로 보장하며, 칩상에 암호/해독 프로세스를 캡슐화하여 줌으로써 다양한 잠재적인 공격으로부터 키이들과 알고리즘을 특히 클리어텍트 형태로 보호한다.
현존하는 기밀 집적회로는 전형적으로 배리어, 검출기 및 침입이 검출될 때 집적회로에 저장된 비밀정보를 파괴하기 위한 수단을 포함한다. 배리어의 일례는 집적회로내부의 메모리셀들위에 하나 또는 그이상의 도전층을 적층한 것이다. 이러한 층들은 전자주사현미경과 같은 진단기구에 의해 메모리셀들을 검사하는 것을 방지한다. 검출기와 파괴수단의 일례는 광검출시에 기밀집적회로 내부의 메모리셀들의 파워를 오프시키는 스위칭회로에 연결된 광검출기이다. 파워가 오프될 때, 비밀정보를 포함하고 있는 매모리셀의 내용은 소실된다. 이러한 기밀메카니즘 이면의 이론은 광검출기가 집적회로의 노출이 고의적으로 또는 사고에 의해 단속될 때만 광에 노출되어진다는 것이다. 어느 경우에나, 집적회로 내에 저장된 비밀정보를 흔히 빈틈없이 파괴한다.
현존하는 기밀시스템이 갖고 있는 하나의 문제점은 잠재적인 침입에 대응되는 프로세스의 "하드-와이어된(hard-wired)" 특성이다. 이러한 시스템은 집적회로가 일단 제조되고 난 후 기밀특징의 동작을 변화시키는 것은 어렵기 때문에, 본래부터 유연성이 없다. 이런 기밀특징의 동작을 변경시키는 단 하나의 방법은 새로운 집적회로를 디자인하고 제작하는 고가이고 시간이 소모되는 작업을 수행하여야 한다.
하드-와이어된 구조의 다른 결과는 저용랑장치용 주문기밀특징을 생산하기가 어렵다는 것이다. 이것은 집적회로를 디자인, 테스트 및 제작하기 위하여 상당량의 시간과 자금이 소요되기 때문이다. 결과적으로, 각각 특별환경에 대하여 주문된 소량의 기밀집적회로를 경제적으로 만드는 것이 어렵기 때문이다.
동일한 집적회로를 사용하는 것이 요구되지만 아직 장치와 환경의 요구조건에 따라서 기밀특징을 변경할 능력을 갖고 있지 않은 상황이 많이 있다. 예를 들면, 기밀집적회로가 극단적으로 민감한 정보를 처리하는 데 사용된다면, 보수적인 기밀 "정책" 즉, 이미 설정된 상태로부터 아주 작은 변화의 검출시에도 집적회로내의 모든 비밀 데이타(즉, 키이들)를 파괴하는 정책을 신중히 수행하여야 할 것이다. 한편, 정보가 민감하지 않고 간편하게 기밀집적회로를 대체시킬 수 없을 경우에는, 기밀정책은 점점 관대해지게 된다. 즉, 이미 설정된 상태로터 커다란 편차가 있을 때만 행동이 취해지게 된다.
즉, 광범위한 영역에서 유연한 기밀정책이 수행될 수 있는 기밀집적회로 구조를 가질 것이 요구되어진다.
2.발명의 개요
본 발명은 기밀데이타 프로세싱을 위하여 특별히 디자인된 기밀처리장치(Secured Processing Unit, SPU)를 구현하는 데 있다. SPU 내에 키이들, 암호/해독 엔진 및 알고리즘을 집적시켜, 전체 기밀프로세스가 포터블하게 되고 물리적 경계를 통해 쉽게 배치되도록 한다. 예를 들면, SPU 는 현금자동지급카드(그리고 전 세계의 현금자동지급기)에 일체화되어, 기밀의 재산거래를 위한 전세계 배치 메커니즘을 수행하게 된다.
이 프로그램가능하게 배치된 개인기밀(PDPS) 디자인원리를 생각하여 보면, SPU 는 유연성있고 가격이 적절하며 휴대용이고 개인적인 강력한 기밀방법을 제공한다. 이러한 인에이블 기술은 하기의 다양한 응용에 대해 광범위하게 이용가능하고 실용적인 높은 수준의 데이터 기밀을 제공한다: 네트워크통신, 전자 자금전송, 무선데이타 교환, 엑세스, 인증, 인식용 시스템, 및 지적 재산(예:저작권 또는 영업 비밀 자료)용 소비-기반 배달 시스템, SPU 의 기밀 정책의 프로그램능력은 다양한 장치가 SPU 의 하드웨어 디자인 변경없이 수행되는 것을 하락하고, SPU 가 검출하도록 디자인된 기밀공격 또는 하드웨어/소프트웨어 고장의 범위에 대한 장치에 규정된 응답을 이용하기 위하여 동작환경을 제공하여 준다.
본 발명은 집적된 하드웨어 그리고 소프트웨어 기밀특징의 밧데리를 통한 물리적 및 전기적 공격 어레이로부터 보호를 제공하도록 디자인된다. 장치에 적합한 유연한 전략의 실행을 이용하여, SPU 는 실리콘의 물리적 공격과 핀의 전기적 공격에 대하여 상당한 탄력성을 제공한다. 이 결과는 극단적으로 분해 모방이 어렵고그리고 쉽게 타협될 수 없는 비밀정보를 보호하기 위한 유연한 정책을 수행하는 시스템이다.
SPU 는 "기밀 프로세싱" - 비밀정보 그리고 그 정보에 근거한 프로세싱 모두를 보호하는-에 의해 명령을 받는다. 정보의 암호 및 해독에 사용된 비밀키이 또는 알고리즘을 기밀로 만들고, 저장하며 그리고 배치시킨다. 예를 들면, 키이들이 제조시에 SPU 내에 로드되었지만, 마스터 키이로서 비밀키이 또는 전용/공공 키이쌍을 포함하는 키이들이 다양한 장치, 그러한 장치의 특별한 세션동안 기능에 이상적인 SPU 의 환경에서 내장 SPU 에 역시 발생될 수 있다. 대개 칩은 디지탈 서명, 확인, 정보 측정과 같은 다른 기능을 수행하기 위하여 펌웨어를 통해 프로그램될 수 있다. 그러한 정보가 비암호 형태로 언제든지 존재하는 위치에만 SPU 를 만드는 어느 경우에나, 중요한 정보는 내장 CPU 또는 암호 형태의 오프칩 모두에 저장될 수 있다.
PCMCIA 카드(퍼스널컴퓨터 메모리 카드 인터페이스 연합회에 의해 선포된 표준 인터페이스)와 같은 플랫홈을 사용하여 SPU 를 "스마트 카드"에 일체화시킴으로써, 조합된 시스템은 억세스 카드, 홀딩 정보 해독 키이, 거래 기록, 신용 및 계좌 정보, 전용 키이, 디지탈 신용장 등의 기능을 한다. 표준신용카드의 크기에 대하여 그러한 억세스 카드는 다양한 응용을 수행하고 여러가지 주변 구성요소를 수용할 수 있으면서도, 매우 견고하고, 포터블하며, 보안성이 높다.
본 발명을 일체화하는 억세스 카드는 비보호된 회로망상에서 고정된 또는 포터블한 상업 장치에 매우 높은 레벨의 데이타 기밀성을 제공한다. 카드들은 존재하는 장치와 회로망에 증가된 기밀성을 제공하고, 개발자가 메세지, 비밀이 향상된 편지 그리고 암호와 같은 새로운 생산품에 기밀특징을 부가할 수 있도록 한다. 오락, 소프트웨어, 및 데이타베이스 내용 제공자는 그러한 시스템이 제공하는 지적 재산의 높은 수준의 보호로부터 상당한 이익을 얻도록 지지하여 준다.
그러한 억세스 카드는 컴퓨터 회로망을 통해 전송된 비밀정보의 변경을 검출할 수 있으며, 그러한 정보가 통로를 따라 완전한 프라이버시로 의도된 수납자에게만 이용될 수 있도록 보장하여 준다. 이것은 하기의 SPU에 지원된 특징에 의해 수행된다: 카드사용자의 포지티브 인식과 신뢰성있는 입증, 주요 해독 표준을 지지하는 확고한 암호능력을 통한 메세지 프라이버시, 기밀 키이 변경, 개인의 비밀 키이의 기밀 저장, 알고리즘, 신용장 또는 예를 들면, 거래 기록 또는 생물 측정 데이타, 변경에 따른 데이타와 메세지의 입증, 디지탈 사인을 포함한 기밀 허가능력.
억세스 카드는 전자 지갑, 운전면허증과 같은 홀딩개인기록, 지갑, 출생 증명서, 차량등록, 의학기록, 사회적 기밀카드, 신용카드, 지문과 성문과 같은 생물학적 정보 또는 디지탈 금고와 같은 형태로 나타난다.
일상적인 사용을 고려한 개인 억세스는 공항에서의 X-선 기계 통과, 라디에이터상에 자켓이 놓여져 있을 경우 열에의 노출, 흥분한 소유자에 의해 잘못 타이프된 개인 인식번호(PIN)와 같은 사용상 스트레스와 변형에 대해 탄력성이 있다. 즉, 그러한 장치에서 그러한 남용에 대한 높은 허용한계를 갖도록 SPU는 프로그램될 수 있다. X-레이에 의해 트리거된 광검출기는 노출이 정지되었는가를 인식한 후 수초동안 정보를 준다. 고온 검출은 방어능력이 취해지기 전에 다른 증상의 공격에연결시켜 주기 위하여 필요하다. PIN 번호 기입은 많은 ATM 을 갖는 경우에서처럼 다음 기능을 일시적으로 디스에이블하기 전에 처음 두개의 잘못 기입에 대하여 관대하다.
민감한 정보에 대한 새로운 방어 메세징 시스템을 위한 기밀 해독토큰인 테세라 해독 카드(Tessera Crypto-Card)와 같은 장치의 경우, 시스템은 덜 관대하도록 프로그램 되어져야 한다. 테세라 카드 사용자의 조정 절차는 개인 억세스카드에 존재하는 흔한 일상적인 남용을 방지한다. 즉, 민감한 정보의 소거는 최우선 순위가 된다.
사용자가 위조하기 매우 어렵고 거절하기 어려운 기밀 사인을 만들어 입증할 수 있는 다양한 해독방법이 제안되었다. 그러나, 포터블 및 개인 기밀의 부족으로, 이런 방안에 근거한 전자 통신은 많은 표준 사업거래를 유도하는 수단으로서 만연된 허용할 수 없다는 것이다. 본 발명은 그런 실용적인 전자 교역을 하는 기밀 레벨을 제공한다. 그러한 시스템은 새롭고 존재하는 장치 모두에 대하여 많은 사기 또는 다른 모집할 수 없는 거래를 제한할 수 있다.
다른 가능한 장치는 데스크톱 구매(desktop purchase), 즉, 영화, 소프트웨어 또는 데이터베이스와 같은 전자 메모리에 포함될 수 있는 모든 형태의 정보 상품을 위한 컴퓨터를 이용한 전송 시스템이다. 즉, 멀티 미디어에 의한 광고, 개인지도, 대중, 문서 조사 그리고 실제 생산품은 하나의 암호 CD-ROM 이나 RF 또는 케이블 채널에 적합한 방송을 통해 최종 사용자에게 수송된다. 실제적으로 디지탈 정보로서 표현된 내용은 최종 사용자가 구매전에 그러한 생산품을 구경하는 것을 허락하여 데스크 톱에서 오프라인으로 판매될 수 있다.
SPU 의 암호능력은 높은 기밀성 및 독립성으로 정보를 암호형태로 해독하고, 사용시간을 측정하고 기록하며, 이어서 중앙경리 서비스국에 사용거래를 유지하기 위하여 사용된다. SPU 는 적절한 정보만 해독하고 그것을 즉시 사용을 위하여 하드디스크와 같은 적절한 저장매체로 전송한다.
특정 장치에 적절한 유연한 기밀 정책을 통해 허가받지 않은 억세스로부터 비밀정보를 보호하는 동안 정보 측정, 소프트웨어 대여 그리고 다양한 다른 장치들은 사용자를 확인하고 사용 또는 구매 내역을 모니터하고 계산할 수 있는 SPU 에 근거한 시스템으로 실행된다.
사용자의 초기 시스템으로의 억세스를 확인하고, 등록절차를 보호하며 다음 사용을 콘트롤하여, 최종 사용자에게 반복적인 입증없이 생산품으로의 즉시 억세스를 제공함으로써 저작권 침해를 최소화하므로, 이러한 사용시 지불 옵션(pay-as-you-go option)은 정보 제공자가 생산품을 생산하도록 자극한다.
제1도는 PDPS 를 수행하기 위한 기밀처리장치(SPU)를 보여주는, 본 발명에 따른 장치의 간략한 블록도,
제2도는 제1도에 도시된 파워블럭의 간략한 블럭도,
제3도는 실리콘 방화벽의 개략적 표시도,
제4도는 제3도에 도시된 실리콘 방화벽의 실시예의 개략적 표시도,
제5도는 제3도에 도시된 실리콘 방화벽의 다른 실시예의 개략적 표시도,
제6도는 제1도에 도시된 시스템 클럭의 블럭도,
제7도는 제6도에 도시된 링 발진기의 개략적 표시도,
제8도는 제1도에 도시된 실시간 클럭의 블럭도,
제9도는 반전 키이 저장을 수행하기 위한 펌웨어 프로세스의 플로우챠트,
제10도는 반전키이 저장의 개략적 표시도,
제11도는 제1도에 도시된 금속층 검출기의 실시예의 블럭도,
제12도는 제1도에 도시된 금속층 검출기의 다른 실시예의 개략적 표시도,
제13도는 제1도에 도시된 금속층 검출기의 또 다른 실시예의 개략적 표시도,
제14a도는 클럭보전점검을 수행하기 위한 펌웨어 프로세스의 플로우챠트,
제14b도는 파워보전점검을 수행하기 위한 펌웨어 프로세스의 플로우챠트,
제15도는 버스 모니터링방지를 수행하기 위한 펌웨어 프로세스의 플로우챠트,
제16도는 트립와이어입력을 수행하기 위한 펌웨어 프로세스의 플로우챠트,
제17도는 소프트웨어 공격모니터를 수행하기 위한 펌웨어 프로세스의 플로우챠트,
제18도는 검출 조정을 수행하기 위한 펌웨어 프로세스의 플로우챠트,
제19도는 검출기를 상관시키고 응답을 선택하는 것을 포함하는 필터링 프로세스단계의 간략화된 표시도,
제20도는 간단한 SPU 장치의 내용에서 검출기의 필터링과 응답의 선택을 수행하기 위한 펌웨어 프로세스의 플로우챠트; 여기서는 디지탈 금고 또는 지불카드와 같은 SPU 를 장착한 PCMCIA 키드를 사용한다.
4.상세한 설명
a. 일반 구조
본 발명에 따른 유연한 구조는 기밀성에서 타협없이 특별한 장치를 위한 확장과 주문생산을 허용한다. 본 발명의 하나의 물리적 실시예는 내셔널 세미콘덕터 NS32FV16 진보 영상 및 통신 마이크로 프로세서에 근거한 20MHz 32-비트 CPU를 포함하지만, 디지털신호처리장치(DSP)가 없는 단일 칩의 SPU 이다.
제1도를 참조하여 SPU 의 전체적인 특징을 설명한다. 본 발명의 기본적인 원리를 좀더 개념적으로 이해하기 위하여 몇몇 특징은 이동되었거나 또는 재그룹되었기 때문에, 이 설명은 SPU 레이아웃의 글자 그대로의 설명을 의미하는 것은 아니다. SPU 의 마이크로 콘트롤러(3)는 모든 오프-칩입력--범용 I/O 포트 블럭(1)과 외부 버스 인터페이스블럭(9)에 의해 조절된 입력--으로부터 분리되고, 대신 내장 롬블럭(7)으로부터 내부 데이타버스(10)를 통해 프로그램된 명령을 받는다. 일 실시예에서, 롬블럭(7)은 32K 바이트로 구성되고, 밧데리에 의해 지원되는 램블럭(8)은 4K 바이트로 구성된다. 내부 시스템버스(10)는 SPU 주변기기사이의 모든 주요 신호들, 어드레스 및 데이타 라인들, 기입 및 독출 스트로브, 인에이블 및 리세트 신호들, 그리고 마이크로 콘트롤러 클럭신호 CTTL(25)과 같은 신호들을 전송한다.
시스템클럭블럭은 프로그램가능한 내부 고주파 발진기를 갖으며, SYSCLK(35)를 통해, 모든 주변기능을 지배하는 마이크로 콘트롤클럭신호 CTTL(25)의 소오스이다.
SPU 용 실시간 클럭(5)은 콘트롤 및 스태터스(status) 레지스터구조를 규정하고, UNIX 시간포맷(1970년 1월 1일이래 2번째 경과한 UNIX 시간)을 형성하고 효과적으로 증가시킨 IEEE 1212 표준을 따른다. 실시간클럭(5)은 RTC 발진기(14) 회로와 접속된 오프칩 외부 32.768KHz 수정발진기(15)에 의해 RTCLK(29)를 통해 구동되는 2진 리플카운터로 실행된다. 밧데리에 의해 지원된 램(8)에서의 오프셋을 통해, 예를 들면 실시간클럭(5)은 UNIX 시간을 제공하고, 롬블럭(7)의 프로그램 제어 하에 많은 시간에 근거한 기능 및 시간제한을 실행할 수 있다. 롬블럭(9)내에 저장된 하나의 펌웨어루틴은 실시간클럭(5)에 따라 변경되는 것을 극복하기 위하여 시스템 클럭(2)과 실시간클럭(5)을 크로스-체크한다.
I/O 포트 블럭(1)은 오프칩램을 억세스하고 일반 I/O 요구조건을 충족시키기 위하여 사용될 수 있는 범용 프로그램가능한 입/출력 인터페이스이다. 오프-칩 램(도시되씨 않음)은 내부적으로는 수용될 수 없으나 기밀 및 수행이유를 위해 주시스템 메모리 또는 디스크 저장대신 SPU 에 더욱 더 밀접하게 요구되는 정보에 전형적으로 사용되어진다. 이러한 정보는 변경 검출 코드에 의해 보호될 수 있으며, 장치 요구조건에 따라 암호화되거나 또는 암호화되지 않을 수도 있다. 메모리 인터페이스로 작용하는 것 외에, 이 포트의 몇몇 신호들은 트립와이어 입력, 제로에 대한 짝수 입력 또는 키이의 암호 경보를 실행하는 데 사용될 수 있다.
외부버스 인터페이스블럭(9)은 호스트 시스템에 대한 통신포트이다. 일 일시예에서, 이 것은 장치명령 뿐만 아니라 SPU 로 또는 SPU 로부터 데이타를 받기 위한 수단이며, ISA 버스표준요구조건을 매칭시키도록 디자인된다.
파워블럭(13)은 시스템 파워이용도에 따라 시스템과 밧데리파워사이를 스위칭시킨다. 외부 밧데리(도면상에는 도시되지 않음)로부터 파워는 VPP(24)을 통해 RTC 블럭(5), RAM블록(8) 및 스태터스 레지스터(11)로 인가됨과 동시에 시스템 파워를 이용할 수 없을 때 VOUT(23)을 통해 오프칩 RAM(도시되지 않음)으로 인가된다. 파워블럭(13)은 역시 각각 시스템을 시작시키는 신호 PWRGD(27)와, 버스 콘트롤러(4)를 리세트시키는 신호 DLY_PWRGD(26) 및 파워분리(12)를 통해 밧데리에 지원되지 않는 부분으로부터 회로중 밧데리에 의해 지원되는 부분의 분리를 인에이블시키는 신호 CHIP_PWRGD(28)를 제공한다.
실리콘 방화벽(20)은 PIN 라인(32)을 통한 I/O 포트블럭(1)으로부터 입력, ADDR/DATA라인(33)을 통한 외부 버스인터페이스(9)로부터 입력, RESET(30)로부터 버스 콘트롤러(4)로의 입력뿐만 아니라 많은 기밀 검출기로부터의 입력을 결정하는 외부 비동기 또는 다른 변칙 신호들로 부터 내부회로를 보호한다. 실시간클럭(5)의 출력과 같은 내부에서 발생된 신호들도 이와 마찬가지로 결정된다.
스태터스 레지스터(11)는 다양하게 시도된 기밀침해를 검출하기 위하여 소자를 통해 배열된 모든 하드웨어 검출신호들의 저장소이다. 검출기들은 광검출기(16), 온도 검출기(17), 금속층 검출기(18) 및 부가 검출기(19)(가상으로 표시된), 예를 들면 : 고/저전압 검출기, 진동 검출기 및 모래(sand) 검출기들을 포함한다. 이러한 각 검출기는 일실시예에서 스태터스 레지스터(11)에 저장된 1비트 또는 1비트 이상의 정보를 전송한다. 스태터스 레지스터(11)는 역시 실시간클럭(5)으로부터의 ROLLOVER 신호(34) 그리고 실시간클럭(5)의 시간카운터와RAM 블럭(8)에 저장된 정보의 보전을 입증하기 위하여 사용된 유효한 램과 시간(Valid RAM and Time, VRT) 비트와 같이 내부에서 발생된 신호들을 저장하게 된다.
일실시예에서는, DES 엔진(6)은 DES 알고리즘을 사용하여 데이터를 암호화하고 해독하기 위한 암호해독엔진으로 제공되어진다. 암호해독 엔진의 다른 실시예는 전체적으로 하드웨어적으로 또는 하드웨어와 소프트웨어의 조합으로 수행되어질 수 있으며, RSA 를 포함한 다른 암호해독 알고리즘, RC2, RC4 또는 스킵잭(Skipjack)과 같은 비밀 알고리즘. 또는 그들의 조합을 사용할 수 있다. DES 엔진(6)은 마이크로 콘트롤러(3)의 콘트롤하에서 암호해독처리용 키이와 데이터를 램블럭(8)으로 부터 받는다. 사용된 데이타는 외부버스 인터페이스(9)로부터 공급된 적용 데이타 또는 램블럭(8)으로부터 보호된 데이타가 될 수 있다. 일실시예에서는 DES 블럭(6)은 18클럭 사이클내에서 64비트 블럭의 해독을 수행한다. 즉, 20MHz 로 규정된 SPU 로 단일 해독은 대략 90초 걸리는 데, 이는 초당 8.9M 바이트의 해독율에 해당한다.
일반적으로, SPU 는 암호화된 형태로 "메세지"를 받는다. 암호해독엔진(즉, DES 엔진(6))은 키이, 예를 들면 특별한 적용거래 또는 "세션(session)"에 규정된 "세션 키이"를 사용한다. 암호해독엔진은 역시 메세지를 암호화하거나 또는 해독하는 데 사용되고 또는 그 분야에서 잘 알려진 다른 암호해독동작을 수행한다. 기밀의 메세지 전송을 제공하는 외에, SPU 는 역시 기밀 키이 전송을 제공한다. "마스터 키이"를 갖거나 또는 내부에서 (공공 또는 비밀키이 알고리즘용 잘 알려진 키이발생기술을 이용하여)발생하여, SPU는 암호화된 형태로 세션키이를 받을 수 있으며, 그것들은 메시지처럼 취급함으로써 마스터 키이를 사용하여 그것들을 암호해독엔진으로 해독할 수 있다. 반대로, SPU는 기밀로 메시지를 암호화하고 전송할 수 있다. 마스터 키이, 해독된 세션키이 그리고 다른 민감한 정보(암호/해독 알고리즘)는 하기에서 설명되는 바와 같이 SPU 상의 기밀의 재기입가능한 메모리내에 저장된다.
i.파워블럭
SPU 의 기밀 요구 조건은 파워 서플라이에 특별한 요구 조건을 부여한다. 실시간클럭(5)은 정확한 시간을 유지하기 위하여 사용되고 램(8)은 정보를 저장하고 유지하기 위하여 사용되므로, 제품의 각분야의 수명 동안 실시간클럭(5)과 램(8)은 파워블럭(13)에 의해 공급되는 각각 연속적인 파워소오스 VPP(24)를 가져야 한다.
제2도를 참조하면, 밧데리 전압 VBAT(21)와 시스템 전압 VDD(22)는 파워스위칭회로(101)에 공급된다. 파워스위칭회로(101)는 일반적인 아날로그 비교기를 사용하여 두 전압 VBAT(21)와 VDD(22)중 높은 것을 결정하고, 결정된 전압을 VPP(24)로서 내부회로로 공급하고 예를 들면 오프칩 램의 전원전압으로 사용되는 VOUT(23)로서 공급한다. 파워스위칭회로(101)는 밧데리에 의해 지원되는 부분만이 VBAT(21)(로우상태)로 파워가 공급됨에 반하여, 전 SPU 칩이 VDD(22)(하이상태)로 파워가 공급되는 가를 나타내는 데 사용되는 PWRGD신호(27)를 역시 제공한다. 일실시예에서는, 이 변환의 스레쉬홀드(threshold)는 VDD(22)과 1.2xVBAT(21)를 초과할때이다. 외부 밧데리의 수명이 다했을 경우, VBAT(21)는 실제적으로 0(제로)이고,PWRGD(27)는 VDD(22)가 턴온됨과 동시에 하이상태로 된다.
PWRGD 신호(27)는 내부 데이타버스(10)로부터 발생되는 것은 아니지만, 실리콘 방화벽(20)이 취급되지 않은 상태로 남아 있을 경우, 실리콘 방화벽(20) 내부 회로내의 기밀위험을 표시한다. 그러나, 실리콘 방화벽(20)을 통과하는 다른 신호들과는 달리 PWRGD(27)는 하기에서 설명되는 바와 같이 시스템클럭(2)을 시작시키는 데 사용되고, 다른 신호들이 처리되는 것과 마찬가지로 방화벽(20)에 의해 결정되고 동기될 수 없다. 즉, 파워스위칭회로(101)는 발생된 PWRGD 신호(27)의 급속한 변화를 방지하고 내부회로에서 허용될 충분히 좁은 펄스폭을 제공하기 위한 "글리치 EATER"로서 작용하는 로우패스필터에 의해 PWRGD신호(27)를 결정한다.
두 카운터 PWRUP 카운터(102)와 PWRDN 카운터(103)는 시스템클럭 CTTL신호(25)에 의해 클럭되어진 PWRGD 의 지연된 버전인 DLY_PWRGD(26)를 발생하기 위하여 제공된다. 두 카운터는 그 분야에서 잘 알려진 일반적인 소자이다. 일실시예에서는 이 DLY_PWRGD 신호(26)는 제1도에 도시된 바와 같이, 버스 콘트롤러(4)에 연결된 AND 게이트(31)의 입력으로 사용된다. DLY_PWRGD 신호(26)와 PWRGD 신호(27)는 AND 게이트(114)를 통해 조합되어 다른 신호인 CHIP_PWRGD 신호(28)를 발생한다.
CHIP_PWRGD 신호(28)는 밧데리에 의해 지원되는 회로로부터 시스템 파워 VDD(22)가 제거될 때 파워가 공급되지 않는 회로의 나머지 부분으로 전류가 흐르는 것을 방지하여 밧데리에 지원되지 않은 부분을 순서대로 폐쇄시키기 위하여 제공된다. 이 신호는 사라지는 시스템전원의 초기검출 시스템으로서 작용한다. 제1도를참조하면, CHIP_PWRGD신호(28)는 밧데리에 의해 지원되지 않은 부분으로부터 실시간클럭(5), 램(8) 및 스태터스레지스터(11)의 입력과 출력을 분리하는 파워분리회로(12)에 의해 사용된다. CHIP_PWRGD 신호(28)는 하기에서 설명되는 바와 같이 실리콘 방화벽(20)과 같은 방법으로 결정되어진다; 이 프로세스는 파워 소오스가 스위치될 때 램(8) 또는 실시간클럭(5)으로 유효하지 않은 기입을 방지하는 추가 이점도 가지고 있다.
상기에서 설명된 바와 같이, DLY_PWRGD 신호(26)는 리세트로서 사용되어질 수도 있다. 그러나, PWRUP 카운터(102)는 나쁜 상태에서 파워가 업되면, 나머지 소자의 리세트동작에 영향을 미치게 될 수도 있다. PWRUP 카운터(102) 내의 상태 기계(state machine)는 리세트없이 파워업되고 파워다운시 CTTL(25)의 클럭킹의 정지를 지연시키는 두 요구조건에 의해 연속적인 리세트의 상태에서 파워업될 수 있다. 이러한 문제를 해결하기 위하여, 출력 VCCPWUP(112)을 각각 세트 및 클리어시키는 SET_PWUP(110)과 CLR_PWUP)를 입력으로 하는 별도의 아날로그 회로VCCPUD(104)가 제공된다. VCCPUD 회로(104)는 역시 VDD(22)를 모니터하여 VDD(22)가 악 2V 이하로 떨어질 때 VCCPWUP(112)를 역시 클리어시킨다. 본 실시예에서는 VDD(22)는 VREF(115)를 통해 파워스위칭회로(101)에 의해 공급된다.
VCCPUD(104)와 접속된 PWRUP 카운터(102)와 PWRDN 카운터(103)의 동작은 다음과 같다. 파워업시, 시스템파워 VDD(22)가 1.2xVBAT(21) 이상으로 상승할 때까지, VCCPWUP(112)는 PWRUP 카운터(102)와 PWRDN 카운터(103)의 리세트로서 작용한다;이후 PWRGD(27)와 이어서 VCCPWUP(112)는 상승하여 PWRUP 카운터(102)의 시작을 트리거시키게 된다. CTTL(25)에 의해 클럭되어져, DLY_PWRGD 신호(26)와 CHIP_PWRGD 신호(28)는 하이로 된다. 이와 반대로, VDD(22)가 하강할 때, 2V 이하로 되기전 1.2xVBAT(21) 이하로 떨어져 즉, PWRGD(27)은 로우로 되어, 인버터(108)를 통해 PWRDN 카운터(103)를 시작시키게 된다. 8클럭 사이클후, PWRDN 카운터(103)는 CLR_PWUP(111)를 구동시켜 VCCPWUP(112)를 로우로 만들고, AND게이트(107)를 통해 PWRDN 카운터(103)와 인버터(109)를 통해 PWRUP 카운터(102)를 리세트시키는 SHUTDOWN 신호(113)를 트리거시킨다. 즉, PWRGD 신호(27)가 7클럭 사이클보다 긴 시간동안 낮아지는 경우에는, 전시스템은 파워가 완전히 제거될 때처럼 리세트된다. 이 딜레이는 VDD(22)가 하이로 되지만, 허용레벨로 복귀되기 전까지 대략 2V 이하로 하강되는 전원전압의 과도현상을 고려한다.
ii.경보 발생
본 발명의 일실시예는 SPU 가 밧데리 파워 VBAT(21)로만 동작할 때 검출능력을 디스에이블시킨다. 다른 실시예에서는, 시스템 파워 VDD(22)가 없을 때, SPU 의 밧데리에 지원되지 않은 부분은 VBAT(21)를 통해 일시적으로 파워가 공급된다. 제1도에서 가상으로 나타낸 바와 같이, 임의 검출기가 신호를 트리거하는 경우, OR 게이트(39)는 파워블럭(13)으로 ALARM 신호(38)를 보낸다.
제2도를 좀더 참조하면, VBAT(21) 단독으로 전 SPU 에 충분히 높은 파워를 공급할 경우에는, 적절하게 변경된 파워스위칭회로(101)는 ALARM신호(38)에 의해 트리거될 때: (i) 이전과 같이 PWRGD 신호(27)를 발생하고; (ii) SPU 가 경보-트리거된 "비상" 파워하에서 동작되고 있음을 나타내는 새로운 신호인 APWRGD 신호(40)를 발생하며; 그리고 (iii) 파워업 프로세스와 인터페이스되지 않도록 VREF(115)를 VDD(22)에서 VBAT(21)로 변환한다. 적절한 VDD(22)가 계속하여 없을 때, 파워스위칭회로(101)에 의해 수신된 SLEEP 신호(41)는 PWRGD(27)와 APWRGD(40)를 로우로 만들고, VREF(115)를 다시 VDD(22)로 변환시켜 이전과 같이 파워 다운을 트리거시킨다.
iii.실리콘 방화벽
기밀 모델을 정의할 때, 통상의 가정은 시스템내부의 모든 것은 보호되고 시스템 외부의 모든 것은 보호되지 않는다는 것이다. 기밀특징을 계획하는 노력 중에서, 시스템 경계(boundary)의 명백한 이해를 설정하고 위협을 정의하여서, 시스템이 반드시 자체적으로 방어를 하는 경계를 외부로 발생하도록 하는 것이 중요한 것이다. SPU 의 경우에 있어서, 시스템의 경계(境界)는 실리콘 경계 또는 등가적으로 SPU 패키지의 핀이다. 시스템 경계 내의 구성요소는 2가지의 타입이 있다: 시스템의 기밀을 유지하여야 할 구성요소와 다른 기능을 수행하여야 할 구성요소가 있다. 두 타입의 구성요소를 분리하는 것은, 실리콘 방화벽이라 불리는 실리콘 경계와 기밀주변 사이의 영역을 갖는 소위 기밀주변이라 불리는 경계이다. 실리콘 방화벽의 역할은 기밀주변을 방어하는 것이다. 이 역할의 하나 특징은 예를 들면, 비동기입력이 처리되지 않고 기밀주변의 외부로부터 내부로 도달하는 것을 방지하는 것이다; 그러한 입력은 시스템을 예견될 수 없고 제어될 수 없는 상태로 구동시킬 수 있다.
마이크로 콘트롤러(3)는 정확하게 마이크로 콘트롤러의 모든 광범위한 상태들을 입증하는 것이 어렵기 때문에, SPU 내에서 신뢰성이 제일 낮은 구성요소 중의 하나이다. 결과적으로, SPU 에서 마이크로 콘트롤러(3)는 비동기 또는 다른 비정상의 입력들, 즉 마이크로 콘트롤러(3)의 정상동작모드를 제외한 신호들로부터 보호되어져야 한다. 비정상신호들의 예는 허용되지 않은 입력레벨을 갖는 신호들(즉, 유효한 고레벨 또는 유효한 저레벨을 갖지 않는 신호들)과 규격이외의 시간 전이(transition)를 갖는 신호들이다. SPU의 외부 입력신호들을 취급할 필요가 있을 뿐만 아니라 마이크로 콘트롤러에 비동기되는 모든 내부신호들도 특별보호회로에 의해 취급되어져야 한다.
비동기입력 또는 비정상입력을 방지하는 통상의 방법은 모든 입력을 래치회로에 연결된 슈미트 트리거소자를 갖는 반도체칩에 장착하여, 입력들이 반도체칩에 의해 샘플링되는 동안 신호들이 상태를 변화시킬 수 없도록 보장하는 것이다. 그러나, 슈미트트리거를 제작하는 것은 어렵다. 게다가, 슈미트 트리거는 히스테리시스 효과로 인하여 느리다. 본 발명에 따른 SPU 는 마이크로 콘트롤러(3)에 대한 모든 인터페이스를 보호하기 위하여 "실리콘 방화벽" 디자인을 사용한다. 실리콘 방화벽의 디자인 중 하나는 상태 기계(state machine)를 구비한다. 제3도는 실리콘 방화벽으로 사용될 수 있는 상태 기계(710)의 일실시예를 도시한 것이다. 상태 기계(710)는 상태가 클럭(714)에 의해 제어되는 데이타 레지스터(712)를 포함한다. 본 실시예에서는, 상태 기계(710)는 4개의 t-상태 기계로서 동작한다. t1 과 다른 임의 시간동안, 데이타는 데이터 레지스터(712)로부터 록(lock)된다. t1 에서, 입력 데이타(이용가능하다면)는 데이타 레지스터(712)의 입력단자(716)에 래치된다. 그러나, t3이 될 때까지 데이타 레지스터(712)의 출력단자로 허용되지 않는다. 결과적으로, 입력 데이타의 준안정상태는 두 t-클럭지연에 의해 무효화된다.
제4도는 상태 기계(710)에 유리하게 사용될 수 있는 데이타 레지스터(720)의 일실시예를 도시한 것이다. 레지스터(720)는 2개의 D 플립플롭(722), (724)를 포함한다. 플립플롭(722)의 출력단자(726)는 플립플롭(724)의 입력단자(727)에 연결된다. 클럭신호는 라인(730)을 따라 각각 플립플롭(722), (724)의 클럭단자(728), (729)로 전송된다.
일반적으로 비동기적으로 발생된 외부신호가 플립플롭(722)의 입력단자(732)에 인가될 때, 입력신호의 상태(하이 또는 로우)는 제1클럭펄스의 상승에지에서만 플립플롭(722)에 래치된다. 이 상태는 제2클럭펄스의 상승에지때까지 동일하게 유지된다. 그 결과, 플립플롭(722)의 단자(726)에서의 출력신호는 제1 및 제2클럭펄스의 상승에지사이의 입력신호의 상태와 관계없이 제1클럭펄스의 상승에지부터 제2클럭펄스의 상승에지까지 동일한 상태로 남아있게 된다.
제1클럭펄스의 상승에지에서 외부신호에 대응되는 플립플롭(722)의 출력단자(726)의 상태는 제2클럭펄스의 상승에지에서 플립플롭(724)에 래치된다. 결과적으로, 플립플롭(724)의 출력단자(734)는 초기클럭펄스의 상승에지에서 외부신호의 상태와 동일한 상태를 갖는다.
입력은 클럭펄스에 의해 정해진(즉, 동기된) 시간에 샘플링된다는 것을 데이타 레지스터(720)로부터 알 수 있다. 게다가, 플립플롭(722)에 의해 비정상상태의신호가 필터링된다. 결과적으로, 삽입된 콘트롤러에 연결된 신호는 정상의 동기신호이다.
제5도는 상태 기계(710)에 유리하게 사용될 수 있는 데이타 레지스터(740)의 다른 실시예를 도시한 것이다. 데이타 레지스터(740)는 멀티플렉서(742), D 플립플롭(744), 버퍼(746), 라인(750)상의 입력클럭신호에 따라서 4개의 t-상태를 갖는 클럭신호를 발생하는 소자(748)로 구성된다. 멀티플렉서(742)의 출력은 D 플립플롭(744)의 입력에 연결되고, D 플립플롭(744)의 출력은 버퍼(746)의 입력과 멀티플렉서(742)의 입력단자중 하나에 연결된다. 멀티플렉서(742)의 다른 단자는 외부신호(일반적으로 비동기신호)에 연결된다. 소자(748)는 멀티플렉서(742)를 콘트롤하는 클럭신호를 라인(750)상에 발생하여 라인(758)상의 외부비동기신호가 시간 t1 에서만 D 플립플롭(744)에 연결되도록 한다. 소자(748)는 버퍼(754)를 콘트롤하는 클럭신호를 라인(754)상에 역시 발생하여 D 플립플롭(744)의 출력신호가 시간 t3 에서만 버퍼(746)를 통과한다. 그 결과, 라인(756)상의 신호는 동기되어진다.
iv.내부 시스템 클럭
PDPS 와 호환되는 시스템 클럭은 일련의 디자인 고려사항과 직면하게 된다: 가격, 중앙통제일치(COMPLIANCE), 인쇄회로기판(PCB) 영역, 내구성, 그러나 가장 중요한 기밀, 고수행능력을 위한 요구는 직접적으로 비례하는 클럭속도를 높이 평가하는 것이다.
클럭회로의 가격은 주파수에 따라 증가하고, 외부 클럭은 전제 제조가의 상당한 부분을 나타내게 된다. 고주파 회로의 물리적인 범위가 크면 클수록, 고주파 EM방출은 커지게 되어 기밀문제를 발생하고 FIPS 140-1 요구조건을 제시하는 문제를 발생하게 된다. EM 방출은 정교한 공격자에게 상당히 많은 량의 정보를 제공할 수 있다--파워 스펙트럼을 분석하여 적자는 특정 시간에 처리되고 있는 알고리즘의 형태를 유추할 수 있게 된다. 마이크로 프로세서의 우측에 자리하고 있는 내부 클럭과 비교하여 보면, 마이크로 프로세서에 연결된 외부클럭은 EM 방출을 제한하는 FIPS 140-1 EMI/EMC 요구조건과 쉽게 일치시킬 수 없게 된다. 외부 클럭의 배열은 인쇄회로기판의 상당한 영역을 차지하여 디자인 응용을 제한하게 된다. 파워소비를 감소시키기 위한 요구에 따라 내부 클럭을 선호하게 되다: 내부클럭은 외부의 높은 EM 간섭을 처리하여야 하는 외부 클럭보다 저전압에서 동작할 수 있다; 그리고, 내부클럭은 물리적으로 작은 크기에 의해 작은 기생 파워 캐패시턴스를 갖는다. 게다가, 외부클럭의 존재는 잠재적인 침공격자에게 다른 기밀장치를 저지하는 요소인 클럭속도를 조정하는 것을 허용하게 된다.
내부 발진기 자체는 신규한 구조는 아니다. Carver Mead 바 Lynn Conway 의Introduction to VLSI 시스템, Addison & Wesley(1980), pp. 233-235 에 프로그램가능한 내부 발진기가 제시되었다. 다른 예는 "Sony & HDL Detailed Embedded MIPS Cores", Microprocessor Report, vol.7, no.15, November 15, 1993 에서 Brian Case 에 의해 설명된 바와 같이 외부 주파수기준에 따라 록되는 위상-동기 루프 회로(PLL)이다. 그러나. 외부기준을 통해 이 외부 링크가 기밀환경에 완전하게 부적절한 것은 아니다.
제6도를 참조하면, 시스템클럭은 일단 변화요구가 검출되면 표준 5-클럭 사이클 차단, 5-클럭 사이클 인에이블의 상태 기계를 이용하여 수행되어진다. 버스 인터페이스 및 디코더(151)는 내부버스(10)부터 3종류의 신호를 선택하여 디코딩한다: 제1도에서 설명한 바와 같이 파워블럭(13)으로 패스되는 내부 시스템클럭신호 CTTL(25); 시스템 클럭(2) 정지시키기 위한 STOP_CLK 신호(166); 링발진기(156)용 프로그램된 주파수를 나타내는 4비트의 OSC_FREQ 신호(172), OSC_FREQ 신호(172)는 발진기제어 레지스터(152)에 저장되고 변화펄스발생기(153)에 공급된다. STOP_CLK 신호(166)와 PWRGD 신호(27)는 그의 출력이 변화펄스발생기(153), AND 게이트(165), 입회(entry) 래치(154)의 세트, 클럭에지금지(155) 및 D 플립플롭(159, ..., 163)의 리세트로 인가되는 AND 게이트(164)로 공급되는 된다. 즉, 변화펄스발생기(153)가 입력의 변화를 검출할 때, 래치(158)에 래치되는 펄스 CHANGE_DETECTED(167)를 발생한다. D 플립플롭(159, ..., 163)은 링발진기(156)의 출력인 RING_CLK_OUT(170) 에 의해 발생될 클럭인 5클럭 사이클 내에서 라인 아래로 래치(158)로부터 래치된 신호를 전달하는 쉬프트 레지스터로서 작용한다. 신호가 최종 D 플립플롭(163)을 통해 전달될 때, (i) 가입 래치(154)와 클럭에지금지(155)에 OPEN_LATCH 신호(168)를 발생하고; (ii) CLOSE_LATCH 신호(169)를 출구 래치(157)와 래치(158)를 리세트시키는 AND 게이트(165)에 발생한다.
AND 게이트(164)로부터의 하이 상태 신호와 함께 OPEN_LATCH 신호(168)는 일시적인 고장을 야기하지 않고 새로운 주파수를 링발진기(156)로 프로그램시켜 주는SHUTDOWN_CLK신호(171)를 대략 120ns 동안 발생하는 원-샷 트리거인 클럭에지금지(155)를 인에이블시킨다. 이와 동시에, CLOSE_LATCH 신호(169)는 1클럭 사이클동안 로우상태로 남아있게 되어 1클럭 사이클동안 긴 듀티사이클을 갖는 출력 SYSCLK(35)을 발생하고, 발진기제어 레지스터(225)의 데이타는 SYSCLK(35)의 출력주파수에 대응된다.
링발진기(156) 자체를 지금 설명한다. 광범위한 영역에 걸쳐 개개의 클럭율의 차를 발생시키는, 제조시 야기되는 광범위한 프로세스 편차를 보상하기 위하여, 링발진기(156)는 16개의 다른 동작 주파수로 프로그램가능하다: 22MHz, 23MHz, 24.8MHz, 26.2MHz, 27.7MHz, 23MHz, 31.9MHz, 34.3MHz, 37.8MHz, 40.2MHz, 46MHz, 51.2MHz, 58.5MHz, 64.9MHz, 82.2MHz, 102.2MHz. 마이크로 콘트롤러(3)의 특별한 특성뿐만 아니라 롬(7)과 동작 호환성의 관심은 이러한 공칭 주파수가 신호가 링 발진기(156)를 떠나기전 두 개로 나뉘어지도록 명하여져, SYSCLK(35)을 통해 마이크로 콘트롤러(3)로 제공된다.
제7(a)도를 참조하면, 상기의 주파수 분할은 출력이 RING_CLK_OUT(170)인 D 플립플롭(210)에 의해 수행된다. OSC_FREQ 신호(172)는 두 멀티플렉서 MUX1(204)과 MUX2(208) 중 하나에 쌍으로 공급된다. 멀티플렉서 MUX2(208)의 출력은 D 플립플롭(210)의 클럭입력과 NAND게이트(209)로 인가된다. SHUTDOWN_CLK신호(171)는 D 플립플롭(210)의 리세트 및 NAND 게이트(209)에 인가된다. 블럭(201), (202), (203), (205), (206) 및 (207)은 제7(b)도, 제7(c)도, 제7(d)도, 제7(e)도에 각각 표시된 바와 같이 인버터 체인이다. OSC_FREQ신호(172)의 상태에 따라서,MUX1(204)과 MUX2(208)에 주장된 (0,0,0,0)부터 (1,1,1,1)까지의 결과는 인버터의 수에 따라 변화하는 실제적인 회로를 산출하게 된다. 제7(b)도에서, 캐패시터(219, ..., 226)를 통해 각각 VPP 에 연결된 8개의 인버터(211, ...,218) 체인이 도시되었다. 이 캐패시터들은 회로를 통해 모든 루팅 캐패시턴스(routing capacitance)를 제거하는 작용을 한다. 이와 마찬가지로, 제7(c)도는 인버터(227,...,230)와 캐패시터(231,....,234)를 갖는 대응하는 4개의 인버터체인을 도시한 것이다. 제7(d)도는 인버터(235, 236)와 캐패시터(237, 238)를 갖는 2개의 인버터체인을 도시한 것이다. 마지막으로, 제7(d)도는 제2인버터(240)의 출력에 접속된 단 하나의 캐패시터(241)만을 갖는 두 인버터(239, 240)를 도시한 것이다. NAND 게이트(209)와 결합된 짝수 개의 인버터는 링에 순수 전체 반전을 제공하여 링발진기(156)를 유지하여야 하기 때문에, 마지막의 경우에는 2개의 인버터가 필요하다. 상기에 나열된 링발진기(156)의 상이한 16개의 주파수를 발생시키는 것은, 모든 인버터, NAND 게이트(209) 및 멀티플렉서 MUX1(204)과 MUX2(208)를 통한 결합된 전달 지연이다.
제조시, 선택된 주파수는 설정된 시간 표준의 교정에 근거한다. 이 표준은 실시간클럭(5) 또는 신임받은 시스템에 의해 정해지고 전송된 "시작" 및 "정지" 시간명령에 의해 제공되어질 수 있다. 실시간클럭(5)을 이용하여 최종교정입력을 제공한다. 이 교정은 비밀키이가 설치됨과 동시에 행하여지고 제조모드에서만 행하여진다. 발진기제어 레지스터(152)의 최하위 4비트로부터 독출된 최종 세트주파수는 밧데리에 의해 지원된 램(8) 또는 다른 불휘발성 메모리에 저장된다. 소자가 리세트될 때 또는 파워가 인가될 때마다, 소자는 자체적으로 하기에서 설명되는 바와같이, 볼휘발성 메모리에 저장된 최종 세트 주파수를 변경 검출코드를 사용하여 정정하는 것을 자체적으로 확인한다. 최종세트 주파수가 정확할 경우, 그것은 발진기제어 레지스터(152)의 최하위 4비트로 코드되어 링발진기(156)의 최적동작 주파수를 재설정한다. 불휘발성 메모리에 저장된 최종세트 주파수가 정확하지 않으면, 발진기제어(152)레지스터로 값이 로드되지 않아 최종세트주파수는 리세트값을 그대로 갖게 된다. 링발진기(155)가 최저 프로그램가능한 주파수인 리세트값을 그대로 갖고 있을 때, 불휘발성 메모리의 조건하에서 소자의 적절한 동작을 유지하여야 한다. 예를 들면, 마이크로 콘트롤러 클럭입력 SYSCLK(35)은 오동작과 가능한 기밀침해를 유도할 수 있는 매우 높은 주파수에서는 결코 구동되지 않는다는 것을 확인한다.
v.실시간 클럭
상기에서 언급된 이유로, SPU 의 동작범위에 대하여 약 30%의 본래의 온도진동율뿐만 아니라, 시스템 클럭(2)은 마이크로 콘트롤러(3)의 내부클럭킹에 적합하지만 UNIX된 시간을 유지하거나 정해진 사건을 콘트롤하는 데 적합하지 않으며, 안전하지만, 다소 부정확한 타이팅(timing) 장치이다.
제1도를 참조하면, RTC 발진기(14)는 외부 수정발진기(15)를 사용하여 32.768KHz 신호, RTCLK(29)를 발생하도록 디자인된다. 이와 반대로, RTC 발진기(14)를 바이패스시켜 외부 클럭을 통해 RTCLK(29)를 발생시킬 수 있다. OSC_ON(42)는 밧데리 전원이 소자에 인가되더라도 발진기를 정지시켜준다. 이것은 예를 들면 시스템이 판매되기전 재고되었을 때, 밧데리에 흐르는 것을 방지한다.RTC 발진기(14)로부터 출력 RTCLK(29)은 하기에서 언급되는 바와 같이 실시간클럭을 구동하는 데 사용된다.
제8도를 참조하면, 실시간클럭(5)은 2진 리플카운터(302), 버스 인터페이스 및 디코더(301) 그리고 동기블럭(303)으로 구성된다. 리플카운터(302)는 몇 분의 1초를 카운팅하기 위하여 할당된 SFC(306)을 통한 15비트 출력과 초카운터에 할당된 SC(307)를 통한 32비트 출력을 갖는 일반적인 시프트 레지스터 어레이이다. 국부 밧데리에 의해 지원된 램블럭(8)에서 오프셋과 결합될 때 SC(307)의 값은 탐색후 UNIX 시간을 발생한다. 리플카운터(302)에서 최종캐리오버는 ROLLOVER 신호(34)를 발생한다.
버스 인터페이스 및 디코더(301)는 내부버스(10)와 인터페이스되고 시스템클럭 CTTL(25), 상기 언급한 OSC_ON 신호(42) 및 CLEAR_RTC 신호(304)와 CLOCK_RTC 신호(305)를 공급한다. CLEAR_RTC(304)는 리플카운터(302)를 리세트시키기 위하여 사용된다. CLOCK_RTC(305)는 마이크로 콘트롤러(3)가 RTCLK(29)에 의지하지 않고 리플카운터(302)를 클럭하여 소자의 테스트를 허락한다.
RTCLK(29)은 외부 비동기신호이므로, 발생되는 신호 SFC(306), SC(307) 및 ROLLOVER(34)는 초기에 설명한 실리콘 방화벽과 마찬가지로 동기블럭(303)에 의해 취급될 필요가 있다. 이후, SFC 신호(306) 및 SC 신호(307)는 마이크로 콘트롤러(3)에 의해 폴링에 응답하여 내부버스(10)를 통해 적절하게 전송되어질 수 있다. ROLLOVER 신호(34)의 사용은 하기에서 설명되는 롤오버비트의 내용에서 설명되어질 것이다.
하기에서 설명될 다른 실시예의 경보발생특징에 따르면, 하향계수 카운터(308) (가상으로표시)는 내부버스(10)상에 전송된 카운터제어신호를 통해 마이크로 콘트롤러(3)에 의해 세트되고, 버스 인터페이스 및 디코더(301)에 의해 디코딩되며, 라인(310)을 통해 전송되어진다. 즉, 하향계수 카운터(308)가 리플카운터(302)의 SC 신호(307) 또는 SFC 신호(306)로부터 클럭되어 소정의 계수를 수행할 때, 하기에서 설명되는 방법과 마찬가지로 ALARM 신호(38)를 발생한다. 게다가, OR 게이트(309)를 통해 전달된 ROLLOVER 신호(309)는 ALARM(38)을 통해 다른 경보발생신호의 근거를 제공한다.
vi.반전키이저장
SPU 의 불휘발성 또는 일반적으로 재기입가능한 메모리에 비밀정보(암호 키이)를 놓아둘 것이 요구된다. 비밀정보는 SPU 에 전원이 턴오프되면 파괴된다. 한편, 비밀정보가 불휘발성 메모리에 놓여 있을 경우, 공격자는 SPU 를 제거하고 한가하게 통상의 수단으로 불휘발성 메모리의 정보를 조사할 수 있다.
비밀정보가 불휘발성 메모리에 적절하게 로드되지 않을 경우, 공격자는 시스템의 파워가 턴오프되는 동안 SPU 를 여전히 조사할 수 있어 비밀정보를 얻을 수 있게 된다. 이것은 통상의 휘발성 메모리에 저장된 비밀정보는 SPU 의 유전물질에 그대로 남아있어 공격자가 파워가 턴오프된 후에도 비밀정보를 얻기 위하여 독출할 수 있기 때문이다. 비밀정보가 메모리에 로드될 때, 메모리셀의 전압레벨은 전하를 메모리셀의 유전물질에 형성시킨다. 동일한 비밀정보가 연장된 시간 주기동안 동일 메모리위치에 놓여있을 경우, 유전물질은 메모리셀의 전하에 영구히 영향을 미치게된다. 이것이 발생될 때, 파워가 메모리셀로부터 제거된 후에도 비밀정보를 결정하는 것이 가능하다. 게다가, 전압을 증가시키고 SPU 의 동작온도를 변화시켜 메모리셀을 인공격으로 "노화"시키는 것이 가능하다(따라서 유전물질은 짧은 시간내에 영원히 영향을 미치게 된다).
본 발명의 하나의 특징은 비밀키이가 주기적으로 반전되어 있는 반전 키이 저장배열이다. 그 결과, 모든 메모리셀의 순수 평균전하는 동일하여, 검출될 수 있는 메모리셀의 유전물질에서 특별히 선택된 키의 부호가 남아있지 않게 된다.
본 발명의 일실시예에서는, 반전키이 저장배열은 펌웨어로 수행된다. 펌웨어는 소정시간 즉 100ms 마다 한번씩 수행되는 키이반전루틴을 포함한다. 키이반전루틴(802)을 포함하는 플로우챠트(800)가 제9도에 도시된다. 플로우챠트(800)는 반전루틴(802)을 실행할 시간인가를 결정하는 결정블럭(804)을 포함한다. 대답이 아니오이면, 펌웨어내의 프로그램이 실행된다(블럭806). 키이반전루틴(802)을 수행할 시간이면, 플로우챠트(800)는 키에 대한 모든 억세스를 디스에이블시키는 블럭(808)을 실행한다. 삽입된 콘트롤러는 그 다음 불휘발성 메모리에 저장된 키이를 독출한다. 키이의 비트는 반전되어 메모리내에 다시 저장된다(블럭 810). 반전의 현재상태의 트랙을 유지하기 위하여(즉, 키이가 정상인가 또는 반전상태인가), 키이반전 스태터스비트는 상태트랙을 유지하기 위하여 할당된다. 키이의 반전후, 키이반전 스태터스비트의 스태터스는 변경된다(블럭 812). 키이에 대한 억세스는 현재 인에이블된다(블럭 814). 플로우챠트(800)는 다른 펌웨어루틴을 수행하기 위하여 블럭(806)을 실행할 수 있다.
하드웨어만을 이용하여 반전키이 저장배열을 수행하는 것이 역시 가능하다. 제10도는 JK 플립플롭(822)과 셀(824)과 (825)와 같은 복수 개의 메모리셀을 구비한 배열(820)의 개략도이다. 이러한 두 쉘의 구조는 동일하여 하나만을 상세하게 설명한다. 셀(824)은 두개의 OR 게이트(827)와 (828), JK 플립플롭(829), NOR 게이트(830), 인버터(831) 및 버퍼(832)를 구비한다. 라인(834)상의 클럭신호는 두 플립플롭(822), (829)의 클럭입력에 연결된다. 라인(835)상의 토글/코드신호(T/L*)는 신호가 하이레벨일 때 셀(824), (825)를 토글 상태로 하고 신호가 로우상태일때는 셀을 로드상태로 하기 위하여 사용된다. 즉, T/L*가 로우상태일 때, 라인(839)상의 데이타는 메모리셀(824)로 로드된다. T/L*신호가 하이상태일 때, JK 플립플롭(829)은 라인(834)상의 클럭신호에 따라 토글된다. 라인(836)의 독출신호는 버퍼(832)의 인에이블단자에 접속된다. 독출신호는 메모리셀에 저장된 데이타를 독출시켜 준다. 라인(836)상의 신호는 라인(839)상의 출력이 원래 또는 반전된 신호인가를 나타낸다.
vii.부가기밀특징
상기에서 설명한 특징 외에 SPU 는 여러 가지 방법으로 더욱더 기밀을 확실히 제공할 수 있다. 예를 들면, 1993년 7월22일 발명자 Robert C. Byrne 가 출원하고 여기서 참고로서 일체화된 출원번호 08/096,537 에 개재된 물리적 코팅 "변경에 잘 견디는(temper resistant) 집적회로구조"는 SPU 의 일부분은 덮고 다른 부분은 노출시켜 변경에 잘 견디는 구조를 구비하여, 변경에 잘 견디는 구조를 식각하여노출된 부분을 파괴시킨다. 즉, 변경에 잘 견디는 구조는 액티브회로를 숨기고 변경에 잘 견디는 구조의 제거는 액티브회로를 파괴시키기 때문에 SPU 는 쉽게 분해되거나 역으로 설계되지 않는다. 물리적 코팅은 금속층 검출기(제11-13도)에 대한 본래의 부속물로서 작용한다. 유용함을 입증할 수 있는 다른 기밀특징은 발명자 Max Kuo 와 James Jaffe가 1994 5. 31에 출원하고 여기서 참고로서 기재되는 미국 특허출원번호 제 08/251,230 호의 "기밀한 불휘발성 메모리셀"이 있는데, 이는 셀의 시도된 프로세싱시 저장된 전하를 방전시킴으로써 셀내에 저장된 전하가 외부검출에 대하여 보호되는 EEPROM 셀을 갖는다. EEPROM의 형태는 롬블럭(8)의 역할을 완전히 수행할 수도 있으며, 초기에 설명한 반전키이저장을 대체하는 것이 가능하다(제9도, 제10도).
b.검출기의 구현
i.광검출기
비밀정보가 VLSI 소자의 레지스터 또는 메모리에 존재할 경우, 가끔 공격자는 그린 소자의 패키지를 제거하여 직접 저장소자에 영향을 주는 것이 유익하다는 것을 알고 있다. 이것은 설계 구조의 조사를 이용하여 기밀의 정보를 찾기 위한 시도시 내부노드를 조사하는 것을 가능케한다. 패키지의 제거 또는 탈캠슐화는 공격자측의 고의가 아닐지라도 주위의 빛에 다이가 노출되게 된다. 이런 광을 검출하는 것은 발생될 적절한 대응책의 입력정보로서 작용한다.
광감지소자의 제작은 추가의 마스크나 스텝없이 많은 일반적인 CMOS 공정으로 수행될 수 있다. 예를 들면, 낮게 도핑된 N형 물질은 물질이 노출된 광량에 비례한 전도율을 나타낸다.
제1도를 참조하면, 광검출기(16)의 신호는 스태터스 레지스터(11)에 비트를 세팅하기 전에 실리콘 방화벽을 통과한다. 침입특성을 국부화시키고 좀더 특징화하는 데 사용되는 복수개의 괌검출기는 SPU 내의 전략적인 위치에 위치하게 될 것이다.
ii.고/저온 검출기
SPU 의 정상온도 동작범위는 0℃ 내지 70℃ 이다. 대부분의 장치에서 이 영역이상의 온도는 예로서 칩의 외곽층을 연마하여 발생된 열은 공격자에 의한 침입시도의 결과로서 간주된다. 그 분야에서 통상의 기술을 가진 자에게 잘 알려진 다른 상당한 소자가 충분하지만, 그 분야에서 잘 알려진 기판 다이오드는 온도변화를 검출하는 데 충분하다.
제1도를 참조하면, 온도 검출기(17)의 신호는 스태터스 레지스터(11)에 비트를 세팅하기 전에 실리콘 방화벽을 통과한다. 본 발명에 따른 어느 것도 SPU 내의 온도차를 특성화하기 위하여 온도 스케일 또는 복수 게의 검출기를 특징짓는 멀티-비트 분야를 배제시킬 수 없다.
iii.금속층
현대 집적회로 분석장치는 파워가 회로에 인가될 때 집적회로의 내용을 조사할 수 있다. 그 결과, 불휘발성 메모리에 저장된 키이 또는 다른 비밀 데이타를 검출하는 것이 가능하다. 비밀키이를 보호하는 한가지 방법은 키이에 인가된 탐색(probe) 신호를 편향시킬 수 있도록 금속층으로 키이를 덮는 것이다. 그러나,이 금속층은 공격자에 의해 쉽게 제거되거나 또는 변경될 수 있다. 결과적로, 종래 기술과 잘 고려하여 보면 금속층의 사용으로 키이를 보호하는 것은 덜 효과적이다.
금속층의 기밀성을 향상시키는 한가지 방법은 SPU 가 키이 또는 그물질의 특별히 감각적인 데이타를 덮는 금속층의 변경을 검출하는 수단을 포함시키는 것이다. 본 발명의 일실시예는 제11도에 도시된 바와 같다. 금속층은 제11도에 도시된 금속 트레이스(852-857)로 나뉘어진다. 각 트레이스는 래치(860)의 출력핀과 래치(862)의 입력핀에 연결된다. 두 래치는 마이크로 콘트롤러와 메모리에 차례로 연결된 시스템 버스(868)에 연결되고 역시 스태터스 레지스터(11)에 연결된다. 트레이스(852), (853)는 제1영역(864)위를 통과하고, 트레이스(854), (855)는 제2영역(865)위를 통과하며, 트레이스(856), (857)는 제3영역(866)위를 통과한다.
시스템 버스 사이클동안, 래치(860)의 각각의 출력핀은 랜덤 수 발생기(하드웨어 또는 소프트웨어중 하나로 구현된)의 값에 따라 로직 하이 또는 로직 로우중 하나로 구동된다. 그 결과, 트레이스(852-857)는 대응하는 로직하이 또는 로직로우로 세트되어져야 한다. 후자의 버스사이클에서, 래치(862)는 트레이스(852-857)의 로직 레벨을 래치한다. 래치된 로직레벨중 어스 레벨이 래치(860)에 의해 본래부터 구동되는 로직레벨과는 다를 경우, 공격이 SPU 에 장착되었다고 가정한다.
발명의 다른 실시예는 제12도에 도시되었다. 금속층은 제12도에 도시된 많은 트레이스(902-904)로 다시 나뉘어진다. 이 금속 트레이스는 로직하이전위에 연결된다. 제12도는 복수 개의 AND 게이트(906-908)와 복수개의 메모리셀(913-916)을 구비한다. 각 AND 게이트(906-908)는 각각 트레이스(902-904)중 하나에 연결된 입력단자와 메모리셀(914-916)의 파워라인(910-912)중 하나에 연결된 출력단자를 갖는다. 각 AND 게이트(906-908)의 다른 단자는 파워라인(909-911)에 각각 연결된다. 파워라인(909-911)은 예를 들면 VPP(24)로부터 공급될 수 있다.
금속 트레이스가 정상상태에 있을 때, 즉 로직하이전위에 연결될 때, AND 게이트의 입력은 로직하이전위이다. 즉, 모든 메모리셀은 AND 게이트의 출력에 의해 파워가 공급된다. 그러나, 금속 트레이스중 어스 하나가 제거되는 경우에는, 대응되는 AND 게이트의 출력은 관계된 메모리셀을 턴오프시키는 로직로우로 변화된다. AND 게이트의 출력이 이웃하는 AND 게이트의 입력에 연결되므로, 이웃하는 AND 게이트의 출력은 이웃하는 AND 게이트에 관계된 메모리셀을 턴오프시키는 로직로우로 된다. 이 사건의 시퀀스는 AND 게이트의 모든 출력이 로직로우로 될때까지 전달된다. 그 결과, 모든 메모리셀은 턴오프되어 거기에 저장된 데이타를 파괴시킨다. 본 실시예는 마이크로 콘트롤러의 동작을 요구하지 않으며 최종래치방어에 해당될 수 있다.
본 발명의 제3실시예는 제13도에 도시된 LATN 셀(920)이다. LATN 셀(920)은 본래 약(weak) 피이드백 패스를 갖는 래치로서 셀내의 침입은 셀을 토글시키게 된다. 라인(925)상의 콘트롤신호는 전송 게이트(924)에 인가되고 인버터(926)를 통해 다른 전달 게이트그(924)에 인가된다. 그 결과, 한번에 전송 게이트중 하나만이 턴온된다. 전송 게이트(922)가 턴온될 때, 라인(927)상의 데이타신호는 인버터(928)를 통해 출력인버터(929), (930)로 통과한다. 인버터(931)는 반전된 입력을 제공하기 위하여 인버터(929)에 연결된다. 전송 게이트(922)가 턴오프될 때, 디지탈 신호는 다이상 출력인버터에 연결되지 않는다. 그러나, 출력신호는 인버터(932)와 전송게이트(924)에 의해 제공된 피이드백으로 인하여 그값을 그대로 유지한다.
본 발명의 LATN 셀(920)의 중요한 특징중의 하나는 피이드백 인버터(932)가 약(weak) 출력파워를 갖는다는 것이다. 즉, LATN 셀(920)이 조사에 의해 발생된 방사선에 노출되는 경우, 피이드백 패스는 단절되어 LATN 셀(920)의 출력값은 유지될 수 없다.
모든 실시예에서는, 출력은 신호를 실리콘 방화벽(20)을 통해 스태터스 레지스터(11)로 공급하는 금속층 검출기에 의해 부호로 표기된 바와 같은 검출기로서 사용될 수 있다. 금속층 자체가 하기에서 설명되는 바와 같이 프로빙에 대하여 수동적인 방어를 제공한다는 것을 무시해서는 안된다.
iv. RTC 롤오버 비트와 클럭보전체크
상기에서 설명한 바와 같이, 실시간클럭(5)은 UNIX 시간을 유지하는 리플카운터를 구동시키기 위하여 32.768KHz 발진을 사용한다. SPU 가 오직 밧데리 파워하에서만 동작하는 동안 매우 높은 정도의 주파수소오스를 갖는 발진기로 대체한다면, 시스템파워가 재공급될 때 마이크로 콘트롤러(3)가 턴온된 이전시간이래 경과한 불만족한 량의 시간을 검출할 수 없는 위치에 대한 소정의 펄스 수를 카운터가 카운트하는 것이 가능하다. 다양한 응용에 대한 함축적인 의미는, 정보가 실제적으로 사용되는 시간과 그러한 사용을 위하여 후속하여 충전되는 시간이 서로 거의 영향을 미치지 않는 때에 정보를 측정하는 예에서와 같이 중대하다.
클럭 변화를 검출하기 위한 종래의 해결책은 전체 시스템이 항상 업되어 동작할 것이 요구되는 문제점이 있다: 일반적으로, 그러나 비사용 시간의 파워소비를 최소화하기 위하여, 대부분의 시스템은 실시간 클럭이 밧데리로부터 계속 동작을 하는 동안은 파워를 다운시킨다. 즉, 문제는 피부시스템의 사용 없이 실시간 클럭의 변화를 검출할 수 있는 메카니즘을 만들어 내는 것인데, 이러한 메카니즘은 기밀이유로 실시간 클럭내에 완전히 포함되고 총파워의 최소한의 소비여야 한다.
본 발명에서는, 제1도를 참조하면, 이러한 문제는 ROLLOVER 신호(34)에 의해 세트되는 스태터스 레지스터(11)의 롤오버 비트의 제공에 의하여 해결된다. 이 롤오버 비트는 독출/기입 마스크되도록 구성된다. 즉, 롤오버 비트가 이미 1 로 세트될 때 롤러비트에 1 을 기입하여야만 클리어시킬 수 있으며, 이 기입은 기밀을 향상시키는 특징인 마이크로 콘트롤러(3)로부터 나타난다. 롤오버신호(34)는 상기에서 설명한 실시간클럭(5)에 의해 발생된다. 제8도에서 SC 출력(305)의 32비트는 32.768KHz 발진기와 관련되어 동작할 때 약 136년에 대응되는 232사이클에서의 캐리-오버를 나타낸다. 이것은 SPU 생산시 고려된 수명내에 잘 들어있다. 회로는 103정도 높은 32.768MHz 와 같은 것에서 클럭킹될 때마다, 발진회로에 의해 허용된 이것은 자칭 공격자가 기다리는 긴시간인 매 49.7일 마다 롤오버를 발생하고, 그 다음에도 지금 막 설명한 바와 같이 제품의 고려된 수명내에 롤오버가 발생되지 않기 때문에, 공격자는 롤오버 비트 특징에 의해 저지되지 않는다. 롤오버 비트가 지금 설명한 바와 같이 제2캐리 오버에 의해 클리어될 수 없기 때문에 제2롤오버 비트를 지원하는 것은 작용하지 않는다.
이러한 시도는 저가의 수행, 요구되는 SPU 면적이 작으며, 아직은 부가의 기밀위협이 초래되지 않은 간단한 리플카운터 구조와의 호환성등의 장점을 갖는다.
RTC 롤오버비트에 의해 제공된 기밀은 제14(a)에 도시된 일반적인 클럭보전점검에 의해 보충된다. 이 프로세스는 이 프로세스(552)에 의해 저장된 실시간클럭(5)의 이전출력을 램(8) 또는 특별한 레지스터로부터 거꾸로 독출함에 의하여 스텝 551에서 시작한다. 단조성 테스트는 현재시간과 이전저장된 출력을 비교하여 수행한다(553). 현재시간이 작으면, 기밀문제가 발생되고 신호가 발생되어(560) 처리는 종료된다(558). 현재시간이 훨씬 크면 다음 단조성 테스트를 위하여 저장된다. 다음 고정된 벤치마크 수행테스트가 유도된다(555); 이러한 형태의 많은 테스트는 종래에 잘 알려져 여기서는 언급할 필요가 없다. 테스트는 생산시간 테스팅동안 설정된 또는 이와는 달리 주어진 사이클수동안 런 타임(run tim)에 클럭되는 길이의 시스템 클럭사이클 CTTL 의 주어진 수만큼 소요된다는 것이 중요하다. 벤치마크 테스트의 종료시, 실시간클럭(5)에 의해 측정된 종료시간은 반드시 저장되어야 한다(556). 즉, 실시간 클럭(5)에 의해 측정된 벤치마크 테스트경과시간은 계산되어 CTTL(25) 클럭의 사이클수와 비교될 수 있다. 시스템클럭(2)의 초기교정 즉, 동작주파수의 설정은 그러한 비교를 허용하기 위하여 실시간클럭(5)과 시스템클럭(2)사이에 필요한 변환 인수(conversion factor)를 제공하여야 한다. 초기에서 설명한 바와같이, 시스템클럭(2)은 역시 온도에 따라 상당한 편차를 나타낸다; 즉, 시간비교는 동작허용오차를 고려하여야 한다(557). 비교가 이 허용오차 밖에서 발생되는 경우에는, 기밀문제가 제기되어져야 하고(559), 그러나 모든 경우에프로세스는 종료된다(558).
v. VRT 기밀비트 그리고 파워보전점검
VRT 기밀비트는 밧데리 파워와 시스템 파워 모두 허용전압 예를 들면 2V 이하로 동시에 벌어졌다는 것을 시스템에 알려주기 위하여 제공된다. 이러한 일이 발생될 때, 불휘발성 저장정보 뿐만 아니라 실시간클럭(5)의 시간계수는 손실된다. 본 명세서에서는 램(8)에 대한 참조는 VOUT(23)에 의해 파워가 공급된 오프칩 램이 포함된 것으로 간주될 것이다. 제1도를 참조하면, VRT 비트는 충분한 전압이 없을 때 비트가 로우로 되도록 디자인된, 풀업 또는 풀다운 저항과 같은 VPP(24)에 연결된 전압검출회로를 갖는 스태터스 레지스터(11)에서 특별한 비트로서 수행될 수 있다. 즉, VRT 비트는 파워블럭(13)에 의해 클리어되고, 스태터스 독출/기입 라인(36)을 통해 마이크로 콘트롤러(3)에 의해서만 세트된다. VRT 비트는 SPU 의 밧데리에 의해 지원된 부분상의 전체 보전점검을 수행하기 위하여 램(8)의 재기입-메모리 변경 검출코드와 결합하여 사용된다. RSA 데이타기밀 주식회사가 소유한 MD5 와 같은 알고리즘을 좀더 정교하게 수행하기 위하여, 변경 검출코드는 그 분야에 잘 알려진, 단순한 체크섬(checksum)으로부터 주기적인 과잉정보 점검(cyclic redundancy check: CRC)에 적합한 코드의 분류중 하나인데, 각각은 다른 레벨의 기밀, 충돌 및 에러복원성을 제공한다. 예를 들면, 수행이 용이한 반면, 단순한 체크섬은 동일한 전체 체크섬을 보존하는 동안 공격자가 램(8)의 내용을 과도기입하도록 커다란 자유도를 허용한다. 변경 검출코드가 사용될 때마다, 코드결과는 측정되는 램(8)을 따라 통상적으로 저장된다.
제14(b)도를 참조하여 일반파워보전 점검 프로세스(251)를 설명한다. SPU 가 파워업되면, 마이크로 콘트롤러(3)는 SPU 상의 필요한 초기동작을 수행한다(252). 그다음, 마이크로 콘트롤러(3)는 VRT 비트(253)의 상태를 확인하기 위하여 스태터스 레지스터(11)를 조사한다(253). VRT 비트가 1 로 세트되면, 램(8)의 변경 검출동작은 수행된다(254). 그다음, SPU 는 변경이 검출되었는가를 결정한다(255). 그렇지 않으면, SPU 는 정상동작상태에 있다고 말하여 질 수 있어 비밀 데이타로의 제한된 억세스를 제공하는 명령만을 수행하여야 하며(256), 그다음 프로세스는 종료된다(257).
변경이 검출되었을 경우, SPU 는 에러상태에 있으며, 기밀문제가 제기되어(258) 프로세스는 종료된다(257).
VRT 비트가 0 으로 세트되면, 램(8)의 변경검출동작은 역시 수행된다(259). 번경이 검출되지 않으면, 로우 파워상태임에도 불구하고 SPU 는 기밀상태에 있다; 다시 말하면, 램(8)이 현재 점검되더라도, 파워는 신임을 받을 수 없으며, 기밀문제가 제기되어(261) 프로세스는 종료된다(257).
최종적으로, VRT 가 0 일 때 변경이 검출되는 시나리오가 있다. -- 이러한 변경검출은 램(8)이 랜덤한 구조를 갖기 때문에 비논리적이다, 즉 제조상태에 있다고 말한다. 다음은 본 발명의 실시예에서 얻어진 응답설명으로서, 이 상태에서 가능한 응답수를 배제하는 것을 알 수 없게 된다. 본 발명의 실시예에서는, SPU 는 가장 신뢰싱있는 상태에서 동작하도륵 모든 비밀데이타영역을 제로(0)화 할 수 있으며 롬(7)에 바람직하게 저장된 시스템클럭(2)의 최저발진주파수와 같은디폴트(default)된 동작구조 파라미터를 이용할 수 있다(262). 이어서, SPU 는 제조테스트가 수행되고 구조파라미터가 세트되는 모드로 들어간다(263). 그리고, SPU 는 신뢰성을 보증하기 위하여 제조 테스트가 수행될수 있다(264). 일단 그러한 테스트가 성공격으로 되면, 키이와 같은 비밀 데이타가 로드되고, 변경 검출 코드가 램(8)의 전체 내용에 대해 수행되어 저장된다. 최종적으로, SPU 는 VRT 비트를 1 로 세트시켜 정상동작상태로 만들고(266) 프로세스가 종료된다(266).
vi.버스 모니터링방지
PDPS 로 다른 물체중에서 비밀정보를 전송하는 내부데이타 거래를 모니터하기 위한 시도를 방해하는 것을 의미하는 비밀정보를 보호하는 데 관심이 있다. PDPS 와 결합된 소자는 데이타를 입력하고 내부비밀정보를 사용하여 이 데이타에 대한 동작을 수행하여 발생된 데이터를 출력하는 입력 및 출력포트를 갖추어야 하는 것은 자명하다. 집적회로가 소자에 포함된 비밀정보를 입력 및 출력포트를 통해 추출하는 방법으로 변경되거나 또는 소자내에 랜덤고장이 이것을 발생시킬 경우, PDPS 시스템은 더이상 기밀상태로 있지 않게 된다.
비밀정보를 유지하기 위한 종래의 해결책은 그런 정보를 단일의 집적회로 칩의 한계내로 그러한 정보를 한정하거나 즉, 표준평가기구를 구비한 칩입자가 내부 칩데이터를 모니터링하여 비밀정보를 식별하는 것을 방지하는 것과 관련되어 있다. 이 한계시도는 비밀정보를 요구하는 모든 기능을 동일한 실리콘 조각에서 수행되도록 하기 위하여 고집적도를 요구하였다. 또한, 이 집적회로의 입력 및 출력포트는 비밀정보가 내부적으로 전송되는 동안은 디스에이블 될 필요가 있다. 종래의 해결책은 이미 제조된 집적회로를 변경하는 데 있어서 어려움이 있다. 반도체평가기구가 그의 정교함과 능력이 상당히 진보되었기 때문에 이것은 더이상의 경우는 아니다. 현재는 다른 부분 또는 전체 칩을 손상시킴 없이 집적회로의 일부분을 수정하는 것이 가능하다. 즉, 내부버스상에서만 비밀정보를 유지하는 소자는 입력 포트 또는 출력포트로 정보를 전송하는 것을 수정할 수 있다. 이것은 특별히 만들어진 내부 프로브를 내부버스에 연결하는 것보다. 상당히 쉬운 일이다. 집적회로내에 랜덤한 고장은 잘 알려져 유사한 시나리오를 발생시키는 것이 반복되어진다. 그러므로, 두 경우에 입력 및 포트를 모니터링하는 것은 비밀정보를 결정하도록 한다.
본 발명에서 이러한 문제와 싸울 수 있는 근거는 입력 또는 출력회로의 원래의 디자인이 내부버스상에 비밀정보를 불러오기 전에 공격 또는 랜덤한 고장에 의해 수정될 수 없다는 것을 입증하는 칩 내부로 메카니즘을 발생한다는 것이다. 이것은 임계회로 콤퍼넌트가 손상되지 않아 정확하게 동작하는 것을 확실히 하기 위하여 임계회로 구성요소에 신호를 보냄으로서 수행된다. 따라서 기밀 침해의 검출이 작용하지만, 적어도 버스는 비밀 데이타를 불러옴으로써 디스에이블된다. 또한, 비밀정보가 내부버스상에 나타날 때 극단적으로 정확하게 발생하는 랜덤 하드웨어인 장점을 갖는 비밀정보는 여러 부분으로 나타나고 작고 아마 쓸모 없는 부분만이 손상될 것이다.
SPU 는 내부 기밀버스로부터 외부버스로 데이타를 전송시켜 주기 위한 포트를 포함한다. 일실시예에서는, 수행이 입출력포트에 부가된 특별한 회로와 내부 마이크로 콘트롤러에 의해 실행되는 펌웨어의 특별한 루틴으로 초래된다. 내부 마이크로 콘트롤러는 그 포트의 출력 레지스터에 기입된 최종 데이타의 내부 복사를 유지한다; 일반적으로, 입력 레지스터만이 내부 마이크로 콘트롤러에 의해 독출될 수 있다. 기밀정보를 버스상으로 가져오기 전에, 마이크로 콘트롤러는 포트에 기입된 최종 유효 데이타가 여전히 제위치에 있다는 것을 확실히 하기 위하여 포트에 신호를 보낸다; 그렇지 않으면, 마이크로 콘트롤러는 버스상에 비밀정보를 가져오지 않는다. 유효 데이타가 제위치에 있으면, 비밀 데이타의 일부분은 버스상으로 가져와 필요에 따라 내부적으로 전송된다. 포트는 다시 유효 데이타가 입출력 포트의 출력 레지스터의 제위치에 있는가를 확실히하기 위하여 체크된다. 비밀 데이터 또는 다른 데이타가 포트에서 검출되는 경우에는, 마이크로 콘트롤러는 버스상에 다른 데이타를 가져오지 않는다. 이것은 모든 비밀정보가 내부 목적지까지 전송될 때까지 이것은 계속된다.
버스 모니터의 사용, 또는 비사용은 펌웨어로부터 콘트롤되는 프로세스이다. 제15도를 참조하면, 이 프로세스는 상세하게 설명된다. 시작시(320), 마이크로 콘트롤러(3)는 비밀 데이타가 스텝 352 에서 내부버스로 전송될 필요가 있는가를 결정한다. 그렇지 않으면, 데이타는 통상의 방법으로 버스상에 전송될 것이다(353). 비밀 데이타가 버스로 전송되면, 마이크로 콘트롤러(3)는 출력포트 레지스터를 거꾸로 독출하여 일시 저장소에 그것들을 저장한다(355). 일 실시예에서는, 비밀 데이타가 내부버스(10)로 이동되기 전에 비밀이 아닌 데이타는 테스트로서 내부버스(10)로 전송된다(356). 출력포트 레지스터는 다시 거꾸로 독출되어 이전에 거꾸로 독출되어 저장된 데이타와 비교된다(358). 그것들이 다르다는 것이 입증되면, 프로세스는 중단되고 기밀문제를 제기하고(325)스텝 362 에서 빠져 나온다. 하지만, 데이타가 동일한 경우에는 프로세스는 루프의 일부분으로서 처리되어 어떤 비밀 데이타 또는 모든 데이타가 이미 스텝 359 에서 내부 버스(10)로 전송되었는가를 결정한다. 그렇지 않으면, 비밀 데이타의 다음 부분이 스텝 360 에서 버스로 전송되어 프로세스는 스텝 357 로 거꾸로 루프되어 다시 출력포트 레지스터를 독출한다. 비밀 데이타의 모든 부분이 전송되었을 경우, 프로세스는 스텝 352 로 거꾸로 루프되어 내부버스(10)로의 데이타 전송을 좀더 콘트롤하게 된다.
이러한 시도는 어떤 특별한 반도체공정없이 상대적으로 저가의 수행이라는 장점을 갖는다. 결함된 물리적 그리고 전기적 공격 뿐만 아니라 랜덤한 고장에 대하여도 보호된다. 집적회로내에서 마이크로 콘트롤러에 의해 동작되는 펌웨어와 결합하여 다중 블록으로 수행됨으로써, 이 시스템은 고가이고 분해 모방을 하는 것이 어렵다.
vii.트립와이어 입력
버스모니터금지의 내용에서 상기에서 설명한 SPU 의 입력/출력핀의 공격에 대한 많은 문제들이 바로 이러한 종류의 공격에 암호경보 또는 트립와이어(trip wire)를 제공하는 바로 이들 핀들의 모니터링을 통하여 해결될 수 있다. 공격자는 주어진 핀을 모니터링하여 그의 기능을 결정한다. 프로그램가능한 I/O 포트(1)의 핀(32)은 이상적으로는 예상되지 않은 독출 또는 기입을 검출하는 데 적합하다. 게다가, 그들은이러한 핀(32)을 침범하는 공격자를 검출하는 데 사용될 뿐만 아니라 PCMCIA 카드내에 배열된 광검출기의 밧데리와 같은 오프-칩 외부 검출기로부터의입력으로서 사용된다.
제16도를 참조하면, 스텝 401에서 시작하는 프로세스를 상세히 설명한다. 주어진 비트, I/O 포트(1)상의 X 번째 비트가 1 로 세트된다(402). 프로세스는 동작 시스템이 I/O 포트가 체크될 시간임을 검출할 때까지 대기한다(403). 이것은 예를 들면, 핀들이 정규의 I/O 동작을 위하여 사용될 필요가 있을 때는 고려하여야 한다. 그런 시간에 도달할 때, X 번째 비트는 독출되어(404), 여전히 1 인가를 체크한다(405). 만약, 그렇다면, 프로세스는 스텝 402 의 대기상태로 복귀된다. 그렇지 않으면, 프로세스는 중단되고 기밀문제가 제기되며(406) 프로세스는 종료된다(407).
viii.소프트웨어 공격 모니터
하드웨어소자(마이크로 프로세서, PAL 등과 같은 복수 개의 구성요소를 포함하는)로 기밀 시스템을 부수는 가장 비싼 방법중의 하나는 하드웨어 소자상에 랜덤 데이타 전자공격을 장착하는 것이다. 특별히, 공격은 신호(명령, 데이타 또는 랜덤신호들)를 소자의 몇몇 구성요소의 입력이 핀으로 전송하고 동일한 또는 다른 구성요소의 출력핀들을 모니터할 수 있다. 이러한 종류의 공격은 특별한 하드웨어를 거의 필요로 하지 않으며, 공격자는 하드웨어소자에 의해 신호되거나 또는 포함된 비밀정보를 알 수 있다.
대표적인 공격전략을 설명한다. 충격자는 정상동작동안 일정주기시간에서 구성요소의 하드웨어 그리고 소프트웨어 동작을 모니터한다. 그 결과, 공격자는 하드웨어소자의 프로그램가능한 구성요소의 정상명령구조를 결정할 수 있다. 공격자는얻어진 정보에 근거한 자신의 명령 시퀀스(즉, 명령 또는 명령 오퍼레이터를 악간 변경하거나 또는 전반적으로 다른 명령을 발생함으로써)를 발생한다. 이러한 명령 시퀀스의 구성요소의 반작용은 "특성 데이타 베이스"를 형성함으로써, 기록된다. 구성요소의 동작은 이해되기 때문에, 구성요소로 송부된 신호들은 더 이상 랜덤한 것은 아니지만, 시스템의 기밀을 파괴시킬 수 있는 명령을 인식하도록 디자인된다.
마이크로 프로세서를 포함하는 하드웨어소자에서 구성요소는 최소한 공격의 최소국면동안 상당히 많은 유효하지 않은 명령을 받을 수 있다는 것을 상기 공격전략으로부터 알 수 있다. 결과적으로, 본 발명의 하나의 특징은 SPU 가 과도한 유효하지 않은 데이터의 발생을 검출하고 공격을 중지 또는 파괴시키기 위한 적절한 동작을 하는 것이다. 약간의 아주 순수한 기능은 예로써, 부팅시 컴퓨터가 모든 주변소자와 존재하고 액티브한가를 결정하기 위하여 포트를 침범할 때, 유효하지 않은 일련의 명령을 발생한다.
유효하지 않은 과도한 명령의 수를 측정하는 수단은 단위시간당 유효하지 않은 명령의 수를 결정하는 것이다. 적절한 시간단위는 다음에 의하여 결정된다: (1) RTCLK(29)와 같은 발진기에 의해 구동된 카운터의 롤오버 시간; (2) 실시간클럭(5)의 소정의 틱(tick)의 수; (3) 단위시간당 유효하지 않은 명령의 수가 소정값("제한 파라미터")을 초과하는 경우, 적절한 동작이 SPU 에 의해 취해진다.
어떤 상황에서는, SPU 가 각각 연관된 동작을 갖는 제한 파라미터들을 세트시키는 것이 더 좋을 수도 있다. 제17도는 4개의 제한 파라미터를 구비한 플로우 챠트(940)를 포함한다. 제한 파라미터의 수는 단지 예시적이며 임의 수의 제한 파라미터들이 사용될 수도 있다는 것을 명심해야 한다. 플로우챠트는 스텝 940 에서 시작하여 4개의 제한 파라미터의 각 값을 세트시킨다(942). 이어서, 플로우챠트는 블럭(946-966)으로 구성된 루프를 수행한다.
블럭(946)에서, SPU 는 명령이 유효한가를 결정한다. 명령이 유효하면, 정규방법(블록 948)으로 처리된다. 그 다음, 플로우챠트는 거꾸로 클럭 946 을 실행하여 다를 명령을 인출하여 조사한다. 명령이 유효하지 않으면, 플로우챠트(940)는 단위시간당 유효하지 않은 명령 수를 계산하는 블럭(950)으로 간다. 계산결과를 제1제한 파라미터와 비교한다(블럭 952). 결과가 제1 제한 파라미터보다 작으면, 변경-반작용 동작이 취해지지 않으며, 플로우챠트는 다시 블럭(946)으로 가서 다음 명령을 처리한다. 결과가 제1제한 파라미터보다 큰 경우, 프로세스는 제1레벨 기밀문제를 나타내는 신호를 발생한다(블럭 954).
플로우챠트는 이어서 단위시간당 유효하지 않은 데이타의 수를 제2제한 파라미터와 비교하는 클럭 956 을 실행한다. 수가 제2제한 파라미터보다 작으면, 더이상의 동작은 취해지지 않으며, 플로우챠트(940)는 다시 블럭(946)으로 가서 다음 명령을 처리한다. 수가 제2제한 파라미터보다 큰 경우, 프로세스는 제2레벨 기밀문제를 나타내는 신호를 발생한다(블럭 958).
플로우챠트(940)는 이어서 단위시간당 유효하지 않은 데이타의 수를 제3제한 파라미터와 비교하는 블록 960 을 실행한다. 수가 제3제한 파라미터보다 작으면, 더이상의 동작은 취해지지 않으며, 플로우챠트(940)는 다시 블럭(946)으로 가서 다음 명령을 처리한다. 수가 제3제한 파라미터보다 큰 경우, 프로세스는 제3레벨 기밀문제를 나타내는 신호를 발생한다(블럭 962).
플로우챠트(940)는 이어서 단위시간당 유효하지 않은 데이타의 수를 제4제한 파라미터와 비교하는 블럭 964 을 실행한다. 수가 제4제한 파라미터보다 작으면, 더이상의 동작은 취해지지 않으며, 플로우챠트(940)는 다시 블럭(946)으로 가서 다음 명령을 처리한다. 수가 제4제한 파라미터보다 큰 경우, 프로세스는 제4레벨 기밀문제를 나타내는 신호를 발생한다(블럭 966).
물론, 슈퍼바이저 프로그램이 다양한 제한 기밀문제의 신호에 대해 어떠한 스텝이 응답하는가를 결정한다. SPU 는 임의 또는 모든 적절한 동작을 취할 수 있도록 프로그램될 수 있다.
c. 프로그램가능한 기밀
프로그램가능하게 분산된 개인기밀시스템은 3개의 개념적으로는 구별되지만 그래도 상관된 시스템의 통합에 근거한다: (i) SPU 가 공격의 존재를 경계하고 특성을 특징지어 주는 검출기; (ii) 다양한 검출기로부터의 데이타를 상관시켜 비밀 데이타와 디자인자재 모드에 대한 SPU 의 보전에 대한 위험에 대하여 심한 공격을 가중시키는 필터; (iii) 환경 하에서 가장 적절하도록 필터에 의해 계산된, 공격 또는 현재의 공격에 처리하기 위한 대응책을 갖는 응답. 필터에 의한 응답선택은 SPU 의 정책을 결정한다고 말할 수 있다. 본 발명은 검출기, 필터, 응답 모두의 광범위한 능력을 이용하여, SPU 에 근거한 장치에 기밀/정책의 적절한 레벨을 프로그래밍하기 위한 상당한 정도의 유연성을 준다.
PDPS 트리오의 효과는 여기에서 개재된 SPU 구조의 다른 디자인 특성에 의해충분히 향상된다. 예들 들면, 파워블럭(13), 파워분리(130), 실리콘 방화벽(20), 시스템클럭(20) 및 실시간 클럭(5)과 반전키이저장 이러한 몇몇 특징의 수행은 검출기/필터/응답 예에 엄격히 고정되지 않는 기밀 배리어를 발생하지만, 이러한 배리어의 존재는 아주 느리거나 또는 공격자의 진보를 방해하여 상당시간 공격을 검출하는 것을 허용하고, 그런 공격의 특성을 필터링하여 거기에 대하여 상당히 측정된 응답을 한다.
i.검출
매우 다양한 검출기가 이미 발표되었다. -- 일부는 하드웨어적으로 수행되고 나머지는 펌웨어적으로 수행된다. 일부는 금속층 검출기와 같은 실제의 물리적 침입에 대한 확실한 증거가 될 수 있다: 광검출기와 같은 나머지는 SPU 의 X-선과 같은 비침입수단 또는 칩의 실제적인 탈캡슐화와 같은 강한 침입수단에 의해 트리거될 수 있다. 다시, 이 단계에서의 목적은 동작의 과정을 결정하는 것도 아니고 모든 관련된 정보를 통합하는 것도 아니다; 단순히 검출을 단순히 보고 하고 이동시키는 것이다.
제18도를 참조하면, 검출기가 일반적으로 어떻게 핸들링되는 가에 대한 프로세스가 설명된다. 프로세스는 시작되어(451), 검출기신호가 하드웨어 또는 펌웨어에 의해 발생되는 가를 결정한다(452). 이 스텝이 어떻게 처리되는가의 정확한 특성은 중요하지 않다. 여기서, 마이크로 콘트롤러(3)에 의해 발생된 인터럽트에 의해 표시되지만, 레지스터의 주기적인 폴링 또는 그 분야의 기술자에 잘 알려진 다른 등가의 방법을 아주 용이하게 근거로 할 수 있다. 제18도의 병렬구조로 도시되어 있으므로, 폼웨어와 하드웨어 검출기사이의 구분이 부적절한 어떤 레벨에 있을 수 있다. 인터럽트가 하드웨어에 의해 발생되는 경우, 스태터스 레지스터(11)는 폴된다(453). 이 수행에서, 하드웨어 검출기가 진정으로 구동되는 가를 결정하기 위한 키는 스태터스 레지스터(11)의 하나 이상의 비트가 그것이 독출되는 최종시간으로부터 변경되어야 한다는 것이다(454). 만약 그렇다면, SPU 는 프로그램된 정책에 의해 요구되는 것과 같은 동작을 한다(455). 만약 그렇지 않다면, 에러가 가상검출에 의해 검출되거나 또는 밧데리 파워하에서 SPU 의 주기적인 발생에 의한 신호와 같은 동작특징이 유효하다. 각 경우에, 정책에 의해 요구된, 주어진 에러 또는 특징과 같은 동작을 한다(460). 이와는 달리, 스텝 452 에서, 펌웨어에서 신호가 발생되면, 프로세스는 것을 발생시키는 루틴을 결정하기 시작한다(461). 그런 루틴이 유효한 것으로 입증되면(462), 다시 정책에 의해 요구된 동작을 한다(455). 그렇지 않으면, 정책에 의해 요구된 에러 또는 가능한 특징과 일치된 동작을 다시 한다(463). 여기에 개재된 다른 실시예에서, 경계경보 능력이 입증되어 프로세스가 그런 경보에 의해 야기되면(456), 프로세스는 SLEEP 신호를 발생하고(459) 종료된다(458). 그렇지 않으면, 프로세스는 인터럽트로부터 또는 사용된 특별한 수행에 따라 방법이 요구될 때마다 복귀되어(457) 종료된다(458).
ii.필터링
프로그램가능한 필터링 프로세스는 PDPS 의 핵심에 있다. 그것없이 단지 다양한 공격에 대한 하드와이어되고 무분별한 응답을 갖는다. 제19도를 참조하면, 이 프로세스는 두 단계로 구성된다: (i) 관련된 공격을 확인하기 위하여 다양한 검출기에 의해 발생된 신호를 상관하는 것(제 19(a)도, 제19(b)도, 제19(c)도; (ii) 관련된 공격에 근거하여 적절한 응답을 선택하는 것(제19(d)도, 제19(e)도, 제19(f)도). 물론 이 프로세스의 두 단계에 관련된 동작 팩터가 있다. 이러한 팩터들은 정적이고 SPU 의 장치, 구조에 본래부터 관련되거나 또는 다이나믹하게 변화하고 예를 들면 다음에 관련될 수도 있다: (i) 검출된 신호의 이전의 히스토리 또는 주파수, 응답 또는 모든 사건들; (ii) SPU 의 현재 상태; (iii) 장치의 현재 단계 또는 모드; (iv) 주어진 공격을 나타내는 전위(potential) 손상; 또는 (v) 예를 들면 주어진 세트로 부터 나오고, 특별한 순서로 발생되며, 또는 고정된 시간 프레임내에서 발생되는 팩터 또는 검출기의 결합.
검출기들이 상관되는 조건은 다음과 같다. 제19(a)도에 가상경보조건이 도시되었다. 실공격 A0502 에 대응되지 않고 신호 Da501 가 검출된다. 그러한 가상경보를 식별하는 다양한 수단이 있다. 예를 들면, 신호 Da501 를 발생하는 검출기는 제1독출이 침해되었는가를 결정하기 위하여 1번 이상 폴될 수 있다. 이와는 달리, 다른 검출기의 상태로 부터 추론된다. 그러한 시나리오는 제19(c)도의 내용에서 논의될 것이다. 제19(b)도는 신호 Db503 가 분명하게 하나의 공격 Ab504 에 대응되는 대항수단을 설명한다. 그러나, 대부분의 공격은 제로 또는 그이상의 팩터 Fc1508, Fc2509 와 결합된 하나 또는 그 이상의 검출기 DC1505, DC2506, DC3507 가 각각 주어진 공격 Ac510 을 완전히 특징짓기 위하여 요구되는 제19(c)도로서 특징지어진다.
공격에 내한 응답의 선택은 다음의 카테고리로 된다. 물론, 동작이 주어진 공격 Ad511에 대해 수행되지 않는 제19(d)에서 비응답 R0512 가 있다. 이것은 능력, 신중한 디자인 선택 및 장치결정의 부족에 기인되는 것이다. 제19(b)도의 분명한 조건과 유사한 제19(e)도에는 공격 Ac513 에 대한 무조건의 응답 Re514 이 있다. 이것은 모든 외부방어는 침범되고 약간의 명백하고 신중한 대응책이 처리될 것이 요구되는 최종-디치 시나리오가 있다. 한편, 적용결정이 될 수도 있다. 최종적으로, 제19(f)도에, 제로 또는 이상의 팩터들 Ff1517, Ff2518, Ff3519 와 결합하여 하나 또는 그이상의 공격 Af1515, Af2516이 응답 Rf520 을 선택하기 위하여 있었거나 또는 존재하는 일반적인 시나리오가 있다.
검출기신호의 상관관계 뿐만아니라 응답선택을 주문에 맞춤으로써, 프로그램가능한 기밀시스템은 적용이 될 수 있을 뿐만 아니라 특정 환경이 될 수도 있다.
ii.응답
PDPS 의 최종시스템은 풍부하고 완전한 대응책을 상상할 수 있는 공격 시나리오를 허용하기 위하여 광범위하게 다양한 응답의 제공을 포함한다. 이러한 응답은 다섯 개의 주 그룹으로 분류된다: (i) 수동적(passive); (ii) 경보; (iii) 유인능럭; (iv) 억세스 제한; (v) 파괴적(destructive). 각 예가 예시적이지만 대개 철저한 리스트를 의미하는 표 1에 주어져있다.
수동적 응답은 SPU 가 외부신호 그리고 동작의 정상모드와는 다른 관측가능한 방법의 기능을 전송하지 않는 것이다. 물론 이것은 초기에 언급된 클래식 "비-응답" 뿐만 아니라, 형태, 타임 스탬프, 내용들을 갖는 온-보드 로깅을 포함한다.
경보 응답은 실제로 외부적으로 검출가능한 신호를 전송한다. SPU 는 요구하는 장치 예를 들면 사용자에게 SPU 는 공격을 알려주고, 그러한 공격이 불연속적이 아닐 경우 아주 철저하게 측정하는 것을 계속하여야 할 것이다. SPU 가 네트웍 또는 모뎀을 통하여 모니터링 컴퓨터에 연결된 상황에서, 예를 들면 정보측정내용에서, SPU 는 국부 사용자가 그것을 공격하려고 시도하는 것을 원격 컴퓨터에게 알려주는 신호이다. 하드웨어 레벨에서, 경보는 I/O 포트(1)의 특별한 핀을 하이로 세트시킴으로써 단순히 수행될 수 있다.
유인 응답은 SPU 능력의 정상모드로부터 이탈하는 것이다. 실제로 가짜의 유효한 SPU 능력이다. 예들은 SPU 명령이 수행되도록 하거나 또는 랜덤하게 선택되고 또는 소정의 세트로 부터 신호를 버스 인터페이스(9)상에 발생되도록 한다.
제한된 억세스 응답은 SPU 동작의 정상모드로부터 기능을 디스에이블될 수도있다. 예들은 시간주기동안 SPU 를 전체적으로 디스에이블시거나 또는 어떠한 방법으로 갱신될 때까지 특정 키이 또는 암호를 포함하는 동작을 디스에이블시키는 것을 포함한다.
최종적으로, SPU 의 기능을 영구히 디스에이블시키는 파괴적인 응답이 있다. 예들은 키이 또는 다른 비밀 데이타를 소거하거니 또는 내부 퓨즈를 용융시키는 것과 같은 영원한 물리적 디스에이블로 메모리를 파괴시키는 것을 포함한다.
d.공격 시나리오
본 발명의 전체구조가 이미 설계되었으므로, 다양한 공격 시나리오, 그들이 도전되는 방법, 그들이 얻거나 또는 억세스하고자 하는 정보 또는 효과, 그러한 공격을 방해하는 SPU 의 디자인 특징, 그러한 공격에 대한 반작용과 관계된 팩터 그리고 최종적으로 공격에 대한 적절한 응답을 상세하고 풍부하게 설명한다. 이용가능한 발표된 SPU 특징, 검출기 및 응답의 요약은 표 2 에 있다. 이러한 시나리오는 대개 철저하지만 단지 예시적이다. 달리 규정되지 않은 다른 모든 참조는 제1도의요소이다.
i.I/O 포트에 대한 전기적 공격
틀림없이, 가장 간단한 공격형태는 I/O 포트(1)에 대한 전기적인 공격일 것이다. 이런 형태의 공격은 아주 작은 특정의 하드웨어를 요구한다. 공격자는 단순히 정상장치에 사용된 동일한 시스템 구조를 사용하지만, 고안된 소프트웨어를 사용하는 대신 공격자는 소자를 침입하기 위하여 자신의 코드를 발생한다. 공격자는 한 스텝 더 갈 수 있으며, 모니터링 장치를 회로 예로서 SPU 핀 또는 PAL 출력의 전략포인트에 놓는다. 이것은 공격자가 정상상태 그리고 공격중에 있을 때 칩을 좀더 철저하게 특징화시키도록 한다.
대표적인 시도는 정상동작동안 시간주기동안 하드웨어 또는 소프트웨어를 모니터하도록 한다. 이로부터 공격자는 정상명령 시퀀스를 결정한다. 이러한 특징화후, 공격과는 그가 얻었던 정보에 근거한 그 자신의 명령 시퀀스를 만든다. 그는 소자가 다른 기능을 수행하도록 명령 또는 명령 연산자를 약간 변경하려고 노력할 것이다. 그는 역시 소자가 어떻게 반작용하는가를 알기 전에는 알 수 없는 명령을 내릴 것이다. 이 프로세스동안 모든 공격자는 다른 자극에 대한 응답을 녹화하고 있을 것이다. 패턴이 검출될 때, 소자에 내려진 데이타는 더이상 랜덤하지 않지만, 특별한 동작을 좀더 평가하도록 디자인된다. 이것은 특별한 동작이 완전히 특징지어질 때까지 지속된다. 공격자의 의도는 모든 시스템을 파괴시킬 수 있는 명령 또는 응답을 확인할 것이다. 예를 들면, 공직자는 리세트 동작명령을 기다려서 부적절한 때에 그러한 명령을 내릴 것이다.
실리콘 방화벽(20)은 시스템을 지배하는 공격자로부터의 비동기 신호를 금지한다. 소프트웨어 공격 모니터(제17도)는 전체 특징화 프로세스에 아주 민감하다. 소프트웨어 공직 모니터의 측정된 스테이지에 따라 가능한 적절한 응답은 랜덤 응답 또는 SPU 의 실제적인 디스에이블로 공격자가 길을 잃도록 유도할 것이다.
ii.클럭공격
SPU 의 많은 장치들이 실시간클럭(5)을 유익하게 사용할 수 있다. 그러나, 실시간클럭(5)은 다양한 방법으로 공격받을 수 있다. 외부 발진기(15)는 RTC 발진기(15)와 내부 실시간클럭(5)의 주파수를 변경시켜 주기 위하여 대체된다. SPU 는SPU 가 보전업무를 수행하도록 디자인되는데, 보전업무중 하나는 정확한 영역에서 동작하고 있는가(제14(a)도)를 알기 위하여 시스템 클럭(2)에 대하여 실시간클럭(5)을 체크하는 것이다. 그러나, 일실시예에서는 이러한 보전업무가 전체 시스템이 파워가 공급될 때만 수행되어진다; 시스템 파워 VDD 가 제거될 때, 밧데리에 의해 지원된 실시간클럭(5)이 동작상태로 남아있을 때, 직접적인 검출없이 공격자가 외부클럭(15)을 공격할 수 있는 기회이다. 실시간클럭(5)이 간단한 2진 리플카운터가 사용되기 때문에, 공격자는 롤오버될 때까지 카운터를 앞서게 된다. 이어서, 공격자는 계속하여 원하는 주어진 독출시간보다 클럭이 앞서도록 한다. 이것은 나쁜 사용자가 사용된 차의 주행기록계를 리세트시키는 것과 유사하다.
공격에 대한 내부 시스템클럭(2)과 내부 실리콘 방화벽(20)을 통해 시간신호를 버퍼링하는 실시간 출력(5)의 불접근은 확실히 공격자의 방법에 배리어로서 작용한다. 제14(a)도의 시스템클럭/실시간클럭의 크로스체크는 파워업시 변화를 검출한다. SPU 를 냉각시키거나 또는 카열함으로써 시스템클럭을 셋 오프시키기는 것을 시도하는 경우, 온도 검출기는 그러한 시도를 폭로할 뿐만 아니라 지금까지는 성공적인 동작허용한계를 벗어나 실제적으로 실패하는 크로스체크를 폭로한다. 게다가, 실시간 클럭(5)을 롤오버하도록 시도하는 공격자는 ROLLOVER 신호(34)를 오프시킨다. 가능한 응답은 실시간 클럭 대신 범위가 클럭이 신뢰성 있음을 입증할 때마다 시스템클럭(2)이 사용되도록 한다. 그러나, 그런 선택은 정보측정상황에서 매우 의존하는 장치이다. 좀더 있음직한 응답은 보든 측정 기능을 디스에이블시키게 된다.
iii.키이 공격
비밀정보는 롬(7)보다는 SPU 내의 램(8)과 같은 불휘발성 메모리에 저장된다. 이것은 간단히 SPU 칩을 탈캡슐화하고 개요를 "독출"함으로써 공격자가 이런 정보에 접근하는 것을 방지하기 위하여 행하여진다. 그러나, 키이 또는 다른 비밀정보가 칩내의 불휘발성 메모리에 저장되어 있는 경우, 칩을 디프로세스하고 불휘발성 메모리에 저장된 정보를 누설하는 불휘발성메모리에 남아있는 전하를 검출할 수 있다. 디프로세싱의 동작은 파워를 불휘발성 메모리로부터 제거시키고, 즉 반도체내에 전하가 방전되기 때문에, 메모리내의 데이터를 소실시킨다. 그러나, 불휘발성 메모리가 연장된 시간주기동안 동일한 데이타를 포함하는 경우, 파워의 제거에도 불구하고 검출에 적합한, 전하가 메모리셀의 유전체 부분에 형성된다. 역시, 전압을 증가시키고 실리콘의 동작온도를 변화시켜, 즉 SPU 가 좀더 메모리 효과에 영향을 받도록 하여 메모리 소자를 인위적으로 노화시키는것이 가능하다.
초기에 언급한 바와 같이, 반전 키이저장 특징(제9도, 제10도)은 남아있는 전하를 평균화하여 그러한 키이의 공격을 방해할 수 있다. 탈캡슐화 프로세스는 금속층의 존재하에 좀더 어려움을 제공하고, 금속층 검출기(18)는 그층이 절단되는 순간 셋 오프된다. 램(8)으로부터 내부버스(10)를 통해 DES 블럭(6)으로 키이의 일부분만을 전송하는 버스 모니터 금지의 프로도콜(제15도)은 키이를 추적할 뿐만 아니라 그런 시도를 누설하는 것을 방해한다. 최종적으로 파괴시키기 위하여 사용가능한 응답은 기밀 관심이 배우 높고 또는, 갑작스런 급습에서 키이 또는 다른 사용으로 부터 비밀 데이타를 디스에이블시킨다. 활성 제로화는 소거 프로세스가 종료되었음을 확실하기 위하여 사용된다.
iv.물리적인 공격
공격자는 그것을 분해 모방하기 위하여 칩을 탈 캡슐화하는 것을 시도한다. 칩 레이아웃의 단순한 관찰은 그 분야의 경험있는 자가 마이크로 콘트롤러(1), I/O 포트(1), 메모리 등이 어디에 위치해 있는가를 결정하도록 한다. 칩의 족보를 인식하는 것 즉, 족보로부터 제조업자, 일련번호 및 그로부터 이전 칩을 아는 것은 역시 기능의 분해능에 도움을 준다. 칩 디자인 매크로를 통해 정규 패턴에서 알려지고 정상적으로 배치되었다면, 칩의 커다란 영역을 필요로 하는 수단은 분해 모방될 수 없다. 칩 레이아웃의 상세한 해상력은 칩의 분해 모방을 발생시키고, 오늘날의 기술로 이 프로세스는 $100,000 만큼의 가격이 든다.
반도체 산업 평가기구는 지금 프로세싱이 종료된 후 집적회로에 편집시키는 능력을 제공한다. 예를 들면, 포커스된 이온 빔 밀 기술(Focused Ion Beam Mill technology)은 장비가 집적회로의 표면에 물질을 선택적으로 제거하거나 증착할 수 있다는 점에서 진보되었다. 이러한 소자는 금속층과 산화막을 제거할 수 있으며, 집적회로의 표면에 금속층을 역시 배치할 수 있다. 이러한 소자들은 로직 게이트를 연결하는 트레이시를 절단하고 다른 방법으로 로직 게이트를 다시 연결함으로써 집적회로를 표면상으로 디버그하는 데 사용된다. 내부 탐침(probe)을 배치할 수 있다; 그러나, 존재하는 I/O 포트를 변경하는 것이 덜 어렵고 덜 비싸다.
이런 종류의 공격은 먼저 SPU 상에 물리적 코팅 그 다음 금속층에 의해 방해된다; 칩 레이아웃을 확실히하는 프로세스를 어렵게 하고 SPU 내의 노드에 테스트 탐침의 연결을 정확히 하는 동작. 그런 공격은 금속층 검출기(18)를 트리거하고 시스템 파워 VDD(22)하에서 회로를 동작시키는 것은 버스 모니터링 금지(제15도)를 트리거할 것이다. 상기에서 주어진 동일한 응답은 아주 적절할 것이다. 연마를 통한 탈 캡슐화의 실제적인 동작은 충분히 가열하여 온도 검출기(17)를 트리거할 수 있을 뿐만 아니라 진동 검출기를 세트 오프시키며, 전체적으로 어두운 곳에서 행하여지지 않는 한, 다시 다이의 노출은 광검출기(16)를 셋 오프시키게 된다. 키이와 비밀 데이타를 디스에이블시키거나 또는 파괴시키는 것은 그러한 시나리오에 대한 가장 적절한 응압일 것이다.
v.조합 공격
디프로세싱은 먼저 탈캡슐화를 필요로 하고 이온 탐색 장치(ion probing station)에, 파워 하에 칩을 위치시키는, 정교한 프로세스이다. 그런 기계는 동작 특성을 결정하는 칩의 다른 부분에서 전위를 실제적으로 검출할 수 있다. 탐침은 금속층을 통해 관찰할 수 없다: 이것은 오로지 그러한 기계의 속도를 떨어뜨리는 역할을 한다. 기계는 역시 금속층을 제거하여 이전의 기밀영역을 노출시키는 역할을 한다. 공격자는 비밀정보를 억세스하기 위한 시도를 하기 전, 금속층에서의 끊어진 트레이스를 다시 연결하려고 시도할 것이다.
공격은 실제 모든 SPU 보호특징에 의해 속도가 떨어져 이전에 언급한 모든 검출기를 실제적으로 트리거하고 확실히 논의된 응답에 의해 좌절된다. 결코 절대적인 기밀을 보장할 수 없으나, 여기에서처럼 방어의 전 영역에 지배되는 SPU 는 고려된 여러 타입의 장치에 대하여 공격자가 많은 시간과 돈을 소요하여 무의미한 시도를 하도록 한다.
vi.사용자 사기
사용자 사기의 공격은 SPU 를 분해 모방하는 것은 아니다: 그것은 주로 호환성 있거나 또는 경쟁력있는 SPU 제품을 재생산하고자 하는 부분의 영역이다. 부정한 사용자는 대신 사기 시나리오일 것 같은 정보측정소자를 통하여 사용된 정보의 의도된 사용 즉, 지불되지 않거나 또는 전체적으로 지불되지 않은 사용외에 존재하는 SPU 를 일체화한 장치를 사용하고자 원하였다. 그러한, 사용자는 클럭을 롤오버하는 간단한 동작을 시도하거나 또는 다양한 동작 상태로 소자를 리세트시킴으로써 사용자는 사용보고 또는 측정과 인터페이스를 희망한다. 게다가, 역시 정보측정단계에 있어서, 다량 구매후 램(8)을 구매전의 동일한 램(8)의 내용으로 오버 기입을 시도함으로써, 사용자는 그러한 거래의 궤적을 소거하고자 한다.
메카니즘, 방화벽(20)과 소프트웨어 공격 모니터(제17)의 파워를 업 그리고 다운시키는 파워블럭(13)은 공격자에게 전에 설명한 바와 같이 SPU 를 부적당한 리세트에 의해 예견할 수 없거나 믿을 수 없는 상태로 만들 수 있는 기회를 아주 조금 제공한다. ROLLOVER신호(34)의 보호와 클럭 크로스점검은 이미 잘 설명되어져 있다.
정보측정단계에 있어서, 사용은 SPU 를 고장내는 이전-세트된 선용제한에 근거하고, 신용제한은 이미 사용되어졌다고 가정되며, 측정기능은 디스에이블된다. 서비스 대리인이 그것이 변형되었다는 것을 입증하고 이후 서비스 대리인이 SPU 소자를 재확인하는 것마다 장치를 물리적으로 복귀시킴으로써 사용자는 이러한 가정을 극복할 수 있다.
e.샘플 SPU 장치
SPU 의 구조, 검출기의 특성, PDPS 의 검출/필터링/응답예, 예산된 공격 특성은 논의되어졌으므로, 본 발명의 원리를 설명하는 샘플 장치를 통해 진행하는 것이 유용하다. 이 목적을 위하여 가장 적당한 장치가 요구된다: 디지탈 금고를 제공하기 위한 단독 기능을 갖는 SPU가 장착된 PCMCIA 와 "엑세스 카드" 의 사용. 전체적으로 상당량의 돈이 프로그램되고, 프로그램된 신용이 떨어질 때까지 다양한 거래의 PIN 번호의 사용을 통해 지불되는 단순한 지불형태의 카드를 동작시킨다.
이러한 억세스카드의 검출/필터링/응답 프로세스는 제20도에 도시되었다. 대개 함축적이고, 반드시 사실적으로 실제적은 아니지만 단순히 예시적인 프로그램가능한 기밀에 따라 위치한 장치에 규정된 요구일 것을 의미하는 것은 아니다. 여기의 참조문헌은 다른 구성 또는 제1도의 특별한 요소로 만들어질 수 있다. 프로세스는 시작하여(1001) 검출기가 셋 오프되었는가를 결정한다(1002). 그렇지 않으면, 프로세스는 1002 로 다시 루프되어 그사이에 장치에 필요한 다른 임무를 적절하게 수행한다.
만약 광검출기가 셋오프되었을 경우(1004), 다음 질문은 시간주기동안 그러한 검출이 유지되었는가이다. 예를 들면, 억세스 카드는 공항에서 간단하게 X-선 기계를 통과한다. 그러한 노출은 매우 짧은 기간이다. 그러한 노출이 유지되지 않으면, 사건은 로그되어(1042), 프로세스는 콘넥터(1043, 1003) (이후 콘넥터에 대한 모든 참조는 명확성을 위하여 불필요하다)를 통해 스텝 1002 으로 간다. 노출이 유지되면, 다음 질문은 이검출이 오프되는 다른 검출기와 접속되었는가이다. 이것은 초기에 논의된 많은 공격 시나리오의 확인이다. 유지된 광검출이 분리되었다면, 신중한 스텝이 다음 대리인에 의해 재입증될 때까지 억세스 카드를 디스에이블시켜야 하는 것이 스스로 충분히 의심스러우며, 이후 다음 동작이 취해질 때까지 프로세스는 스텝(1002)로 다시 루프된다. 그러나, 오프되는 다른 검출기와의 조합되었을 경우, 억세스 카드를 영구히 디스에이블시키는 것이 최고이며(1036), 프로세스는 거기에서 종료한다(1037).
만약 온도 검출기가 셋오프되었다면(1005), 오프되는 다른 검출기와 접속되었는가를 질문하는 것만이 필요하다. 이것은 예를 들면 사용자가 현금 카드를 오후내내 자동차의 계기반에 놓아두었을 경우, 억세스 카드가 무해의 이유로 높은 열에 의해 영향을 받는다는 점에서 광검출기(17)의 시나리오와 다르다. 즉, 장치는 단지 유지된 고온에 대하여 좀더 관대하게 된다. 그런 경우에, 프로세스는 사건을 단순히 로그하여(1042), 다시 스텝 1002 로 간다. 오프되는 다른 검출기와의 조합되었을 경우, 스텝1036 에서 억세스 카드를 영구히 디스에이블시키는 것이 참으로 현명하다.
만약 금속층 검출기가 셋오프되었다면(1005) 그러한 사건에 대한 가혹한 정책을 제외한 어느 것을 입증하는 것은 어려워, 억세스 카드를 영구히 디스에이블시킨다(1036). 예외는 금속층 검출기(18)는 민감하여 억세스 카드에 의해 만들어지는 심한 공격을 입증하기 위하여 다른 검출기와 상관되어되는 LATN 셀 타입(제13도)이다.
ROLLOVER 신호(34) 또는 클럭보전점검(제14(a)도)중 하나가 트리거된다면(각각 스텝 1008, 1009), 이것은 단순히 시간에 민감한 장치가 아니기 때문에, 단순히 그것들을 무시하여 (1028), 스텝 1002 로 다시 루프되는 것이 안전하다.
파워보전점검(제14(b)도)이 트리거될 경우(1010), 두개의 상황이 가능하다: (i) 에러상태 또는 (ii) 로우파워상태. 에러상태에서, RAM 의 내용은 더이상 신뢰할 수 없어, 억세스 카드를 영구히 디스에이블시킨다(1036). 로우-파워 상태에서, 램(8)의 내용은 여전히 신뢰할만 하지만 밧데리 파워가 즉시 고장나 신용이 즉시 다른 억세스 카드로 전송되지 않을 경우 회복할 수 없이 손실되는 효과에 대한 메세지를 사용자에게 전송한다(1026). 후자의 경우, 프로세스는 다시 스텝(1002)으로 다시 루프된다.
버스 모니터(제15도) 또는 트립 와이어입력(제16)중 하나가 트리거될 때, 억세스 카드를 영구히 디스에이블시키는 것(1036)보다 다른 것을 하는 것이 다소 정당한 것으로 보여진다.
소프트웨어 공격 모니터(제17도)가 트리거될 때(1014), 논리적인 제1스텝은 억세스 카드가 여전히 변경단계에 있는가를 결정하는 것이다(1016). 이것은 예를 들면 억세스 카드가 카드판독기로 삽입되어 적당한 링크가 카드와 카드 판독기사이에 설치될 때까지 다양한 프로토콜이 시도되었다. 다시 말하면, 이 "변경" 프로세스는 신중한 기밀 고려사항으로부터 배제된다. 그후, 억세스 카드를 포커스시켜 주기 위한 특별히 중요한 명령은 사용자에 의해 제기된 적당한 PIN 번호이다. 즉, 적당한 명령의 제1시간이 한 거래의 주기내에 주어졌을 경우(1018), 프로세스는 단순히 사건(1042)으로 로그된다. 적당한 명령의 제2시간이 한 거래의 주기내에 수신되면(1020), 억세스카드는 다시 그것을 수행하지 않도록 그것들을 경고하는 메세지를 사용자에게 제기되고(1024), 프로세스는 다시 스텝1002 로 루프된다. 적당한 명령의 제3시간이 한 거래의 주기내에 수신될 때(1021), 억세스 카드는 적당한 대리인에 의하여 재확인이 있을 때까지 디스에이블된다(1039); 그렇지 않으면, 그것은 영구히 디스에이블된다(1036).
그 어느 검출기도 트리거되지 않았을 경우, 프로세스는 다시 스텝 1002 으로 루프되어 다른 검출신호를 대기한다.
Claims (9)
- 민감한 정보를 처리하고 잠재적인 공격에 대하여 정보를 기밀로 유지하는 기밀칩에 있어서,(a) 칩 상에서 수행되는 기능을 동기화시키는 내부 시스템 클럭; 및(b) 칩에 의해 수신된 모든 비동기 외부신호를 내부 시스템 클럭에 동기시키는 외부신호 동기장치를 포함하여서,칩이 비동기 외부신호의 수신에 의해 불명한 상태로 되지 않도록 하는 것을 특징으로 하는 기밀 칩.
- 제1항에 있어서, 외부신호 동기장치는 내부 시스템 클럭에 의해 결정된 선택된 시간에서만 신호를 허용하고 사용하여 비동기 외부신호를 동기화시키는 것을 특징으로 하는 기밀 칩.
- 민감한 정보를 처리하고 잠재적인 공격에 대하여 정보를 기밀로 유지하는 기밀 칩에 있어서,(a) 칩의 구성요소들 간에 정보를 전송하기 위한 내부버스;(b) 칩의 내부 구성요소와 외부 장치 사이에 정보를 전송하기 위한 입/출력 포트; 및(c) 내부버스를 따라 정보의 전송 전후에 입/출력포트의 내용을 주기적으로비교하기 위한 버스 모니터를 포함하여서,칩이, 내부버스를 따라 전송된 민감한 정보의 입/출력포트로의 인가받지 않은 경로변경을 검출할 수 있는 것을 특징으로 하는 기밀 칩.
- 제3항에 있어서, 버스모니터는(a) 내부버스를 따라 전송될 것이 요구되는 민감한 정보의 전부 이하의 제1전송; 및(b) 상기 제1전송에 이어서, 입/출력포트의 내용의 변화가 검출되지 않을 경우, 잔존하는 민감한 정보의 제2전송의 전과 후에 입/출력포트의 내용을 비교하여서,칩이, 내부버스를 따라 전송된 민감한 정보의 입/출력포트로의 인가받지 않은 경로변경을 효과적으로 방지할 수 있는 것을 특징으로 하는 기밀 칩.
- 민감한 정보를 처리하고 잠재적인 공격에 대하여 정보를 기밀로 유지하는 기밀 칩에 있어서,(a) 실제적으로 지속적인 외부 클럭 주파수를 갖는 외부 클럭 발진기에 의해 제어되는 실시간 클럭;(b) 소정의 정확도 범위내의 사이클 주파수를 가지며, 칩 상에서 수행되는 기능을 동기시키는 내부 시스템 클럭; 및(c) (i) 칩이 소정수의 내부 클럭 사이클과 내부 시스템 클럭의 정확도 범위에 근거한 예상된 외부 클럭 사이클의 소정 범위를 요구하는 기준동작을 수행하도록 하고,(ii) 경과된 실제 외부 클럭 사이클의 수가 예상된 외부 클럭 사이클의 범위 내에 있는지 여부를 기준 동작 수행 동안 실제 외부 클럭 사이클마다 경과된 내부 클럭 사이클의 수로부터 결정하는 클럭 보전 점검을 포함하여서,칩이 외부 클럭 주파수의 인가 받지 않은 변경을 검출할 수 있는 것을 특징으로 하는 기밀 칩.
- 민감한 정보를 처리하고 잠재적인 공격에 대하여 정보를 기밀로 유지하는 기밀 칩에 있어서,(a) 실질적으로 지속적인 외부 클럭 주파수를 갖는 외부 클럭 발진기에 의해 제어되고 경과된 외부 클럭 사이클의 수를 계수하기 위한 카운터를 구비한 실시간 클럭;(b) 실시간 클럭 카운터가 롤오버되었는가를 검출하는 롤오버 검출기; 및(c) 실시간클럭 카운터의 롤오버 검출시 세트되는 롤오버 비트를 포함하여서,카운터를 롤오버 시키기에 충분한 외부 클럭 사이클의 수를 요구할 것으로 예상되지 않는 동작 중에 롤오버 비트가 세트될 경우, 칩이 외부 클럭 주파수의 인가받지 않은 변경을 검출하는 것을 특징으로 하는 기밀 칩.
- 민감한 정보를 처리하고 잠재적인 공격에 대하여 정보를 기밀로 유지하는 기밀 칩에 있어서,(a) 민감한 정보를 저장하기 위한 재기입가능한 메모리;(b) 시스템 파워 및 밧데리 파워의 손실이 임박함을 검출하는 파워손실 검출기; 및(c) 상기 재기입가능한 메모리로의 민감한 정보의 로딩에 의해 세트퇴고 파워 손실의 검출에 따라 리세트되며, 상기 재기입가능한 메모리로의 민감한 정보의 로딩에 이어 시스템 파워 및 밧데리 파워가 충분한가를 지시하기 위한 VRT 비트를 포함하여서,칩이 시스템 파워 및 밧데리 파워의 실제적인 손실 이전에 민감한 정보의 저장에 대한 요구를 검출할 수 있는 것을 특징으로 하는 기밀 칩.
- 제1항에 있어서, 재기입가능한 메모리의 변경을 검출하기 위한 재기입가능한 메모리 변경 검출기를 더 포함하여서, 칩이 민감한 정보의 재기입가능한 메모리로의 재로드에 대한 요구를 검출할 수 있는 것을 특징으로 하는 기밀 칩.
- 민감한 정보를 처리하고 잠재적인 공격에 대하여 정보를 기밀로 유지하는 기밀 칩에 있어서,(a) 실제적으로 일정 값을 갖는 민감한 정보를 저장하기 위한 재기입가능한 메모리;(b) 재기입가능한 메모리의 각 셀의 내용을 주기적으로 반전시키는 메모리 인버터; 및(c) 재기입가능한 메모리의 각 셀의 내용이 실제상태 또는 반전된 상태인가를 나타내는 메모리 상태 비트를 포함하여서,재기입가능한 메모리의 내용이 민감한 정보의 일정 값의 잔존표시를 효과적으로 포함하지 않는 것을 특징으로 하는 기밀 칩.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/267,788 | 1994-06-28 | ||
US08/267788 | 1994-06-28 | ||
US08/267,788 US5533123A (en) | 1994-06-28 | 1994-06-28 | Programmable distributed personal security |
PCT/US1995/005582 WO1996000953A2 (en) | 1994-06-28 | 1995-05-05 | Secure data processor with cryptography and tamper detection |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960705284A KR960705284A (ko) | 1996-10-09 |
KR100341665B1 true KR100341665B1 (ko) | 2002-11-29 |
Family
ID=23020117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960701013A KR100341665B1 (ko) | 1994-06-28 | 1995-05-05 | 암호및변경검출기능을갖는기밀데이타프로세서 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5533123A (ko) |
EP (2) | EP0965902A3 (ko) |
KR (1) | KR100341665B1 (ko) |
DE (1) | DE69519662T2 (ko) |
WO (1) | WO1996000953A2 (ko) |
Families Citing this family (236)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5453601A (en) | 1991-11-15 | 1995-09-26 | Citibank, N.A. | Electronic-monetary system |
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US5805706A (en) | 1996-04-17 | 1998-09-08 | Intel Corporation | Apparatus and method for re-encrypting data without unsecured exposure of its non-encrypted format |
US5943297A (en) * | 1994-08-19 | 1999-08-24 | Hewlett-Packard Co. | Calendar clock circuit for computer workstations |
US7613659B1 (en) | 1994-11-28 | 2009-11-03 | Yt Acquisition Corporation | System and method for processing tokenless biometric electronic transmissions using an electronic rule module clearinghouse |
US20040128249A1 (en) | 1994-11-28 | 2004-07-01 | Indivos Corporation, A Delaware Corporation | System and method for tokenless biometric electronic scrip |
US7882032B1 (en) | 1994-11-28 | 2011-02-01 | Open Invention Network, Llc | System and method for tokenless biometric authorization of electronic communications |
US7248719B2 (en) * | 1994-11-28 | 2007-07-24 | Indivos Corporation | Tokenless electronic transaction system |
US6154879A (en) * | 1994-11-28 | 2000-11-28 | Smarttouch, Inc. | Tokenless biometric ATM access system |
US6950810B2 (en) * | 1994-11-28 | 2005-09-27 | Indivos Corporation | Tokenless biometric electronic financial transactions via a third party identicator |
US6397198B1 (en) * | 1994-11-28 | 2002-05-28 | Indivos Corporation | Tokenless biometric electronic transactions using an audio signature to identify the transaction processor |
US6658568B1 (en) | 1995-02-13 | 2003-12-02 | Intertrust Technologies Corporation | Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management |
ATE419586T1 (de) | 1995-02-13 | 2009-01-15 | Intertrust Tech Corp | Systeme und verfahren zur gesicherten transaktionsverwaltung und elektronischem rechtsschutz |
US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US7133846B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US5943422A (en) | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6157721A (en) | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US5796841A (en) * | 1995-08-21 | 1998-08-18 | Pitney Bowes Inc. | Secure user certification for electronic commerce employing value metering system |
US5915020A (en) * | 1995-11-21 | 1999-06-22 | Hughes Electronics Corporation | Portable satellite earth station |
US5720034A (en) * | 1995-12-07 | 1998-02-17 | Case; Jeffrey D. | Method for secure key production |
US5774870A (en) | 1995-12-14 | 1998-06-30 | Netcentives, Inc. | Fully integrated, on-line interactive frequency and award redemption program |
US7536331B1 (en) * | 1996-01-02 | 2009-05-19 | Robert W. Fletcher | Method for determining the risk associated with licensing or enforcing intellectual property |
IL117085A (en) * | 1996-02-08 | 2005-07-25 | Milsys Ltd | Secure computer system |
US20010011253A1 (en) | 1998-08-04 | 2001-08-02 | Christopher D. Coley | Automated system for management of licensed software |
US5751595A (en) * | 1996-03-14 | 1998-05-12 | International Business Machines Corporation | Method for building and verifying authenticity of a rule system |
US5883956A (en) * | 1996-03-28 | 1999-03-16 | National Semiconductor Corporation | Dynamic configuration of a secure processing unit for operations in various environments |
US6078848A (en) * | 1996-07-27 | 2000-06-20 | Lexitech, Inc. | Browser kiosk system |
US5761071A (en) * | 1996-07-27 | 1998-06-02 | Lexitech, Inc. | Browser kiosk system |
US6272538B1 (en) * | 1996-07-30 | 2001-08-07 | Micron Technology, Inc. | Method and system for establishing a security perimeter in computer networks |
US6993582B2 (en) * | 1996-07-30 | 2006-01-31 | Micron Technology Inc. | Mixed enclave operation in a computer network |
FR2755267B1 (fr) * | 1996-10-31 | 1998-12-24 | Solaic Sa | Procede de securisation d'un procede d'authentification utilisant un algorithme a cle secrete |
US6028939A (en) * | 1997-01-03 | 2000-02-22 | Redcreek Communications, Inc. | Data security system and method |
DE69822536T2 (de) * | 1997-01-30 | 2005-01-27 | Motorola, Inc., Schaumburg | Schaltung und Verfahren zum Verriegeln einer Bitleitung in einem nichtlflüchtigem Speicher |
US6260149B1 (en) * | 1997-02-12 | 2001-07-10 | Intel Corporation | Method and apparatus for logic and power isolation during power management |
US6216233B1 (en) | 1997-02-12 | 2001-04-10 | Intel Corporation | Maintaining a memory while in a power management mode |
US5861662A (en) * | 1997-02-24 | 1999-01-19 | General Instrument Corporation | Anti-tamper bond wire shield for an integrated circuit |
US5920861A (en) | 1997-02-25 | 1999-07-06 | Intertrust Technologies Corp. | Techniques for defining using and manipulating rights management data structures |
US6330608B1 (en) | 1997-03-31 | 2001-12-11 | Stiles Inventions L.L.C. | Method and system of a computer system for establishing communications between a service provider and a central service factory and registry in a computer system |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US6101255A (en) * | 1997-04-30 | 2000-08-08 | Motorola, Inc. | Programmable cryptographic processing system and method |
US6385723B1 (en) * | 1997-05-15 | 2002-05-07 | Mondex International Limited | Key transformation unit for an IC card |
US7039802B1 (en) * | 1997-06-06 | 2006-05-02 | Thomson Licensing | Conditional access system for set-top boxes |
US6453334B1 (en) | 1997-06-16 | 2002-09-17 | Streamtheory, Inc. | Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching |
EP0893751A1 (en) * | 1997-07-18 | 1999-01-27 | Irdeto B.V. | Integrated circuit and method for secure data processing by means of this integrated circuit |
US6212635B1 (en) | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US6112181A (en) | 1997-11-06 | 2000-08-29 | Intertrust Technologies Corporation | Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
JPH11191149A (ja) * | 1997-12-26 | 1999-07-13 | Oki Electric Ind Co Ltd | Icカード用lsiおよびその使用方法 |
US7587044B2 (en) * | 1998-01-02 | 2009-09-08 | Cryptography Research, Inc. | Differential power analysis method and apparatus |
EP1056015A4 (en) * | 1998-01-21 | 2005-01-05 | Tokyo Electron Ltd | MEMORY DEVICE, DEVICE AND DECOMPOSITION DEVICE AND ACCESS PROCESS FOR NON-VOLATILE MEMORY |
IL123028A (en) * | 1998-01-22 | 2007-09-20 | Nds Ltd | Protection of data on media recording disks |
US6292898B1 (en) | 1998-02-04 | 2001-09-18 | Spyrus, Inc. | Active erasure of electronically stored data upon tamper detection |
US6980670B1 (en) * | 1998-02-09 | 2005-12-27 | Indivos Corporation | Biometric tokenless electronic rewards system and method |
GB2381911B (en) * | 1998-05-06 | 2003-06-25 | Prc Inc | Dynamic system defense for information warfare |
US6408391B1 (en) * | 1998-05-06 | 2002-06-18 | Prc Inc. | Dynamic system defense for information warfare |
US6282658B2 (en) | 1998-05-21 | 2001-08-28 | Equifax, Inc. | System and method for authentication of network users with preprocessing |
US6263447B1 (en) | 1998-05-21 | 2001-07-17 | Equifax Inc. | System and method for authentication of network users |
US6321339B1 (en) | 1998-05-21 | 2001-11-20 | Equifax Inc. | System and method for authentication of network users and issuing a digital certificate |
CN100530025C (zh) * | 1998-05-29 | 2009-08-19 | 西门子公司 | 处理数据的方法和装置 |
US20030118190A1 (en) * | 1998-05-29 | 2003-06-26 | Siemens Aktiengesellschaft | Method and apparatus for processing data where a part of the current supplied is supplied to an auxiliary circuit |
EP1018733B1 (en) * | 1998-07-22 | 2003-09-10 | Matsushita Electric Industrial Co., Ltd. | Digital data recording device and method for protecting copyright and easily reproducing encrypted digital data and computer readable recording medium recording program |
US6374358B1 (en) * | 1998-08-05 | 2002-04-16 | Sun Microsystems, Inc. | Adaptive countermeasure selection method and apparatus |
EP0984403A1 (en) * | 1998-09-01 | 2000-03-08 | Mindport B.V. | Security system |
US6385727B1 (en) * | 1998-09-25 | 2002-05-07 | Hughes Electronics Corporation | Apparatus for providing a secure processing environment |
JP2002529928A (ja) * | 1998-11-05 | 2002-09-10 | インフィネオン テクノロジース アクチエンゲゼルシャフト | Ic集積回路用保護回路 |
US6594760B1 (en) * | 1998-12-21 | 2003-07-15 | Pitney Bowes Inc. | System and method for suppressing conducted emissions by a cryptographic device |
US7209889B1 (en) | 1998-12-24 | 2007-04-24 | Henry Whitfield | Secure system for the issuance, acquisition, and redemption of certificates in a transaction network |
US6553496B1 (en) * | 1999-02-01 | 2003-04-22 | Koninklijke Philips Electronics N.V. | Integration of security modules on an integrated circuit |
US6145035A (en) * | 1999-02-25 | 2000-11-07 | Dallas Semiconductor Corporation | Card cradle system and method |
ATE237167T1 (de) * | 1999-05-21 | 2003-04-15 | Infineon Technologies Ag | Verfahren zur verhinderung widerrechtlicher benutzung von chipkarten |
ATE378646T1 (de) * | 1999-06-01 | 2007-11-15 | Infineon Technologies Ag | Schutzschaltung |
US6598165B1 (en) * | 1999-06-18 | 2003-07-22 | Phoenix Technologies Ltd. | Secure memory |
US6981155B1 (en) * | 1999-07-14 | 2005-12-27 | Symantec Corporation | System and method for computer security |
AU6103900A (en) * | 1999-07-14 | 2001-01-30 | Recourse Technologies, Inc. | System and method for preventing detection of a selected process running on a computer |
US7117532B1 (en) * | 1999-07-14 | 2006-10-03 | Symantec Corporation | System and method for generating fictitious content for a computer |
US7203962B1 (en) * | 1999-08-30 | 2007-04-10 | Symantec Corporation | System and method for using timestamps to detect attacks |
WO2001020559A1 (en) * | 1999-09-14 | 2001-03-22 | Neopost Inc. | Method and apparatus for user-sealing of secured postage printing equipment |
DE19947574A1 (de) * | 1999-10-01 | 2001-04-12 | Giesecke & Devrient Gmbh | Verfahren zur Sicherung eines Datenspeichers |
GB2355323A (en) * | 1999-10-05 | 2001-04-18 | Authoriszor Ltd | Information security profile and policy system |
US6970850B1 (en) * | 1999-10-27 | 2005-11-29 | Automated Business Companies | Proximity service provider system |
US6091658A (en) * | 1999-11-01 | 2000-07-18 | Ford Global Technologies, Inc. | Nonvolatile memory implementation for electronic devices |
DE19955601C2 (de) | 1999-11-18 | 2001-11-29 | Infineon Technologies Ag | Verfahren zur Durchführung von Auto-Refresh-Sequenzen an einem DRAM |
US6246254B1 (en) | 1999-12-06 | 2001-06-12 | International Business Machines Corporation | Method and circuit for providing copy protection in an application-specific integrated circuit |
EP1107191B1 (en) * | 1999-12-09 | 2007-06-27 | Pitney Bowes Inc. | System and method for suppressing conducted emissions by a cryptographic device comprising an integrated circuit |
US6766455B1 (en) | 1999-12-09 | 2004-07-20 | Pitney Bowes Inc. | System and method for preventing differential power analysis attacks (DPA) on a cryptographic device |
DE50006022D1 (de) * | 2000-01-19 | 2004-05-13 | Infineon Technologies Ag | Integrierte sicherheitsschaltung |
US9165323B1 (en) | 2000-05-31 | 2015-10-20 | Open Innovation Network, LLC | Biometric transaction system and method |
AU2001266628A1 (en) | 2000-05-31 | 2001-12-11 | Indivos Corporation | Biometric financial transaction system and method |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
AU7182701A (en) * | 2000-07-06 | 2002-01-21 | David Paul Felsher | Information record infrastructure, system and method |
US6772361B1 (en) * | 2000-07-10 | 2004-08-03 | Advanced Micro Devices, Inc. | Real time clock (RTC) having several highly desirable timekeeping dependability and security attributes, and methods for accessing a register thereof |
EP1410137A2 (en) * | 2000-08-09 | 2004-04-21 | Datawipe Management Services Limited | Personal data device and protection system and method for storing and protecting personal data |
US20020049682A1 (en) * | 2000-09-01 | 2002-04-25 | Nobuko Yamamoto | Authentication certificate, authentication certificate issuance system, and authentication system |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US6618685B1 (en) * | 2000-10-17 | 2003-09-09 | Sun Microsystems, Inc. | Non-invasive testing of smart cards |
US7362868B2 (en) * | 2000-10-20 | 2008-04-22 | Eruces, Inc. | Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data |
US20030021417A1 (en) | 2000-10-20 | 2003-01-30 | Ognjen Vasic | Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data |
US8831995B2 (en) | 2000-11-06 | 2014-09-09 | Numecent Holdings, Inc. | Optimized server for streamed applications |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US7308713B1 (en) * | 2000-11-22 | 2007-12-11 | Intel Corporation | Link-lock device and method of monitoring and controlling a link for failures and intrusions |
US7316934B2 (en) * | 2000-12-18 | 2008-01-08 | Zavitan Semiconductors, Inc. | Personalized hardware |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US7242921B2 (en) | 2000-12-29 | 2007-07-10 | Intel Corporation | Anonymous electronic transactions |
DE10105987A1 (de) * | 2001-02-09 | 2002-08-29 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung |
US20020114360A1 (en) * | 2001-02-20 | 2002-08-22 | Perlman Stephen G. | System and method for processing multiple broadcast multimedia streams |
US7194618B1 (en) | 2001-03-05 | 2007-03-20 | Suominen Edwin A | Encryption and authentication systems and methods |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US7093277B2 (en) * | 2001-05-30 | 2006-08-15 | Digeo, Inc. | System and method for improved multi-stream multimedia transmission and processing |
US7386129B2 (en) * | 2001-05-30 | 2008-06-10 | Digeo, Inc. | System and method for multimedia content simulcast |
DE10131300B4 (de) * | 2001-07-02 | 2012-12-06 | Robert Bosch Gmbh | Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten und Mikrorechner-System |
JP2003051819A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | マイクロプロセッサ |
US7463737B2 (en) | 2001-08-15 | 2008-12-09 | Digeo, Inc. | System and method for conditional access key encryption |
US7024555B2 (en) | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US20030097335A1 (en) * | 2001-11-21 | 2003-05-22 | International Business Machines Corporation | Secure method and system for determining charges and assuring privacy |
US7644279B2 (en) * | 2001-12-05 | 2010-01-05 | Nvidia Corporation | Consumer product distribution in the embedded system market |
US7231657B2 (en) * | 2002-02-14 | 2007-06-12 | American Management Systems, Inc. | User authentication system and methods thereof |
US7124273B2 (en) | 2002-02-25 | 2006-10-17 | Intel Corporation | Method and apparatus for translating guest physical addresses in a virtual machine environment |
US7631196B2 (en) | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
JP2003281071A (ja) * | 2002-03-20 | 2003-10-03 | Seiko Epson Corp | データ転送制御装置、電子機器及びデータ転送制御方法 |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7840803B2 (en) * | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
IL165468A0 (en) * | 2002-06-04 | 2006-01-15 | Nds Ltd | Prevention of tampering in electronic devices |
US6820177B2 (en) | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
US7392415B2 (en) * | 2002-06-26 | 2008-06-24 | Intel Corporation | Sleep protection |
WO2004008282A2 (en) * | 2002-07-12 | 2004-01-22 | Privaris, Inc. | Personal authentication software and systems for travel privilege assignation and verification |
US7802108B1 (en) * | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
KR100464598B1 (ko) * | 2002-08-03 | 2005-01-03 | 한국정보보호진흥원 | 오용행위와 비정상행위의 통합 판정 기능을 갖는 호스트기반의 통합침입탐지시스템 및 방법 |
US6686247B1 (en) * | 2002-08-22 | 2004-02-03 | Intel Corporation | Self-aligned contacts to gates |
EP1400887A1 (fr) * | 2002-09-20 | 2004-03-24 | EM Microelectronic-Marin SA | Dispositif de protection pour puce électronique comportant des informations confidentielles |
JP4027776B2 (ja) * | 2002-10-25 | 2007-12-26 | 有限会社クリプトソフトウエア | データ処理システム、処理装置及びコンピュータプログラム |
JP4349788B2 (ja) * | 2002-10-31 | 2009-10-21 | パナソニック株式会社 | 半導体集積回路装置 |
JP4497874B2 (ja) * | 2002-12-13 | 2010-07-07 | 株式会社ルネサステクノロジ | 半導体集積回路及びicカード |
US7900017B2 (en) | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US7076802B2 (en) * | 2002-12-31 | 2006-07-11 | Intel Corporation | Trusted system clock |
US20040128528A1 (en) * | 2002-12-31 | 2004-07-01 | Poisner David I. | Trusted real time clock |
US7836516B2 (en) * | 2003-01-10 | 2010-11-16 | Nxp B.V. | Circuit arrangement and method for protecting electronic components against illicit manipulation |
US7181016B2 (en) * | 2003-01-27 | 2007-02-20 | Microsoft Corporation | Deriving a symmetric key from an asymmetric key for file encryption or decryption |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
DE10317037A1 (de) * | 2003-04-14 | 2004-11-04 | Orga Kartensysteme Gmbh | Verfahren zum Schutz von Daten gegen unberechtigte Benutzung auf einem Mobilfunkgerät |
US6880752B2 (en) * | 2003-04-16 | 2005-04-19 | George V. Tarnovsky | System for testing, verifying legitimacy of smart card in-situ and for storing data therein |
GB0310411D0 (en) * | 2003-05-07 | 2003-06-11 | Koninkl Philips Electronics Nv | Electronic device provided with cryptographic circuit and method of establishing the same |
WO2005001611A2 (en) * | 2003-05-30 | 2005-01-06 | Privaris, Inc. | A system and methods for assignation and use of media content subscription service privileges |
US7366302B2 (en) * | 2003-08-25 | 2008-04-29 | Sony Corporation | Apparatus and method for an iterative cryptographic block |
US8079034B2 (en) | 2003-09-15 | 2011-12-13 | Intel Corporation | Optimizing processor-managed resources based on the behavior of a virtual machine monitor |
US7739521B2 (en) | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
EP2937805B1 (en) | 2003-09-30 | 2022-01-05 | Nxp B.V. | Proximity authentication system |
FR2861474B1 (fr) * | 2003-10-24 | 2007-04-27 | Atmel Corp | Procede et appareil pour une periode de traitement variable dans un circuit integre |
US8156343B2 (en) | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
FR2866450B1 (fr) * | 2004-02-17 | 2006-06-02 | Enertec | Cartouche d'enregistrement de donnees de type "anti-compromission" et procede anti-compromission correspondant |
US7802085B2 (en) | 2004-02-18 | 2010-09-21 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
DE102004014435A1 (de) * | 2004-03-24 | 2005-11-17 | Siemens Ag | Anordnung mit einem integrierten Schaltkreis |
US7620949B2 (en) | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US20050229005A1 (en) * | 2004-04-07 | 2005-10-13 | Activcard Inc. | Security badge arrangement |
DE102004028338A1 (de) * | 2004-06-11 | 2006-01-12 | Siemens Ag | Tachograph |
US7681042B2 (en) * | 2004-06-17 | 2010-03-16 | Eruces, Inc. | System and method for dis-identifying sensitive information and associated records |
KR100636150B1 (ko) * | 2004-07-01 | 2006-10-19 | 삼성전자주식회사 | 암호화 모듈을 포함하는 멀티미디어 장치 |
US7119703B2 (en) * | 2004-08-26 | 2006-10-10 | Ftd Solutions Pte. Ltd. | Die anti-tampering sensor |
US7818574B2 (en) * | 2004-09-10 | 2010-10-19 | International Business Machines Corporation | System and method for providing dynamically authorized access to functionality present on an integrated circuit chip |
JP4391375B2 (ja) * | 2004-09-30 | 2009-12-24 | フェリカネットワークス株式会社 | 情報管理装置および方法、並びにプログラム |
US7840962B2 (en) | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US7015823B1 (en) | 2004-10-15 | 2006-03-21 | Systran Federal Corporation | Tamper resistant circuit boards |
US8146078B2 (en) | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
DE102004057259A1 (de) * | 2004-11-26 | 2006-06-01 | Robert Bosch Gmbh | Manipulationsgeschütztes Mikrocontrollersystem |
US7188346B2 (en) * | 2004-11-29 | 2007-03-06 | International Business Machines Corporation | Method, system and program product for correlating data between operating environments |
US8924728B2 (en) | 2004-11-30 | 2014-12-30 | Intel Corporation | Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information |
US20060136717A1 (en) | 2004-12-20 | 2006-06-22 | Mark Buer | System and method for authentication via a proximate device |
US8533777B2 (en) | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US7395405B2 (en) | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US7607020B2 (en) * | 2005-03-01 | 2009-10-20 | Adobe Systems Incorporated | Communication with an external source application |
US8024523B2 (en) | 2007-11-07 | 2011-09-20 | Endeavors Technologies, Inc. | Opportunistic block transmission with time constraints |
US8516583B2 (en) * | 2005-03-31 | 2013-08-20 | Microsoft Corporation | Aggregating the knowledge base of computer systems to proactively protect a computer from malware |
US7809957B2 (en) | 2005-09-29 | 2010-10-05 | Intel Corporation | Trusted platform module for generating sealed data |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
IL171963A0 (en) * | 2005-11-14 | 2006-04-10 | Nds Ltd | Secure read-write storage device |
US8195945B2 (en) * | 2005-12-01 | 2012-06-05 | Sony Mobile Communications Ab | Secure digital certificate storing scheme for flash memory and electronic apparatus |
US8959339B2 (en) * | 2005-12-23 | 2015-02-17 | Texas Instruments Incorporated | Method and system for preventing unauthorized processor mode switches |
EP1811415A1 (en) * | 2005-12-23 | 2007-07-25 | Nagracard S.A. | Secure system-on-chip |
EP1802030A1 (en) * | 2005-12-23 | 2007-06-27 | Nagracard S.A. | Secure system-on-chip |
US8656191B2 (en) | 2005-12-23 | 2014-02-18 | Nagravision S.A. | Secure system-on-chip |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
IL174784A0 (en) * | 2006-04-04 | 2006-12-31 | Nds Ltd | Robust cipher design |
JP4960441B2 (ja) * | 2006-05-09 | 2012-06-27 | インターデイジタル テクノロジー コーポレーション | 無線装置のためのセキュア時刻機能 |
US8997255B2 (en) * | 2006-07-31 | 2015-03-31 | Inside Secure | Verifying data integrity in a data storage device |
US8352752B2 (en) * | 2006-09-01 | 2013-01-08 | Inside Secure | Detecting radiation-based attacks |
US20080061843A1 (en) * | 2006-09-11 | 2008-03-13 | Asier Goikoetxea Yanci | Detecting voltage glitches |
US8239677B2 (en) | 2006-10-10 | 2012-08-07 | Equifax Inc. | Verification and authentication systems and methods |
US8447226B1 (en) | 2007-01-05 | 2013-05-21 | The Directv Group, Inc. | Portable satellite earth station and methods of using the same |
US8286138B2 (en) * | 2007-01-30 | 2012-10-09 | Microsoft Corporation | Multi-threaded detection of a game software debugger |
US8286005B2 (en) | 2007-03-27 | 2012-10-09 | Mitsubishi Electric Corporation | Confidential information memory apparatus, erasing method of confidential information, and erasing program of confidential information |
AT505459B1 (de) * | 2007-06-25 | 2009-07-15 | Philipp Dr Tomsich | Verfahren zur gewährleistung einer sicheren kommunikation zwischen einem terminal und dienste-anbietern in einem netzwerk |
US8892738B2 (en) | 2007-11-07 | 2014-11-18 | Numecent Holdings, Inc. | Deriving component statistics for a stream enabled application |
KR100954223B1 (ko) * | 2007-11-22 | 2010-04-21 | 한국전자통신연구원 | Rtc를 이용하는 암호시스템간 보안 통신 방법 및 장치 |
FR2924262B1 (fr) * | 2007-11-26 | 2009-12-11 | Sagem Securite | Procede de masquage de passage en fin de vie d'un dispositif electronique et dispositif comportant un module de controle correspondant |
US7953988B2 (en) * | 2008-01-10 | 2011-05-31 | Oracle America, Inc. | Modular tamper resistant enclosure for secure systems |
GB0802741D0 (en) * | 2008-02-14 | 2008-03-26 | Wolfson Microelectronics Plc | Secure Clock |
FR2927750B1 (fr) * | 2008-02-15 | 2010-12-10 | Sagem Monetel | Terminal de paiement electronique pour l'echange de donnees securise sur un reseau ouvert |
US8910276B2 (en) * | 2008-05-24 | 2014-12-09 | Via Technologies, Inc. | Apparatus and method for precluding execution of certain instructions in a secure execution mode microprocessor |
US8819839B2 (en) * | 2008-05-24 | 2014-08-26 | Via Technologies, Inc. | Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels |
US8789136B2 (en) * | 2008-09-02 | 2014-07-22 | Avaya Inc. | Securing a device based on atypical user behavior |
FR2935817B1 (fr) * | 2008-09-11 | 2011-12-09 | Oberthur Technologies | Procede de traitement de donnees et dispositif associe. |
FR2935823B1 (fr) * | 2008-09-11 | 2010-10-01 | Oberthur Technologies | Procede et dispositif de protection d'un microcircuit contre les attaques. |
US20100105997A1 (en) * | 2008-10-29 | 2010-04-29 | Medtronic, Inc. | Closed loop parameter adjustment for sensor modules of an implantable medical device |
EP2199993A1 (en) * | 2008-12-17 | 2010-06-23 | Gemalto SA | Method and token for managing one processing relating to an application supported or to be supported by a token |
US8677145B2 (en) | 2009-02-27 | 2014-03-18 | Atmel Corporation | Single pin communication mechanism |
FR2947361B1 (fr) * | 2009-06-29 | 2011-08-26 | Viaccess Sa | Procede de detection d'une tentative d'attaque, support d'enregistrement et processeur de securite pour ce procede |
EP2282279A1 (en) * | 2009-07-20 | 2011-02-09 | Nxp B.V. | Method and device for detection of light attacks |
US8566940B1 (en) * | 2009-11-25 | 2013-10-22 | Micron Technology, Inc. | Authenticated operations and event counters |
US8255702B1 (en) * | 2009-12-03 | 2012-08-28 | Altera Corporation | Programmable logic device with improved security |
US9525548B2 (en) | 2010-10-21 | 2016-12-20 | Microsoft Technology Licensing, Llc | Provisioning techniques |
US8443224B2 (en) * | 2010-10-27 | 2013-05-14 | Freescale Semiconductor, Inc. | Apparatus and method for decoupling asynchronous clock domains |
US8805434B2 (en) | 2010-11-23 | 2014-08-12 | Microsoft Corporation | Access techniques using a mobile communication device |
US20120143769A1 (en) * | 2010-12-02 | 2012-06-07 | Microsoft Corporation | Commerce card |
US9509686B2 (en) | 2010-12-03 | 2016-11-29 | Microsoft Technology Licensing, Llc | Secure element authentication |
US9378379B1 (en) * | 2011-01-19 | 2016-06-28 | Bank Of America Corporation | Method and apparatus for the protection of information in a device upon separation from a network |
US8996951B2 (en) | 2012-11-15 | 2015-03-31 | Elwha, Llc | Error correction with non-volatile memory on an integrated circuit |
US9026719B2 (en) | 2012-11-15 | 2015-05-05 | Elwha, Llc | Intelligent monitoring for computation in memory |
US9442854B2 (en) | 2012-11-15 | 2016-09-13 | Elwha Llc | Memory circuitry including computational circuitry for performing supplemental functions |
US9582465B2 (en) | 2012-11-15 | 2017-02-28 | Elwha Llc | Flexible processors and flexible memory |
US8966310B2 (en) | 2012-11-15 | 2015-02-24 | Elwha Llc | Redundancy for loss-tolerant data in non-volatile memory |
US8925098B2 (en) * | 2012-11-15 | 2014-12-30 | Elwha Llc | Data security and access tracking in memory |
US9323499B2 (en) | 2012-11-15 | 2016-04-26 | Elwha Llc | Random number generator functions in memory |
FR2998695A1 (fr) * | 2012-11-29 | 2014-05-30 | Altis Semiconductor Snc | Circuit integre comprenant un systeme de protection contre la reproduction, et methode de conception associee |
US10091204B1 (en) | 2013-12-31 | 2018-10-02 | EMC IP Holding Company LLC | Controlling user access to protected resource based on outcome of one-time passcode authentication token and predefined access policy |
EP2942732A1 (en) * | 2014-05-07 | 2015-11-11 | Gemalto SA | Dynamic change of security configurations |
JP6555760B2 (ja) * | 2014-12-03 | 2019-08-07 | Necディスプレイソリューションズ株式会社 | 表示装置、および、表示装置の使用管理方法とそのプログラム |
CN105719183A (zh) * | 2014-12-03 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 定向转账方法及其装置 |
US11487871B2 (en) * | 2015-01-31 | 2022-11-01 | San Diego Gas & Electric Company | Methods and systems for detecting and defending against invalid time signals |
EP3262782B1 (en) | 2015-02-25 | 2022-07-27 | Private Machines Inc. | Anti-tamper system |
DE102016117007A1 (de) * | 2016-09-09 | 2018-03-15 | Endress + Hauser Flowtec Ag | Verfahren und System zur Verifikation einer elektrischen oder elektronischen Komponente |
CA3058156A1 (en) * | 2017-03-30 | 2018-10-04 | Blonder Tongue Laboratories, Inc. | Enterprise content gateway |
FR3083412B1 (fr) * | 2018-06-29 | 2021-09-24 | Youtransactor | Procede de protection d'un terminal de paiement |
US11050772B2 (en) | 2018-12-05 | 2021-06-29 | Bank Of America Corporation | Method and system for identification and prevention of profiling attacks in electronic authorization systems |
US11321458B2 (en) | 2020-01-28 | 2022-05-03 | Nuvoton Technology Corporation | Secure IC with soft security countermeasures |
US11977614B2 (en) | 2021-09-20 | 2024-05-07 | International Business Machines Corporation | Circuit design watermarking |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994013080A1 (en) * | 1992-11-30 | 1994-06-09 | Motorola Inc. | Method and apparatus for improved security within encrypted communication devices |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4446475A (en) * | 1981-07-10 | 1984-05-01 | Motorola, Inc. | Means and method for disabling access to a memory |
US4521853A (en) * | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Secure microprocessor/microcomputer with secured memory |
FR2536880B1 (fr) * | 1982-11-30 | 1987-05-07 | Bull Sa | Microprocesseur concu notamment pour executer les algorithmes de calcul d'un systeme de chiffrement a cle publique |
DE3483410D1 (de) * | 1983-10-14 | 1990-11-22 | Toshiba Kawasaki Kk | Einchip mikrocomputer mit verschluesselbarer funktion des programmspeichers. |
DE3347483A1 (de) * | 1983-12-29 | 1985-07-11 | GAO Gesellschaft für Automation und Organisation mbH, 8000 München | Vorrichtung zur sicherung geheimer informationen |
US4598170A (en) * | 1984-05-17 | 1986-07-01 | Motorola, Inc. | Secure microprocessor |
US4593384A (en) * | 1984-12-21 | 1986-06-03 | Ncr Corporation | Security device for the secure storage of sensitive data |
GB2182176B (en) * | 1985-09-25 | 1989-09-20 | Ncr Co | Data security device for protecting stored data |
GB2182467B (en) * | 1985-10-30 | 1989-10-18 | Ncr Co | Security device for stored sensitive data |
GB2195478B (en) * | 1986-09-24 | 1990-06-13 | Ncr Co | Security device for sensitive data |
US5117457A (en) * | 1986-11-05 | 1992-05-26 | International Business Machines Corp. | Tamper resistant packaging for information protection in electronic circuitry |
US4860351A (en) * | 1986-11-05 | 1989-08-22 | Ibm Corporation | Tamper-resistant packaging for protection of information stored in electronic circuitry |
JPS63293664A (ja) * | 1987-05-27 | 1988-11-30 | Sharp Corp | 電子機器 |
US5185717A (en) * | 1988-08-05 | 1993-02-09 | Ryoichi Mori | Tamper resistant module having logical elements arranged in multiple layers on the outer surface of a substrate to protect stored information |
US4933898A (en) * | 1989-01-12 | 1990-06-12 | General Instrument Corporation | Secure integrated circuit chip with conductive shield |
US5083293A (en) * | 1989-01-12 | 1992-01-21 | General Instrument Corporation | Prevention of alteration of data stored in secure integrated circuit chip memory |
US5189700A (en) * | 1989-07-05 | 1993-02-23 | Blandford Robert R | Devices to (1) supply authenticated time and (2) time stamp and authenticate digital documents |
US5027397A (en) * | 1989-09-12 | 1991-06-25 | International Business Machines Corporation | Data protection by detection of intrusion into electronic assemblies |
MY107292A (en) * | 1989-10-03 | 1995-10-31 | Univ Sydney Technology | Electro-active cradle circuits for the detection of access or penetration. |
US5053992A (en) * | 1990-10-04 | 1991-10-01 | General Instrument Corporation | Prevention of inspection of secret data stored in encapsulated integrated circuit chip |
US5444780A (en) * | 1993-07-22 | 1995-08-22 | International Business Machines Corporation | Client/server based secure timekeeping system |
-
1994
- 1994-06-28 US US08/267,788 patent/US5533123A/en not_active Expired - Lifetime
-
1995
- 1995-05-05 KR KR1019960701013A patent/KR100341665B1/ko not_active IP Right Cessation
- 1995-05-05 DE DE69519662T patent/DE69519662T2/de not_active Expired - Lifetime
- 1995-05-05 WO PCT/US1995/005582 patent/WO1996000953A2/en active IP Right Grant
- 1995-05-05 EP EP99115659A patent/EP0965902A3/en not_active Withdrawn
- 1995-05-05 EP EP95918978A patent/EP0715733B1/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994013080A1 (en) * | 1992-11-30 | 1994-06-09 | Motorola Inc. | Method and apparatus for improved security within encrypted communication devices |
Also Published As
Publication number | Publication date |
---|---|
DE69519662T2 (de) | 2001-05-23 |
US5533123A (en) | 1996-07-02 |
EP0715733B1 (en) | 2000-12-20 |
WO1996000953A2 (en) | 1996-01-11 |
EP0965902A2 (en) | 1999-12-22 |
WO1996000953A3 (en) | 1996-02-15 |
KR960705284A (ko) | 1996-10-09 |
EP0965902A3 (en) | 2005-12-21 |
DE69519662D1 (de) | 2001-01-25 |
EP0715733A1 (en) | 1996-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100341665B1 (ko) | 암호및변경검출기능을갖는기밀데이타프로세서 | |
US10733291B1 (en) | Bi-directional communication protocol based device security | |
US8006101B2 (en) | Radio transceiver or other encryption device having secure tamper-detection module | |
Anderson et al. | Tamper resistance-a cautionary note | |
EP0865695B1 (en) | An apparatus and method for cryptographic companion imprinting | |
Mori et al. | Superdistribution: the concept and the architecture | |
EP0743602B1 (en) | Circuit device for function usage control in an integrated circuit | |
TWI420397B (zh) | 偵測基於輻射之攻擊 | |
US6264108B1 (en) | Protection of sensitive information contained in integrated circuit cards | |
EP2115655B1 (en) | Virtual secure on-chip one time programming | |
US7103782B1 (en) | Secure memory and processing system having laser-scribed encryption key | |
JP2003519852A (ja) | 集積回路の改ざん防止カプセル化 | |
WO2002001368A2 (en) | Embedded security device within a nonvolatile memory device | |
US20100077472A1 (en) | Secure Communication Interface for Secure Multi-Processor System | |
WO2003058409A2 (en) | Protecting a device against unintended use in a secure environment | |
JPH1012820A (ja) | 半導体チップ用セキュリティーデバイス | |
US20030005323A1 (en) | Management of sensitive data | |
JP2009536389A (ja) | 回路装置付きセンサ | |
Leng | Smart card applications and security | |
US20210281398A1 (en) | Method For Protecting A Payment Terminal | |
US6726108B1 (en) | Device for limiting fraud in an integrated circuit card | |
US20030133241A1 (en) | Method and arrangement for protecting digital parts of circuits | |
JP3983521B2 (ja) | 半導体装置およびicカード | |
Zanero | Smart card content security | |
US20120331290A1 (en) | Method and Apparatus for Establishing Trusted Communication With External Real-Time Clock |
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: 20130531 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20140529 Year of fee payment: 13 |
|
EXPY | Expiration of term |