KR19990008381A - 개선된 집적회로 및 이러한 타입의 집적회로를 사용하는 방법 - Google Patents

개선된 집적회로 및 이러한 타입의 집적회로를 사용하는 방법 Download PDF

Info

Publication number
KR19990008381A
KR19990008381A KR1019970707908A KR19970707908A KR19990008381A KR 19990008381 A KR19990008381 A KR 19990008381A KR 1019970707908 A KR1019970707908 A KR 1019970707908A KR 19970707908 A KR19970707908 A KR 19970707908A KR 19990008381 A KR19990008381 A KR 19990008381A
Authority
KR
South Korea
Prior art keywords
program
clock
sequence
execution
random number
Prior art date
Application number
KR1019970707908A
Other languages
English (en)
Other versions
KR100463814B1 (ko
Inventor
미셸 위공
Original Assignee
미쉘 꼴롱브
뷜 쎄뻬8
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=9489969&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR19990008381(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 미쉘 꼴롱브, 뷜 쎄뻬8 filed Critical 미쉘 꼴롱브
Publication of KR19990008381A publication Critical patent/KR19990008381A/ko
Application granted granted Critical
Publication of KR100463814B1 publication Critical patent/KR100463814B1/ko

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Abstract

본 발명은 개선된 집적회로 및 이 형태의 회로를 사용하는 프로세스에 관한 것이다.
본 발명의 개선된 집적회로는, 집적회로의 내외 전기신호로부터 프로그램의 적어도 하나의 명령 시퀀스의 실행을 분리할 수 있는 수단을 갖는다.

Description

개선된 집적회로 및 이러한 타입의 집적회로를 사용하는 방법
[도면의 간단한 설명]
도 1은 본 발명의 제 1 실시예에 따른 전자회로의 개략도,
도 2는 본 발명의 제 2 실시예에 따른 단순화된 변형예를 보여주는 전자회로의 개략도,
도 3A는 교정회로의 실시예를 보여주는 회로도,
도 3B는 교정회로의 논리 시퀀스도,
도 4A는 위상 이동회로의 실시예를 보여주는 논리 회로도,
도 4B는 위상 이동회로의 신호 시퀀스도,
도 5는 본 발명에 따른 제 3 변형 실시예를 보여주는 블록도,
도 6은 내부 클럭의 실시예를 보여주는 논리 회로도,
도 7A는 난수 발생기의 실시예를 보여주는 논리도,
도 7B는 난수 발생기의 각 셀에 대한 실시예를 보여주는 논리도,
도 8은 2차 프로그램의 랜덤하게 선택된 시퀀스의 예를 보여주는 개략도이다.
[발명의 상세한 설명]
[발명의 목적]
[발명이 속하는 기술분야 및 그 분야의 종래기술]
본 발명은 개선된 집적회로 및 이를 사용하는 방법에 관한 것이다. 본 발명은 특히 마이크로프로세서와 마이크로컴퓨터에 적용 가능하며 또한 보호를 필요로 하는 고정배선 논리회로에 관한 것이다.
마이크로프로세서와 마이크로컴퓨터는 내부 또는 외부로부터 마이크로프로세서 또는 마이크로컴퓨터에 공급된 클럭신호 중 하나에 대하여 기준이 이루어진 하나 또는 그 이상의 타이밍 신호와 동기하여 메모리 내에 기억된 프로그램의 연속적인 명령을 순차적으로 실행하는 것은 주지된 사실이다.
따라서, 각 특정 명령의 실행이 하나 또는 그 이상의 연속적인 클럭펄스에 의해 시간이 맞추어진 몇개의 스텝으로 나누어지기 때문에 이러한 프로그램 실행의 각종 위상을 클럭신호와 상관시키는 것은 가능하다. 실제로 종래의 마이크로프로세서에서 동작은 특히 기준클럭에 상대적인 신호의 위상 이동(phase shift)에 의해 필요한 전기적인 펄스를 발생하는 시퀀스 회로로부터 일반적으로 인가되는 클럭신호에 맞추어지는 것이 정상이다. 더욱이, 동작의 순서화는 각종 레지스터, 메모리 및 내부장치를 억세스하는데 필요한 시간의 요소이어야 하며 뿐만 아니라 특히 버스 및 각종 논리회로를 통한 신호 전파 시간의 요소이어야 한다. 결과적으로 각 명령의 시작과 종료 시간은 완전하게 알려지며 실행되고 있는 프로그램은 소정 시퀀스의 명령으로 구성되기 때문에 주어진 순간에 프로세서의 처리장치에서 어떤 명령이 실행되고 있는지를 아는 것은 이론적으로 가능하다.
예를 들어, 프로그램의 시작 또는 처리장치의 리셋트 이후에 전달된 클럭펄스의 수 또는 어떤 이벤트 또는 외부 또는 내부 기준신호 이후에 경과된 시간 조차도 판단하는 것이 가능하다.
마이크로프로세서 또는 마이크로컴퓨터에서 프로그램의 실행을 관찰할 수 있는 이러한 능력은 마이크로프로세서 또는 마이크로컴퓨터가 높은 보안 어플리케이션에 사용될 때 중요한 결점이 된다. 실제로 나쁜 생각을 가진 사람이 프로세서의 연속적인 상태를 알 수 있으며 어떤 내부 출력 데이터를 알려고 하는데 이러한 정보를 사용할 수 있다.
예를 들어, 메세지의 해독 또는 비밀 내부 정보의 테스트, 또는 심지어 어떤 정보의 무결성 검사와 같은 결정된 보안동작의 결과의 함수로서 상이한 순간에 외부 신호에 대한 주어진 동작이 일어날 수 있다는 것을 상상할 수 있다. 문제의 순간에 따라서 이러한 외부신호가 출력 데이터 또는 정보의 비밀 내용, 및 암호 계산의 경우에는 사용된 비밀 암호키에 대한 정보를 공급할 수 있다.
더욱이 난수 발생기를 내장한 마이크로프로세서로 구성되는 참조번호 ST16XT의 SGS 톰슨사로부터 입수 가능한 마이크로프로세서 또는 마이크로컴퓨터가 주지되어 있으며, 이에 대한 판독은 예를 들어, 암호와 해독의 계산에 사용된 난수를 얻는 것을 가능하게 한다.
[발명이 이루고자 하는 기술적 과제]
본 발명의 목적 중 하나는 상기한 종류의 조사를 방지하며, 좀더 일반적으로는 회로 내부 행동의 불법 여부를 관찰하는 것을 방지하기 위한 수단을 갖는 회로를 구비하는 것이다.
본 발명의 다른 목적은 집적회로를 사용하는 방법을 제공하는 것이다.
[발명의 구성 및 작용]
이러한 목적은 개선된 집적회로(IC)가 회로의 내부 또는 외부 신호로부터 프로그램의 적어도 하나의 명령 시퀀스의 실행을 분리시키기 위한 수단을 구비함으로써 달성된다.
본 발명의 다른 특징에 따르면, 회로의 전기신호는 타이밍, 동기 또는 상태 신호이다.
본 발명의 다른 특징에 따르면, 분리수단은 랜덤한 시간에 공급되는 타이밍 펄스 또는 클럭의 시퀀스를 발생하는 하나 또는 그 이상의 회로로 구성된다.
본 발명의 다른 특징에 따르면, 분리수단은 프로세서에서 프로그램 시퀀스의 실행을 동기가 어긋나게 하는 난수 발생기로 구성된다.
본 발명의 다른 특징에 따르면, 분리수단은 너무 짧은 타이밍 펄스를 제거하는 것을 가능하게 하는 클럭 교정회로로 구성된다.
본 발명의 다른 특징에 따르면, 분리수단은 랜덤 인터럽트 발생 시스템으로 구성된다.
본 발명의 다른 특징에 따르면, 분리수단은 명령과 실행 시간이 다르며 랜덤하게 선택되는 제 2 시퀀스의 실행을 포함한다.
본 발명의 다른 특징에 따르면, 제 2 프로세스의 가변시간은 난수 발생기에 의해 공급되는 값에 종속한다.
본 발명의 다른 특징에 따르면, 제 2 프로세스는 메인 프로그램의 전체적인 연산 문맥을 수정하지 않으며, 따라서 이러한 문맥을 재개설할 필요 없이 후자로 리턴할 수 있게 한다.
본 발명의 다른 특징에 따르면, 제 2 프로세스는 프로세서의 제어를 그 곳으로 리턴하기 전에 메인 프로그램의 문맥을 재개설한다.
본 발명의 다른 특징에 따르면, 메인 프로그램은 하나 또는 그 이상의 분리수단을 인에이블 또는 디스에이블 시킬 수 있다.
본 발명의 다른 특징에 따르면, 프로세서의 타이밍, 동기 또는 상태신호를 위상 이동시키기 위한 수단을 구비한다.
본 발명의 다른 특징에 따르면, 위상 편이수단은 프로세서의 타이밍, 동기 또는 상태신호의 랜덤 위상 이동을 발생한다.
본 발명의 다른 특징에 따르면, 위상 편이수단은 프로그램의 실행 동안 외부 클럭으로부터 프로세서의 동작을 부분적 또는 완전하게 동기분리시킨다.
본 발명의 다른 특징에 따르면, 난수 발생기는 루프로 구성되거나 또는 구성되지 않으며, 랜덤값으로 초기화되는 카운터를 사용한다.
본 발명의 다른 특징에 따르면, 초기화값은 비휘발성 메모리로부터 인가된다.
본 발명의 다른 특징에 따르면, 초기화값은 프로그램의 실행동안 수정된다.
본 발명의 다른 특징에 따르면, 난수 발생기는 초기화 값으로 초기화된 해시 함수 또는 암호 타입의 알고리즘을 사용한다.
본 발명의 다른 특징에 따르면, 동작의 순서화는 각종 레지스터, 메모리 및 내부장치를 억세스하는데 필요한 시간의 요소이며 뿐만 아니라 특히 버스 및 각종 논리회로를 통한 신호 전파 시간의 요소이다.
상기한 집적회로를 사용하는 방법은 랜덤 펄스 클럭을 사용하여 하나 또는 그 이상의 명령 또는 동작의 순서화를 트리거하는 단계와;
인터럽트 시퀀스를 랜덤하게 트리거하는 단계와;
메인 시퀀스의 명령 또는 동작의 실행동안 랜덤 시퀀스의 명령 또는 동작의 처리를 트리거하는 단계와;
상기한 가능성의 적어도 2개를 조합하는 단계로 구성되는 방법에 의해 달성된다.
본 발명의 다른 특징과 이점은 첨부 도면을 참고하여 이루어지는 다음 설명에 따라 명확하게 될 것이다.
[실시예]
상세한 설명에서 용어 마이크로컴퓨터는 예를 들어, 밧데리 백업을 갖는 RAM, ROM, PROM, EPROM, EEPROM, 또는 플래시 타입의 RAM, 또는 이들 메모리들의 조합과 같이 프로그램 가능하거나 또는 프로그램이 가능하지 않은 적어도 하나의 비휘발성 메모리와 연관된 RAM 타입의 읽기-쓰기 메모리를 가진 마이크로프로세서를 포함하는 1칩 집적회로를 의미한다.
도 1을 참고하여 이하에 본 발명을 설명하면, CPU(1)는 내부클럭(11)에 따라 동작하는 난수 발생기(2)로 구성된다. 상기한 바와 같이 이러한 타입의 프로세서는 ST16XY 패밀리의 마이크로컴퓨터를 통하여 특히 알려져 있다. 그러나, 이러한 마이크로컴퓨터 또는 마이크로프로세서는 병렬 입/출력이 적어도 하나의 입력으로 루프백 되는 시프트 레지스터를 사용하며, 이동은 내부클럭에 따라 이루어지고, 난수 발생기를 구성하기 위하여 마이크로프로세서의 머신 사이클을 순서화시키는 외부클럭을 사용하여, 레지스터의 내용을 읽기 위한 명령을 실행한다. 본 발명은 외부 클럭으로부터 다중 주파수를 갖는 난수 발생기의 내부클럭이 후자에 대하여 상대적으로 랜덤하게 위상 이동되는 사실에 기초하며, 의사-랜덤하지 않은 난수를 발생하는 것을 가능하게 한다.
본 발명은 난수 발생기를 갖는 이러한 타입의 마이크로프로세서의 원리를 이용하여, 바람직하게는 선택된 실시예에 따라서 동일한 명령이 몇 개의 시간에 실행될지라도 주어진 명령의 실행시간이 더이상 동일하지 않으며, 동일한 시퀀스가 메인 프로그램에 의해 몇개의 시간에 재실행될지라도 명령 시퀀스의 실행기간이 가변적이고, 명령의 실행기간이 가변적이라도 동일한 명령 그 자체의 실행시간이 가변적인 비상관 동작에 대하여 메인 프로그램을 실행하는 마이크로프로세서가 정확하게 위상이 맞고 외부 시퀀스 클럭에 상관된 동작을 할 수 있게 하는 소정수의 소자를 마이크로프로세서에 부가하는 것으로 구성된다.
이것은 도 1에 도시된 회로에 의해 얻어지며, 이 회로는 난수 발생기(2)에 부가하여 내부클럭(11)이 마이크로프로세서 또는 마이크로컴퓨터의 외부클럭(CLKE)에 상대적으로 위상 이동되며 동기가 어긋난 자유 고정 주파수 발진기에 의해 구체화되었다. 종래 기술에서는 당분야의 통상의 지식을 가진자가 비정상 클럭을 갖는 마이크로컴퓨터 또는 마이크로프로세서의 동작에 타이밍을 맞추는 것을 고려하고 있지 않았다. 반대로, 모든 것은 특히 기준 클럭에 대하여 상대적으로 신호를 위상 이동시킴에 의해 필요한 전기 펄스를 발생하는 시퀀스 회로로부터 일반적으로 발생하는 클럭신호에 정상적으로 시간을 맞추는 것을 보장하도록 되어 있다.
이것은 동작의 순서화가 각종 레지스터, 메모리 및 내부장치를 억세스하는데 필요한 시간의 요소이어야 하며 뿐만 아니라 특히 버스 및 각종 논리회로를 통한 신호전파 시간의 요소이어야 한다. 본 발명에서 난수 발생기(2)는 데이터 버스(3)를 통하여 다음에 설명할 각종 장치로 임의값(random value)을 공급하여 로딩시키거나 또는 그것의 출력에 가변 주기의 펄스신호를 발생하도록 사용된다.
본 발명의 마이크로프로세서 또는 마이크로프로세서에서 명령의 로딩과 실행에 필요한 신호는 따라서 랜덤하게 공급되는 클럭 펄스로부터 발생될 수 있으나, 이들 펄스는 프로세서(1)가 각종 동작을 실행하는데 충분한 시간을 갖도록 최소한의 사이클 시간으로 고정되어야 한다. 이 신호는 마이크로프로세서(1)에 대한 클럭으로서 작용을 하도록 교정회로(9)에 보내져야 한다. 이 교정회로의 출력(95)은 멀티플렉싱 회로(18)에 공급되며, 멀티플렉싱 회로의 멀티플렉싱을 제어하는 입력(19)은 난수 발생기(2)에 의해 또는 메인 프로그램(5)에 의해 결정되는 값으로 로딩될 수 있는 레지스터(8)의 하나 또는 그 이상 비트의 신호를 수신한다. 이 레지스터(8)가 임의 값으로 로딩될 때 프로세서에 송부된 클럭신호를 선택하는 결정은 랜덤하게 이루어지며, 이 레지스터(8)가 프로그램에 의해 결정되는 값으로 로딩될 때 마이크로프로세서를 순서화시키는 클럭이 외부클럭(CLKE) 또는 비상관 클럭(CLK2)으로 되는지를 선택하는 것은 메인 프로그램이다. 유사하게 레지스터(8)의 하나 또는 그 이상의 비트가 링크(82)를 통하여 논리회로(28)로 송부되며, 논리회로(28)는 레지스터(8)의 비트 또는 비트들의 함수로서 난수 발생기(2)에 내부 클럭신호(11)의 전송을 유효화 시키거나 또는 유효화시키지 않도록 한다.
이러한 난수 발생기는 그 후 링크(26)와 논리회로(28)를 통하여 그것의 신호를 수신함에 의해 외부클럭(CLKE)에 따라 실행될 수 있다. 이러한 후자의 경우에 발생된 값은 의사-랜덤 값으로 된다. 난수 발생기(2)는 레지스터(8)의 비트 또는 비트들에 의해 회로(28)를 통하여 유효화되는 내부클럭(11)을 사용하여 동작할 수 있고, 이 경우에 발생된 값은 임의값이 된다. 난수 발생기(2)의 출력(22)에서 발생되어 교정회로(9)에 수신된 신호(I)는 펄스신호에 대응하며, 그것의 주기는 랜덤하게 또는 의사-랜덤 방식으로 가변한다. 주기가 의사-랜덤 방식으로 가변한다는 사실은 하기와 같이 교정회로(9)가 상이한 주파수와, 외부 클럭신호(CLKE)에 상대적으로 그 결과 이러한 외부클럭신호에 동기된 의사-랜덤 클럭신호에 상대적으로 위상 이동을 통하여 비상관을 그 자체로 재도입하는 내부 클럭신호(FRC)를 도입하기 때문에 거의 관련이 없다.
또한 이 장치는 난수 발생기(2)에 의한 임의값 또는 메인 프로그램에 의한 프로그램에 의해 결정되는 값으로 로딩되는 레지스터(R2)를 포함한다. 이 레지스터(R2)는 인터럽트를 트리거시키기 위한 논리회로(4)에 의해 전체적으로 또는 부분적으로 사용되며, 이 논리회로(4)는 그것의 일입력에 교정회로(9)의 출력(95)으로부터 발생한 비상관 클럭신호(CLK2)를 수신한다. 논리회로(4)의 출력은 레지스터(8)의 비트 또는 비트들에 의해 제어되는 게이트(48)를 통하여 CPU의 인터럽트 입력(12)에 보내진다. 이러한 레지스터(8)의 비트 또는 비트들은 어떤 마이크로프로세서의 표준이라고 할 수 있는 인터럽트 마스크 제어 역할을 한다. 인터럽트가 프로세서의 인터럽트 입력(12)에 수신될 때 예를 들어, 오퍼레이팅 시스템 또는 2차 프로그램에 포함된 인터럽트 처리 프로그램은 메인 프로그램의 인터럽트 된 시퀀스에 대하여 상이한 처리시간을 도입한다. 이는 인터럽트 모드의 동작에 2개의 위상이 존재한다는 것으로 이해되어야 한다.
제 1 위상일 때 소위 메인 프로그램에 의해 제어되는 마이크로프로세서는 예를 들어 인터럽트를 차단하지 않음에 비해 비상관 동작을 승인한다.
제 2 위상일 때 인터럽트는 2차 프로그램에 대한 동작을 자동적으로 재루팅한다. 이러한 동작은 메인 프로그램의 중재 없이 실제로 발생할 수 있다.
마지막으로 본 발명의 장치는 또한 다음에 알 수 있는 바와 같이 2차 프로그램(6)이 메인 프로그램(5)에 의해 호출될 때마다 변하는 가변지속 시간을 발생할 수 있는 2차 프로그램(6)을 포함한다. 따라서, 도 1에 도시된 실시예의 변형예는 메인 프로그램(5)이 비상관 클럭(CLK2)의 도움으로 하나 또는 그 이상의 명령의 실행 시퀀스를 트리거함에 의해, 또는 인터럽트 시퀀스의 실행동안 랜덤하게 트리거되는 인터럽트 핸들러를 도입 또는 도입하지 않을 것인지를 결정함에 의해, 또는 시퀀스의 실행동안 가변시간으로 처리를 또한 발생하는 2차 프로그램(6)에 대한 점프를 도입 또는 도입하지 않을 것인지를 결정함에 의해, 또는 이러한 각종 가능성을 조합함에 의해 원하는 보호의 정도를 변경할 수 있게 한다.
따라서 본 발명의 변형예에서 이러한 2차 프로그램(6)은 랜덤하게 호출되는 다수의 시퀀스(61,62,63,...,6n)에 의해 도 8에 도시된 바와 같이 구성될 수 있으며; 각 시퀀스(0,1,2 또는 2n-1)는 각 브랜치에 가변 처리시간과 마이크로프로세서의 상이한 행동을 야기하는 상이한 세트의 명령을 구현한다. 이 시퀀스는 랜덤하게 호출될 수 있다; 예를 들어, 메인 프로그램이 2차 프로그램에 대한 접프를 실행한 후에 후자가 단계(64,65)에서 메모리(7)로부터 발생한 임의값(V)을 마이크로프로세서(1)의 레지스터 예를 들어 R10과 R11로 로딩시킨다. 2차 프로그램은 이 값(V)을 증분시켜, 그 후 프로그램은 단계(66)에서 비휘발성 메모리(NVM;7)로 이 증분된 값(V+1)의 기억을 명령한다. 비휘발성 메모리(7)에 기억된 이 값은 후에 사용된다. 그 후 단계(67)에서 2차 프로그램은 2차 프로그램 시퀀스(61,62,63,...,6n) 중에서 어떤 프로그램 시퀀스가 실행되어야 하는지를 지시할 수 있게 하는 값(r)을 얻도록 R10에서 n 고차 또는 저차 비트를 추출한다.
각 2차 프로그램 시퀀스는 상이한 프로세서를 생성한다: 예를 들어, 시퀀스(10)는 먼저 마이크로프로세서의 레지스터(R11)의 내용을 레지스터(R12)로 이송하는 단계(611)로 이루어진다. 단계(612)에서 R12의 내용은 캐리값(CARRY)에 가산된 후 그 후 단계(613)에서 익스클루시브 OR가 레지스터(R11)의 내용과 레지스터(R12)의 내용 사이에서 실행되며, 그 결과는 레지스터(R12)로 이송된다. 단계(614)에서 프로세서는 R12를 감분하고; 단계(615)에서 R12가 제로인지 여부를 판단하기 위하여 R12의 값에 대한 테스트가 이루어진다. R12=0인 경우 프로세서는 메인 프로그램의 실행으로 리턴한다. 반대의 경우는 단계(616)에서 2차 프로그램(61)은 레지스터(R10)의 내용이 회전을 실행한다.
다음 단계는 레지스터(R10)로부터 결정된 순서의 n비트를 추출하여 그 후 2차 프로그램에서 값(r)에 의해 결정되는 시퀀스 중의 하나를 억세스한다. 따라서, 예를 들어, 단계(6n1)에서 R10과 R11의 값의 승산결과를 R13과 R14로 이송하는 시퀀스(2n-1)를 억세스 하는 것이 가능하다. 단계(6n2)에서, 이 시퀀스는 R13과 R14의 회전을 실행하여, 그 후 단계(6n3)에서 R13의 내용을 R11로 이송한다. 단계(6n4)에서 R11은 감분되어 그 후 단계(6n5)에서 값(R11)에 대한 테스트를 수행한다. 이 테스트는 R11=3인지를 판단한다. 만약 R11=3인 경우는 프로세스는 메인 프로그램으로 리턴하고, 만약 R11=3이 아닌 경우 프로그램은 단계(6n6)로 진행하여 R10을 좌로 회전시키고 그 후 명령(67)을 실행하여 새로운 2차 프로그램 시퀀스를 억세스한다.
2차 프로그램이 비상관 클럭 또는 인터럽트 핸들러와 결합하게 되는 경우, 이러한 타입의 결합으로 하나의 2차 프로그램 그 자체로 제한하여 따라서 좀더 간단한 처리를 하는 것이 가능하다. 이러한 타입의 단순화된 2차 프로그램은 다음 명령에 의해 구성될 수 있다.
MOV B, R2 ; 레지스터(R2)를 마이크로프로세서 레지스터(B)로 로딩
LOOP DCX B ; 레지스터(B)를 값(A)으로 감분
JNZ B LOOP ; 레지스터(B)의 값에 대한 테스트를 수행하여 이 값이 제로와 다른 경우 라벨(LOOP)로 루프백.
이 시퀀스는 메인 프로그램의 명령으로 리턴시키는 명령으로 종료하며 바로 이를 뒤따라 마지막 명령이 2차 프로그램(6)으로 점프하기 전에 실행된다. 레지스터(R2)는 난수 발생기(2)에 의해 임의값이 공급된 상태에서 2차 프로그램(6)으로 점프하기 전에 메인 프로그램(5)의 명령으로 프리 로딩한다. 따라서, 위에서 정의된 2차 프로그램의 실행은 항상 가변 지속기간을 발생한다.
가변 지속시간의 2차 프로그램의 다른 실시예는 한세트의 명령이 기억되는 2차 프로그램(6)에 대응하는 프로그램 기억의 영역을 정의하는 것으로 이루어진다. 바람직하게는 선택된 명령은 상이한 갯수의 머신 사이클을 요구하며 예를 들어, ADC, SUB, ANA, MOV 등과 같은 많은 더 짧은 머신 사이클을 필요로 하는 명령과 관련하여 명령 J, CALL, RET, RST, PCHL, INX에 따라 실행이 이루어진다. 따라서, 이러한 기억영역에서 머신 사이클의 숫자에 대하여 서로 상이한 실행 지속시간을 갖는 어떤 수의 유용한 명령이 존재한다.
메인 프로그램(6)은 그것의 인덱스가 레지스터(R2)의 내용에 대응하여, 그것의 어드레스는 영역(6)의 제 1 어드레스에 대응하는 인덱스 어드레스로 점프하는 명령으로 구성되어 있다. 메인 프로그램(5)의 이러한 명령의 실행은 그것의 실행 지속시간이 어드레스된 위치에 따라 다르게 되는 프로세서(1)에 의한 랜덤방식으로 명령의 어드레싱이 이루어진다. 주지된 방법으로, 난수 발생기(2)는 시동시에 변수로 초기화된다. 이러한 초기 변수는 비휘발성 메모리(7)에 포함되어 있고 예를 들어 마이크로프로세서(1)의 정지전에 발생기(2)에 의해 발생된 마지막 임의값에 의해 구성된다. 따라서, 그것이 실행할 프로그램에 의해 제어되는 마이크로프로세서는 이 프로그램을 사용하여 예를 들어, 레지스터(R2 또는 8)를 로딩하거나 또는 2차 프로그램을 호출함에 의해 이 프로그램의 명령 실행 시퀀싱을 비상관화시키는 수단을 활성화시킬 수 있게 된다.
도 2는 본 발명의 단순화된 실시예의 다른 변형예를 나타내며, 여기서 레지스터(8)의 내용은 외부클럭(CLKE)이 프로세서(1)로 송부되는지 또는 단순히 비상관화된 클럭(CLK)이 CPU(1)에 의해 사용되는지를 결정하도록 멀티플렉서(18)를 명령한다. 이 레지스터(8)는 메인 프로그램(5)의 명령의 실행시에 버스(30)에 의해 로딩되며, 상기 메인 프로그램(5)은 가변 지속기간의 명령 실행 시퀀스를 발생함에 의해 주어진 순간에 보호된 모드를 트리거하는 것을 결정하도록 설계되어 있다. 난수 발생기(2)는 버스(31)를 통하여 비휘발성 메모리(7)와 통신을 하며, 메모리는 예를 들어, 발생된 마지막 값을 기억하여 단일칩 회로를 새로 접속할 때 난수 발생기가 이전의 초기값과 다른 값으로 재초기화 되도록 한다. 이 버스(31)는 프로세서(1)에 의해 제어될 수도 있다. 다른 변형예에서 메모리(7)에 대한 기입은 고정배선 논리장치에 의해 제어될 수 있다.
다른 실시예에서, 도 4A에 도시된 바와 같이 클럭회로의 출력에 가변 위상 이동회로(45)를 도입하는 것도 가능하다. 위상 이동회로는 예를 들어, 회로(11)로부터 발생되는 신호(FRC) 또는 회로(9)의 출력(95)에 의해 공급되는 재교정된 FRC에 따라 동작되는 시프트 레지스터(D1-D5)에 의해 구성되며, 출력(22)에 의해 공급되는 신호(I)를 위상 이동시키며, 이는 제산기(452)에서 슬로우다운 요소에 의해 분할된다. 위상 이동회로(45)의 출력은 멀티플렉서(451)(MUX)의 도움으로 생성될 수 있으며, 이는 버스(3)를 통하여 난수 발생기(2)에 의해 직접 또는 메인 프로그램(5)에 의한 간접, 또는 2차 프로그램(6)에 의해 로딩되는 레지스터(RM)의 내용이 함수로서 시프트 레지스터로부터 임의의 출력신호(Q1,Q2,...,Q5)를 추출할 수 있게 한다. 이 경우 출력으로서 전달되는 클럭 리딩 에지(S)는 난수에 따른 값에 의해 시프트 레지스터의 중앙 레벨로 공급되는 중간 펄스에 상대적으로 지연되거나 또는 빠르게 되게 하여 따라서 진행중에 프로그램의 명령 실행 시퀀싱을 비례적으로 지연하거나 또는 빠르게 할 수 있다.
다른 실시예에서, 난수 발생기와 위상 이동회로는 어떤 특정 감지기간 동안 계속적으로 사용될 수 있고; 이들 위상동안 프로세서는 클럭펄스를 분리하는 시간 인터벌이 가변이고 표준 프로세서의 경우와 같이 일정하지 않기 때문에 완전하게 랜덤방식으로 작동된다.
프로세서에 의해 실행되는 프로그램의 조직은 프로세서(1)의 동작이 머신에 의해 실행되는 프로그램 타입의 함수로서 사용될 스크램블링의 종류를 선택하는 진정으로 보호되는 오퍼레이팅 시스템에 의해 제어되는 방식으로 실현될 수 있다. 이 경우에 오퍼레이팅 시스템은 난수 발생기, 교정기로부터 발생하는 각종 신호, 위상 이동회로의 인터럽트 또는 명령, 및 메인과 2차 프로그램의 기동을 관리한다. 2차 프로그램은 특히 메인 프로그램에 필요한 프로세스를 실행함에 의해 단순한 타임아웃 이외의 기능을 수행하도록 사용될 수 있으며, 2차 프로그램에 제공된 시간을 이용하여, 예를 들어 메인 프로그램에 의해 순차적으로 사용된 계산준비에 의해 프로세스가 구성될 수 있다. 본 발명의 장치는 프로세서가 멀티프로그래밍에 사용될 때 쉽게 일반화될 수 있으며, 이 경우에 애플리케이션 프로그램은 다수의 메인 프로그램인 것으로 고려된다는 점을 이해해야 한다. 상기한 난수 발생기와 클럭 위상 이동회로는 임의의 특별한 제조 문제를 제기하지 않으며 본 발명과 관련되지 않은 다른 사용을 위해 별도로 분리된 때 당업자에게 알려져 있다.
또한 인터럽트를 사용하지 않는 본 발명의 제 5 단순화된 실시예를 제공하는 것도 가능하다. 메인 프로그램이 보호될 필요가 있을 때 그것은 독립적으로 2차 프로그램을 활성화시키며, 이는 각종 시퀀스를 스크램블하도록 기동 또는 실행동안 그것이 선택한 순간에 임의 길이의 프로세스를 발생한다.
본 발명의 실시예에 의한 각종 회로를 다른 도면을 참조하여 설명한다. 이에 의해, 도 7A 및 7B에 보인 난수 발생기는 예컨대, 1조의 셀(B0~B7)로 구성되고 이 셀의 각각은 D형 스위치(24)에 연결된 두 입력을 갖는 배타적 OR게이트(23)으로 형성되며, 이 때 상기 스위치의 출력(Q)은 다음 셀의 배타적 OR게이트의 두 입력중 하나에 접속된다. 상기 배타적 OR게이트의 제 2 입력은, 셀(B0) 및 (B3)에 대한, 예컨대 마지막 셀(B7)로 부터 발해지는 루프백(loop-back) 신호(25) 또는 초기 로딩을 허용하기 위해 버스(3)로부터 발해지는 데이타의 입력신호를 수신한다. 상기 마지막 셀(B7)의 출력(22)은 또한, 주기적으로 랜덤하게 가변되는 펄스신호(I)를 방출하는 출력을 구성한다. 이 신호(I)S는 도 3A에 보인 교정회로(9)에 사용되며 도 3B는 도 3A에 보인 교정회로(9)의 입출력 신호의 순서를 나타낸다. 상기 교정회로는 3개의 입력을 갖는 두개의 NAND게이트(90,91)로 형성되며, 이들의 각각은 난수 발생기(2)의 출력(22)으로부터 발해지는 신호(I)를 하나의 입력에서 수신한다. 제 1 NAND게이트(91)는 JK형의 토글의 출력(Q2)을 수신하고, 타방의 게이트(90)는 상기 토글(93)의 반전출력(NQ2)을 수신한다. 상기 토글(93)은 그의 클력 입력에서 회로의 내부 클럭을 구성하는 클럭신호 FRC를 수신한다. 이 내부 클럭은 예컨대, 도 6에 보인 회로에 의해 발생된다. 상기 토글(93)의 입력 J, K는 논리레벨 1을 나타내는 전원전압에 연결된다. 상기 내부 클럭신호 FRC는 NAND게이트(90,91)의 3입력의 각각에 반전회로(92)에 의해 보내진다. 상기 제 1 NAND게이트(90)의 출력은 제 2 논리 토글(94)을 1로 세트하기 위해 상기 입력에 연결되고, 상기 제 2 NAND게이트(90)의 출력은 제 2 토글(94)을 제로로 리셋하기 위해 상기 입력에 연결된다. 상기 제 2 토글(94)의 클럭입력 및 입력(J)은 레벨(1)을 나타내는 전원전압에 연결되고 상기 입력(K)는 레벨 제로를 나타내는 전원전압에 연결된다. 상기 제 2 토글(94)의 출력(Q1)은 링크(95)에 의해 공급된 신호 CLK2를 멀티플렉서(18)로 보낸다. 상기 내부 클럭 FRC는 링크(111)를 통해, 도 6에 보인 회로에 의해 정의되는 최소 펄스폭 Tm을 갖는 주기적 펄스 신호를 발한다. 이 회로(11)는 예컨대, 50나노초의 펄스를 출력 FRC를 얻을 수 있도록, 예컨대 10나노초 동안 확정 전파 시간을 각각 갖는 이 경우에는 5개인 직렬 인버터(111~115)로 구성된다. 상기 출력 FRC는 상기 링크(116)을 통해 제 1 인버터(111)로 귀환되며, 상기 제 1 인버터(111)의 입력도 5V의 전원전압에 의해 레지스터(117)를 통해 공급된다. 선택된 펄스폭은 50나노초이나, 인버터 게이트의 수의 변화는 값 Tm을 변화시킨다. 상기 값 Tm은, 랜덤하게 가변적인 주기의 펄스신호로부터, 그의 가변적 펄스폭이 최소치 Tm을 갖고 그의 주기도 가변적이며 외부 클럭 CLKE에 대해 비동기화되는 펄스신호 CLK2를 발생하기 위해 도 3A에 보인 논리회로(9)에 의해 도 3B에 보인 바와 같이 사용된다. 실제로, 내부 클럭은 집적회로가 통전되는 대로 기능하도록 개시되기 때문에, 상기 클럭의 초기 주기와 외부 클럭의 주기가 다를 경우, 스타트시에 클럭을 동기화시킬 기회가 없게 된다. 상기 교정기(9)로 부터의 신호는 프로세서가 내부 사이클을 실행하기에 필요한 최소 시간 Tm의 적어도 2배의 주기를 갖는다. 신호 CLK의 모든 리딩 에지는 적어도 상기 값 Tm에 의해 분리되나, 그들의 위치 및 정확한 존속기간은 랜덤하게 된다.
상기와 같은 본 발명의 변형예에 의하면, 이 변형에 의해, 메인 프로그램의 실행이, 난수 발생기와, 랜덤 클럭과, 2차 프로그램과, 랜덤 인터럽트, 또는 이들 중 적어도 2개의 조합에 따른 예측 불가능한 순서로 발생되는 것을 알 수 있다. 주 프로그램이 보안의 관점으로부터 민감하지 않은 기능을 실행할 때, 처리 시간을 최적화하기 위해 예컨대, 분리 인터럽트를 마스크하거나 또는 외부 세계로 데이타를 방출하기 위해 외부 클럭 CLKE로 되돌아갈 수 있다. 보안 기능이 실행되는 대로, 메인 프로그램(5)은, 특히 이 메인 프로그램에 관한 클럭을 비동기화하거나 또는 2차 프로그램을 호출함으로써, 각종 동작신호를 스크램블하기 위해 랜덤 클럭 또는 분리 인터럽트(또는 양자 모두)를 확정하여 임의 모드의 동작을 허가한다.
난수 발생기(2)에 있어서는, 예컨대, 상이한 주기를 갖는 루프 카운터를 사용할 수 있으며, 상기 카운터는 비휘발성 메모리(7)에 기억된 씨(seed)(정보)에 의해 초기화된다. 프로세서가 시동되면, 카운터 계수는 기억된 값을 초기치로 된다. 계산시, 또는 계산의 말기에 있어서, 비휘발성 메모리(7)은 새로운 값으로 갱신되며 이 값은 카운터의 다음의 초기화를 위한 씨(seed)로 작용한다. 인터럽트 발생 회로(4)는, 상기 인터럽트 펄스의 발생이 예컨대, 발생된 수가 소정 특성을 가질 때 프로그램의 소정 데이타와의 동일성 등을 발생하도록 설계될 수 있다. 상기 회로(4)는 또한, 하나 이상의 카운터의 하나 이상의 비트의 값을 취할 수도 있다. 또한, 전술한 씨(seed)(정보)에 의해 초기화되는 해쉬 기능 또는 도 5에 보인 바와 같이 암호화 알고리즘(69)을 사용하는 매우 양호한 난수 발생기를 제조하는 것도 가능하다. 이 경우, 상기 발생기는 프로세서(1)에 의해 실행되는 알고리즘 및 예컨대, 버퍼 레지스터(41)에 기억된 출력을 발생하기 위한 키 및 비휘발성 메모리(7)에 기억된 변수를 수취함으로써 상기 알고리즘을 실행하는 프로그램의 형태로 될 수 있다. 다음, 상기 버퍼 레지스터(41)에 기억된 출력은 프로세서(1)를 인터럽트시키기 위한 신호 또는 분리 클럭 신호 CLK2를 발생하기 위한 하드웨어 및 소프트웨어 디코딩 장치(42)에 의해 처리된다. 이 난수 발생기는 상기 각종 난수를 발생하기 위해 사용될 수 있음을 쉽게 알 수 있을 것이다. 이 형태의 발생기를 제조하기 위한 다른 방법은 소위 노이즈 다이오드의 단자에서 발생되는 전압을 증폭하고 또한 지나치게 빠른 노이즈 펄스가 동작을 방해하지 않도록 하기 위해 로패스 필터링 후 신호를 정형하는 것이다.
클럭 위상 시프트 회로에 있어서는, 전술한 것 이외의 다른 가능한 것이 있다. 예컨대, 상기 프로세서보다 10배 빠른 클럭에 의해 구동되는 시프트 레지스터가 있다. 이 레지스터는 10개의 토글을 구비하는 것으로 생각되며, 서로 다른 위상을 갖는 10개의 펄스로 행해지고, 이들은 10개의 입력과 1개의 출력을 갖는 멀티플렉서의 도움으로 프로세서에 의해 선택될 수 있다. 상기 멀티플렉서의 출력은 프로세서의 내부 클럭신호를 제공하기 위해 사용된다.
다른 실시형태는, 카운터의 상이한 레벨에서 펄스들을 추출하고, 상기한 난수발생기와 동일한 형태의 회로를 사용하는 것이다. 이 경우, 프로세서는 실제로 임의의 시간에 디스패치되는 펄스에 의해 타이밍이 맞추어진다.
다른 실시형태는, 상기 난수 발생기로부터의 신호를 사용하여 시프트 레지스터로부터 펄스를 추출하는 것이다. 이들 장치들을 구현하기 위해서는 많은 조합들이 가능하나, 본 발명의 원리들은 여전히 유효하다.
도 1에 보인 실시예의 변형예는 가장 완벽하고, 가장 명백하며, 마이크로프로세서 또는 마이크로컴퓨터 형태의 모놀리식 회로가 단지 하나 또는 수개의 또는 임의로 조합된 소자들을 사용할 수 있다.
따라서, 한 변형예에 의하면, 상기 모놀리식 회로는, 마이크로프로세서, 난수 발생기, 내부 클럭(FRC), 및 비상관 클럭을 형성하는 교정회로를 채용할 수 있다.
다른 변형예에 있어서, 상기 모놀리식 회로는, 마이크로프로세서, 난수 발생기, 내부 클럭(FRC), 및 인터럽트 발생회로를 채용할 수 있다.
다른 변형예에 있어서, 상기 모놀리식 회로는, 마이크로프로세서, 2차 프로그램과 비상관 및 교정 클럭 회로를 채용할 수 있다.
다른 변형예에 있어서, 상기 모놀리식 회로는, 마이크로프로세서, 분리 및 교정 클럭 회로, 및 인터럽트 회로를 채용할 수 있다.
상기 모놀리식 회로의 다른 변형예에 있어서, 마이크로프로세서는 마이크로컴퓨터로 대체될 수 있다.
상기 모놀리식 집적회로의 다른 변형예에 있어서, 마이크로프로세서는 특정 응용의 한정된 다수의 명령을 실행할 수 있도록 조합된 논리 소자로 대체될 수 있다. 이와 같은 경우, 집적회로에는 동일한 보안 장치들이 적용될 수 있다.
당업자들은 상기 본 발명의 정신과 범위내에서 여러가지로 변형하여 실시할 수 있을 것이며, 이들로 모두 본 발명의 범위내에 있음을 유의해야 할 것이다.

Claims (24)

  1. 집적회로의 내외 전기신호로부터 프로그램의 적어도 하나의 명령 시퀀스의 실행을 비상관적으로 분리(decorrelating)하기 위한 수단을 갖는 것을 특징으로 하는 개선된 집적회로.
  2. 제1항에 있어서,
    마이크로프로세서 또는 마이크로컴퓨터의 전기 신호가 타이밍, 동기화 또는 상태 신호인 것을 특징으로 하는 집적회로.
  3. 제1항에 있어서,
    상기 분리 수단(decorrelation means)은 임의의 시간에 공급되는 클록 또는 타이밍 펄스의 시퀀스를 발생하는 하나 이상의 회로를 구비하는 것을 특징으로 하는 집적회로.
  4. 제1항에 있어서,
    상기 분리 수단은 프로세서에 있어서 프로그램 시퀀스의 실행을 비동기화할 수 있도록 하는 난수 발생기(random number generaror)를 구비하는 것을 특징으로 하는 집적회로.
  5. 제4항에 있어서,
    상기 분리 수단은 너무 짧은 타이밍 펄스를 제거할 수 있는 클럭 교정 회로를 구비하는 것을 특징으로 하는 개선된 집적회로.
  6. 제1항에 있어서,
    상기 분리 수단은 랜덤 인터럽트 발생 시스템을 구비하는 것을 특징으로 하는 집적회로.
  7. 제1항에 있어서,
    상기 분리 수단은 명령과 실행 시간이 상이하고 랜덤하게 선택되는 제 2 시퀀스의 실행을 포함하는 것을 특징으로 하는 집적회로.
  8. 제7항에 있어서,
    상기 제 2 프로세스의 가변 시간이 난수 발생기에 의해 공급되는 값에 의존하는 것을 특징으로 하는 집적회로.
  9. 제7항에 있어서,
    상기 제 2 프로세스는 메인 프로그램의 전체적인 연산 문맥을 변경시키지 않으며, 이에 따라 상기 문맥을 재설정하지 않고 메인 프로그램으로 리턴시킬 수 있도록 하는 것을 특징으로 하는 집적회로.
  10. 제7항에 있어서,
    상기 제 2 프로세스는 프로세서의 제어를 리턴하기 전에 메인 프로그램의 문맥을 재설정하는 것을 특징으로 하는 집적회로.
  11. 제1항에 있어서,
    상기 메인 프로그램은 하나 이상의 분리 수단을 인에이블 또는 디스에이블 시킬 수 있는 것을 특징으로 하는 집적회로.
  12. 제1항에 있어서,
    상기 프로세스의 타이밍, 동기화 또는 상태신호를 위상 시프트시키기 위한 수단을 갖는 것을 특징으로 하는 집적회로.
  13. 제12항에 있어서,
    상기 위상 시프트 수단은 상기 프로세스의 타이밍, 동기화 또는 상태신호의 랜덤한 위상 시프트를 발생하는 것을 특징으로 하는 집적회로.
  14. 제13항에 있어서,
    상기 랜덤 위상 시프트 수단은 프로그램의 실행시 외부 클럭으로 부터의 프로세서의 동작을 부분적으로 또는 전체적으로 비동기화하는 것을 특징으로 하는 집적회로.
  15. 제4항에 있어서,
    상기 난수 발생기는 루프화되거나 루프화되지 않을 수 있고, 또한 임의의 치로 초기화되는 카운터를 사용하는 것을 특징으로 하는 집적회로.
  16. 제15항에 있어서,
    상기 초기화 치는 비휘발성 메모리로부터 인가되는 것을 특징으로 하는 집적회로.
  17. 제16항에 있어서,
    상기 초기화 치는 프로그램의 실행시 변경되는 것을 특징으로 하는 집적회로.
  18. 제15항에 있어서,
    상기 난수 발생기는 초기화 치로 초기화되는 해시(hash) 함수 또는 암호화 형태의 알고리즘을 사용하는 것을 특징으로 하는 집적회로.
  19. 제1항에 있어서,
    상기 시간들에 있어서의 동작 계수의 시퀀스는 각종 레지스터, 메모리 및 내부 소자를 액세스하기 위해 필요한 시간의 요소임은 물론, 특히 버스 및 각종 논리 회로를 통한 신호 전파 시간의 요소인 것을 특징으로 하는 집적회로.
  20. 상기 집적회로의 내외 전기신호로부터 프로그램의 적어도 하나의 명령 시퀀스의 실행을 비상관적으로 분리하는 수단을 갖는 집적회로를 사용하기 위한 방법에 있어서,
    랜덤 펄스 클럭의 도움으로 하나 이상의 명령 또는 연산의 시퀀스를 트리거하는 스텝;
    인터럽트 시퀀스를 랜덤하게 트리거하는 스텝;
    주 시퀀스의 명령 또는 연산의 실행시 명령 또는 연산의 랜덤한 시퀀스의 처리를 트리거하는 스텝; 또는
    상기 스텝들 중 적어도 두개의 스텝을 결합하는 이루어지는 스텝을 포함하는 것을 특징으로 하는 집적회로를 사용하기 위한 방법.
  21. 적어도 하나의 프로그램에 의해 제어되는 마이크로프로세서 및 상기 프로그램 명령실행시의 시퀀스를 분리하기 위한 수단을 구비하며, 상기 프로그램의 일부가 상기 분리 수단의 동작을 허가, 변경 또는 디스에이블 할 수 있는 것을 특징으로 하는 집적회로.
  22. 제21항에 있어서,
    상기 분리 수단은, 제 2 시퀀스의 실행을 트리거하기 위한 수단 또는 랜덤하게 인터럽트를 발생하기 위한 수단과 결합되고, 임의의 시간에 공급되는 일련의 클럭펄스, 또는 타이밍 신호를 발생하기 위한 수단을 구비하는 것을 특징으로 하는 집적회로.
  23. 명령을 실행하기 위한 수단 또는 마이크로프로세서를 구비하는 집적회로로서, 상기 명령을 실행하기 위한 수단 또는 마이크로프로세서의 타이밍을 위해 클럭을 선택하기 위한 수단을 구비하고, 상기 선택 수단은 집적회로 외부의 클럭 CLKE 또는 임의의 클럭 CLK2 또는 F중 어느 일방을 선택할 수 있도록 하는 것을 특징으로 하는 집적회로.
  24. 제23항에 있어서,
    상기 임의의 클럭은 내부 클럭(FRC) 또는 외부 클럭(CLKE)이 인가되는 난수 발생기로부터 발생되는 것을 특징으로 하는 집적회로.
KR1019970707908A 1996-03-07 1997-03-07 개선된집적회로및그의사용방법 KR100463814B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR96-02903 1996-03-07
FR9602903A FR2745924B1 (fr) 1996-03-07 1996-03-07 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre

Publications (2)

Publication Number Publication Date
KR19990008381A true KR19990008381A (ko) 1999-01-25
KR100463814B1 KR100463814B1 (ko) 2005-05-27

Family

ID=9489969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970707908A KR100463814B1 (ko) 1996-03-07 1997-03-07 개선된집적회로및그의사용방법

Country Status (15)

Country Link
US (1) US5944833A (ko)
EP (1) EP0826169B1 (ko)
JP (2) JP3713515B2 (ko)
KR (1) KR100463814B1 (ko)
CN (1) CN1236370C (ko)
AR (1) AR006138A1 (ko)
AU (1) AU725888B2 (ko)
BR (1) BR9702118A (ko)
CA (1) CA2221880C (ko)
DE (1) DE69717028T2 (ko)
FR (1) FR2745924B1 (ko)
HK (1) HK1009684A1 (ko)
NO (1) NO317448B1 (ko)
TW (1) TW491978B (ko)
WO (1) WO1997033217A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150142623A (ko) * 2014-06-12 2015-12-22 나그라비젼 에스에이 안전하게 메시지를 교환하기 위한 방법, 이 방법을 구현하기위한 장치 및 시스템

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2557399A (en) 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
TW380344B (en) * 1998-02-04 2000-01-21 Admtek Co Multiple output single crystal device for not generating simultaneous switch output
ES2660057T3 (es) * 1998-05-18 2018-03-20 Giesecke + Devrient Mobile Security Gmbh Soporte de almacenamiento de datos de acceso protegido
EP1090480B1 (en) 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
EP1926241A3 (en) * 1998-06-03 2009-03-11 Cryptography Research Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
EP1084543B1 (en) 1998-06-03 2008-01-23 Cryptography Research Inc. Using unpredictable informaion to minimize leakage from smartcards and other cryptosystems
AU5458199A (en) 1998-07-02 2000-01-24 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
DE19834076A1 (de) * 1998-07-29 2000-02-10 Philips Corp Intellectual Pty Anordnung zur elektronischen Verarbeitung von Datensignalen
KR100672097B1 (ko) 1998-07-31 2007-01-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 처리 장치 및 데이터 처리 장치용 회로
US6046616A (en) * 1998-08-07 2000-04-04 Tritech Microelectronics, Ltd. Two dimensional random pulse generator
DE19837808A1 (de) * 1998-08-20 2000-02-24 Orga Kartensysteme Gmbh Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
DE59912804D1 (de) * 1998-09-30 2005-12-22 Philips Intellectual Property Datenverarbeitungseinrichtung und verfahren zu dessen betrieb zum verhindern einer differentiellen stromverbrauchanalyse
FR2784763B1 (fr) * 1998-10-16 2001-10-19 Gemplus Card Int Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees
US6408075B1 (en) 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
JP4317607B2 (ja) 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
FR2787900B1 (fr) * 1998-12-28 2001-02-09 Bull Cp8 Circuit integre intelligent
IL128007A (en) * 1999-01-11 2003-02-12 Milsys Ltd Enhancements on compact logic devices and also for accelerating and securing computations in modular arithmetic especially for use in public key cryptographic co-processors designed for elliptic curve and rsa type computations
FR2790347B1 (fr) * 1999-02-25 2001-10-05 St Microelectronics Sa Procede de securisation d'un enchainement d'operations realisees par un circuit electronique dans le cadre de l'execution d'un algorithme
DE19911673A1 (de) * 1999-03-09 2000-09-14 Deutsche Telekom Ag Verfahren und Anordnung für den Schutz der Daten auf einer Smartcard
JP3827050B2 (ja) * 1999-03-09 2006-09-27 株式会社ルネサステクノロジ Icカードと半導体集積回路装置
FR2793571B1 (fr) * 1999-05-11 2003-10-31 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique
FR2793904B1 (fr) * 1999-05-21 2001-07-27 St Microelectronics Sa Procede et dispositif de gestion d'un circuit electronique
JP2001094550A (ja) * 1999-09-17 2001-04-06 Toshiba Corp 信号処理装置
UA72944C2 (uk) * 1999-12-02 2005-05-16 Інфінеон Текнолоджіз Аг Мікропроцесорний пристрій з кодуванням
FR2802669B1 (fr) * 1999-12-15 2002-02-08 St Microelectronics Sa Procede non deterministe de transfert securise de donnees
DE10000503A1 (de) * 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
EP2352120B1 (en) * 2000-01-13 2016-03-30 Digimarc Corporation Network-based access to auxiliary data based on steganographic information
ATE249664T1 (de) * 2000-01-18 2003-09-15 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung
FR2807591B1 (fr) * 2000-04-06 2003-08-08 Gemplus Card Int Procede de contre-mesure pour un micro-controleur base sur une architecture avec "pipeline"
FR2808360B1 (fr) * 2000-04-28 2002-06-28 Gemplus Card Int Procede de contre mesure dans un microcircuit mettant en oeuvre le procede et carte a puce comportant ledit microcircuit
DE50010164D1 (de) * 2000-05-22 2005-06-02 Infineon Technologies Ag Sicherheits-Datenverarbeitungseinheit sowie dazugehöriges Verfahren
FR2818772A1 (fr) * 2000-12-21 2002-06-28 Bull Cp8 Procede de securisation d'un operateur logique ou mathematique implante dans un module electronique a microprocesseur, ainsi que le module electronique et le systeme embarque associes
FR2818766A1 (fr) * 2000-12-21 2002-06-28 Bull Cp8 Procede de securisation de l'execution d'un programme implante dans un module electronique a microprocesseur, ainsi que le module electronique et la carte a microcircuit associes
US9323955B2 (en) * 2000-12-21 2016-04-26 Gemalto Sa Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system
FR2819070B1 (fr) * 2000-12-28 2003-03-21 St Microelectronics Sa Procede et dispositif de protection conte le piratage de circuits integres
DE10101956A1 (de) * 2001-01-17 2002-07-25 Infineon Technologies Ag Verfahren zur Erhöhung der Sicherheit einer CPU
US7197160B2 (en) 2001-03-05 2007-03-27 Digimarc Corporation Geographic information systems using digital watermarks
DE10128573A1 (de) * 2001-06-13 2003-01-02 Infineon Technologies Ag Verhindern der unerwünschten externen Erfassung von Operationen in integrierten Digitalschaltungen
JP4173297B2 (ja) * 2001-09-13 2008-10-29 株式会社ルネサステクノロジ メモリカード
EP1293856A1 (fr) 2001-09-18 2003-03-19 EM Microelectronic-Marin SA Circuit Intégré sécurisé comprenant des parties à caractère confidentiel, et procédé pour sa mise en action
FR2832824A1 (fr) * 2001-11-28 2003-05-30 St Microelectronics Sa Blocage du fonctionnement d'un circuit integre
EP1486026A1 (en) * 2002-03-07 2004-12-15 Axalto SA Method for making safe an electronic cryptography assembly with a secret key
DE10213142A1 (de) 2002-03-23 2003-10-02 Clariant Gmbh Stabile Dispersionskonzentrate
FR2844896A1 (fr) * 2002-09-19 2004-03-26 St Microelectronics Sa Alimentation d'un circuit de traitement asynchrone de donnees
DE10254657A1 (de) * 2002-11-22 2004-06-03 Philips Intellectual Property & Standards Gmbh Mikrocontroller und zugeordnetes Verfahren zum Abarbeiten der Programmierung des Mikrocontrollers
GB2406684B (en) * 2002-12-12 2005-08-24 Advanced Risc Mach Ltd Processing activity masking in a data processing system
US7373463B2 (en) * 2003-02-13 2008-05-13 Stmicroelectronics S.A. Antifraud method and circuit for an integrated circuit register containing data obtained from secret quantities
DE10310781A1 (de) * 2003-03-12 2004-09-30 Infineon Technologies Ag Verfahren zum Betreiben eines Mikroprozessors und eine Mikroprozessoranordnung
US6926768B2 (en) 2003-04-14 2005-08-09 Sun Chemical Corporation Treatment of high performance pigments
US8065532B2 (en) * 2004-06-08 2011-11-22 Hrl Laboratories, Llc Cryptographic architecture with random instruction masking to thwart differential power analysis
US20060002479A1 (en) * 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
US8953908B2 (en) 2004-06-22 2015-02-10 Digimarc Corporation Metadata management and generation using perceptual features
TWI251837B (en) * 2004-10-13 2006-03-21 Via Tech Inc Method and related apparatus for adjusting timing of memory signals
US7702942B2 (en) * 2005-09-12 2010-04-20 Northern Lights Semiconductor Corp. Method for generating adjustable MRAM timing signals
US7372290B2 (en) * 2005-10-04 2008-05-13 Stmicroelectronics, Inc. System and method for using dummy cycles to mask operations in a secure microcontroller
JP2007128184A (ja) * 2005-11-01 2007-05-24 Sharp Corp 消費電力解析対策機能付き半導体装置
US7647486B2 (en) * 2006-05-02 2010-01-12 Atmel Corporation Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode
FR2910658B1 (fr) * 2006-12-22 2009-02-20 Trusted Logic Sa Systemes electroniques securises,procedes de securisation et utilisations de tels systemes
FR2925968B1 (fr) * 2007-12-26 2011-06-03 Ingenico Sa Procede de securisation d'un microprocesseur, programme d'ordinateur et dispositif correspondants
CN102725737B (zh) 2009-12-04 2016-04-20 密码研究公司 可验证防泄漏的加密和解密
US8659954B1 (en) * 2011-09-14 2014-02-25 Adesto Technologies Corporation CBRAM/ReRAM with improved program and erase algorithms
US9141809B2 (en) 2012-07-23 2015-09-22 Qualcomm Incorporated Method and apparatus for deterring a timing-based glitch attack during a secure boot process
JP6323065B2 (ja) * 2014-02-26 2018-05-16 セイコーエプソン株式会社 マイクロコンピューター及び電子機器
EP3147774A1 (fr) * 2015-09-25 2017-03-29 Gemalto Sa Generateur d'horloge aleatoire
TWI638298B (zh) 2015-12-31 2018-10-11 禾瑞亞科技股份有限公司 觸控方法、觸控處理系統與電子裝置
US10579197B2 (en) 2015-12-31 2020-03-03 Egalax_Empia Technology Inc. Touch sensitive processing method
DE102017114526A1 (de) * 2017-06-29 2019-01-03 Hanon Systems Verfahren zur Ansteuerung von Leistungshalbleitern in einem Inverter
US20190097785A1 (en) * 2017-09-27 2019-03-28 Silicon Laboratories Inc. Apparatus for Clock-Frequency Variation in Electronic Circuitry and Associated Methods
CN109245883A (zh) * 2018-09-21 2019-01-18 深圳市德名利电子有限公司 一种随机数发生器及随时数产生方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4125763A (en) * 1977-07-15 1978-11-14 Fluke Trendar Corporation Automatic tester for microprocessor board
JPS5857778B2 (ja) * 1978-12-08 1983-12-21 カシオ計算機株式会社 乱数の初期値設定方式
JPS58114134A (ja) * 1981-12-28 1983-07-07 Hitachi Electronics Eng Co Ltd 乱数発生器
JPS62237592A (ja) * 1986-04-08 1987-10-17 Casio Comput Co Ltd Icカ−ドにおけるクロツク切換方式
CA2037857C (en) * 1990-03-20 2001-01-16 Roy Allen Griffin, Iii Prevention of determination of time of execution of predetermined data processing routine in relation to occurrence of prior observable external event
US5249294A (en) * 1990-03-20 1993-09-28 General Instrument Corporation Determination of time of execution of predetermined data processing routing in relation to occurrence of prior externally observable event
JPH04199234A (ja) * 1990-11-26 1992-07-20 Nagano Oki Denki Kk プログラムテスト方式
JP2757714B2 (ja) * 1992-09-03 1998-05-25 日本電気株式会社 フレームパルス生成回路
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150142623A (ko) * 2014-06-12 2015-12-22 나그라비젼 에스에이 안전하게 메시지를 교환하기 위한 방법, 이 방법을 구현하기위한 장치 및 시스템

Also Published As

Publication number Publication date
HK1009684A1 (en) 1999-09-10
CA2221880A1 (fr) 1997-09-12
NO317448B1 (no) 2004-11-01
JPH10507561A (ja) 1998-07-21
FR2745924A1 (fr) 1997-09-12
AU725888B2 (en) 2000-10-26
FR2745924B1 (fr) 1998-12-11
AR006138A1 (es) 1999-08-11
DE69717028D1 (de) 2002-12-19
KR100463814B1 (ko) 2005-05-27
DE69717028T2 (de) 2003-05-08
CN1236370C (zh) 2006-01-11
CA2221880C (fr) 2006-05-09
EP0826169A1 (fr) 1998-03-04
JP3713515B2 (ja) 2005-11-09
JP4015811B2 (ja) 2007-11-28
US5944833A (en) 1999-08-31
EP0826169B1 (fr) 2002-11-13
AU2031497A (en) 1997-09-22
NO975116L (no) 1998-01-06
CN1181823A (zh) 1998-05-13
BR9702118A (pt) 1999-01-26
TW491978B (en) 2002-06-21
NO975116D0 (no) 1997-11-06
JP2001296935A (ja) 2001-10-26
WO1997033217A1 (fr) 1997-09-12

Similar Documents

Publication Publication Date Title
KR100463814B1 (ko) 개선된집적회로및그의사용방법
US11308217B2 (en) Randomized execution countermeasures against fault injection attacks during boot of an embedded device
US8046574B2 (en) Secure boot across a plurality of processors
US7779273B2 (en) Booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7774616B2 (en) Masking a boot sequence by providing a dummy processor
US8046573B2 (en) Masking a hardware boot sequence
US5576650A (en) Reset circuit of electronic device
EP0721157A1 (en) Microprocessor with selectable clock frequency
KR100578459B1 (ko) 예측 불가능 마이크로프로세서 또는 마이크로컴퓨터
US20070288739A1 (en) System and method for masking a boot sequence by running different code on each processor
JP3904472B2 (ja) 1又は複数のクロック信号から出力信号を選択的に生成するための回路
US8732806B2 (en) Method and system for hardware enforced virtualization in an integrated circuit
JP3827050B2 (ja) Icカードと半導体集積回路装置
US6477658B1 (en) Microprocessor with variable clock operation
US5224103A (en) Processing device and method of programming such a processing device
JP3788881B2 (ja) Icカードと半導体集積回路装置
US20030120941A1 (en) Apparatus for protecting code ROM data in code ROM test
US20230069651A1 (en) Processing device and method for secured boot
JP6516097B2 (ja) 演算装置、icカード、演算方法、及び演算処理プログラム
KR0157925B1 (ko) 시스템의 리세트 시간 가변 장치

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: 20121203

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131209

Year of fee payment: 10

EXPY Expiration of term