JP2002526822A - Apparatus for providing a security processing environment - Google Patents

Apparatus for providing a security processing environment

Info

Publication number
JP2002526822A
JP2002526822A JP2000572741A JP2000572741A JP2002526822A JP 2002526822 A JP2002526822 A JP 2002526822A JP 2000572741 A JP2000572741 A JP 2000572741A JP 2000572741 A JP2000572741 A JP 2000572741A JP 2002526822 A JP2002526822 A JP 2002526822A
Authority
JP
Japan
Prior art keywords
information
memory
key
decrypted
processor
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2000572741A
Other languages
Japanese (ja)
Inventor
カサニョール、ロバート・ディー
ディロン、ダグラス・エム
クロパー、デビッド・エス
ウエーバー、サンドラ・ジェイ
バウツ、ブランドン・イー
Original Assignee
ヒューズ・エレクトロニクス・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヒューズ・エレクトロニクス・コーポレーション filed Critical ヒューズ・エレクトロニクス・コーポレーション
Publication of JP2002526822A publication Critical patent/JP2002526822A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 機密保持された処理環境を提供する装置が開示されている。1実施形態において、装置は暗号化された情報を記憶するための読取り/書込みメモリを含んでいる。それはまた、プロセッサ、暗号化装置および認証装置を含んでいる。暗号化装置は読取り/書込みメモリと通信しており、それらから暗号化された情報を受取って、この暗号化された情報を解読された情報にするように構成されており、この解読された情報がプロセッサによる後続的な使用のためにメモリに戻される。認証装置は、解読された情報をプロセッサが使用する前に認証し、この情報を暗号化装置が再度暗号化前に再度認証する。 (57) Abstract An apparatus for providing a secure processing environment is disclosed. In one embodiment, the device includes a read / write memory for storing the encrypted information. It also includes a processor, an encryption device and an authentication device. The encryption device is in communication with the read / write memory and is configured to receive encrypted information therefrom and convert the encrypted information into decrypted information. Is returned to memory for subsequent use by the processor. The authentication device authenticates the decrypted information before it is used by the processor, and authenticates this information again before the encryption device encrypts it again.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】TECHNICAL FIELD OF THE INVENTION

本発明は、一般にプログラムされたデバイスのセキュリティに関し、とくに、
機密データならびにソフトウェア等の機密プログラムステップの少なくとも一方
を処理するための機密保持された環境を提供する装置に関する。
The present invention relates generally to the security of programmed devices, and in particular,
Apparatus for providing a secure environment for processing confidential data and / or confidential program steps such as software.

【従来の技術】[Prior art]

データおよびプログラムされた命令(たとえば、ソフトウェア)の少なくとも
一方の値段は、関心を持った大衆が一般的に入手できる可能性に依存しているこ
とが多い。たとえば、データまたはプログラムされた命令の形態の情報がインタ
ーネット上で無料で入手できるようにされている場合、無料で容易に入手できる
ものにお金を払う者はほとんどいないため、その情報の市場価格はゼロにむかっ
て急落する。したがって、機密情報の代金を支払った購入者以外のすべてに関し
てデータおよびプログラムされた命令の少なくとも一方のセキュリティを維持す
ることが望ましいことが以前から知られている。
The price of data and / or programmed instructions (eg, software) often depends on the general availability of the interested public. For example, if information in the form of data or programmed instructions is made available free of charge on the Internet, few people pay for what is readily available for free, so the market price of that information is Plummets to zero. Accordingly, it has long been known to be desirable to maintain security of data and / or programmed instructions for all but the purchaser who paid for sensitive information.

【0002】 情報へのアクセスを制限することによってその情報から派生する価値の概念
が活用されている多数の状況が存在する。たとえば、ケーブルテレビジョンネッ
トワークのような条件付きアクセス放送ネットワークや、近年では直接衛星放送
ネットワークが代金を支払っている加入者に対して放送された情報へのアクセス
を制限するという前提に基づいている。最近は、放送されたデータへのアクセス
を制限するという考えが、ヒューズ・ネットワーク・システムズ社のディレクP
C(商標名)プロダクトによってコンピュータネットワーキング状況に拡張され
ている。このディレクPC(商標名)プロダクトは、インターネットからの情報
配信を促進するための手段として衛星を介して要求された情報を要求したコンピ
ュータデバイス(代表的に、パーソナルコンピュータ)に放送する。
There are a number of situations where the concept of value derived from information by limiting access to the information is exploited. For example, it is based on the premise that conditional access broadcast networks such as cable television networks, and in recent years direct satellite broadcast networks restrict access to broadcasted information to paying subscribers. Recently, the idea of restricting access to broadcast data has been raised by Hugh Network Systems, Inc.
The C (TM) product has been extended to the computer networking context. The DirectPC (trade name) product broadcasts the requested information via a satellite to the requesting computer device (typically, a personal computer) as a means for promoting information distribution from the Internet.

【0003】 このような放送システムのほとんどが、放送された情報へのアクセスを制御
するために1以上の暗号技術を使用している。たとえば、このようなシステムの
ほとんどが放送されたデータを数学的アルゴリズムに基づいて暗号化するために
1以上のキーを使用しており、この数学的アルゴリズムのために、データを暗号
化するために使用されたキーの知識がなければ、相当の時間を費やさない限り、
データの解読は非常に難しいものとなっている。ここにおいて、文献全体が参考
文献とされている文献(Schneier,Applied Cryptography,(Second Ed.1996))に
は、放送された情報を暗号化するために頻繁に使用されているデータ暗号化規格
(DES)アルゴリズムの説明を含む多数のこのような暗号技術の説明が含まれ
ている。
[0003] Most such broadcast systems use one or more encryption techniques to control access to the broadcasted information. For example, most of such systems use one or more keys to encrypt broadcast data based on a mathematical algorithm, and this mathematical algorithm uses Without knowledge of the keys used, unless you spend a considerable amount of time,
Decryption of the data has been very difficult. Here, the literature (Schneier, Applied Cryptography, (Second Ed. 1996)) in which the entire literature is referred to is a data encryption standard (Frequently used for encrypting broadcast information). A description of many such cryptographic techniques is included, including a description of the (DES) algorithm.

【0004】 情報のセキュリティを保護する必要性は、放送環境だけに制限されない。た
とえば、商業的観点から、パーソナルコンピュータによって局所的に処理される
ために情報の機密性を維持することが重要な多くの応用が存在する。たとえば、
いくつかの適用では、機密データの処理を許す一方で外界に対するそのデータの
セキュリティを維持することが望ましい。これは一例に過ぎず、それに限定され
るものではない。別の例をあげると、いくつかの例において、プログラムされた
命令(たとえば、ソフトウェア)のプロセッサ内における機密保持された実行が
、解読された命令自身へのそのプロセッサ外からのアクセスを許さずに可能であ
ることが望ましい。
[0004] The need to protect information security is not limited to the broadcast environment alone. For example, from a commercial perspective, there are many applications where it is important to maintain the confidentiality of information because it is processed locally by a personal computer. For example,
In some applications, it is desirable to allow processing of sensitive data while maintaining the security of that data with respect to the outside world. This is merely an example and is not limiting. To give another example, in some instances, secure execution of a programmed instruction (eg, software) within a processor may prevent access to the decrypted instruction itself from outside the processor. Preferably it is possible.

【0005】 情報のセキュリティを維持するための種々のデバイスが開発されている。し
かしながら、これらのデバイスによって保護された機密情報には非常に高い商業
価値があることが多いため、一般に“ハッカー”と呼ばれる者達の侵入技術(sub
-culture) も発達してきている。このような者達は、機密情報の商業価値を奪取
(usurp) するためにかなりの時間を費やしてこれらのデバイスのセキュリティ手
段を打破または“ハック”しようとする。ハッカーがこうした行為に成功するレ
ベルは多様である。したがって、ハッカーに対して既知のデバイスより高いレベ
ルのセキュリティを実現する、情報処理用の機密環境を提供するための改善され
たもっとフレキシブルな装置が必要とされている。さらに、機密デバイスに固有
のメモリ制限を克服し、そのソフトウェアがフィールドでアップグレードされる
ことのできる装置が必要である。
[0005] Various devices have been developed for maintaining information security. However, the confidential information protected by these devices is often of very high commercial value, and is often used by intrusion techniques (sub), commonly referred to as "hackers".
-culture) is also evolving. These individuals have taken the commercial value of confidential information
They spend a significant amount of time trying to break or “hack” the security measures of these devices. Hackers have varying degrees of success in performing these actions. Therefore, there is a need for an improved and more flexible apparatus for providing a secure environment for information processing that provides a higher level of security for hackers than known devices. Further, there is a need for a device that overcomes the memory limitations inherent in sensitive devices and whose software can be upgraded in the field.

【0006】 機密は完全にシステムのキーの中に存在しなければならないことは一般に認
められている暗号方式のよく知られた前提である。換言すると、機密と考えられ
るデバイスについて、キー以外のシステムに関する全情報にアクセスしたアタッ
カーが妥当な時間内に暗号化された情報を解読することが不可能でなければなら
ない。したがって、キー材料のセキュリティは、機密環境を提供するデバイスに
おいて最も重要である。
[0006] It is a well-known assumption of generally accepted cryptography that confidentiality must exist entirely within the key of the system. In other words, for a device that is considered confidential, it must be impossible for an attacker who has access to all information about the system except the key to decrypt the encrypted information in a reasonable amount of time. Therefore, key material security is of paramount importance in devices that provide a secure environment.

【0007】 そのため、一般に、情報の暗号化、解読およびそのセキュリティの維持の少
なくとも1つを行うためのデバイスは、キー材料およびその他の、恐らく高度の
機密にかかわるデータを記憶するあるタイプの機密メモリを含んでいる。そのキ
ー材料へのアクセスを制御するために、機密メモリへのアクセスを信頼できるソ
フトウェアおよびハードウェアコンポーネントの少なくとも一方に制限すること
が要求されることが多い。とくに、キー材料を記憶しているメモリがアドレスさ
れることのできる時機、人物、および環境を制限することがしばしば必要である
[0007] Thus, in general, devices for at least one of encrypting, decrypting, and maintaining the security of information comprise a type of sensitive memory that stores keying material and other possibly highly sensitive data. Contains. To control access to the keying material, it is often required to restrict access to the sensitive memory to trusted software and / or hardware components. In particular, it is often necessary to limit the times, persons, and environments in which the memory storing the key material can be addressed.

【発明が解決しようとする課題】[Problems to be solved by the invention]

メモリへのアクセスの制限に関する1つの問題は、試験可能なことである。別
の問題は、工場での初期プログラミングを依然として許しながらフィールド配備
ユニットへのアクセスを制限することである。デバイスをフィールドに解放する
前にメモリが適切に機能することを検査するために、メモリへの完全読取り/書
込みアクセスを行うことがしばしば要求される。さらに、このようなアクセスは
典型的に、デバイスが完全に、あるいはほぼ完全に構成された後で行われなけれ
ばならない。その結果、このようなデバイスはしばしば試験モードを含み、この
モードにおいて、デバイスは、ある状態または事象の発生時にそれが試験モード
中であると判断し、メモリへの全読取り/書込みアクセスを許す。ハッカーがキ
ー材料を含むデバイスを騙して、これを試験モードにすることができれば、記憶
されたキー材料に対してまともにアクセスすることが可能となり、それによって
デバイスのセキュリティは完全に危険にさらされる。
One problem with restricting access to memory is that it can be tested. Another problem is to limit access to field deployment units while still allowing initial programming at the factory. It is often required to have full read / write access to the memory to check that the memory is working properly before releasing the device into the field. Further, such access typically must occur after the device is fully or almost fully configured. As a result, such devices often include a test mode, in which the device determines that it is in test mode when a certain state or event occurs, and allows full read / write access to the memory. If a hacker can trick a device containing key material and put it into test mode, it will have decent access to the stored key material, thereby completely jeopardizing the security of the device .

【0008】 いくつかの従来技術の方法において、メモリ、またはアンチヒューズデバイ
ス等に記憶された1以上のモードビットは、そのメモリが機密データを含んでい
るか否か、およびそのメモリが試験モード中であるか否かの少なくとも一方を規
定する。このモードビットは、メモリ中のデータ上の簡単なチェックサムとして
構成されてもよい。換言すると、モードビットは、メモリに記憶されたあるデー
タまたは全データのある数学的関数に等しく設定されてもよい。モードビットを
規定するために伝統的な方法のどれを使用しても、ハッカーがモードビットの状
態を変更すれば、メモリを試験モードにさせることが可能となり、それによって
メモリが含んでいるキー材料は完全に危険にさらされる。したがって、メモリに
記憶されたモードビットまたはメモリに記憶されたチェックサム値に依存しない
、機密データをそのメモリが含んでいるか否かを判断して決定するための改善さ
れた方法および装置を提供することが望ましい。
In some prior art methods, one or more mode bits stored in a memory, or an anti-fuse device, etc., indicate whether the memory contains sensitive data, and whether the memory is in a test mode. At least one of them is specified. This mode bit may be configured as a simple checksum on the data in memory. In other words, the mode bits may be set equal to some data stored in memory or some mathematical function of all data. Using any of the traditional methods for defining mode bits, if a hacker changes the state of the mode bits, it is possible to put the memory into a test mode, whereby the key material that the memory contains Is completely at risk. Thus, there is provided an improved method and apparatus for determining and determining whether sensitive memory is contained in the memory, independent of the mode bits stored in the memory or the checksum value stored in the memory. It is desirable.

【課題を解決するための手段】[Means for Solving the Problems]

本発明の特徴によると、機密処理環境を提供するための装置が提供される。装
置は、情報を記憶するための読取り/書込みメモリと、この読取り/書込みメモ
リと共同し、そこから情報を読取ると共にそこに情報を書込むための第1のプロ
セッサと、読取り/書込みメモリと通信する暗号化装置とを含んでいる。この暗
号化装置は、暗号化された情報を選択的に解読して解読された情報を生成し、こ
の解読された情報を第1のプロセッサによる後続的な使用のために読取り/書込
みメモリに供給するように構成されている。さらに、装置は、解読された情報を
プロセッサが使用する前に認証する認証装置を具備している。
According to a feature of the present invention, there is provided an apparatus for providing a secure processing environment. The apparatus communicates with a read / write memory for storing information, a first processor for cooperating with the read / write memory, reading information therefrom and writing information thereto, and a read / write memory. Encryption device. The encryption device selectively decrypts the encrypted information to generate decrypted information and provides the decrypted information to a read / write memory for subsequent use by a first processor. It is configured to Further, the device includes an authentication device that authenticates the decrypted information before the processor uses it.

【0009】 いくつかの実施形態において、認証装置は読取り/書込みメモリから受取っ
た解読された情報を再度認証し、暗号化装置はこの解読された再度認証された情
報を再度暗号化された情報に選択的に暗号化するように構成されている。このよ
うな実施形態において、暗号化装置は随意に、再度暗号化された情報を読取り/
書込みメモリに戻して、その後に記憶デバイスにエクスポートしてもよいし、あ
るいは随意に再度暗号化された情報を直接エクスポートしてもよい。また、この
ような実施形態において、暗号化装置は、解読された再度認証された情報を再度
暗号化し、結果的にそれが修正情報をマスクするように元の暗号化された形態と
は異なっていることが好ましい。このような実施形態では、暗号化装置は修正情
報をマスクするためにキーサイクリングおよび、またはホワイトニングキーのサ
イクリングを使用する。
In some embodiments, the authentication device re-authenticates the decrypted information received from the read / write memory, and the encryption device converts the decrypted re-authenticated information into the re-encrypted information. It is configured to selectively encrypt. In such embodiments, the encryption device optionally reads / re-encrypts the re-encrypted information.
It may be returned to the write memory and subsequently exported to the storage device, or optionally directly again to the encrypted information. Also, in such an embodiment, the encryption device may re-encrypt the decrypted re-authenticated information, thus resulting in a mask different from the original encrypted form such that it masks the modified information. Is preferred. In such embodiments, the encryption device uses key cycling and / or whitening key cycling to mask the modification information.

【0010】 いくつかの実施形態では、解読された情報を再度暗号化する前に再度認証す
るために使用される認証データは、後で解読された情報の認証時に使用するため
に読取り/書込みメモリに記憶される。
In some embodiments, the authentication data used to re-authenticate the decrypted information before re-encrypting it is read / write memory for later use in authenticating the decrypted information. Is stored.

【0011】 いくつかの実施形態では、第1のプロセッサはカーネル(核)動作モードお
よびユーザ動作モードを有しており、カーネルモードおよびユーザモードは別々
のセキュリティセルを規定している。このような実施形態において、第1のプロ
セッサは、ユーザ動作モードで非機密ソフトウェアを実行し、カーネル動作モー
ドで機密ソフトウェアを実行することが好ましい。
[0011] In some embodiments, the first processor has a kernel (core) operating mode and a user operating mode, wherein the kernel mode and the user mode define separate security cells. In such an embodiment, the first processor preferably executes the non-secure software in the user operation mode and executes the confidential software in the kernel operation mode.

【0012】 いくつかの実施形態において、装置は第2のプロセッサを具備している。第
2のプロセッサは、暗号化装置および読取り/書込みメモリと通信し、それによ
って読取り/書込みメモリに記憶された情報の選択的な解読および再暗号化を開
始する。このようないくつかの実施形態では、暗号化装置は認証装置を含んでい
る。
[0012] In some embodiments, the apparatus comprises a second processor. The second processor communicates with the encryption device and the read / write memory, thereby initiating selective decryption and re-encryption of the information stored in the read / write memory. In some such embodiments, the encryption device includes an authentication device.

【0013】 いくつかの実施形態において、装置はさらに、不揮発性メモリと、この不揮
発性メモリに含まれているデータへのアクセスを制御するための論理回路とを具
備し、論理回路が不揮発性メモリに選択的にアクセスし、アクセスされたデータ
に固有のプロパティを解析することによって不揮発性メモリに含まれているデー
タが機密データを含んでいるか否かを決定する。このようないくつかの実施形態
において、論理回路は、予め定められた特性を有しているアクセスされたデータ
中のデータブロックを識別し、識別されたデータブロックをカウントし、そのカ
ウントをしきい値と比較することによって不揮発性メモリに含まれているデータ
が機密データを含んでいるか否かを決定する。このようないくつかの実施形態で
は、各データブロックはビットを含み、予め定められた特性は予め規定された論
理状態を含んでいてもよい。その代わりに、各データブロックは複数のビットを
含み、予め定められた特性はある範囲の2進値内に入る2進値を含んでいてもよ
い。
In some embodiments, the apparatus further comprises a non-volatile memory, and logic for controlling access to data contained in the non-volatile memory, wherein the logic is non-volatile memory And selectively analyzing the properties unique to the accessed data to determine whether the data contained in the non-volatile memory contains confidential data. In some such embodiments, the logic circuit identifies data blocks in the accessed data having predetermined characteristics, counts the identified data blocks, and thresholds the count. By comparing with the value, it is determined whether or not the data contained in the non-volatile memory includes confidential data. In some such embodiments, each data block includes a bit and the predetermined property may include a predefined logic state. Alternatively, each data block may include a plurality of bits and the predetermined property may include a binary value falling within a range of binary values.

【0014】 不揮発性メモリを上述のように使用するいくつかの実施形態において、論理
回路を暗号化装置に直接接続するキー分離回路が設けられている。いくつかのこ
のような実施形態において、不揮発性メモリはキーを記憶し、キー分離回路がキ
ーを暗号化装置に供給する。上述の実施形態の任意のものにおいて、論理回路、
キー分離回路および暗号化装置は、閉じたシステムを規定することが好ましい。
In some embodiments using non-volatile memory as described above, a key separation circuit is provided that connects the logic circuit directly to the encryption device. In some such embodiments, the non-volatile memory stores the key, and a key separation circuit supplies the key to the encryption device. In any of the above embodiments, a logic circuit,
The key separation circuit and the encryption device preferably define a closed system.

【0015】 いくつかの実施形態において、不揮発性メモリ、第1のプロセッサ、読取り
/書込みメモリおよび暗号化装置は、集積回路上に埋込まれている。このような
実施形態において、集積回路は外部デバイスに装置を接続するためのピンを含み
、装置は、機密保持された環境外へのセンシチブな情報の公開を回避するように
ピンを選択的に使用禁止状態(ディスエーブル)にするためのサイレンシング回
路、およびタンパーするための集積回路を監視するように構成されたウォッチド
ッグ回路の少なくとも一方をさらに含んでいる。
[0015] In some embodiments, the non-volatile memory, the first processor, the read / write memory, and the encryption device are embedded on an integrated circuit. In such embodiments, the integrated circuit includes pins for connecting the device to an external device, and the device selectively uses the pins to avoid exposing sensitive information outside a secure environment. It further includes at least one of a silencing circuit for disabling (disabled) and a watchdog circuit configured to monitor the integrated circuit for tampering.

【0016】 いくつかの実施形態において、装置は、第1のプロセッサと共同して複数の
セキュリティセルを維持するためのメモリ管理装置を含んでいる。
In some embodiments, the apparatus includes a memory management device for maintaining a plurality of security cells in cooperation with the first processor.

【0017】 いくつかの実施形態において、暗号化装置は暗号化モジュールを含んでいる
In some embodiments, the encryption device includes an encryption module.

【0018】 上記の実施形態の任意のものにおいて、認証は、解読前に暗号化された情報
を認証することによって行われてもよい。
In any of the above embodiments, authentication may be performed by authenticating the encrypted information before decryption.

【0019】 上記の実施形態の任意のものにおいて、暗号化された情報は、暗号化された
プロセッサ命令および、または暗号化されたデータを含んでいてもよい。
In any of the above embodiments, the encrypted information may include encrypted processor instructions and / or encrypted data.

【0020】 上記の実施形態の任意のものにおいて、暗号化された情報は、セクションに
セグメント化されてもよい。このような実施形態において、セグメントは独立に
暗号化され、認証されることが好ましい。
[0020] In any of the above embodiments, the encrypted information may be segmented into sections. In such embodiments, the segments are preferably independently encrypted and authenticated.

【0021】 本発明の別の特徴によると、機密保持された処理環境を提供するための集積
回路が外部メモリにより使用されるために提供される。その装置は、外部メモリ
の記憶容量より少ない記憶容量を有する揮発性メモリを含んでいる。装置は、暗
号化された情報を外部メモリと揮発性メモリとの間で選択的にインポートおよび
エクスポートするためのインポート/エクスポート手段と、機密保持環境内にお
いて揮発性メモリから受取った暗号化された情報を解読して解読された情報を生
成し、機密保持環境内において解読された情報を再び暗号化して暗号化された情
報にするための暗号化手段とをさらに含んでいる。さらに、装置は、機密保持環
境内において解読された情報を処理するためのプロセッサを含んでいる。このプ
ロセッサは、インポート/エクスポート手段と共同して、第2の記憶容量の超過
を回避するために解読された情報を外部メモリと揮発性メモリとの間で選択的に
インポートおよびエクスポートする。
According to another feature of the present invention, an integrated circuit for providing a secure processing environment is provided for use by an external memory. The device includes a volatile memory having a storage capacity less than the storage capacity of the external memory. The apparatus includes an import / export means for selectively importing and exporting encrypted information between an external memory and a volatile memory, and encrypted information received from the volatile memory in a secure environment. To generate decrypted information by decrypting the decrypted information, and encrypting the decrypted information again in the confidentiality environment to obtain encrypted information. Further, the apparatus includes a processor for processing the decrypted information in the secure environment. The processor cooperates with the import / export means to selectively import and export the decrypted information between the external memory and the volatile memory to avoid exceeding the second storage capacity.

【0022】 いくつかの実施形態において、暗号化手段は解読された情報に対応している
暗号化された情報が外部メモリからインポートされた場合には第1の形態を有し
、また、外部メモリにエクスポートされた場合には、対応している解読された情
報が不変のままである場合にも、第1の形態とは異なる第2の形態を有するよう
に情報を暗号化する。いくつかのこのような実施形態において、暗号化手段は、
暗号化された情報を第1のホワイトニングキーを使用して解読し、解読された情
報を第1のホワイトニングキーとは異なる第2のホワイトニングキーを使用して
暗号化する。いくつかのこのような実施形態では、装置は、第2のホワイトニン
グキーを発生する暗号法的に強い疑似ランダム数発生器を具備している。
In some embodiments, the encryption means has a first form if the encrypted information corresponding to the decrypted information was imported from an external memory, and the external memory If the corresponding decrypted information remains unchanged, the information is encrypted to have a second form different from the first form. In some such embodiments, the encryption means comprises:
Decrypting the encrypted information using the first whitening key and encrypting the decrypted information using a second whitening key different from the first whitening key. In some such embodiments, the apparatus comprises a cryptographically strong pseudo-random number generator that generates the second whitening key.

【0023】 いくつかの実施形態において、装置は、機密保持された環境内において解読
された情報を認証する手段を具備している。いくつかのこのような実施形態にお
いて、認証する手段は、外部メモリからインポートした後に解読された情報を認
証し、暗号化して外部メモリにエクスポートする前に、解読された情報を再度認
証する。
In some embodiments, the device comprises means for authenticating the decrypted information in a secure environment. In some such embodiments, the means for authenticating authenticates the information decrypted after importing from the external memory and re-authenticates the decrypted information before encrypting and exporting to the external memory.

【0024】 本発明の1特徴によると、機密保持された動作を行うために集積回路をタン
パーチェックする方法が提供される。この方法は、事象を検出し、タンパーが発
生しているか否かを決定するために集積回路の1以上の素子に関して組込み自己
試験を実行し、この組込み自己試験によってタンパーの発生が示された場合には
、集積回路の1以上の動作に対して制限を課すステップを含んでいる。
According to one aspect of the present invention, there is provided a method of tamper checking an integrated circuit to perform a secure operation. The method performs a built-in self-test on one or more elements of the integrated circuit to detect an event and determine whether a tamper has occurred, and if the built-in self-test indicates that a tamper has occurred. Includes imposing restrictions on one or more operations of the integrated circuit.

【0025】 いくつかの実施形態において、この方法はまた、キー材料を記憶した予め規
定されたメモリがアクセスされることができないように、集積回路に関連したプ
ロセッサをリセット状態に保持し、1以上の素子が組込み自己試験に合格した場
合はリセット状態からプロセッサを解放し、1以上の素子が組込み自己試験に失
敗した場合には、プロセッサをリセット状態に保持するステップを含んでいる。
いくつかのこのような実施形態において、1以上の素子は予め規定されたメモリ
および論理回路の少なくとも一方を含んでいる。
In some embodiments, the method also includes maintaining the processor associated with the integrated circuit in a reset state such that the predefined memory storing the key material cannot be accessed. Releasing the processor from the reset state if any of the elements pass the built-in self-test and holding the processor in the reset state if one or more elements fail the built-in self-test.
In some such embodiments, the one or more elements include predefined memory and / or logic circuits.

【0026】 上記の実施形態の任意のものにおいて、検出された事象は、リセット事象を
含んでいてもよい。
In any of the above embodiments, the detected event may include a reset event.

【発明の実施の形態】BEST MODE FOR CARRYING OUT THE INVENTION

その他の特徴および利点は、特許請求の範囲に記載され開示されている装置に
固有であり、以下の詳細な説明および添付図面から当業者に明らかにされるであ
ろう。 図1には、使用可能な1つの環境における、すなわちパーソナルコンピュータ
(示されていない)で使用されるディレクPC(商標名)モジュール12上におけ
る本発明の教示にしたがって構成された装置10が概略的に示されている。以下詳
細に説明するように、装置10はセンシチブな(sensitive) 情報を処理するための
機密保持された環境を提供するように構成されている。この説明および添付され
た特許請求の範囲において一貫して使用されている“情報”という用語は、デー
タ、プログラムされた命令(たとえば、ソフトウェア、ファームウェア)あるい
はその両者を指している。装置10はディレクPC(商標名)製品において使用可
能であるが、当業者は、装置10が任意の特定の環境における使用あるいは任意の
特定の用途での使用に限定されないことを理解するであろう。逆に、示されてい
る装置10は、本発明の技術的範囲を逸脱することなく、それが提供する増加され
た処理セキュリティから利益を得る任意の用途または環境において使用されるこ
とが可能である。たとえば、それは、スマートカード適用においてとくに有効で
ある。さらに、装置10は図1において適用特定集積回路(ASIC)として構成
されたものとして示されているが、当業者は、装置10が集積回路として構成され
る必要がないことを容易に認識するであろう。
Other features and advantages are inherent in the device as claimed and disclosed and will become apparent to those skilled in the art from the following detailed description and the accompanying drawings. FIG. 1 schematically illustrates an apparatus 10 constructed in accordance with the teachings of the present invention in one available environment, i.e., on a DirectPC ™ module 12 used in a personal computer (not shown). Is shown in As will be described in more detail below, device 10 is configured to provide a secure environment for processing sensitive information. The term "information" as used consistently in this description and the appended claims refers to data, programmed instructions (e.g., software, firmware), or both. Although the device 10 can be used in a DirectPC ™ product, those skilled in the art will appreciate that the device 10 is not limited to use in any particular environment or for any particular application. . Conversely, the depicted apparatus 10 can be used in any application or environment that benefits from the increased processing security it provides without departing from the scope of the present invention. . For example, it is particularly useful in smart card applications. Further, while device 10 is shown in FIG. 1 as being configured as an application specific integrated circuit (ASIC), those skilled in the art will readily recognize that device 10 need not be configured as an integrated circuit. There will be.

【0027】 以下説明するように、示されている装置10は、センシチブな情報の内容が装
置10外に露出されることなく、解読、処理および再暗号化されることのできる機
密保持された環境を提供するように構成されている。(ここで使用されている“
解読された”とは、1以上の暗号層が除去されたことを意味する。当業者によっ
て理解されるように、ここで使用されている“解読された情報”は随意に依然と
して暗号化されていてもよいが、完全に暗号が解かれた形態に1ステップ以上近
付いたものである。たとえば、バーサクリプト(VersaCrypt)環境は、暗号化され
たRSA解読データのような別の暗号系を持込むために、あるいは別の暗号系に
したがって解読される過程で使用されることができる。)1つの観点で、示され
ている装置10は、センシチブな情報が機密保持された環境外に露出される場合に
は常に暗号化されることを厳密に確実にすることによってこのセキュリティを達
成する。解読されたセンシチブな情報が装置10において利用可能であるときは常
に、外部デバイスによる装置10へのアクセスを阻止するようにセキュリティ手段
が動作される。
As described below, the device 10 shown is a secure environment in which sensitive information content can be decrypted, processed, and re-encrypted without being exposed outside the device 10. Is configured to provide. (Used here “
"Decrypted" means that one or more encryption layers have been removed. As will be appreciated by those skilled in the art, "decrypted information" as used herein is optionally still encrypted. But may be one or more steps closer to a completely decrypted form, for example, the VersaCrypt environment introduces another cryptosystem, such as encrypted RSA decrypted data. Or in the course of being decrypted according to another cryptosystem.) In one aspect, the device 10 shown is exposed outside a confidential environment where sensitive information is secured. In some cases, this security is achieved by ensuring that it is always encrypted, and whenever decrypted sensitive information is available on the device 10, it can be implemented by an external device. Security means are operated to prevent access to the device 10.

【0028】 いくつかの適用では、当然のことながら、情報を解読するために使用される
プロセスおよびキーの機密性を維持しながら解読された情報を装置10からエクス
ポートすることが望ましい。たとえば、データベースへのアクセスを計測ために
使用されるソフトウェア計測適用では、認証されたユーザに適切に料金を請求し
てしまえば、彼等にデータベースの解読された内容を提供することが望ましい。
このような適用において、装置10は、使用されるキー材料を隠しているデータの
解読および解読中行われるプロセスのための機密保持された環境を提供する。
In some applications, it is, of course, desirable to export the decrypted information from device 10 while maintaining the confidentiality of the process and keys used to decrypt the information. For example, in a software metering application used to meter access to a database, it is desirable to provide the decrypted content of the database to authorized users once they have been properly charged.
In such an application, device 10 provides a secure environment for decryption of data hiding the keying material used and processes performed during decryption.

【0029】 示されている装置10は、テレビジョン加入者放送システムのような条件付き
データアクセス適用において非常に有効であるが、装置10の最大限の能力は、条
件付きソフトウェアアクセス適用においてより完全に使用される。このような適
用において、示されている装置10は、解読された命令を機密保持された環境の外
部に露出することなく、センシチブなソフトウェア(またはファームウェア)情
報を解読し、実行し、再度暗号化することができる。暗号化されたソフトウェア
(またはファームウェア)は、装置10に随意に記憶されてもよいし、あるいはメ
モリ制約のために、装置10の外部に記憶されてもよく、必要に応じて装置10に選
択的にインポートされてもよい(まとめて、あるいはセグメントで)。いずれの
場合も、以下説明するように、示されている装置10は大きい基板上の処理容量を
有しているため、解読されたソフトウェア(またはファームウェア)の実行は完
全に機密保持された環境において行われることができる。その結果、センシチブ
なソフトウェア(またはファームウェア)は、認証されていないエンティティに
よる使用のために、あるいは非適合(non-conformant)動作を誘導するために容易
に変更され、あるいは著作権を侵害されることはできない。
While the device 10 shown is very effective in conditional data access applications such as television subscriber broadcasting systems, the maximum capabilities of the device 10 are more complete in conditional software access applications. Used for In such an application, the device 10 shown decrypts, executes, and re-encrypts sensitive software (or firmware) information without exposing the decrypted instructions to outside the secure environment. can do. The encrypted software (or firmware) may optionally be stored on the device 10 or may be stored external to the device 10 due to memory constraints, and may be selectively stored on the device 10 as needed. May be imported (collectively or in segments). In either case, as described below, because the device 10 shown has a large on-board processing capacity, execution of the decrypted software (or firmware) can be performed in a completely secure environment. Can be done. As a result, sensitive software (or firmware) may be easily modified or pirated for use by unauthorized entities or to induce non-conformant behavior. Can not.

【0030】 暗号化されたソフトウェア(またはファームウェア)の実行により、装置10
は情報をユーザが読出すことのできる形態で外部装置(たとえば、モニタ、プリ
ンタ、記憶装置等)に出力するが、出力情報を発生するソフトウェアは通常、装
置10によって提供された機密保持された環境外に露出されない(もちろん、解読
された形態で命令をエクスポートするために実行されるソフトウェア(またはフ
ァームウェア)中の命令なしで)。したがって、ソフトウェア(またはファーム
ウェア)のセキュリティは、示されている装置10によって常に維持されている。
以下説明するように、示されている装置10のこの特徴の有効な結果は、たとえば
ソフトウェア(またはファームウェア)が実際に使用される時間量に合わせられ
た使用量に基づいて、認可されたソフトウェア(またはファームウェア)のユー
ザが料金を請求されることのできるソフトウェア(またはファームウェア)計量
を実施できることである。たとえば、示されている装置10は、当該ソフトウェア
(またはファームウェア)の任意の部分が解読された形態で維持される時間量を
監視するように構成されることができる。この監視によって収集されたデータは
、ソフトウェア(またはファームウェア)使用の認可料金を課すために使用され
ることができる。ソフトウェア(またはファームウェア)を認可するこの方法は
、アップグレードなしで、一回限りの(one-time)認可料金が請求される伝統的な
方法とはっきり対照をなしている。
Execution of the encrypted software (or firmware) causes the device 10
Outputs information to an external device (eg, monitor, printer, storage device, etc.) in a form that can be read by a user, but the software that generates the output information is typically stored in a secure environment provided by device 10. Not exposed to the outside (of course, without instructions in software (or firmware) executed to export instructions in decrypted form). Thus, software (or firmware) security is always maintained by the device 10 shown.
As explained below, the valid result of this feature of the device 10 shown is that the licensed software (e.g., based on usage that is tailored to the amount of time the software (or firmware) is actually used) Firmware (or firmware) can perform software (or firmware) metering that can be charged. For example, the depicted apparatus 10 can be configured to monitor the amount of time that any portion of the software (or firmware) is maintained in a decrypted form. The data collected by this monitoring can be used to charge a license fee for software (or firmware) use. This method of licensing software (or firmware) contrasts sharply with the traditional method, where one-time licensing fees are charged without upgrades.

【0031】 装置10の動作のあるもの(すなわち、“機密保持されたカーネル”)を規定
するプログラムされた命令を記憶するために、装置10は不揮発性メモリ14(図2
)を具備している。機密保持されたカーネルは、装置10内におけるリソース管理
を担当している。それは以下に説明するセキュリティ制限の多くを実施する。不
揮発性メモリ14に記憶された符号は暗号化されないことが好ましいが、当業者は
、本発明の技術的範囲を逸脱することなく、暗号化された情報(たとえば、デー
タまたはプログラムされた命令)が不揮発性メモリ14に記憶されることが可能な
ことを理解するであろう。不揮発性メモリ14は、本発明の技術的範囲を逸脱する
ことなく多数の方法で構成可能なことが理解されるが、この好ましい実施形態で
は、プログラムされた命令を記憶した読出し専用メモリ(ROM)によって構成
されている。以下説明するように、装置10は、ホワイトニングを有するトリプル
キー、トリプルDES−CBCを使用して個々に暗号化されたバーサクリプト(V
ersaCrypt)アプレットにセグメント化されていることが好ましい機密保持された
ソフトウェアを実行する。
To store programmed instructions that define some of the operations of the device 10 (ie, a “secured kernel”), the device 10 stores the non-volatile memory 14 (FIG. 2).
). The secured kernel is responsible for managing resources within the device 10. It enforces many of the security restrictions described below. Although the codes stored in non-volatile memory 14 are preferably unencrypted, those skilled in the art will recognize that encrypted information (eg, data or programmed instructions) may be stored without departing from the scope of the present invention. It will be appreciated that it can be stored in non-volatile memory 14. It is understood that non-volatile memory 14 can be configured in a number of ways without departing from the scope of the present invention, however, in the preferred embodiment, a read only memory (ROM) storing programmed instructions. It is constituted by. As will be described below, the device 10 can be individually encrypted Versacrypt (V) encrypted using a triple key with whitening, Triple DES-CBC.
ersaCrypt) Runs secure software that is preferably segmented into applets.

【0032】 情報を処理し、装置10の動作を制御するために、装置10はプロセッサ16(図
2参照)を具備している。以下さらに詳細に説明するように、プロセッサ16の1
つの機能は、2以上のセキュリティセルを実施することである。セキュリティセ
ルの第1のものは、ここではカーネルモードセルと呼ばれており、センシチブな
機密情報がアクセスされ、処理され、装置10の内部バス上で利用可能にされてい
る場合には常に実施されることが好ましい。第2のセキュリティセルは、ここで
はユーザモードセルと呼ばれており、センシチブなデータへのアクセスが許可さ
れない場合に実施される。カーネルモードが有効なとき、プロセッサ16は装置10
内のハードウェアおよびソフトウェアリソースへのアクセスに対して何等制限を
課さない。それはまた、以下説明するように、装置10によって実行されている動
作および装置10によって処理されている情報の少なくとも一方を示すセンシチブ
な情報を装置10の外部ピンが暴露することを防止する。ユーザモードが実施され
たとき、プロセッサ16は増強されたレベルの制限を装置10内の動作に与えるが、
外的に可視である動作には制限を課さない。しかしながら、以下説明するように
、あるハードウェア実施制限は、両セキュリティセルにおいて維持されることが
好ましい。
To process information and control the operation of the device 10, the device 10 includes a processor 16 (see FIG. 2). As described in further detail below, one of the processors 16
One function is to implement more than one security cell. The first of the security cells, referred to herein as kernel mode cells, is implemented whenever sensitive sensitive information is accessed, processed, and made available on the internal bus of device 10. Preferably. The second security cell is referred to herein as a user mode cell and is implemented when access to sensitive data is not allowed. When kernel mode is enabled, processor 16
It places no restrictions on access to hardware and software resources within. It also prevents external pins of the device 10 from exposing sensitive information indicating at least one of the operation being performed by the device 10 and the information being processed by the device 10, as described below. When the user mode is implemented, the processor 16 imposes an increased level of restriction on the operation within the device 10;
There are no restrictions on what is externally visible. However, as described below, certain hardware implementation restrictions are preferably maintained in both security cells.

【0033】 装置10によって処理されるべき情報を一時的に記憶するために、装置10は揮
発性の読取り/書込みメモリ18をさらに具備している。この読取り/書込みメモ
リ18は、プロセッサ16が必要に応じてメモリ18に含まれている情報の読取りおよ
びメモリ18への情報の書込みの両者を行うことができるように、プロセッサ16に
よってアドレス指定可能である。以下詳細に説明するように、動作において、装
置10によって処理されるべき暗号化された情報は、最初に読取り/書込みメモリ
18に書込まれる。したがって、1つの役割において、読取り/書込みメモリ18は
暗号化された情報に対する記憶領域として機能する。
The device 10 further comprises a volatile read / write memory 18 for temporarily storing information to be processed by the device 10. The read / write memory 18 is addressable by the processor 16 so that the processor 16 can both read information contained in the memory 18 and write information to the memory 18 as needed. is there. As will be described in detail below, in operation, the encrypted information to be processed by the device 10 is first stored in a read / write memory.
Written on 18. Thus, in one role, read / write memory 18 functions as a storage area for encrypted information.

【0034】 暗号化機能を行うために、装置10は、暗号化された情報を解読された情報に
解読し、解読された情報を暗号化された情報に再度暗号化するための暗号化手段
を具備している。これらの両機能は、機密保持された安全な環境内で行われる。
当業者によって理解されるように、暗号化手段は、本発明の技術的範囲を逸脱す
ることなく多数の異なった方式で構成されることができる。たとえば暗号化手段
は、ソフトウェアまたはファームウェアを実行する専用ハードウェア回路または
プロセッサのような暗号化装置20によって構成されることができる。さらに、当
業者は、暗号化装置20が本発明の技術的範囲を逸脱することなくよく知られてい
る種々の暗号技術およびアルゴリズムの少なくとも一方を行うように構成される
ことが可能なことを理解するであろう。この好ましい実施形態において、暗号化
装置20は、ここでは暗号化モジュールと呼ばれる専用ハードウェア回路20によっ
て構成され、この暗号化モジュールは、適用の要求に応じて、(1)トリプルキ
ー、トリプルDES−CBC暗号化および解読(トリプルキー、トリプルデータ
暗号化規格/電子符号ブックモード暗号化/解読)、(2)トリプルキー、トリ
プルDES外部CBC(トリプルキー、外部暗号化ブロックチェイニングによる
トリプルデータ暗号化規格)暗号化および解読、および(3)DVB(デジタル
ビデオ放送)デスクランブルを行うことができる。
In order to perform the encryption function, the device 10 comprises an encryption means for decrypting the encrypted information into decrypted information and re-encrypting the decrypted information into encrypted information. I have it. Both of these functions are performed in a secure environment.
As will be appreciated by those skilled in the art, the encryption means may be configured in many different ways without departing from the scope of the present invention. For example, the encryption means can be constituted by an encryption device 20, such as a dedicated hardware circuit or a processor executing software or firmware. Further, those skilled in the art will appreciate that encryption device 20 may be configured to perform at least one of a variety of well-known encryption techniques and algorithms without departing from the scope of the present invention. Will do. In this preferred embodiment, the encryption device 20 is constituted by a dedicated hardware circuit 20, here called an encryption module, which, depending on the requirements of the application, (1) triple key, triple DES- CBC encryption and decryption (triple key, triple data encryption standard / electronic codebook mode encryption / decryption), (2) triple key, triple DES external CBC (triple key, triple data encryption by external encryption block chaining) (Standard) encryption and decryption, and (3) DVB (Digital Video Broadcasting) descrambling.

【0035】 図2に示されているように、暗号化装置20は、読取り/書込みメモリ18と通
信している。動作において、読取り/書込みメモリ18に書込まれた暗号化された
情報は、必要に応じて解読するために暗号化装置20に転送される。その後、解読
された情報は、プロセッサ16による後続的な使用のために暗号化装置20から読取
り/書込みメモリ18に書込まれる。
As shown in FIG. 2, the encryption device 20 is in communication with the read / write memory 18. In operation, the encrypted information written to the read / write memory 18 is transferred to the encryption device 20 for decryption as needed. Thereafter, the decrypted information is written from encryption device 20 to read / write memory 18 for subsequent use by processor 16.

【0036】 ハッカーが符号またはセンシチブなデータを彼等自身が目的とするものに修
正することを阻止するために、解読された情報が認証されるまで、暗号化装置20
によって解読された情報をプロセッサ16が処理することは許されていないことが
重要である。したがって、装置10は認証装置22を具備している。解読された情報
を認証するために認証装置22が非常に多数の認証アルゴリズムの任意のものを使
用できることは当業者により認識できることであるが、この好ましい実施形態で
は、認証装置は、解読された全ての情報を認証するために機密キーを使用するC
BC−MAC(暗号化ブロックチェ−ンメッセージ認証符号)アルゴリズムを行
う。当業者によって理解されるように、このような認証には、別個に認証されな
ければならない暗号化された情報の各セクションに対して期待されたMAC値の
情報が必要とされる。以下さらに説明するように、好ましい実施形態において、
要求されたMAC値は、別のロード時間方式が本発明の技術的範囲を逸脱するこ
となく使用されることができるが、スタートアップ時に読取り/書込みメモリ18
にインポートされる。認証装置はメモリ18からのMAC値を使用して、プロセッ
サ16による使用の前に、解読された全ての情報に関してCBC−MAC認証を行
う。
In order to prevent hackers from modifying the code or sensitive data to what they intended, the encryption device 20 may be used until the decrypted information is authenticated.
It is important that the information decrypted by the processor 16 is not allowed to be processed by the processor 16. Therefore, the device 10 includes the authentication device 22. Although it will be appreciated by those skilled in the art that the authentication device 22 can use any of a large number of authentication algorithms to authenticate the decrypted information, in the preferred embodiment, Uses a secret key to authenticate the information in C
Perform BC-MAC (Encrypted Block Chain Message Authentication Code) algorithm. As will be appreciated by those skilled in the art, such authentication requires the expected MAC value information for each section of encrypted information that must be separately authenticated. As further described below, in a preferred embodiment,
The requested MAC value may be read at start-up read / write memory 18 while another load time scheme may be used without departing from the scope of the present invention.
Will be imported to The authentication device uses the MAC value from memory 18 to perform CBC-MAC authentication on all decrypted information prior to use by processor 16.

【0037】 読取り/書込みメモリ18の内容は、バーサクリプト(VersaCrypt)アプレット
を実行する過程においてプロセッサ16または別の手段によって更新されていても
よい。解読された情報が再度暗号化され、エクスポートされた場合(以下説明す
るように)、認証装置22は、現時点で読取り/書込みメモリ18中に現在存在する
解読された情報を、その情報ブロックに対する新しいCBC−MAC値を生成す
ることにより再度認証することが重要である。新しいCBC−MAC値は、将来
当該情報を解読して再使用することが必要になった場合に、その情報ブロックの
認証時に後続的に使用するために読取り/書込みメモリ18に書込まれる。再認証
は、少なくともいくつかの例では、プロセッサ16が処理中に解読された情報の内
容を変更するために必要である。解読された情報の内容の変更により、その情報
ブロックは(高い確率で)異なったCBC−MAC値を有することになるので、
CBC−MAC値が再認証によって更新されなければ、将来更新された情報への
呼出しが必要になった場合、認証装置22は当該情報を認証することができない。
当業者によって認識されるように、認証されたバージョンは事実上最も新しくエ
クスポートされたバージョンであることを確認する多数の可能な方法が存在する
。このような任意の他の確認方法が本発明の技術的範囲を逸脱することなく使用
されることができる。
The contents of the read / write memory 18 may have been updated by the processor 16 or another means during the execution of the VersaCrypt applet. If the decrypted information has been re-encrypted and exported (as described below), the authenticator 22 replaces the decrypted information currently present in the read / write memory 18 with the new information for that information block. It is important to re-authenticate by generating a CBC-MAC value. The new CBC-MAC value is written to read / write memory 18 for subsequent use in authenticating the information block if the information needs to be decrypted and reused in the future. Re-authentication is necessary, at least in some examples, for processor 16 to change the content of the information decrypted during processing. Due to the change in the content of the decrypted information, the information block will have (with a high probability) different CBC-MAC values,
If the CBC-MAC value is not updated by re-authentication, the authentication device 22 cannot authenticate the information if a call to the updated information is needed in the future.
As will be appreciated by those skilled in the art, there are many possible ways to confirm that the certified version is in fact the most recent exported version. Any other such verification method can be used without departing from the scope of the present invention.

【0038】 再認証後、暗号化装置20は、読取り/書込みメモリ18中の解読されて認証さ
れた情報を再度暗号化された情報に再度暗号化する。
After re-authentication, the encryption device 20 re-encrypts the decrypted and authenticated information in the read / write memory 18 into re-encrypted information.

【0039】 当業者によって認識されるように、多数の適用において、装置10によって処
理されるべき暗号化された情報の量は、装置10の内部メモリ容量を越える。この
ような環境で装置10が動作できるようにするために、装置10は、暗号化された情
報をメモリ24のような外部装置と読取り/書込みメモリ18との間で選択的にイン
ポートおよびエクスポートするためのインポート/エクスポート手段を具備して
いる。しかしながら、当業者は、本発明の技術的範囲を逸脱することなく暗号化
された情報がシステム中の内部バスを介してハードドライブあるいは別の記憶媒
体または通信デバイスへのランまたはワン・ネットワーク接続によりインポート
およびエクスポートされることが可能なことを理解するであろう。外部メモリ24
の記憶容量は、読取り/書込みメモリ18の記憶容量を越えていることが好ましい
。インポート/エクスポート手段はプロセッサ16と共同して、情報の暗号化され
たブロックを外部メモリ24から必要に応じてインポートする。暗号化された情報
は、読取り/書込みメモリ18にインポートされると、上述したように暗号化装置
20によって解読され、認証装置22によって認証される。その後、プロセッサ16は
解読された情報を処理することができる。プロセッサ16が情報ブロック(少なく
とも近い将来の)を終えたとき、解読された情報(実施された任意の処理変更が
実施された)は、認証装置22によって再度認証され、暗号化装置20によって再度
暗号化され、インポート/エクスポート手段によって外部メモリ24にエクスポー
トされる。
As will be appreciated by those skilled in the art, in many applications, the amount of encrypted information to be processed by the device 10 will exceed the internal memory capacity of the device 10. To enable device 10 to operate in such an environment, device 10 selectively imports and exports encrypted information between an external device, such as memory 24, and read / write memory 18. Import / export means for the user. However, those skilled in the art will recognize that the encrypted information may be transmitted by a run or one network connection to a hard drive or another storage medium or communication device via an internal bus in the system without departing from the scope of the present invention. It will be appreciated that it can be imported and exported. External memory 24
Is preferably larger than the storage capacity of the read / write memory 18. Import / export means cooperates with processor 16 to import encrypted blocks of information from external memory 24 as needed. When the encrypted information is imported into the read / write memory 18, the encryption
Decrypted by 20 and authenticated by authentication device 22. Thereafter, the processor 16 can process the decrypted information. When the processor 16 finishes the information block (at least in the near future), the decrypted information (with any processing changes performed) is re-authenticated by the authentication device 22 and re-encrypted by the encryption device 20. And exported to the external memory 24 by the import / export means.

【0040】 当業者は、インポート/エクスポート手段が本発明の技術的範囲を逸脱する
ことなく多数の方法で構成可能なことを理解するであろうが、示されている実施
形態において、それは1以上の外部接続を有するバスによって構成されている。
Those skilled in the art will appreciate that the import / export means may be configured in a number of ways without departing from the scope of the present invention, but in the illustrated embodiment it may be more than one. And a bus having external connections.

【0041】 当業者によって認識されるように、暗号化された情報が外部メモリ24に記憶
される適用では、予防措置をとらないと、ハッカーが修正されたブロックおよび
そのブロックが修正された時機に関する情報を認識することが可能となり、この
情報が統計的アタックで使用されることができる。このような情報は、暗号化さ
れた情報の著作権を侵害しようとするハッカーを潜在的に助けるものになる。こ
れを回避するために、装置10の暗号化装置20は、ホワイトニングキーに関してキ
ーサイクリングを行うように構成されることが好ましい。
As will be appreciated by those skilled in the art, in applications where the encrypted information is stored in external memory 24, unless precautions are taken, a hacker may be concerned with the modified block and the time at which the block was modified. The information can be recognized and this information can be used in a statistical attack. Such information could potentially help hackers trying to infringe the copyright of the encrypted information. To avoid this, the encryption device 20 of the device 10 is preferably configured to perform key cycling on the whitening key.

【0042】 本質的に、ホワイトニングは、数学的動作(排他的オア動作のような)を行
ってホワイトニングキーを情報ブロックと組合せ、事実上キー材料をさらに強化
する。ホワイトニングプロセスは、暗号化された情報ブロックおよび対応した解
読された情報ブロックに関して(すなわち、暗号化が行われる前後の両方で)行
われることができる。この技術を示されている装置10において使用する利点は、
暗号化された情報ブロックが、解読された情報の内容が変更されたか否かにかか
わらず、エクスポートされたときに(前のインポート/エクスポートシーケンス
から)常に異なって見えることである。換言すると、示されている装置10におい
て、暗号化装置20は、装置10によって提供された機密の保持された安全な環境に
おいて、解読され再度認証された情報がその元の暗号化された形態と異なるよう
にこれを再度暗号化し、それによって解読された情報の内容が修正されたか否か
に関する修正情報をマスクする。したがって、暗号化装置20は、解読された情報
に対応した暗号化された情報が外部メモリ24からインポートされた場合に第1の
形態を有し、それが外部メモリ24にエクスポートされた場合には、対応した解読
された情報が不変のままでも、第1の形態とは異なる第2の形態を有するように
情報を暗号化する。この技術のために、暗号文の原文が知られないため、アタッ
カーは既知の原文アタックの可能性を与えられず、また、アタッカーは暗号文原
文の制御を拒否されるので適応選択された暗号文原文アタックの可能性を与えら
ない。アタッカーは、ホワイトニングキーが各エクスポート動作により変更され
たときに、このキーに対して統計的アタックを行うことができず、それゆえキー
の寿命は十分に短い。これに関して、当然ながら、たとえばDESキーのキーサ
イクリングまたはパッケージ転送を含むその他の方法を使用することができる。
In essence, whitening performs a mathematical operation (such as an exclusive OR operation) to combine whitening keys with information blocks, effectively further enhancing the key material. The whitening process can be performed on the encrypted information block and the corresponding decrypted information block (ie, both before and after encryption occurs). The advantages of using this technique in the illustrated device 10 are:
The encrypted information block always looks different when exported (from a previous import / export sequence), whether or not the content of the decrypted information has changed. In other words, in the device 10 shown, the encryption device 20 is configured to decrypt and re-authenticate information in its secure form provided by the device 10 with its original encrypted form. It is re-encrypted differently, thereby masking modification information as to whether the content of the decrypted information has been modified. Therefore, the encryption device 20 has the first form when the encrypted information corresponding to the decrypted information is imported from the external memory 24, and when the encrypted information is exported to the external memory 24, Even if the corresponding decrypted information remains unchanged, the information is encrypted so as to have a second form different from the first form. Because of this technique, the attacker is not given the possibility of a known attack on the ciphertext because the original text of the ciphertext is not known, and the attacker is denied control of the ciphertext original text, so the adaptively selected ciphertext is denied. Does not give the possibility of a textual attack. The attacker cannot perform a statistical attack on the whitening key when it is changed by each export operation, and thus the key life is short enough. In this regard, of course, other methods may be used including, for example, key cycling of the DES key or package transfer.

【0043】 所定の情報ブロックに関して行われる実質的に全ての各インポート/エクス
ポート動作についてホワイトニング効果が与えられることを確実にするために、
暗号化装置20は、ホワイトニングキーに関してキーサイクリングを行うように構
成される。とくに、暗号化装置20は、それが暗号化する情報のセクションごとに
新しいホワイトニングキーを使用するように構成される。したがって、前にエク
スポートされた暗号化された情報のブロックが外部メモリ24からインポートされ
たとき、前のインポート/エクスポートサイクルにおいて使用されたホワイトニ
ングキーは、解読プロセスで暗号化装置20によって使用される。その後、その同
じ情報ブロックがエクスポートされたとき、暗号化装置20は新しいホワイトニン
グキーを使用して暗号化プロセスのホワイトニング部分を実行する。
To ensure that a whitening effect is provided for substantially every import / export operation performed on a given block of information,
The encryption device 20 is configured to perform key cycling on the whitening key. In particular, the encryption device 20 is configured to use a new whitening key for each section of information that it encrypts. Thus, when a previously exported block of encrypted information has been imported from external memory 24, the whitening key used in the previous import / export cycle is used by encryption device 20 in the decryption process. Thereafter, when that same block of information is exported, the encryption device 20 performs the whitening part of the encryption process using the new whitening key.

【0044】 当業者によって理解されるように、ホワイトニングキーによってホワイトニ
ングされた情報ブロックを効率的に解読するために、暗号化装置20はホワイトニ
ングキーを有していなければならない。エクスポートされた暗号化された情報の
ブロックごとに新しいホワイトニングキーが使用されることが好ましいため、ホ
ワイトニングキーを内部に記憶すると、装置10はメモリリソースを急速に奪われ
る。このような結果になることを避けるために、この好ましい実紙形態では、暗
号化されたバージョンのホワイトニングキーは、対応したホワイトニングされた
暗号化された情報ブロック中の予め定められた位置に書込まれ、暗号化され、ホ
ワイトニングされた情報ブロックと共にエクスポートされ、外部メモリ24に記憶
される。これによって、暗号化された情報ブロックがインポートされたとき、暗
号化装置20はブロック中の既知の予め定められた位置からホワイトニングキーを
検索し、そのホワイトニングキーを解読プロセスで使用する。暗号化されたホワ
イトニングキーはブロックの内部に存在しているため、それはそのブロックの残
りによる認証によってカバーされることは明らかである。示されている実施形態
では、ホワイトニングキーはメモリリソースを保存するために装置10の外部に記
憶されるが、当業者は、記憶されたホワイトニングキーをエクスポートされた情
報ブロックにマッピングする方式でホワイトニングキーを装置10に内部的に記憶
することにより(上述の認証情報に関して行われたように)、セキュリティレベ
ルを高めることができることを理解するであろう。このようなホワイトニングキ
ーの管理方法は、もちろん本発明の技術的範囲を逸脱することなく使用されるこ
とができる。
As will be appreciated by those skilled in the art, in order to efficiently decrypt information blocks whitened by a whitening key, the encryption device 20 must have a whitening key. Since a new whitening key is preferably used for each block of exported encrypted information, storing the whitening key internally will quickly drain the device 10 from memory resources. In order to avoid such a result, in this preferred embodiment, the encrypted version of the whitening key is written to a predetermined position in the corresponding whitened encrypted information block. Rare, encrypted and whitened information blocks are exported and stored in external memory 24. Thus, when the encrypted information block is imported, the encryption device 20 searches for the whitening key from a known predetermined position in the block and uses the whitening key in the decryption process. Obviously, since the encrypted whitening key is inside a block, it is covered by authentication with the rest of the block. In the embodiment shown, the whitening key is stored external to the device 10 to conserve memory resources, but those skilled in the art will recognize that the whitening key may be mapped in a manner that maps the stored whitening key to the exported information block. It will be appreciated that by internally storing in the device 10 (as was done with the authentication information described above) the level of security can be increased. Such a whitening key management method can of course be used without departing from the technical scope of the present invention.

【0045】 当業者によって認識されるように、示されている実施形態では、エクスポー
トされた情報ブロックに対するCBC−MAC値が揮発性の読取り/書込みメモ
リ18に記憶されるので、電源の故障が生じた場合、あるいは別のあるリセット状
態が発生した場合には、メモリ18中のCBC−MAC値は失われる。CBC−M
AC値が失われた場合、認証装置22は、エクスポートされた情報ブロックを再度
インポートする時に認証できず、したがって防止措置をとっておかないと、エラ
ー状態が発生する。これらの状況のために、当業者は、故障許容システムのよう
な永久的な記憶装置が修正されたCBC−MAC値のために設けられていない場
合、元の暗号化された情報ブロックは保存され、スタートアップ時に元のCBC
−MAC値と共に使用されなければならないことを理解するであろう。上述のよ
うに、示されている装置10において、元の形態の暗号化された情報ブロックに対
するCBC−MAC値は、外部メモリ(たとえば、図3のROM142 )に恒久的
に記憶され、メモリ14から読取り/書込みメモリ18にスタートアッププロセスの
一部としてロードされる。したがって、装置10がリセットされたときには、常に
読取り/書込みメモリ18中のCBC−MAC値もまたそれらの元の値に復元され
る。その結果、示されている実施形態において、よく知られている信頼できる状
態から処理が始まることを確実にするために、処理は常に元の暗号化された情報
ブロックから始められる。
As will be appreciated by those skilled in the art, in the embodiment shown, a power failure occurs because the CBC-MAC value for the exported information block is stored in volatile read / write memory 18. CBC-MAC value in memory 18 will be lost if a reset condition occurs. CBC-M
If the AC value is lost, the authentication device 22 will not be able to authenticate when re-importing the exported information block, and an error condition will occur unless precautions are taken. For these situations, those skilled in the art will recognize that if permanent storage, such as a fault-tolerant system, is not provided for the modified CBC-MAC value, the original encrypted information block will be preserved. The original CBC at startup
-It will be understood that it must be used with the MAC value. As mentioned above, in the device 10 shown, the CBC-MAC values for the original form of the encrypted information block are stored permanently in an external memory (e.g., ROM 142 of FIG. 3). Read / write memory 18 is loaded as part of the startup process. Thus, whenever the device 10 is reset, the CBC-MAC values in the read / write memory 18 are also restored to their original values. As a result, in the embodiment shown, the process always starts with the original encrypted information block to ensure that the process starts from a well-known trusted state.

【0046】 当業者によって認識されるように、上記のCBC−MAC値処理方法は、暗
号化された情報に対する前の修正が失われることを当然意味している。しかしな
がら、これは、前の動作の結果が必ず失われることを意味するものではない。そ
の代わりに、不揮発性メモリが記憶している装置10の前の使用時に修正されたデ
ータは装置10から離れた永久的な記憶装置に記憶され、必要に応じてインポート
されることができる。この不揮発性メモリは、情報を用途に応じて暗号化または
解読された形態で記憶することができる。暗号化されたフォーマットおよび認証
されたフォーマットの少なくとも一方で記憶された場合、このような情報に対す
る認証情報はある不揮発性メモリにより内部的に記憶されるか、あるいは装置10
の外部においてある不揮発性メモリに記憶されて必要に応じてインポートされな
ければならないが、内部記憶が好ましい。
As will be appreciated by those skilled in the art, the above CBC-MAC value processing method naturally implies that previous modifications to the encrypted information are lost. However, this does not mean that the result of the previous operation is necessarily lost. Alternatively, the non-volatile memory stored data modified during previous use of the device 10 can be stored in permanent storage remote from the device 10 and imported as needed. This non-volatile memory can store information in an encrypted or decrypted form depending on the application. If stored in an encrypted format and / or an authenticated format, the authentication information for such information is stored internally by some non-volatile memory, or the device 10
Must be stored in some non-volatile memory outside of the device and imported as needed, but internal storage is preferred.

【0047】 示されている装置10は、ホワイトニングアルゴリズムと共にトリプルキー、
トリプルDES−CBCによって暗号化された情報ブロックの全てを暗号化する
。好ましい実施形態において、キーの階層構造が使用される。情報ブロックは、
セッションキーを解読キーとしてトリプルDESによって暗号化される。したが
って、セッションキーは、システムによって処理された情報ブロックの任意のも
のを解読するために必要とされる。セッションキーを得るために、マスターキー
にアクセスしなければならない。マスターキーを得るために、デバイスキーにア
クセスしなければならない。このようにして、装置10によって生成されたサービ
ス環境をハッカーから保護する際にデバイスキーのセキュリティを維持すること
が最も重要である。以下詳細に説明するように、デバイス、マスターおよびセッ
ションキーの暗号化されていない形態は、暗号化装置20およびその暗号化装置の
キーファシリティにおいてのみ利用可能である。それらは、常にプロセッサ16に
よってアクセス不可能であることが好ましい。デバイスキーをスクランブルされ
た形態で記憶し、ここに説明する拡散チェックサムプロセスによってそのキーを
保護することが好ましい。
The device 10 shown comprises a triple key with a whitening algorithm,
All of the information blocks encrypted by the Triple DES-CBC are encrypted. In a preferred embodiment, a hierarchical structure of keys is used. The information block is
It is encrypted by Triple DES using the session key as a decryption key. Therefore, the session key is needed to decrypt any of the information blocks processed by the system. To get the session key, you have to access the master key. To get the master key, you have to access the device key. In this way, it is of utmost importance to maintain the security of the device key in protecting the service environment created by the device 10 from hackers. As will be described in detail below, the unencrypted form of the device, master and session keys are only available in the encryption device 20 and the key facility of the encryption device. They are preferably always inaccessible by the processor 16. Preferably, the device key is stored in a scrambled form and the key is protected by a spreading checksum process as described herein.

【0048】 ここで使用されている“DK”とはデバイスキーを示し、“MK”はマスタ
ーキーを示し、“SK”はセッションキーを示し、“EMK”は暗号化されたマ
スターキー(すなわち、デバイスキーにより暗号化されたマスターキー)を示し
、“ESK”は暗号化されたセッションキー(すなわち、マスターキーで暗号化
されたセッションキー)を示す。
As used herein, “DK” refers to a device key, “MK” refers to a master key, “SK” refers to a session key, and “EMK” refers to an encrypted master key (ie, "ESK" indicates an encrypted session key (that is, a session key encrypted with the master key).

【0049】 上述したように、装置10の主なセキュリティ問題は、デバイス10において使
用されるキーのセキュリティを保存することである。キーは装置10のどこかのメ
モリに記憶されなければならない。しかしながら、ハッカーが機密保持された安
全な環境を打ち破るためにそのメモリからキー材料を読取ろうとする可能性は高
い。したがって、装置10内に記憶されたキー材料のような機密データへのアクセ
スを制御するための装置を含むことは避けられない。
As mentioned above, a major security problem of the device 10 is to preserve the security of the keys used in the device 10. The key must be stored somewhere in the memory of the device 10. However, it is highly likely that hackers will attempt to read key material from its memory to defeat a secure secure environment. Accordingly, it is inevitable to include a device for controlling access to sensitive data, such as keying material stored within device 10.

【0050】 図3には、装置10のさらに詳細なブロック図が示されている。その図面に示
されているように、装置10は、データを記憶するための不揮発性メモリ32と、メ
モリ34に含まれているデータへのアクセスを制御するための手段とを含むデバイ
ス30を備えている。不揮発性メモリ32は、示されている装置30においてEEPR
OMとして構成されている。しかしながら、当業者は、本発明の技術的範囲を逸
脱することなくこの目的で他のタイプのメモリデバイスが使用可能なことを容易
に理解するであろう。同様に、制御手段は、予め定められた状態が発生した時に
予め規定された機能を行うように構成された多数の論理ゲートを含むハードウェ
ア回路のような論理回路34によって構成されることができるが、当業者は、本発
明の技術的範囲を逸脱することなく多数の方法で論理回路34を構成できることを
容易に理解するであろう。たとえば、好ましい実施形態において、論理回路34は
プログラムされたプロセッサ16によって構成される。
FIG. 3 shows a more detailed block diagram of the device 10. As shown in the figure, the apparatus 10 comprises a device 30 including a non-volatile memory 32 for storing data and means for controlling access to data contained in the memory 34. ing. The non-volatile memory 32 stores the EEPR in the device 30 shown.
OM is configured. However, one of ordinary skill in the art will readily appreciate that other types of memory devices may be used for this purpose without departing from the scope of the invention. Similarly, the control means may be constituted by a logic circuit 34 such as a hardware circuit including a number of logic gates configured to perform a predefined function when a predefined state occurs. However, one of ordinary skill in the art will readily appreciate that logic 34 may be implemented in numerous ways without departing from the scope of the invention. For example, in a preferred embodiment, logic circuit 34 is configured by programmed processor 16.

【0051】 論理回路34は、メモリ32にアクセスして、メモリ32に含まれているデータの
少なくとも一部分が機密データを含んでいるか否かを決定するように構成されて
いる。論理回路34は、データに固有のプロパティを解析することによってこれを
決定する。とくに、示されている装置10において、論理回路34は、予め定められ
た特性を有するメモリ32中の任意のデータブロックを識別し、カウントする。そ
の後、それはカウントされたデータブロックの数をしきい値と比較する。論理回
路34は、この比較の結果を使用して、メモリ32における機密データの存在または
不在を示す。
The logic circuit 34 is configured to access the memory 32 and determine whether at least a portion of the data contained in the memory 32 contains sensitive data. Logic 34 determines this by analyzing the properties specific to the data. In particular, in the device 10 shown, the logic circuit 34 identifies and counts any data block in the memory 32 having predetermined characteristics. It then compares the number of counted data blocks to a threshold. Logic 34 uses the result of this comparison to indicate the presence or absence of sensitive data in memory 32.

【0052】 さらに特有の例をあげると、メモリ32に記憶されたデータは、通常そうであ
るように各ビットが“1”または“0”の論理状態を有している一連のビットに
よって表される。示されている装置10において、論理回路34は、論理状態“1”
を有しているメモリ中のビットの数をカウントするように構成されている。その
後、カウントされた数は、予め定められたしきい値数と比較される。この比較に
よって、論理状態“1”を有するメモリ32中のビットの数がしきい値数を越える
ことが示された場合、論理回路34は機密データがメモリに記憶されていることを
示し、それに対するアクセスを制限する。この比較により、論理状態“1”を有
するメモリ32中のビットがしきい値数を下まわることが示された場合、論理回路
34は機密データが存在しないことを示し、メモリ32に対するアクセスに課された
制限を解除する。予め定められた特性を有するデータブロックを識別してカウン
トし、カウントされたブロックをしきい値と比較するこのプロセスが、ここにお
いて“拡散されたチェックサムプロセス”と呼ばれている。
As a more specific example, the data stored in memory 32 is represented by a series of bits, each bit having a logic state of “1” or “0”, as is usually the case. You. In the device 10 shown, the logic circuit 34 has a logic state "1".
Is configured to count the number of bits in the memory having Thereafter, the counted number is compared with a predetermined threshold number. If the comparison indicates that the number of bits in the memory 32 having the logic state "1" exceeds the threshold number, the logic circuit 34 indicates that sensitive data is stored in the memory, Restrict access to. If the comparison indicates that the bit in memory 32 having logic state "1" is below the threshold number, then the logic circuit
Numeral 34 indicates that no confidential data exists, and the restriction imposed on access to the memory 32 is released. This process of identifying and counting data blocks having predetermined characteristics and comparing the counted blocks to a threshold is referred to herein as a "spread checksum process."

【0053】 機密データがメモリ32中に存在するか否かは、メモリ34自身の中のデータの
固有のプロパティに基づいて決定されることに注意することが大切である。それ
とは対照的に、従来技術では、機密データがメモリ中に存在するか否かに関する
決定は、メモリに記憶された1以上のフラグビットの状態を読取ることによって
行われることが多かった。このような従来技術のデバイスにおいて、フラグビッ
トは、機密データが存在しない場合は第1の状態に設定され、機密データが存在
する場合には第2の状態に設定される。これらの従来技術の方法には、メモリに
対する完全なロック/ロック解除決定が比較的小さい数のビット(時にはただ1
つ)に基づいており、これらのビットは保護されているデータまたはその存在の
実表示を構成しないという欠点がある。ハッカーは、たとえばメモリに損傷を与
えたり、あるいは偽り読取りを誘導することによりフラグビットの状態を変更す
ることによって、これらの従来技術の方法をしばしば利用しようとする。ハッカ
ーは、フラグビットの状態の変更に成功した場合、機密データが実際にメモリに
記憶されているときにこれらの従来技術のデバイスにこのような機密データが存
在しないと確信させ、それによって機密データにアクセスすることができる。
It is important to note that whether sensitive data is present in memory 32 is determined based on the unique properties of the data in memory 34 itself. In contrast, in the prior art, a determination as to whether sensitive data is present in memory was often made by reading the state of one or more flag bits stored in memory. In such prior art devices, the flag bit is set to a first state when confidential data does not exist, and is set to a second state when confidential data exists. These prior art methods require that a complete lock / unlock decision on memory be made with a relatively small number of bits (sometimes only one).
And that these bits do not constitute a real indication of the protected data or its presence. Hackers often attempt to take advantage of these prior art methods by changing the state of the flag bits, for example, by damaging the memory or inducing a false read. If the hacker succeeds in changing the state of the flag bit, it will be convinced that such sensitive data does not exist in these prior art devices when the sensitive data is actually stored in memory, thereby causing the sensitive data to be lost. Can be accessed.

【0054】 示されている装置30では、はっきりと対照的に、ロックとロック解除との決
定を制御するフラグビットは存在しない。したがって、メモリ32の小さい部分の
内容を損傷し、あるいは変更しても、デバイスのロックを解除するには不十分で
ある。その代わり、適切に低いしきい値が選択された場合には、機密データが存
在しないことを論理回路34に確信させるために、メモリ32中のほとんど全てのデ
ータの状態が変更されなければならない。さらに、機密データの存在を識別する
ために使用されたデータは、機密データ自身であるため、メモリ32のロックを解
除するのに十分なこのデータの状態を変更することにより、メモリ32に記憶され
た実質的に全ての機密データが破壊されることが好ましい。換言すると、メモリ
32に記憶されている機密データがないと論理回路34に決定させるのに十分な固有
のプロパティの変更は、メモリ32中のデータを破壊する。その結果、適用に対し
てしきい値が適切に設定されている場合には、アタックを成功させるメモリ中の
機密データは不十分でなければならない。換言すると、機密データの決定はある
人為的計量ではなく、機密データ自身の存在に関連している。
In the device 30 shown, in sharp contrast, there are no flag bits that control the locking and unlocking decisions. Thus, any damage or alteration of the contents of a small portion of memory 32 is not sufficient to unlock the device. Instead, if a suitably low threshold is selected, the state of almost all data in memory 32 must be changed to convince logic 34 that no sensitive data is present. Further, since the data used to identify the presence of the sensitive data is the sensitive data itself, by changing the state of this data sufficient to unlock the memory 32, it is stored in the memory 32 Preferably, substantially all sensitive data is destroyed. In other words, memory
A change in a property that is unique enough to cause the logic circuit 34 to determine that there is no sensitive data stored in 32 destroys the data in memory 32. As a result, if the threshold is properly set for the application, there must be insufficient sensitive data in memory for a successful attack. In other words, the determination of sensitive data is not related to some artificial metric, but to the existence of the sensitive data itself.

【0055】 当業者によって認識されるように、上述した拡散されたチェックサムプロセ
スは、本発明の技術的範囲を逸脱することなく、メモリ32の全体またはメモリ32
の一部分のいずれに関して行われてもよい。さらに、しきい値は、本発明の技術
的範囲を逸脱することなく任意の所望の値に設定することができるが、比較的低
いレベルに設定されることが好ましいことを当業者は理解するであろう。理想的
には、装置のロックが解除される前に全ての機密データが破壊されなければなら
ないように、しきい値は1に設定される。しかし、試験を可能にするために、し
きい値を選択する際に、セキュリティと試験可能性との間で妥協がなされなけれ
ばならない。実際には、示されている装置において、メモリ32の制御された部分
は3Kビットであり、しきい値は64ビットに設定される。当業者は、本発明の
技術的範囲を逸脱することなく、しきい値を任意の所望のレベルに設定できるこ
とを理解するであろう。しきい値は、容認できないほどシステムのセキュリティ
を妥協しない公開の許容可能なレベルであるものの決定に基づいて選択されるこ
とが好ましい。
As will be appreciated by those skilled in the art, the spread checksum process described above can be implemented in whole memory 32 or in memory 32 without departing from the scope of the invention.
May be performed for any part of Further, those skilled in the art will appreciate that the threshold can be set to any desired value without departing from the scope of the present invention, but is preferably set to a relatively low level. There will be. Ideally, the threshold is set to 1 so that all sensitive data must be destroyed before the device is unlocked. However, a compromise must be made between security and testability in selecting a threshold to enable testing. In practice, in the device shown, the controlled portion of memory 32 is 3K bits and the threshold is set to 64 bits. Those skilled in the art will appreciate that the threshold can be set to any desired level without departing from the scope of the present invention. The threshold is preferably selected based on a determination of what is an acceptable level of disclosure that does not unacceptably compromise system security.

【0056】 さらに、当業者は、示されている装置10において論理回路34によってカウン
トされたデータブロックが論理状態“1”を有するビットであるが、この論理回
路34は本発明の技術的範囲を逸脱することなく、論理状態“0”を有するビット
をカウントするように、あるいは2進値の予め定められた範囲内(たとえば、0
0000010と00010001との間)の2進値のようなあるプロパティを
有する複数のビットを含むデータブロックをカウントするように構成されること
が可能なことを理解するであろう。
Further, those skilled in the art will recognize that while the data block counted by logic circuit 34 in the illustrated device 10 is a bit having a logic state “1”, this logic circuit 34 is within the scope of the present invention. Without deviating, counting bits having a logic state "0" or within a predetermined range of binary values (e.g., 0
It will be appreciated that it can be configured to count data blocks that include a plurality of bits having certain properties, such as a binary value (between 0000010 and 00010001).

【0057】 示されている装置10,30に存在する固有の均衡(tension) は、セキュリティ
に対する必要性と試験可能性および最初のプログラマビリティとの間で行われる
。とくに、上述したように、情報ブロックを解読/暗号化するために使用された
キー材料の保存所(すなわち、メモリ32)へのアクセスを制御することが重要で
あり、また、製品の販売前、ならびに装置10が販売されて現場で使用された後に
返品された場合に、そのメモリ32を試験できることが大切である。試験は、しば
しばメモリ32の読取りおよび書込みを必要とする。したがって、試験が可能であ
ることは、メモリ32に記憶されたデータの機密性を守るのに不都合である。
The inherent tension that exists in the devices 10, 30 shown is a trade-off between security needs and testability and initial programmability. In particular, as mentioned above, it is important to control access to the repository of keying material (ie, memory 32) used to decrypt / encrypt blocks of information, It is important that the memory 32 can be tested if the device 10 is sold and returned after use in the field. Testing often requires reading and writing to memory 32. Therefore, the ability to perform a test is inconvenient for protecting the confidentiality of the data stored in the memory 32.

【0058】 示されている装置10において、試験は、上述の拡散されたチェックサム試験
により機密データがメモリ32中に存在しないことが示された後でのみ行なわれる
ことができる。
In the device 10 shown, testing can be performed only after the spread checksum test described above indicates that sensitive data is not present in memory 32.

【0059】 機密データにより既にプログラムされている返品された装置等に関しては、
試験は、最初にメモリ32を消去することによってのみ行われることができる。し
たがって、装置10は、以下説明する制御されたプロセスによりメモリ32の消去を
トリガーするための手段を備えている。
For returned devices etc. already programmed with confidential data,
The test can only be performed by first erasing the memory 32. Accordingly, the apparatus 10 comprises means for triggering the erasure of the memory 32 by a controlled process described below.

【0060】 消去方法はまた、適用によって所望されるならば、タンパー(tamper)応答と
して使用されることができる。
The erasure method can also be used as a tamper response if desired by the application.

【0061】 メモリの部分的な消去をトリガーする(たとえば、消去をトリガーし、その
後装置への電源を速やかに落とす)ことによってハッカーがメモリ32内の機密デ
ータにアクセスすることを阻止するために、論理回路34は消去トリガーに応答し
て、メモリ32を最終的な状態に消去する前に1以上の中間値を有する中間データ
ブロックでメモリ32にはじめに記憶されたデータブロックを置換することによっ
てこのメモリ32を消去するように構成される。この中間値は、メモリ32に記憶さ
れた固有のプロパティを有するデータブロックの数が、機密データが全て破壊さ
れるまで機密データの存在を論理回路34が示すレベルのままであることを確実に
するように選択される。論理回路34は、メモリに記憶された中間データブロック
を1以上の最終値を有する最終データブロックにより置換することによって、メ
モリ32を最終的な状態に消去する。
To prevent hackers from accessing sensitive data in memory 32 by triggering a partial erase of the memory (eg, triggering an erase and then immediately powering down the device) Logic circuit 34 responds to the erase trigger by replacing the data block originally stored in memory 32 with an intermediate data block having one or more intermediate values before erasing memory 32 to its final state. 32 are configured to be erased. This intermediate value ensures that the number of data blocks with unique properties stored in memory 32 remains at a level indicated by logic circuit 34 indicating the presence of sensitive data until all sensitive data is destroyed. To be selected. Logic circuit 34 erases memory 32 to a final state by replacing the intermediate data block stored in the memory with a final data block having one or more final values.

【0062】 とくに、示されている装置10,30において、論理回路34はメモリ32を3段階
で消去する。第1の段階において、論理回路34は、第1の中間値をメモリ32中の
第1の位置グループに書込む。第2の段階で、論理回路34は、第2の中間値をメ
モリ32中の第2の位置グループに書込む。第3の段階で、論理回路34は、最終的
な値をメモリ32中の第1および第2の両位置グループに書込む。第1の中間値は
、第1の段階の後、またはそのあいだにメモリ32の消去が終わった場合、メモリ
32中に固有のプロパティを有するデータブロックのカウントされた数が機密デー
タの存在を示すように選択されることが好ましい。換言すると、中間値は、固有
のプロパティを有する非機密データであるように選択される。機密情報の各半分
は、拡散されたチェックサムプロセスの下で機密として情報を分類するのにいず
れかの半分が存在すれば十分であることを確実にするために、固有のプロパティ
を有するように選択される。これが選択されるのは、バルク消去が行われる場合
に、機密情報を含まないものとしてデバイスを誤って分類する可能性のある未定
義状態にいくつかのメモリがなるためである。各半分の固有のプロパティは、揮
発性メモリのある劣化の場合の誤分類を防止するためにしきい値を大幅に越えて
いなければならない。好ましい実施形態において、各半分の中に少なくとも96
のビットが設定されなければならない。ランダムに生成されたキー材料は不偏(u
nbiased)であり、したがってこの数を容易に満たすので、これは不合理な過度の
制限ではない。示されている装置10において、第1および第2の中間値は同じで
ある。それらは、16進値0x55に設定される。また、示されている装置10に
おいて、第1の段階は、メモリ32中の全ての偶数アドレスに16進値0x55を
書込むことによって行われ、第2の段階は、メモリ32中の全ての奇数アドレスに
16進値0x55を書込むことによって行われ、最終段階は、メモリ32中の全て
のアドレスに16進値0x00を書込むことによって行われる。しかしながら、
当業者は、本発明の技術的範囲を逸脱することなく、第1の中間値、第2の中間
値および最終値の少なくとも1つに対して別の値が選択されることが可能であり
、および、または、もっと多くのまたは少ない消去段階が使用可能であることを
理解するであろう。ハッカーは時には種々の物理的アタックによってメモリの内
容を読取ろうとすることはよく知られている。メモリ32の内容の機密性を維持す
るために使用されるセキュリティ方法を打破するためにこれらの技術が使用され
ることを防止するために、種々のセキュリティ方法(たとえば、保護層がメモリ
32に物理的に取付けられることができる。)が使用されることができる。
In particular, in the devices 10 and 30 shown, the logic circuit 34 erases the memory 32 in three stages. In a first step, logic circuit 34 writes the first intermediate value to a first group of locations in memory 32. In a second stage, logic circuit 34 writes the second intermediate value to a second group of locations in memory 32. In a third step, logic circuit 34 writes the final value to both first and second groups of locations in memory 32. The first intermediate value is the memory value after erasure of memory 32 is completed after or during the first phase.
Preferably, the counted number of data blocks having unique properties in 32 is selected to indicate the presence of sensitive data. In other words, the intermediate values are selected to be non-sensitive data with unique properties. Each half of the sensitive information should have unique properties to ensure that either half is sufficient to classify the information as sensitive under the spread checksum process Selected. This is chosen because when bulk erasure is performed, some memory will be in an undefined state that could incorrectly classify the device as not containing sensitive information. The unique properties of each half must exceed the threshold significantly to prevent misclassification in the case of some degradation of volatile memory. In a preferred embodiment, at least 96 in each half
Must be set. The randomly generated key material is unbiased (u
This is not an unreasonable undue limit, since it is easy to satisfy this number. In the device 10 shown, the first and second intermediate values are the same. They are set to the hexadecimal value 0x55. Also, in the device 10 shown, the first stage is performed by writing the hexadecimal value 0x55 to all even addresses in the memory 32, and the second stage is performed by writing all the odd addresses in the memory 32. This is done by writing the hexadecimal value 0x55 to the address, and the last step is done by writing the hexadecimal value 0x00 to all the addresses in the memory 32. However,
One skilled in the art can select another value for at least one of the first intermediate value, the second intermediate value, and the final value without departing from the technical scope of the present invention; It will be appreciated that and / or more or less erase steps can be used. It is well known that hackers sometimes try to read the contents of memory by various physical attacks. To prevent these techniques from being used to defeat the security methods used to maintain the confidentiality of the contents of memory 32, various security methods (eg, protection layers
Can be physically mounted on 32. ) Can be used.

【0063】 当業者によって理解されるように、上述の拡散されたチェックサム手順は、
メモリ32またはメモリを含むシステムのセキュリティ状態を定めるために使用さ
れることができる。拡散されたチェックサムプロセスが機密データの存在を示し
た場合、メモリ32は、第1のセキュリティ状態であると定められる。機密データ
が存在しない場合、メモリ32は、第2のセキュリティ状態であると定められる。
示されている装置10において、メモリ32の試験は、このメモリ32が第2のセキュ
リティ状態のときにのみ可能である。
As will be appreciated by those skilled in the art, the spread checksum procedure described above
It can be used to determine the security state of the memory 32 or a system containing the memory. If the spread checksum process indicates the presence of sensitive data, the memory 32 is determined to be in a first security state. If no sensitive data is present, the memory 32 is determined to be in a second security state.
In the device 10 shown, testing of the memory 32 is only possible when the memory 32 is in the second security state.

【0064】 上述のように、示されている装置10は少なくとも2つのセキュリティセル、
すなわちカーネルモードセルおよびユーザモードセルを使用する。プロセッサ16
は、ユーザモードで非機密ソフトウェアを動作し、カーネルモードで機密ソフト
ウェアを動作することが好ましい。多くの適用に対して、2つのセキュリティセ
ルで十分である。しかしながら、場合によって2つより多くのセキュリティセル
を有することが好ましい。たとえば、多数の秘密タスク間における多重タスクが
可能であることが望ましく、ソフトウェアを同時に実行する2以上のセル(たと
えば、異なったベンダからの異なった条件付きアクセスシステム)間に保護を設
けることが望ましく、また、1つのセルを妥協して処理したことによりシステム
の全てが犠牲になることを防ぐことが望ましい。
As mentioned above, the device 10 shown has at least two security cells,
That is, a kernel mode cell and a user mode cell are used. Processor 16
It is preferable to operate non-secure software in user mode and to operate confidential software in kernel mode. For many applications, two security cells are sufficient. However, in some cases it is preferred to have more than two security cells. For example, it is desirable to be able to multitask among a number of secret tasks, and to provide protection between two or more cells running software simultaneously (eg, different conditional access systems from different vendors). It is also desirable to prevent the compromise of one cell from sacrificing all of the system.

【0065】 図2に示されているように、示されている装置10は随意に、別個のアドレス
空間における多数のセキュリティセルの実施、および機密保持された安全な内部
メモリ18と外部メモリSDRAM24との間における要求時ページングを容易にす
るメモリ管理装置38を備えていてもよい。示されている実施形態において、メモ
リ管理装置38は、必要に応じて多数のセキュリティセル間においてメモリリソー
スを割当てる時にプロセッサ16を補助するコプロセッサとして構成される。この
適用において、各ページは、別個に独立して暗号化され、認証されたブロックで
ある。さらに、セキュリティセルのいくつかまたは全ては、内部の機密保持され
た安全な周辺装置への制限されたアクセスを行うようにユーザモードで動作する
ことが可能であるが、依然として保護された機密保持された環境を有しているこ
とが理解されるであろう。当業者は、本発明の技術的範囲を逸脱することなく多
数のデバイスがメモリ管理の機能を行うために構成可能なことを理解するであろ
う。とくに、この機能は、標準的なメモリ管理装置によって容易に構成されるこ
とができる。
As shown in FIG. 2, the illustrated apparatus 10 optionally implements multiple security cells in separate address spaces, and secures secure internal memory 18 and external memory SDRAM 24. A memory management device 38 that facilitates paging on demand between the two. In the embodiment shown, the memory manager 38 is configured as a co-processor to assist the processor 16 in allocating memory resources among multiple security cells as needed. In this application, each page is a separately and independently encrypted and authenticated block. In addition, some or all of the security cells can operate in user mode to provide limited access to internal secure secure peripherals, but still remain secure secure It will be understood that the environment has a good environment. Those skilled in the art will appreciate that numerous devices can be configured to perform the functions of memory management without departing from the scope of the present invention. In particular, this function can be easily implemented by a standard memory management device.

【0066】 図3に示されているように、プロセッサ16は、東芝製のR3904チップの
中心部を形成するR3000A MIPS RISC CPU(million instru
ctions per second Reduced Instruction Set Computer Central Processing Un
it)によって構成される。図3に示されているように、不揮発性メモリ14は、R
OMによって構成されることが好ましく、不揮発性メモリ32は、EEPROMに
よって構成されることが好ましく、読取り/書込みメモリ18は、揮発性データメ
モリ(DMEM)によって構成されることが好ましく、暗号化装置20および認証
装置22は、ハードウェア暗号化装置の性能の利点を利用するために、および大部
分のブロック暗号化装置が機密ハッシュに適合可能であるという理由から同じ専
用ハードウェア回路によって構成されている。しかしながら、本発明の技術的範
囲を逸脱することなく暗号化装置20および認証装置22の少なくとも一方をソフト
ウェアによって構成することができる。デバイスのセキュリティ要求のために暗
号化装置のブロック寸法より大きいハッシュが必要とされた場合、暗号化装置20
と認証装置22との組合せは許容可能な妥協にならない可能性がある。プロセッサ
16は、32ビットの汎用バス40(GBUS)によってROM14、論理回路34およ
びDMEM18と通信し、いくつかの適用では、この汎用バス40は上述したように
、暗号化された情報セクションをDMEM18とSDRAM24との間でインポート
およびエクスポートするためのインポート/エクスポート手段としても動作する
As shown in FIG. 3, the processor 16 includes an R3000A MIPS RISC CPU (million instrument) forming the center of an R3904 chip manufactured by Toshiba.
ctions per second Reduced Instruction Set Computer Central Processing Un
it). As shown in FIG. 3, the nonvolatile memory 14 stores R
The non-volatile memory 32 is preferably formed by an EEPROM, the read / write memory 18 is preferably formed by a volatile data memory (DMEM), and the encryption device 20 is preferably formed by an OM. And the authentication unit 22 is configured with the same dedicated hardware circuitry to take advantage of the performance advantages of the hardware encryption unit and because most block encryption units are compatible with secret hashes . However, at least one of the encryption device 20 and the authentication device 22 can be configured by software without departing from the technical scope of the present invention. If the security requirements of the device require a hash larger than the block size of the encryption device,
The combination with the authentication device 22 may not be an acceptable compromise. Processor
The 16 communicates with the ROM 14, the logic circuit 34 and the DMEM 18 via a 32-bit general purpose bus 40 (GBUS), and in some applications, the general purpose bus 40 transfers the encrypted information section to the DMEM 18 and the SDRAM 24 as described above. It also operates as an import / export means for importing and exporting between and.

【0067】 DMEM18と暗号化装置20との間における情報ブロックの移動を制御し、図
1の適用における衛星転送機能を備えた暗号化装置20を共用するために、装置10
は第2のプロセッサ42をさらに具備している。図3に示されているように、第2
のプロセッサ42は、暗号化装置20(暗号化モジュール20により、示されている装
置10において構成されている)と通信し、また、バス44を介して読取り/書込み
メモリ18(示されている実施形態では、DMEM)と通信している。第2のプロ
セッサ42は、DMEM18に記憶された情報ブロックの解読および再暗号化を開始
するように構成されている。示されている実施形態において、第2のプロセッサ
42はシーケンサによって構成されている。開示されている実施形態におけるシー
ケンサ42の存在およびその暗号化装置20への接続は、目的とする用途(図1)に
よって左右されるものであり、本発明の実施の成功に必要ない。
To control the movement of information blocks between the DMEM 18 and the encryption device 20 and share the encryption device 20 with satellite transfer function in the application of FIG.
Further comprises a second processor 42. As shown in FIG.
The processor 42 communicates with the encryption device 20 (configured in the device 10 as shown by the encryption module 20), and also via the bus 44 the read / write memory 18 (in the illustrated implementation). In the form, it is communicating with DMEM). The second processor 42 is configured to initiate decryption and re-encryption of the information blocks stored in DMEM 18. In the embodiment shown, the second processor
42 is configured by a sequencer. The presence of sequencer 42 and its connection to encryption device 20 in the disclosed embodiment is dependent on the intended use (FIG. 1) and is not required for a successful implementation of the present invention.

【0068】 示されている装置10において、シーケンサ42は、プロセッサ16へのピア(peer
)として動作する。プロセッサ16からシーケンサ42への命令の配信を容易にする
ために、装置10は命令メモリ(IMEM)46を具備している。動作において、プ
ロセッサ16がシーケンサ42にタスクの実行を要求する必要がある場合、それは必
要な命令をIMEM46に書込み、制御信号をシーケンサ42に送ってIMEM46に
命令が存在することを示す。その後、シーケンサ42はこの命令をIMEM46から
読取って実行する。
In the device 10 shown, the sequencer 42 has a peer to the processor 16
). To facilitate the delivery of instructions from processor 16 to sequencer 42, device 10 includes an instruction memory (IMEM) 46. In operation, if the processor 16 needs to request the sequencer 42 to perform a task, it writes the necessary instructions to the IMEM 46 and sends a control signal to the sequencer 42 to indicate that the instruction is present in the IMEM 46. Thereafter, the sequencer 42 reads this instruction from the IMEM 46 and executes it.

【0069】 上述のように、装置10は、プロセッサ16による実行の前に、解読された情報
を認証し、暗号化装置20による暗号化の前に情報を再度認証するように機能する
認証装置22を具備している。示されている装置10において、認証装置22は、暗号
化装置20によって構成されている。
As described above, the device 10 authenticates the decrypted information before execution by the processor 16 and re-authenticates the information before encryption by the encryption device 20. Is provided. In the device 10 shown, the authentication device 22 is constituted by an encryption device 20.

【0070】 やはり上述されているように、暗号化装置20は、再度暗号化された情報ブロ
ックが常にそれらが解読前にそうであったものと確実に異なるようにするために
使用されるホワイトニングキーに関してキーサイクリングを行うように構成され
ていることが好ましい。キーサイクリング工程に固有の新しいホワイトニングキ
ーを生成するために、装置10は、暗号文に強い疑似ランダム数発生器(CSPR
NG)に継続的に再度シードする(re-seed) ために使用されるエントロピーソー
ス48を具備している。既存のハードウェア暗号化装置20の性能上の利点を利用す
るために、暗号化装置20がCSPRNGを構成している。図3に示されているよ
うに、エントロピーソース48は、バス44を介してシーケンサ42および暗号化モジ
ュール20と通信している。シーケンサ42は、要求された時に新しいランダム数を
発生し、また再暗号化プロセスで使用されるためのホワイトニングキーの生成時
にCSPRNGによって使用されるために暗号化モジュール20にランダム数を配
信することをエントロピーソース48に要求するように構成されている。
As also mentioned above, the encryption device 20 uses a whitening key used to ensure that the re-encrypted information blocks always differ from what they were before they were decrypted. Is preferably configured to perform key cycling. To generate a new whitening key that is unique to the key cycling process, the device 10 uses a cryptographically strong pseudo-random number generator (CSPR).
It has an entropy source 48 that is used to continuously re-seed (NG). In order to take advantage of the performance advantages of the existing hardware encryption device 20, the encryption device 20 constitutes a CSPRNG. As shown in FIG. 3, entropy source 48 is in communication with sequencer 42 and encryption module 20 via bus 44. Sequencer 42 generates a new random number when requested and delivers the random number to encryption module 20 for use by the CSPRNG in generating a whitening key for use in the re-encryption process. It is configured to require an entropy source 48.

【0071】 やはり上述されているように、トリプルキー、トリプルDESアルゴリズム
において使用されるキーのいくつかは、メモリ32に記憶される。これらのキーが
暗号化装置20およびメモリ32においてのみ利用可能であることを確実にし、また
キーがプロセッサ16、シーケンサ42またはそれらが実行するソフトウェア/ファ
ームウェアの任意のものによってアクセス不可能なことを確実にするために、装
置10はキー分離回路50を設けられており、このキー分離回路50が、キー階層構造
の基礎的なキーをロードするために論理回路34を暗号化装置20に接続している。
とくに、示されている装置10において、キー分離回路50は、必要なキー材料をE
EPROM32から暗号化モジュール20に供給するための機構を提供する。キーが
別のシステムコンポーネント(ハードウェア、ソフトウェアまたはファームウェ
ア)によってアクセスされることができないことを確実にするために、メモリ32
、論理回路34、キー分離回路50および暗号化モジュール20は、閉システムを構成
している。
As also mentioned above, some of the keys used in the triple key, triple DES algorithm are stored in the memory 32. Ensure that these keys are only available in encryption device 20 and memory 32, and that the keys are not accessible by processor 16, sequencer 42, or any of the software / firmware they execute. The device 10 is provided with a key separation circuit 50, which connects the logic circuit 34 to the encryption device 20 to load the basic keys of the key hierarchy. I have.
In particular, in the device 10 shown, the key separation circuit 50 provides the necessary key material with E
A mechanism is provided for supplying the encryption module 20 from the EPROM 32. Memory 32 to ensure that the key cannot be accessed by another system component (hardware, software or firmware)
, The logic circuit 34, the key separation circuit 50, and the encryption module 20 constitute a closed system.

【0072】 やはり上述したように、外部ピンの状態は、センシチブな情報が機密保持さ
れた安全な環境外に露出されることを防止するために、機密保持された内部周辺
装置へのアクセス中に強制的に予め定められた状態にされている。このために、
装置10は1以上の沈黙モードサイレンシング回路52を備えている。この沈黙モー
ドサイレンシング回路52は論理ゲートを含むハードウェア回路として構成されて
いることが好ましく、論理ゲートは、バスサイクルが機密データへのアクセスで
はないと検出した後を除いて、外部ピンを予め定められた状態(3状態のような
)にする。この検出は、バス上に現れるアドレスに基づいて行われることができ
る。このようにして、内部機密データおよびバス非アクティブ状態への両アクセ
スがマスクされる。その結果、アタッカーは、実行の流れ、命令実行時間、また
はデータアクセスの順序のような詳細に基づいた統計的アタックの情報を拒否さ
れる。 [バーサクリプトソフトウェアの説明] セキュリティのために、機密保持されたカーネルは、実時間オペレーティング
システム(RTOS)が装置10により使用されることのできる種々の制限を課す
必要がある。以下のリストは、RTOSが満たさなければならない要求/制限を
含んでいる: 1.文脈切替え--機密保持されたカーネル(RISC54(16)上で動作する)
は、実際の文脈切替え(すなわち、タスク間の切替え)を行うが、そのように動
作することを明確に要求された場合のみこれを行う。先取り可能な、および先取
り不能な文脈切替えが共にサポートされる。 2.バーサクリプト文脈切替え補助--RTOSは、バーサクリプトアプレッ
トが、別のバーサクリプトアプレットの実行が可能になると考えられるほど十分
長く実行した時機を示すようにフラグを設定することを期待されている。最終的
な決定は、別のバーサクリプトアプレットが実行可能か否かに基づいて、このよ
うな動作がその時点で割込み禁止の状態にある場合に、機密保持されたカーネル
によって行われる。
As also mentioned above, the state of the external pins may cause access to the secured internal peripheral device to prevent sensitive information from being exposed outside the secured secure environment. It is forcibly set in a predetermined state. For this,
Apparatus 10 includes one or more silence mode silencing circuits 52. The silence mode silencing circuit 52 is preferably configured as a hardware circuit that includes logic gates, which pre-configure external pins except after detecting that a bus cycle is not an access to sensitive data. Set to a defined state (like three states). This detection can be based on the address appearing on the bus. In this way, both access to internal sensitive data and the bus inactive state are masked. As a result, the attacker is rejected for information on statistical attacks based on details such as execution flow, instruction execution time, or data access order. Versacrypt Software Description For security, a secured kernel needs to impose various restrictions on which a real-time operating system (RTOS) can be used by the device 10. The following list contains the requirements / restrictions that the RTOS must meet: Context switching--secure kernel (runs on RISC54 (16))
Performs the actual context switch (ie, switch between tasks), but only if it is explicitly required to do so. Both preemptable and nonpreemptive context switching are supported. 2. Versacrypt Context Switching Assistance--The RTOS is expected to set a flag to indicate when a Versacrypt applet has run long enough to allow another Versacrypt applet to run. The final decision is made by the secure kernel if such an operation is currently disabled, based on whether another versacrypt applet is executable.

【0073】 3.システムスタートアップ--機密保持されたカーネルは、システムスタ
ートアップのプロセスと一体的に関連している。RTOSが初期状態、そのロー
ド元、あるいはそのロード方法に関して任意の要求を有している場合、それは、
機密保持されたカーネルのスタートアップの一部分であるバーサクリプトブート
ストラップアプレットによって構成されることができる。
[0073] 3. System Startup--A secured kernel is integrally associated with the system startup process. If the RTOS has any requirements regarding the initial state, its load source, or its load method,
It can be configured by the Versacrypt bootstrap applet, which is part of the secure kernel startup.

【0074】 4.カーネルモード--機密保持されたカーネルおよびバーサクリプト(す
なわち、装置10によって提供された機密保持された環境内で実行されている暗号
化されたソフトウェア)は、プロセッサのカーネルモードを単独で使用する。こ
れは次のことを意味する:(a)割込み処理--全ての割込みは、機密保持された
カーネルによって処理され、その後ユーザ供給ハンドラのテーブルに送られる;
(b)システム呼出し--機密保持されたカーネルへのAPIはSyscall 命令によ
る。RTOSは、Syscall (システム呼出し)命令によるシステム呼出しを実行
しない可能性がある。(c)エラー処理--バスエラー等の事象はRTOSに送ら
れない。(d)アドレスマップ--安全でない周辺装置は全てユーザアドレス空間
にマッピングされているため、機密保持されたカーネルはそれらへのアクセス時
のボトルネックにはならない。
[0074] 4. Kernel Mode--The secure kernel and versacrypt (ie, encrypted software running in the secure environment provided by device 10) solely use the kernel mode of the processor. This means: (a) Interrupt handling--all interrupts are handled by the secured kernel and then sent to a user-supplied handler table;
(B) System call--API to secure kernel is by Syscall instruction. The RTOS may not execute a system call with a Syscall (system call) instruction. (C) Error processing--events such as bus errors are not sent to the RTOS. (D) Address Map--Because all insecure peripherals are mapped into the user address space, the secured kernel does not become a bottleneck in accessing them.

【0075】 5.低メモリグローバル--ユーザソフトウェアと機密保持されたカーネル
との間で通信するために少量(256バイト未満)のグローバル変数が使用され
ている。RTOSが低メモリグローバルを有している場合、それらをこれらと矛
盾しないようにしなければならない。
[0075] 5. Low memory globals-A small amount (less than 256 bytes) of global variables are used to communicate between the user software and the secured kernel. If the RTOS has low memory globals, they must be consistent with these.

【0076】 6.RTOS用のソースコード--RTOSは、機密保持されたカーネルに
関して実行するように修正されなければならない。
[0076] 6. Source Code for RTOS--The RTOS must be modified to run on a secure kernel.

【0077】 図4は、MIPSプロセッサ54(16)で実行しているソフトウェアの種々のク
ラス間の関係を示す。このモデルともっと伝統的なモデルとの相違は、所定の機
能が機密保持されたカーネルを遂行する必要があることである。これらの機能は
、(1)セキュリティのために制御されているハードウェアへのアクセス、(2
)割込み処理装置のディスパッチ等の、セキュリティのためにとられなければな
らない全ての機能、および(3)明確で機密保持されたインターフェースを有す
るためのバーサクリプト環境との通信である。バーサクリプトアプレットは、可
変的なアクセスおよびサブルーチン呼出しの両者によって実時間オペレーティン
グシステムおよびアプリケーションソフトウェアに直接アクセスできるが、機密
保持されたカーネルAPIによる通信を行うように制限されている。
FIG. 4 shows the relationship between the various classes of software running on the MIPS processor 54 (16). The difference between this model and the more traditional model is that certain functions need to perform a secure kernel. These functions include (1) access to hardware controlled for security, (2)
) All functions that must be taken for security, such as dispatching the interrupt handling device, and (3) communication with the Versacrypt environment to have a clear and secure interface. The Versacrypt applet has direct access to the real-time operating system and application software, both through variable access and subroutine calls, but is restricted to communicating with a secure kernel API.

【0078】 大部分のシステム呼出しは、割込み禁止の状態で実行されるが、もっと長い
実行時間を有することを期待されているものは、呼出し側(caller)のタ
スクの一部分として割込み可能であるが先取り禁止の状態で実行する。内部メモ
リ18において利用可能なカーネル文脈の数は限られているため、これはセキュリ
ティ要求である。この先取り禁止状態にする能力は、機密保持されたカーネルに
よって限られた期間だけ行われる。それはまた、必要ならば、バーサクリプトア
プレットによって使用されることができるが、それが実時間性能に及ぼす影響の
ために使用が避けられる。
Although most system calls are executed with interrupts disabled, those that are expected to have longer execution times can be interrupted as part of the caller's task. Execute in a state where proactive access is prohibited. This is a security requirement because the number of kernel contexts available in internal memory 18 is limited. This ability to disable preemption is performed for a limited period of time by the secure kernel. It can also be used by the Versacrypt applet if necessary, but its use is avoided because of its impact on real-time performance.

【0079】 また、割込みから復帰したとき、あるいはバーサクリプトエクスポート/イ
ンポート動作をサポートする文脈切替えを行ったときに、少量のサイクルがこっ
そり行われる。このコードは、割込み待ち時間に対する影響を最小にするために
割込み可能な状態で実行される(割込みがディスパッチされる前と同じ割込みマ
スク)。所用時間は、カーネルタスクへの文脈切替えを行うオーバーヘッドに比
較して十分に短く、したがってシステム性能に対する影響はそれ程大きくないが
、しかし、バーサクリプトエクスポート/インポート動作の性能に大きな差が生
じる。
Also, when returning from an interrupt or when performing a context switch that supports the versacrypt export / import operation, a small number of cycles are performed secretly. This code is executed with interrupts enabled to minimize the impact on interrupt latency (same interrupt mask as before the interrupt was dispatched). The time required is short enough compared to the overhead of context switching to kernel tasks, and thus has a modest impact on system performance, but there is a significant difference in the performance of the Versacrypt export / import operation.

【0080】 カーネルモードソフトウェアは全て、1つの実時間オペレーティングシステ
ムタスクから実行する。それは、機密保持されたカーネル、全てのバーサクリプ
トアプレット、およびカーネルモードソフトウェアに対して呼出された任意のユ
ーザ機能によって共用されている。それら全てが共通のタスクを共用する理由は
、実際にインポートされて実行可能なバーサクリプトアプレット(多くても)が
一時に1つしかないためである。それらを多重タクスとしてサポートできるよう
にするために、実時間オペレーティングシステムは、実行可能としてマークを付
けられた多数のバーサクリプトアプレットを必要とするが、エクスポートされた
バーサクリプトアプレットへの文脈切替えが行われると直ぐにそれらはブロック
し、エクスポート/インポート動作が実行可能となるまで、その状態である。こ
れは、実時間オペレーティングシステムスケジューラが大幅に修正されなければ
、バーサクリプトスラッシングを発生させる。このタスクにおいて実行する機密
保持されたカーネルの部分は、エクスポート/インポートソフトウェア(その実
行は常に、バーサクリプトの実行と互いに排他的である)であるか、あるいは呼
出し側タスクの一部分として実行するシステム呼出しに応答する。ユーザ機能は
、常にバーサクリプトまたは機密保持されたカーネルによる要求に応じて動作し
ており、したがってそれは論理的にタスクの実行の一部分である。ユーザ機能は
同期呼出しであるため、呼出し側はその終了を待たなければならない。その実行
時間が、別のタスクがブロックできるメッセージの送信のようなエクスポート/
インポート動作を考慮に入れるのに十分に長いと予測される場合には、別の手段
がとられるべきである。機密保持されたカーネルは、カーネルソフトウェアとユ
ーザ機能との間の同期呼出しのサポートを実行する。これの重要な点は、2つの
モード間において機密保持された安全な転送が行われ、カーネルの状態が保護さ
れることである。
All kernel mode software runs from one real-time operating system task. It is shared by the secured kernel, all versatile applets, and any user functions called for kernel-mode software. All of them share a common task because there is only one (at most) Versacrypt applet that can actually be imported and executed at a time. In order to be able to support them as multiple tasks, real-time operating systems require a large number of versacrypt applets marked as executable, but context switching to exported versacrypt applets is required. As soon as they are received, they block and remain there until an export / import operation can be performed. This causes versatile thrashing unless the real-time operating system scheduler is significantly modified. The part of the secure kernel that executes in this task is the export / import software (the execution of which is always mutually exclusive with the execution of the versacrypt) or the system call that executes as part of the calling task Respond to User functions are always operating on demand by a versacrypt or secured kernel, and thus are logically part of performing a task. Since the user function is a synchronous call, the caller must wait for its termination. Export / run time is like sending a message that another task can block
If it is expected to be long enough to take into account the import operation, another approach should be taken. The secured kernel performs support for synchronous calls between kernel software and user functions. The important point of this is that a secure transfer between the two modes takes place and the state of the kernel is protected.

【0081】 機密保持されたカーネルは、それが実行不可能な場合、1目盛り(tick
)のあいだRTOSルーチンの呼出しを休眠状態にしておく。これには、1つの
バーサクリプトアプレットも実行していない時間、およびそれがバーサクリプト
エクスポート/インポート動作を行っている時間が含まれる。このために、バー
サクリプト要求を実行を開始するまで、あるいは要求されたアプレットをロード
するためにバーサクリプトエクスポート/インポート動作がスタートされるまで
、1目盛り(tick)までの初期遅延が発生することができる。
If the secured kernel is not feasible, the tick will be one tick
The call of the RTOS routine is kept asleep during ()). This includes the time when one versacrypt applet is not running and the time when it is performing a versacrypt export / import operation. This may result in an initial delay of up to one tick until the execution of the versacrypt request or the start of the versecrypt export / import operation to load the requested applet. it can.

【0082】 シーケンサコード(IMEM46から実行された)は、カーネルおよびユーザ
セグメントに分割される。カーネルセグメントはさらに分割されて恒久的にロー
ドされるセクションにされ、このセクションは、システム機能と、別のカーネル
シーケンサアプレットが必要に応じて重ね書きされる第2のセクションとを提供
する。
The sequencer code (executed from IMEM 46) is divided into kernel and user segments. The kernel segment is further divided into permanently loaded sections, which provide system functions and a second section over which another kernel sequencer applet is overwritten as needed.

【0083】 バーサクリプトの使用は、ソフト実時間要求を満足させることを意図したも
のである。それは、エクスポート/インポート動作の実行に要する長い(何m秒
もの)時間のせいでハード実時間要求を満足させることができない。それはこの
文脈切替え時間による短い待ち時間を保証することはできないが、開示されてい
る実施形態では、これはエクスポート/インポート動作に対してわずかなパーセ
ンテージのシステムリソースを使用しながら、1秒あたり数十もの要求をサポー
トすることができる。大部分の要求がバーサクリプトアプレットを1つしか含ん
でいない場合、エクスポート/インポート動作は回避され、1秒あたり数千(ま
たはそれ以上)の要求が処理されることができる。終了するのに何秒もかかるR
SAキー動作等の、これらの要求のいくつかの処理に要する時間をキーの長さに
応じて延長できることもまた価値がない。
The use of VersaCrypt is intended to satisfy soft real-time requirements. It cannot meet hard real-time requirements due to the long (milliseconds) time required to perform export / import operations. Although it cannot guarantee the low latency due to this context switch time, in the disclosed embodiment, this uses a small percentage of system resources for export / import operations, while using tens of seconds per second. Can support what you need. If most requests contain only one Versacrypt applet, the export / import operation is bypassed and thousands (or more) requests per second can be processed. R that takes seconds to finish
It is also worthless to be able to extend the time required to process some of these requests, such as SA key operation, depending on the length of the key.

【0084】 バーサクリプトへのアプリケーションインターフェースは簡単なAPIによ
るものであり、このAPIは、各バーサクリプトアプレットが別個の待ち行列に
割当てられる形態で同じまたは多数のバーサクリプトアプレットに対する多数の
要求が待ち行列に入れられることを可能にする。これらの要求は、呼出し側に対
して非同期的に処理され、結果を処理するために終了した時にユーザ供給コール
バック機能が実行され、あるいはこのコールバックは呼出し側のタスクが阻止(b
lock) できる事象を通知することができる。
The application interface to VersaCrypt is through a simple API that allows multiple requests for the same or multiple VersaCrypt applets to be queued, with each VersaCrypt applet assigned to a separate queue. To be put into These requests are processed asynchronously to the caller, and a user-supplied callback function is executed when finished to process the result, or the callback is blocked by the caller's task (b
lock) can be notified of possible events.

【0085】 暗号化装置20が、多数のキーサイズ、すなわち単一のDES動作をサポート
するならば、トリプルDESキーへの増加していくアタックから保護するために
インタロックが存在していなければならない。キー階層構造が使用されている場
合でも、任意の暗号化されたキーを信用する前にそれらを認証することが重要で
ある。
If the encryption device 20 supports multiple key sizes, ie, a single DES operation, an interlock must be present to protect against the increasing attack on triple DES keys. . Even when a key hierarchy is used, it is important to authenticate any encrypted keys before trusting them.

【0086】 デバイスがそれ自身のキーを生成するほうが、キーが外部から注入されるよ
り機密保持が安全であることは一般に認められている。デバイスがそれ自身のキ
ー材料を生成する十分な能力を有している場合、そのほうが限られた期間デバイ
スの外部に知られるよりも安全である。絶対に知られていないものは、漏洩され
るはずがない。外に出なかったものは傍受されることはできない。装置10は、外
部から観察不可能な方式でソフトウェアを実行することができ、ハードウェアラ
ンダム数発生器(RNG48)を有している。自己キー発生は、それが行うように
設計された動作のクラスの一例である。この能力は、工場の物理的なセキュリテ
ィを保つことができない場合に、機密保持されたデバイスをキーによって暗号化
する時に非常に重要である。
It is generally accepted that security is more secure when the device generates its own key than when the key is injected externally. If the device has sufficient ability to generate its own key material, it is more secure than is known outside the device for a limited period of time. What is never known cannot be leaked. Those who do not go outside cannot be intercepted. The device 10 is capable of executing software in a manner not observable from the outside and has a hardware random number generator (RNG 48). Self key generation is one example of a class of operations that it is designed to perform. This ability is very important when encrypting a secured device with a key when the physical security of the factory cannot be maintained.

【0087】 自己暗号化の1つの可能な方法において、装置10は、それ自身のキー材料を
生成するために3つの機密を必要とする。第1の機密は、ASIC工場でプログ
ラムされる出荷キー(ソフトウェアエクスポート/インポートEMK、トリプル
キー、トリプルDES)である。第2の機密は、関連したバーサクリプトアプレ
ットを有するESK(トリプルキー、トリプルDES)であり、それらは全て第
2の工場で提供される。第3の機密は、たとえばキーサーバ用のRSA秘密キー
(大量)である。
In one possible method of self-encryption, device 10 requires three secrets to generate its own keying material. The first secret is the shipping key (software export / import EMK, triple key, triple DES) programmed at the ASIC factory. The second secret is an ESK (triple key, triple DES) with an associated versacrypt applet, all of which are provided at the second factory. The third secret is, for example, an RSA secret key (mass) for the key server.

【0088】 キーサーバは、ヴォールト(vault) と呼ばれる第3の物理的に機密保護され
たサイトに配置されていることが好ましい。装置10でキーを生成するために、(
1)キーサーバ120 および(2)“試験ジグ”122 (図5参照)のようなハード
ウェアが必要である。キーサーバ120 は、ヴォールト124 内に配置されている。
キーサーバ120 は、ネットワーク接続および装置10' 実行専用ソフトウェアを有
するパーソナルコンピュータ(PC)として構成されている。衛星I/F94は、
キー生成中にさらに多くのエントロピーにアクセスするためにハードウェアラン
ダムソース126 に随意に接続される。このアダプタ10' に対するキー材料は、そ
の他任意のアダプタが使用地で危険にさらされた場合、キーサーバ120 のセキュ
リティを決して危険にさらされないように特有でなければならない。キーサーバ
120 は、ファイアウォール132 によってネットワーク128 から隔離されているこ
とが好ましい。
The key server is preferably located at a third physically secure site called a vault. To generate a key on device 10, (
Hardware such as 1) key server 120 and (2) "test jig" 122 (see FIG. 5) is required. Key server 120 is located in vault 124.
The key server 120 is configured as a personal computer (PC) having software dedicated to network connection and execution of the device 10 '. Satellite I / F94,
Optionally connected to a hardware random source 126 to access more entropy during key generation. The keying material for this adapter 10 'must be unique so that if any other adapter is compromised at the site of use, the security of the key server 120 will never be compromised. Key server
Preferably, 120 is isolated from network 128 by firewall 132.

【0089】 試験ジグ122 は、第2の工場に設けられている。開示されている実施形態に
おいて、試験ジグ122 は、それがプログラムされたときに各装置10に接続される
PC(パーソナルコンピュータ)によって構成されている。試験ジグ122 は、あ
るネットワークインターフェース128 によってキーサーバ120 に接続されている
。装置10の衛星I/F94はまた、同じ理由からハードウェアランダムソース130
に随意に接続される。それはまたファイアウォール132 によってネットワーク12
8 から随意に隔離されてもよい。
The test jig 122 is provided in the second factory. In the disclosed embodiment, test jig 122 comprises a PC (personal computer) that is connected to each device 10 when it is programmed. The test jig 122 is connected to the key server 120 by a certain network interface 128. The satellite I / F 94 of the device 10 also includes a hardware random source 130 for the same reason.
Is optionally connected to It is also the network 132 by the firewall 132
8 may optionally be segregated.

【0090】 以下、試験ジグ122 中でロードされる装置10のプログラミングを説明する。
図6には、このプログラミング工程のステップが示されている。図6において、
プログラムされたアダプタ10で発生するアクションは左側に示されており、キー
サーバ120 で発生するアクションは右側に示されており、キーサーバ120 と試験
ジグ22との間の通信はこのダイヤグラムの中央における矢印で表されている。
In the following, the programming of the device 10 loaded in the test jig 122 will be described.
FIG. 6 shows the steps of this programming process. In FIG.
The actions that occur in the programmed adapter 10 are shown on the left, the actions that occur in the key server 120 are shown on the right, and the communication between the key server 120 and the test jig 22 is at the center of this diagram. It is represented by an arrow.

【0091】 装置10は、以下スタートアップ動作で説明するように、外部ROMから安全
にブートする。以下の動作は全て、バーサクリプトアプレットからのものである
。全ての通信は、キーサーバ120 におけるバーサクリプトアプレットと、試験ジ
グ122 においてプログラムされている装置10中のバーサクリプトアプレットとの
間のものである。キーサーバ120 のディスクに記憶された全てのデータは暗号化
され、キーサーバ120 での危険性/ウィルスから保護されることが好ましい。
The device 10 boots safely from an external ROM, as described below in a start-up operation. The following operations are all from the Versacrypt applet. All communications are between the Versacrypt applet in the key server 120 and the Versacrypt applet in the device 10 programmed in the test jig 122. All data stored on the disk of the key server 120 is preferably encrypted and protected from danger / virus on the key server 120.

【0092】 第1のアプレットは、実際には公に知られていないが、キーサーバ120 の“
公開キー”を含んでいる。ハードウェアランダムソース130 は、ランダムシード
材料を更新するために使用される。外部ランダムビットの効果を最大にするため
に、適用特定回数だけシード材料の更新が行われる。その後、プログラムされて
いる装置10は、トリプルキー、トリプルDESセッションキーを生成する。この
キーは、キーサーバ120 の公開キーにより暗号化され、試験ジグ122 のネットワ
ークインターフェースを使用してキーサーバ120 に送られる。
The first applet is not actually known to the public, but
The hardware random source 130 is used to update the random seed material. To maximize the effect of external random bits, the seed material is updated a specific number of times. Thereafter, the programmed device 10 generates a triple key, a triple DES session key, which is encrypted with the public key of the key server 120 and uses the network interface of the test jig 122 for the key server 120. Sent to

【0093】 キーサーバ120 は、ソースIPアドレスをチェックすることによってそれが
装置10と通信していることを確認する。ソースが公開キーを使用したために、そ
れは装置10と通信していることも知る。キーサーバ120 は、繰り返されるデータ
アタックまたは汚染され、劣化したランダムソース130 に対して保護するために
、このセッションキーを以前(または最後の適用特定回数において)見ていない
ことを確認する。セッションキーをその秘密キーで解読した後、プログラムされ
ている装置10とキーサーバ120 との間でその後行われる全ての通信はこのセッシ
ョンキーで暗号化され(O−CBC)、それを確認するためのSHAハッシュを
含んでいる。それらはまた、繰り返されるデータアタックから保護するために、
この装置10に割当てられた特有の製造番号およびパケットタイプを含んでいる。
The key server 120 confirms that it is communicating with the device 10 by checking the source IP address. It also knows that it is communicating with device 10 because the source used the public key. The key server 120 verifies that it has not seen this session key before (or at the last specified number of applications) to protect against repeated data attacks or a contaminated and degraded random source 130. After decrypting the session key with its private key, all subsequent communications between the programmed device 10 and the key server 120 are encrypted with this session key (O-CBC) and are verified. The SHA hash of They also provide protection from repeated data attacks,
It contains the unique serial number and packet type assigned to this device 10.

【0094】 その後、キーサーバ122 は、キーサーバのソース126 (それはさらに安全で
あると考えられる)からのあるランダム数を装置10に送って、装置10におけるシ
ード材料を更新する。それはまた、製造番号のような任意の割当てられた構成、
およびソフトウェアエクスポート/インポートMKを送る。
The key server 122 then sends a random number from the key server source 126 (which is considered more secure) to the device 10 to update the seed material in the device 10. It can also be any assigned configuration, such as a serial number,
And send software export / import MK.

【0095】 セッションキーを得るために応答エンティティが秘密キーを知っていなけれ
ばならないので、装置10はそれがキーサーバ120 と通信していることを知ってい
る。装置10はキーサーバ120 から受取ったランダム数に基づいてそのランダムシ
ード材料を更新し、その新しい512バイトのEEPROMイメージ(以下説明
するコンテント)を生成する。装置10はまた、アプリケーションに必要となる可
能性のあるその他任意の機密データを生成する。その後、装置はRSA公開キー
をキーサーバ120 に送り、このキーサーバ120 はデータベース134 においてそれ
らに符号を付け、それらを保存し、符号付きキーを返送する。
The device 10 knows that it is communicating with the key server 120 because the responding entity must know the secret key to get the session key. The device 10 updates the random seed material based on the random number received from the key server 120 and generates the new 512 byte EEPROM image (content described below). The device 10 also generates any other sensitive data that may be needed for the application. The device then sends the RSA public keys to key server 120, which signs them in database 134, stores them, and returns the signed key.

【0096】 その後、装置10は、操作上または法的理由のために共用する必要が生じる可
能性のある機密情報をキーサーバ120 に送る。その後、キーサーバ120 は、受信
されたエスクロー材料を記録し、装置10にその構成をコミットするように命じる
。最後に、装置10は、その内部EEPROM32を再度プログラミングし、それが
成功したことを試験ジグ122 に通知することによって応答し、それによって試験
ジグ122 は次の装置10の処理に着手することができる。
The device 10 then sends to the key server 120 any sensitive information that may need to be shared for operational or legal reasons. Thereafter, key server 120 records the received escrow material and instructs device 10 to commit its configuration. Finally, the device 10 responds by reprogramming its internal EEPROM 32 and notifying the test jig 122 of its success, so that the test jig 122 can begin processing the next device 10. .

【0097】 上記の説明から、当業者は、公開キーにアクセスすることによりキー生成の
セキュリティを破壊することが可能であり、チップ工場の者と第2の工場の者と
が共謀する必要があることを理解するであろう。これら3つの機密にアクセスさ
れても、システムは依然として外的なアタックを免れる。
From the above description, those skilled in the art can break the security of key generation by accessing the public key, and the chip factory and the second factory need to collude. You will understand that. Even with access to these three secrets, the system is still immune from external attacks.

【0098】 EEPROM32は、以下のデータブロックを含んでいることが好ましい。付
加的なEEPROMを必要とするアプリケーションは、機密保持が安全ではない
外部EEPROM、デバイス特定キーにより暗号化された(および内部で認証さ
れた)外部EEPROM、およびもっと容量の大きい内部EEPROM32の少な
くとも1つを随意に使用してもよい。
The EEPROM 32 preferably includes the following data blocks. Applications requiring additional EEPROM include at least one of an insecure external EEPROM, an external EEPROM encrypted (and internally authenticated) with a device specific key, and a larger internal EEPROM 32. May optionally be used.

【0099】[0099]

【数1】 (Equation 1)

【0100】 [機密保持されたカーネルに関する構成の詳細] 機密保持されたカーネルの主な目的はバーサクリプト環境を提供することであ
るが、これを行うために以下のような、スタートアップ、割込み処理、文脈切替
え、システム呼出し、例外処理、警報状態処理、およびバーサクリプト管理の動
作に関与しなければならない。 [スタートアップ] スタートアップ時、機密保持されたカーネルは、以下の動作のシーケンスを実
行する。このシーケンスは、図7においてフローチャートで示されている。
Configuration Details for Secure Kernel The primary purpose of the secure kernel is to provide a versacrypt environment, but in order to do this, start-up, interrupt handling, Must be involved in context switching, system calls, exception handling, alert condition handling, and versacrypt management operations. [Startup] At startup, the secure kernel performs the following sequence of operations. This sequence is shown in a flowchart in FIG.

【0101】 A.試験装置リセット/NMI原因レジスタ リセット/NMI原因レジスタは、警報が原因である可能性のある全てのリセ
ット/NMI状態の原因を検出するために使用されるハードウェアである。それ
が警報状態を含んでいる場合(ブロック144 )、リセットまたはNMIで、ソフ
トウェアはある内部周辺装置を使用禁止状態にする。この動作は、付加的な警報
が発生したり、あるいはエラー処理を妨害する動作を停止させるためである。デ
バッグが使用可能にされた場合(ブロック148 )、実行が内部ROM外のルーチ
ンに移行し、原因に関する情報を利用可能にする。しかしながら、システム動作
は続行することができない(ブロック150 )。そうではなく、EEPROM32の
位置に示されているように、これが独立型の製品(すなわち、外部プロセッサを
有しないセットトップボックス)である場合(ブロック152 )、装置10は自己リ
セット動作を行う(ブロック154 )。これによって、回復可能なエラーの場合、
ユーザの介入なしに装置10が動作を続行する。もちろん、回復不可能なエラーの
場合は、装置10は無期限に再ブートし続け、したがって原因はなにも容易に認識
できない。自己リセットの前に、原因はよく知られている位置に書込まれなけれ
ばならないので、必要ならば、論理アナライザにより原因が診断されることがで
きる。この装置10が独立型の装置でない(すなわち、第2の外部プロセッサであ
る)場合(ブロック152 )、全ての動作は停止し、メモリはクリアされず、原因
コードが利用可能にされ(PCI80、外的に可視なバス動作およびLED140 に
よって)、チップ10は外部リセットを待機する(ブロック156 )。
A. Test Equipment Reset / NMI Cause Register The reset / NMI cause register is the hardware used to detect the cause of any reset / NMI condition that could be caused by an alarm. If it contains an alert condition (block 144), on reset or NMI, the software disables certain internal peripherals. This operation is to stop an operation that generates an additional alarm or interferes with error processing. If debugging is enabled (block 148), execution moves to a routine outside of the internal ROM to make information about the cause available. However, system operation cannot continue (block 150). Otherwise, if this is a stand-alone product (ie, a set-top box without an external processor), as shown at the location of EEPROM 32 (block 152), device 10 performs a self-reset operation (block 152). 154). This allows for recoverable errors,
The device 10 continues to operate without user intervention. Of course, in the case of an unrecoverable error, the device 10 will continue to reboot indefinitely, so that no cause is easily recognizable. Prior to a self-reset, the cause must be written to a well-known location, so that if necessary, the cause can be diagnosed by a logic analyzer. If the device 10 is not a stand-alone device (ie, a second external processor) (block 152), all operations stop, the memory is not cleared, and the cause code is made available (PCI 80, external). Chip 10 waits for an external reset (via a visually visible bus activity and LED 140) (block 156).

【0102】 B.診断ブートおよびハードウェア初期化 重要度または安全性が最小のハードウェアが初期化される。警報状態がない場
合(ブロック144 )、あるハードウェアが初期化され、全てのプロセッサレジス
タおよび内部メモリ(IMEM46およびDMEM18)ならびにあるグローバル変
数がクリアされ(ブロック164 )、したがって、とくにバルク消去機能が実行さ
れた場合には、前のアプリケーションからのデータは公開されない。
B. Diagnostic boot and hardware initialization Hardware with minimal importance or safety is initialized. If there is no alarm condition (block 144), some hardware is initialized and all processor registers and internal memory (IMEM 46 and DMEM 18) and some global variables are cleared (block 164), thus performing, in particular, a bulk erase function. If so, the data from the previous application will not be published.

【0103】 C.EEPROM動作 バルク消去がトリガーされた場合、上述された3段階バルク消去動作が使用さ
れる。 EEPROM32の3Kセクションが読取られ、1の密度が計算される。1の密
度が64のしきい値より低い場合(ブロック170 )、キー材料は存在せず、試験
または初期プログラミングを行うことが可能であると想定される。このような状
況おいて、あるセキュリティ回路が使用禁止状態にされる(ブロック172 )。固
定パターン(外部ROM142 の存在を検出するために使用される)が存在してい
る場合(ブロック174 )、外部ROM142 にジャンプする(ブロック176 )。外
部ROM142 が存在しない場合(ブロック174 )、装置10はロックアップするが
、少なくとも外部試験ピンは使用可能である(ブロック178 )。
C. EEPROM Operation When bulk erase is triggered, the three-stage bulk erase operation described above is used. The 3K section of EEPROM 32 is read and a density of one is calculated. If the density of ones is below the threshold of 64 (block 170), it is assumed that no key material is present and testing or initial programming can be performed. In such a situation, a security circuit is disabled (block 172). If a fixed pattern (used to detect the presence of external ROM 142) is present (block 174), then jump to external ROM 142 (block 176). If the external ROM 142 is not present (block 174), the device 10 locks up, but at least the external test pins are available (block 178).

【0104】 拡散されたチェックサムプロセスによってメモリ32に機密データが存在する
ことが示された場合(ブロック170 )、EEPROM32の制限されたブロックに
おけるチェックサムが計算される(ブロック182 )。チェックサムが不適切であ
る場合、フェイタル(致命的)エラーが発生する(ブロック184 )。装置10は、
EEPROM22が劣化したため、あるいはこの装置10がタンパーされたために、
ロックアップする。チェックサムが適切ならば(ブロック182 )、EEPROM
32から検索された値に基づいて、種々のハードウェア構成が設定される(ブロッ
ク186 )。
If the spread checksum process indicates that sensitive data is present in memory 32 (block 170), the checksum in the restricted block of EEPROM 32 is calculated (block 182). If the checksum is incorrect, a fatal error occurs (block 184). The device 10
Due to the deterioration of the EEPROM 22 or the tamper of the device 10,
Lock up. If the checksum is correct (block 182), the EEPROM
Various hardware configurations are set based on the values retrieved from 32 (block 186).

【0105】 D.遅延 その後、ある比較的小さい(公称的に1秒の)遅延が発生する(ブロック186
)。この遅延は、多数の目的のために機能する。最も重要なのは、それによって
、アタッカーが長いシステム再ブート中にユーザに気付かれることなく繰り返し
(多数のタイプの自動アタックに対する)を行うたびに長い時間を要することで
ある。
D. Delay A relatively small (nominally 1 second) delay then occurs (block 186).
). This delay serves a number of purposes. Most importantly, it takes a long time each time an attacker repeatedly performs (for many types of automatic attacks) unnoticed by the user during a long system reboot.

【0106】 E.機密保持または重要なハードウェアの初期化 あるグローバル変数が初期化される(ブロック186 )。バーサクリプトブート
ストラップのロードに備えて、機密保持されたカーネルの恒久的にロードされる
シーケンサアプレットおよびそのダミーユーザシーケンサアプレットがIMEM
46にロードされ、シーケンサ42がスタートされる(ブロック186 )。また、ある
ダミーユーザRISCコードがロードされる。バーサクリプトブートストラップ
アプレットのローディングがシステムスタートアップに対してのみ使用される第
2のバージョンを維持するのではなく、正常動作の下で使用されるものと同じコ
ードを使用するように、ダミーアプレットおよびRISCコードがロードされる
。バーサクリプトアプレットをインポートするための正常なカーネル、シーケン
サおよびRISCコードはユーザコードが存在すると想定し、これと対話する。
カーネルシーケンサアプレットはユーザ背景によって呼出されることを期待し、
これが従うべき前景ハンドラ(チップの衛星転送機能の一部分)を有していなけ
ればならない。カーネルRISCコードは、シーケンサ42が終了することを待機
しながら、RTOSに制御を譲ろうとし続ける。あるユーザナブ(nub)がこ
れらの機能を処理するために存在していなければならない。
E. Security or Critical Hardware Initialization Certain global variables are initialized (block 186). In preparation for loading the versacrypt bootstrap, the permanently loaded sequencer applet of the secured kernel and its dummy user sequencer applet are
Loaded at 46, sequencer 42 is started (block 186). Also, a dummy user RISC code is loaded. Dummy applets and RISC so that the loading of the Versacrypt bootstrap applet uses the same code used under normal operation, rather than maintaining a second version used only for system startup. The code loads. The normal kernel, sequencer, and RISC code for importing the Versacrypt applet assumes that user code is present and interacts with it.
The kernel sequencer applet is expected to be called by the user background and
This must have a foreground handler (part of the chip's satellite transfer function) to follow. The kernel RISC code continues to relinquish control to the RTOS, waiting for sequencer 42 to terminate. Certain user nubs must be present to handle these functions.

【0107】 F.バーサクリプトブートストラップアプレットのローディング 外部ROM142 またはPCIバス78のいずれからバーサクリプトブートストラ
ップアプレットをロードすることが試みられる。全てのバーサクリプトブートス
トラップアプレットは、32ビットの外部ROM142 からのものでさえ、実行前
にDMEM18中にコピーされる。外部ROM142 は、試験、返品された装置の診
断、デバッグ等を行うために、PCIバス78を使用せずにシステムをブートする
ために使用されることができる。その存在は、固定オフセットでよく知られてい
るパターンの第1の半分によって検出されることができる(ブロック188 )。外
部ROM142 が存在しない場合(ブロック188 )、装置10はPCIバス78による
ブートを試みる(ブロック190 )。とくに、それははじめに、SCBがPCIホ
ストから設定される(非0になる)ことを待っている(ブロック190 )。その後
、それはSCBにおいて特定されたブロックをSDRAM中に読取る。パターン
の第1の半分が整合しない場合(ブロック192 )、フェイタルエラーが発生し(
ブロック194 )、制御がブロック146 に戻る。整合が生じた場合(ブロック192
)、EEPROM32からの装置10の製造番号およびソフトウェアエクスポート/
インポートEMKインデックスをオフセット8後にSCB中に再度書込む(ブロ
ック196 )。パターンの第2の半分が整合しない場合(ブロック198 )、フェイ
タルエラーが発生する(ブロック200 )。
F. Loading Versacrypt Bootstrap Applet An attempt is made to load the Versacrypt Bootstrap Applet from either the external ROM 142 or the PCI bus 78. All versatile bootstrap applets, even from a 32-bit external ROM 142, are copied into DMEM 18 before execution. The external ROM 142 can be used to boot the system without using the PCI bus 78 for performing tests, diagnosing returned devices, debugging, and the like. Its presence can be detected by the first half of the pattern, which is well known with a fixed offset (block 188). If external ROM 142 is not present (block 188), device 10 attempts to boot over PCI bus 78 (block 190). In particular, it first waits for the SCB to be set (going non-zero) from the PCI host (block 190). It then reads the block specified in SCB into SDRAM. If the first half of the pattern does not match (block 192), a fatal error occurs (block 192).
Block 194), control returns to block 146. If a match occurs (block 192
), The serial number of the device 10 from the EEPROM 32 and the software export /
The import EMK index is rewritten into the SCB after offset 8 (block 196). If the second half of the pattern does not match (block 198), a fatal error occurs (block 200).

【0108】 他のバーサクリプトアプレットとは異なり、ブートストラップアプレットは
割込み禁止状態で実行する。これは、それがシステムスタートアップの一部分で
あり、また、割込み通知を止める前にいくつかの外部デバイスを明示的にリセッ
トすることが必要となる可能性があるためであるが、それは機密保持されたカー
ネルの技術的範囲を越えている。このバーサクリプトアプレットは、実ブートイ
メージのブートストラップローディングを処理すると考えられる。これは機密保
持されたカーネルを簡単化し、ブートイメージフォーマットが特定のアプリケー
ションに適合することを可能にし、また、新しい要求が見出された場合には、お
そらく変化するものである。この動作の一部分は、バーサクリプトアプレットの
ような機密保持された機能を扱うメモリ中のある明確に定められた位置を初期化
することを含んでいる。
Unlike the other versatile applets, the bootstrap applet runs in an interrupt disabled state. This is because it is part of system startup and it may be necessary to explicitly reset some external devices before stopping the interrupt notification, but it has been kept confidential. It is beyond the technical scope of the kernel. This Versacrypt applet is believed to handle bootstrap loading of the actual boot image. This simplifies the secure kernel, allows the boot image format to be tailored to a particular application, and will likely change if new requirements are discovered. Part of this operation involves initializing certain well-defined locations in memory that handle secured functions such as the Versacrypt Applet.

【0109】 バーサクリプトブートストラップアプレットの典型的な動作は、(1)バー
サクリプト環境を初期化し、バーサクリプトアプレットおよび認証情報をロード
すること、(2)ユーザソフトウェアをロードし、これをタンパーチェックする
こと、(3)CSPRNGを初期化すること、(4)システム使用のための機密
保持されたカーネルの構成を制御するために使用された種々の機密およびユーザ
変数を初期化すること、ならびに(5)割込み禁止状態でのユーザモードのコー
ドへの引き渡しを制御することである。全てのレジスタはクリアされる。割込み
が禁止状態にされる。これは、割込みがシステムスタートアップの一部分として
、割込み通知を止める前にいくつかの外部デバイスを明示的に試験することが必
要になる可能性があるためであるが、それは機密保持されたカーネルの技術的範
囲外である。レジスタがクリアされ、システムスタートアップ中にそれらの中に
おそらく残されたセンシチブな材料を保護する。ユーザソフトウェアは、割込み
ハンドラおよびスタックのような機密保護されない機能を扱うメモリ中のある明
確に定められた位置を初期化しなければならない。 [割込み処理(および文脈切替え)] 図8には、割込みハンドラをディスパッチし、割込みから戻るプロセスが示さ
れている。 A.割込み処理 全ての割込みハンドラは、ハンドラのテーブルを提供されたユーザによってユ
ーザモードで実行される。割込みからの復帰は、システム呼出しによる。別個の
割込みスタックが存在しているが(バーサクリプトに対して要求されるように、
また、それ故に、各タスクはネストされた割込みに十分なスタックスペースを割
当てる必要がない)、各タスクが規定されるとき、文脈切替えに使用されるスタ
ックスペースの付加的なバイトを割当てている必要がある。
The typical operation of the Versacrypt bootstrap applet is: (1) initialize the Versacrypt environment, load the Versacrypt applet and authentication information, and (2) load the user software and tamper check it. (3) initializing the CSPRNG, (4) initializing various security and user variables used to control the configuration of the secure kernel for system use, and (5) (2) To control the transfer to the user mode code in the interrupt disabled state. All registers are cleared. Interrupts are disabled. This is because interrupts may need to be explicitly tested on some external devices before turning off interrupt notification as part of system startup, but this is not possible with secure kernel technology. Out of range. Registers are cleared, protecting sensitive material possibly left in them during system startup. User software must initialize certain well-defined locations in memory that handle non-secure functions such as interrupt handlers and stacks. [Interrupt Processing (and Context Switching)] FIG. 8 shows a process of dispatching an interrupt handler and returning from an interrupt. A. Interrupt Handling All interrupt handlers are executed in user mode by the user provided with a table of handlers. Return from interrupt is by system call. There is a separate interrupt stack (as required for Versacrypt,
Also, therefore, each task does not need to allocate enough stack space for nested interrupts), but needs to allocate additional bytes of stack space used for context switching when each task is defined. There is.

【0110】 種々の理由から、文脈はスタックに保存される。それによって先取り可能な
文脈切替えは、スタック上に部分的な文脈を既に保存しているはずのタイマー割
込みルーチンからトリガーされたときに簡単化される。機密保持されたカーネル
は、これが発生すべき論理的な場所であり、それは、ユーザルーチンが機密保持
されたカーネルの割込み処理部分によって保存されたレジスタに関する作業をし
ていなければならないためである。機密保持されたカーネルはまた、この機能を
バーサクリプトに関して有していなければならず、実際に高速で実行する。これ
は、ユーザコードが実行する外部SDRAM24より内部ROM14のほうが高速だ
からである。文脈をスタック上に配置することは非常に便利である。それは、バ
ーサクリプトのように、全てのタスクがそれら自身のスタックを持たなければな
らないためである。また、この方式では、機密保持されたカーネルは、基礎をな
すRTOSのタスク制御ブロックまたはその他のデータ構造の情報を全く必要と
しない。保存されたスタックポインタがタスク制御ブロック中に保存されている
ことだけが必要である。機密保持されたカーネルに対する文脈の変更は、残って
いるレジスタ(ユーザコードのために)をスタックに保存し、スタックポインタ
を切替え、完全な文脈を復元する(バーサクリプトに対して常に行われるように
)だけでよい。
[0110] For various reasons, contexts are saved on the stack. A preemptive context switch is thereby simplified when triggered from a timer interrupt routine that should have already saved the partial context on the stack. The secure kernel is the logical place where this should occur, because the user routine must be working on registers saved by the interrupt handling portion of the secure kernel. The secured kernel must also have this function for versacrypt, and it actually runs fast. This is because the internal ROM 14 is faster than the external SDRAM 24 executed by the user code. Placing context on the stack is very convenient. That's because, like versacrypt, all tasks must have their own stack. Also, in this scheme, the secured kernel does not need any information in the underlying RTOS task control blocks or other data structures. It is only necessary that the saved stack pointer be saved in the task control block. Context changes to the secure kernel save the remaining registers (for user code) on the stack, switch the stack pointer, and restore the full context (as always done for versacrypt) Only).

【0111】 B.割込みスタック システムセキュリティのために、割込み可能状態にされたとき(あるいは、シ
ステム呼出しが行われたとき)、ユーザモードコードはユーザスペーススタック
を有していなければならず、カーネルモードコードはカーネルスペーススタック
を有していなければならない。さらに、カーネルモードコードは割込みハンドラ
から割込み可能状態で動作されることはできない。これらの要求は、これらの状
況下において、現在の文脈がスタック上に保存される必要がある可能性があるた
めに存在する。ユーザがカーネルスタックを有しているならば、このユーザの文
脈が保存されるときに、これを使用してカーネルスペースリソースにアクセスす
ることが可能である。そのカーネルがユーザスタックを有するならば、彼のセキ
ュリティは、彼の保存された文脈を読取って修正することのできる割込ルーチン
により損なわれる可能性が高い。最後に、カーネルモードに対する割込ルーチン
からの制限は、DMEM18に同時に記憶されなければならないカーネル文脈の数
を制限することである。
B. Interrupt Stack For system security, when enabled (or when a system call is made), the user mode code must have a user space stack and the kernel mode code must have a kernel space stack. Must have. Further, kernel mode code cannot be run in an interrupt enabled state from an interrupt handler. These requirements exist because, under these circumstances, the current context may need to be saved on the stack. If the user has a kernel stack, it can be used to access kernel space resources when this user's context is saved. If the kernel has a user stack, his security is likely to be compromised by interrupt routines that can read and modify his saved context. Finally, a limitation from the interrupt routine for kernel mode is that it limits the number of kernel contexts that must be stored in DMEM 18 simultaneously.

【0112】 機密保持されたカーネルは、それが維持しなければならない多数の文脈を有
している。各バーサクリプトアプレットは、DMEM18(その時点でロードされ
たバーサクリプトアプレットに対してのみ)または外部SDRAM24のどちらで
暗号化されたかにかかわらず、それ自身のスタック上に1つの文脈を有している
。機密保持されたカーネルはまた、エクスポート/インポート動作を行っている
あいだに使用される第2の文脈を有していなければならない。それはまた、シス
テム割込み待ち時間を最小にするために、先取り不能であるが、それらが実行に
要する時間のために割込み可能状態で実行されるシステム呼出しを処理するため
の第3の文脈を有している。これらのシステム呼出しは、そうでなければあるシ
ステム呼出しを同時に行っている各タスクに対して文脈が1つづつ要求され、D
MEM18中の多数の文脈が要求されるため、先取り不能でなければならない。こ
の第3の文脈はまた、割込みから復帰したとき、または文脈切替えを行ったとき
に、バーサクリプトエクスポート/インポート動作を助けるサイクルをこっそり
行う場合に使用される。
A secured kernel has a number of contexts that it must maintain. Each versacrypt applet has one context on its own stack, whether encrypted with DMEM 18 (only for the currently loaded versacrypt applet) or external SDRAM 24. . The secured kernel must also have a second context used during export / import operations. It also has a third context for handling system calls that are not preemptable to minimize system interrupt latency, but are executed in an interrupt enabled state due to the time they take to execute. ing. These system calls require a context for each task that is otherwise making a system call at the same time,
Because of the large number of contexts required in MEM 18, they must be unpredictable. This third context is also used in case of returning from an interrupt or performing a context switch, secretly cycling to assist the versacrypt export / import operation.

【0113】 カーネルモード(バーサクリプトアプレットまたは機密保持されたカーネル
)コードが動作しているとき、システムは、割込みルーチンに制御を渡す前に、
全てのレジスタを保存およびクリアする(これによって、センシチブなデータが
保護および隠蔽する)。これによって、4乃至5μ秒の割込み待ち時間(大部分
のシステム呼出しまたはDMAによるバス使用のような、割込み禁止状態の期間
を含まない)が生じる。実時間ソフトウェアは、この長い割込み待ち時間に耐え
、割込みハンドラの書込みを簡単化することが可能でなければならないため、カ
ーネルは、ユーザコードが割込みされたときに、部分的な文脈をスタック上に保
存することとなる。これは、カーネルモードより依然として高速であるが、しか
し割込み処理にとって十二分なものでなければならない。
When the kernel mode (versacrypt applet or secured kernel) code is running, the system returns to the interrupt routine before passing control.
Save and clear all registers (this protects and hides sensitive data). This results in an interrupt latency of 4-5 microseconds (not including periods of interrupt disabled state, such as most system calls or bus usage by DMA). Since real-time software must be able to withstand this long interrupt latency and simplify the writing of interrupt handlers, the kernel places a partial context on the stack when user code is interrupted. Will be saved. This is still faster than kernel mode, but must be more than sufficient for interrupt handling.

【0114】 C.文脈切替え 割込みから復帰したとき、機密保持されたカーネルは、先取り可能な文脈切替
えが必要とされていることを示すために使用されたいくつかのグローバル変数を
チェックする。これは、スタックポインタが保存されるべき場所のアドレス(お
そらく、この時点におけるタスクのタスク制御ブロック中へのオフセット)と、
文脈を復元するために新しいスタックポインタをロードすることのできる場所(
おそらく、次のタスクのタスク制御ブロック)のアドレスとを含んでいる。この
先取りが生じた場合、それは残っている文脈をスタック上に保存し(ユーザタス
クのために)、そのスタックから完全な文脈を復元する(それがカーネルに対し
て常に行うように)。
C. Context Switch Upon return from an interrupt, the secured kernel checks some global variables that have been used to indicate that a proactive context switch is needed. This is the address where the stack pointer should be stored (perhaps the offset into the task control block for the task at this point),
Where a new stack pointer can be loaded to restore context (
Probably the address of the next task's task control block). When this preemption occurs, it saves the remaining context on the stack (for user tasks) and restores the complete context from that stack (as it always does for the kernel).

【0115】 D.バーサクリプトサポート 機密保持されたカーネルは、割込みから復帰する前、文脈切替えを行っている
とき、メモリのブロックのコピーおよびカーネルシーケンサアプレットのスケジ
ューリングのようなバーサクリプトエクスポート/インポート動作に関連したあ
る限られた動作(限られた時間を使用する)を行うことができる。これは、先取
り可能文脈切替えを少量だけ遅延することができるが、システム性能に大きい影
響を与えてはならない。これらの動作は割込み可能状態で実行されるため、それ
によって割込み待ち時間は生じない。 カーネルに対するユーザルーチンを実行することとなる、あるいはバーサクリ
プトアプレットと機密保持されたカーネルとの間で共用されることとなる単一の
カーネルタスクが存在する。保存されたスタックポインタは偽りの値(全て1)
であり、実際の値を公開しているのではなく、またユーザソフトウェアがそれを
変更することを可能にするものでもない。実際のスタックポインタは、DMEM
18に保存されているか、あるいはエクスポートされるバーサクリプトアプレット
のために外部SDRAM24中で暗号化されている。この単一のタスクは、バーサ
クリプトアプレットに低い優先度を与えるが、それは、古いアプレットをそのデ
ータと共にエクスポートしたこと、および新しいアプレットをそのデータ共にイ
ンポートしたことに関連した、いずれにしても大きい遅延が原因の場合である。
全てのカーネルタスクに対するタスクは1つしか存在しない。これは、一時に実
行可能なバーサクリプトアプレットが、他のものが外部メモリ24で暗号化される
ために1つしか存在しないためであり、また、ある別のタスクの代わりに機密保
持されたカーネルが実行すればよいためである。
D. Versacrypt Support The secured kernel has certain limitations associated with the Versacrypt export / import operations, such as copying blocks of memory and scheduling the kernel sequencer applet when performing a context switch, before returning from an interrupt. (Using a limited amount of time). This can delay the preemptable context switch by a small amount, but should not significantly affect system performance. Since these operations are performed in an interrupt enabled state, there is no interrupt latency. There is a single kernel task that will execute user routines for the kernel or will be shared between the Versacrypt applet and the secured kernel. The saved stack pointer is a false value (all 1s)
And does not publish the actual value, nor does it allow user software to change it. The actual stack pointer is DMEM
It is stored in 18 or encrypted in external SDRAM 24 for exported versacrypt applet. This single task gives the Versacrypt applet a low priority, but it has a large delay in any case associated with exporting the old applet with its data and importing the new applet with its data. Is the cause.
There is only one task for every kernel task. This is because there is only one versatile applet that can be executed at a time, the other being encrypted in the external memory 24, and a secure kernel instead of another task. Is to be executed.

【0116】 実行の速度については、実行するアプレットがこの時点でロードされる場合
、それはエクスポートおよび再度インポートされず、このまま実行する。アプレ
ットにより要求されるロードされることとなるデータセグメントが、現時点で実
行しているアプレットによってロードされた場合、このデータセグメントはエク
スポートおよび再度インポートされ、機密保持されたカーネルを簡単化する。
Regarding the speed of execution, if the running applet is loaded at this point, it will not be exported and imported again, but will run as it is. If the data segment to be loaded requested by the applet is loaded by the currently executing applet, this data segment is exported and re-imported, simplifying the secured kernel.

【0117】 先取り可能なバーサクリプトスケジューリングをサポートするために、RT
OSはバーサクリプトスワップを要求するようにグローバルフラグを設定しなけ
ればならない。これは、RTOSタイマー割込みルーチンから容易に行われるこ
とができる。
To support proactive Versacrypt scheduling, RT
The OS must set the global flag to request a versatile swap. This can easily be done from the RTOS timer interrupt routine.

【0118】 バーサクリプトスケジューリングを行うために使用されるアルゴリズムは、
それがカーネルモードでカーネルタスクへの文脈切替えを行うたびにVCスワッ
プをチェックする。(1)バーサクリプトスワップが要求された場合、(2)バ
ーサクリプト実行待ち行列で待機している別のバーサクリプトアプレットが存在
している場合、(3)バーサクリプトスワッピングがイネーブルされた場合、未
決定のバーサクリプトアプレットを実行する代わりに、エクスポート/インポー
ト動作が開始される。エクスポート/インポート動作に含まれる動作のほとんど
はカーネルシーケンサアプレットのローディングおよびそれらの実行のスケジュ
ーリングを扱う。シーケンサは、実際の暗号化および認証を行うことができる。
これらの動作は短時間で終了できるため、割込みから復帰して文脈切替えを行な
うときに、これらの動作を行うためのサイクルがこっそり行われる。残りの動作
は、終了するのに長時間を要するため、カーネルタスクから実行される。これら
の動作は、DMAM18とSDRAM24との間のブロックをコピーし、キャッシュ
をフラッシュする。この方法のために、バーサクリプトスワップに関連した付加
的な3つのラウンドロビンスケジュール遅延が生じている。これら3つのスケジ
ュール遅延は(1)エクスポートを行ってインポートを開始した後にDMEM18
からSDRAM14にコピーし、(2)アプレットのインポートをチェックし、命
令キャッシュをフラッシュし、データセグメントのインポートを開始し、(3)
データセグメントのインポートをチェックし、データキャッシュをフラッシュし
、アプレット実行を開始するために使用される。
The algorithm used to perform Versacrypt scheduling is:
Check the VC swap each time it performs a context switch to a kernel task in kernel mode. (1) if a versacrypt swap is requested, (2) if there is another versacrypt applet waiting in the versacrypt execution queue, (3) if versacrypt swapping is enabled, Instead of running the decision verse crypto applet, an export / import operation is started. Most of the operations involved in export / import operations deal with loading kernel sequencer applets and scheduling their execution. The sequencer can perform the actual encryption and authentication.
Since these operations can be completed in a short time, when returning from an interrupt and performing context switching, a cycle for performing these operations is secretly performed. The remaining operations take a long time to complete, so they are executed from the kernel task. These operations copy the block between the DMAM 18 and the SDRAM 24 and flush the cache. Due to this method, there are three additional round robin schedule delays associated with the Versacrypt swap. These three schedule delays are caused by (1) DMEM18 after exporting and starting import.
(2) Check applet import, flush instruction cache, start data segment import, (3)
Used to check data segment import, flush data cache and start applet execution.

【0119】 E.バーサクリプトエクスポート/インポート バーサクリプト制御ブロックの目的は、バーサクリプトアプレットおよびデー
タセグメントを外部メモリに記憶すること、ユーザバーサクリプト呼出しを管理
すること、およびバーサクリプト実行待ち行列を維持することである。機密保持
されたカーネル中の共通のルーチンの利点を利用可能にするために、アプレット
はデータセグメントの特殊な場合として扱われる。
E. Verscrypt export / import The purpose of the Verscrypt control block is to store the Verscrypt applet and data segments in external memory, manage user Verscrypt calls, and maintain the Verscrypt execution queue. Applets are treated as special cases of data segments in order to take advantage of the common routines in the secured kernel.

【0120】 以下に外部メモリ24中のバーサクリプト制御ブロックのフォーマットを示す
The format of the versatile control block in the external memory 24 is shown below:

【数2】 (Equation 2)

【0121】 装置10は、キー材料を強化するためにホワイトニングを使用する。これは、エ
クスポートプロセスによって大量の暗号文がアタッカーに与えられるためである
。それはまた、ブロックがエクスポートされるたびに全てのデータが変更され、
どのデータが変化しているのか、あるいはどの程度の時間がある動作に要したの
かに関する情報をハッカーに与えないことを意味する。全てのバーサクリプトア
プレットのはじめの部分はかなり一定であるため、それはまた、既知の暗号文原
文をアタックから保護する。最後に、それはまた適応選択された暗号文原文をア
タックから保護し、このアタックでは、ハッカーは、彼等が装置10に渡して、ア
プレットがそのパラメータをロードした直後にエクスポートされるようにする値
を選択することができる。
The device 10 uses whitening to strengthen the key material. This is because a large amount of ciphertext is given to the attacker by the export process. It also changes all data every time a block is exported,
This means that no information is given to the hacker as to what data is changing or how long it took for the action. It also protects the known ciphertext original from attack, since the beginning of every Versacrypt applet is fairly constant. Finally, it also protects the adaptively selected ciphertext from attack, in which hackers pass values to the device 10 so that they are exported immediately after the applet loads its parameters. Can be selected.

【0122】 随意に、バーサクリプトは、セキュリティをさらに強化し、キーの寿命を制
限するために各バーサクリプトエクスポートに対するそのキー材料を変更するこ
とができる。
Optionally, the versacrypt can change its key material for each versacrypt export to further enhance security and limit key life.

【0123】 装置10はまた、長期のデータアタック(これは、ネットワーク上で繰返され
るデータアタックに類似している)から保護する。このアタックにおいて、各ブ
ロックに対するチェックサムがDMEM18において維持され、ロード時に比較さ
れることができるように、バーサクリプトブロックの数を制限することによりバ
ーサクリプトブロックの古い値が後に再び与えられる。バーサクリプトブロック
(アプレット+サブアプレット+データセグメント)に対する制限は示されてい
る装置10において32ブロックであり、すなわち256バイトである。
The device 10 also protects against long-term data attacks, which are similar to repeated data attacks on the network. In this attack, the old value of the versacrypt block is later given again by limiting the number of versacrypt blocks so that the checksum for each block is maintained in DMEM 18 and can be compared at load time. The limit on the versacrypt block (applet + sub-applet + data segment) is 32 blocks in the device 10 shown, ie 256 bytes.

【0124】 F.バーサクリプトブロックID バーサクリプトブロックIDは、0のリザーブされた値以外の任意の16ビッ
ト値であることができる。唯一の制限は、IDの下位の(bottom)5ビットが所定
のシステムに対して特有でなければならないことである。これは、それらがバー
サクリプトブロックの種々のテーブルに対するインデックスとして使用されるた
めである。
F. Versacrypt Block ID The Versacrypt Block ID can be any 16-bit value other than the 0 reserved value. The only limitation is that the bottom 5 bits of the ID must be unique for a given system. This is because they are used as indexes into the various tables of the Versacrypt block.

【0125】 G.バーサクリプトブロックタイプ 3つの異なるタイプのバーサクリプトブロック、すなわちデータセグメント、
バーサクリプトアプレット、およびバーサクリプトサブアプレットが存在してい
る。データセグメントは、バーサクリプトアプレット間で共用されることのでき
るデータを記憶するために使用される。それらは、バーサクリプトアプレットに
よってエクスポート/インポートされてもよく、ユーザコードにより使用可能で
はない。バーサクリプトアプレットは、ユーザ呼出し可能なバーサクリプト機能
である。それらは、呼出し制御ブロックをバーサクリプト制御ブロックの中の待
ち行列中に挿入し、バーサクリプト実行待ち行列中にバーサクリプトアプレット
を(まだ存在していなければ)挿入するシステム呼出しを介して呼出される。バ
ーサクリプトサブアプレットは、それらが別のバーサクリプトアプレットによっ
てのみ呼出され、ユーザによって直接呼出されることがないことを除いては、バ
ーサクリプトアプレットである。それらは、エクスポート/インポート遅延が大
きいが、大きいアプレットを小さいセクションにセグメント化するために使用さ
れる。
G. Versacrypt Block Types Three different types of versacrypt blocks, namely data segments,
Versacrypt applet and Versacrypt sub-applet exist. Data segments are used to store data that can be shared between versacrypt applets. They may be exported / imported by the Versacrypt applet and are not usable by user code. The Versacrypt applet is a user-callable Versacrypt function. They are invoked via a system call that inserts a call control block into a queue in the Versacrypt control block and inserts a Versacrypt applet (if not already present) into the Versacrypt execution queue. . Versacrypt sub-applets are versacrypt applets, except that they are only called by another versacrypt applet and are not called directly by the user. They have a large export / import delay, but are used to segment large applets into smaller sections.

【0126】 多くの例において、バーサクリプトアプレットおよびバーサクリプトサブア
プレットの両者をまとめて示すためにバーサクリプトアプレットという用語が使
用されている。実際の相違は、以下に説明するように、それらを呼ぶ者の意図に
左右される。バーサクリプトアプレットは、正規のC呼出し規約を使用するサブ
ルーチンとして呼ばれており、標準的なCレジスタ使用を観察しなければならな
い。それらのスタックポインタは、アプレットのブロックの終わりに初期化され
、そのパラメータを利用可能な状態で有する。バーサクリプトアプレットは、そ
れらが使用した全ての非一時レジスタのあるものがバーサクリプトリンケージ情
報を記憶するために使用されることになるので、その他任意のC機能と同様に、
それらを保存しなければならない。
In many instances, the term versacrypt applet is used to refer to both the versacrypt applet and the versacrypt subapplet. The actual differences will depend on the intent of those who call them, as explained below. The Versacrypt applet is called as a subroutine that uses the regular C calling convention and must observe standard C register usage. Those stack pointers are initialized at the end of the applet's block and have their parameters available. The Versacrypt applets, like any other C function, will have some of the non-temporary registers they used will be used to store the Versacrypt linkage information.
You have to save them.

【0127】 H.バーサクリプトデータセグメント データセグメントは、データセグメントをインポートおよびエクスポートし、
データセグメントを生成および削除するために4つのシステム呼出しを介してバ
ーサクリプトアプレットにより管理される。バーサクリプトアプレットは、8つ
のデータセグメントを同時にロードされるようにしてもよく、終了時には、それ
ら(バーサクリプトサブアプレットに対するパラメータを除く)を明示的にアン
ロードしなければならない。それらがロード(インポート)されたとき、それら
のフォーマットは、それらが暗号化されていないことを除いて、外部メモリ(デ
ータによってタンパーチェックされた領域)中のものと同じである。
H. Versacrypt Data Segment Data Segment imports and exports data segments,
It is managed by the Verscrypt applet via four system calls to create and delete data segments. The Versacrypt applet may have eight data segments loaded at the same time and must explicitly unload them (except for the parameters for the Versacrypt sub-applet) at the end. When they are loaded (imported), their format is the same as in external memory (area tamper-checked by the data), except that they are not encrypted.

【0128】 バーサクリプトデータセグメント中に実行可能な命令を保持することは妥当
ではなく、また命令キャッシュは、バーサクリプトデータセグメントがインポー
トされたときにフラッシュされない。
It is not reasonable to keep executable instructions in the Versacrypt data segment, and the instruction cache is not flushed when the Versacrypt data segment is imported.

【0129】 データセグメントが、構築時に生成および初期化され、アプレットにおいて
初期化コードが必要とされないようにアプレットによりブートイメージ中にロー
ドされるように設定することが可能である。アプレットにそのデータセグメント
を自動的にロードさせることも可能であるため、それらは明示的にロードおよび
アンロードされる必要はなく、それらはよく知られているアドレスでロードする
ことが知られている。
A data segment can be created and initialized at construction and set to be loaded into the boot image by the applet so that no initialization code is required in the applet. It is also possible to have the applet automatically load its data segment, so they do not need to be explicitly loaded and unloaded, they are known to load at well-known addresses .

【0130】 多数のバーサクリプトアプレットが同じデータにアクセスしようとしている
場合には、バーサクリプトアプレットはデータセグメント中のデータへの共用ア
クセス用の任意の信号装置(semaphore) を処理することができる。それらは、使
用禁止(ディスエーブル)バーサクリプト先取り可能フラグを、それがバーサク
リプトスケジューリングに悪影響を及ぼさない場合に、この機能に対して使用す
ることができる。
If multiple versatile applets are trying to access the same data, the versatile applet can handle any semaphore for shared access to the data in the data segment. They can use the Disabled Versacrypt Prefetchable flag for this function if it does not adversely affect the Versacrypt scheduling.

【0131】 I.バーサクリプトアプレット バーサクリプトアプレットは、システム呼出しを介してのみ呼出される。この
システム呼出しは、バーサクリプトアプレットに対して待ち行列中に呼出しCB
を入れ、これがその第1のエントリならば、そのバーサクリプトアプレットをバ
ーサクリプト実行待ち行列の終わりに追加する。スケジューラは多数のタスク間
でCPU54(16)を共用し、これらタスクの1つが単一カーネルタスクである。次
に、カーネルタスクは、そのサイクルをユーザ機能と、機密保持されたカーネル
と、実行の準備ができている全てのバーサクリプトアプレットとの間で共用する
。バーサクリプトアプレットは先取り可能であるため、長時間にわたって実行す
る(RSAのような)単一アプレットは、別のユーザタスクまたはバーサクリプ
トアプレットの実行が維持されることを阻止する。バーサクリプトアプレットが
入力されたとき、それは呼出しCBをその唯一のパラメータとして有する。
I. Versacrypt Applet The Versacrypt applet is invoked only via system calls. This system call is a call to the versatile applet in the queue CB
And if this is the first entry, add the Verscrypt applet to the end of the Verscrypt run queue. The scheduler shares the CPU 54 (16) among many tasks, one of which is a single kernel task. The kernel task then shares its cycle between the user function, the secured kernel, and all versacrypt applets that are ready to run. Since the Versacrypt applet is preemptive, a single applet (such as RSA) that runs for a long time prevents another user task or execution of the Versacrypt applet from being maintained. When the Versacrypt applet is entered, it has the call CB as its only parameter.

【0132】 バーサクリプトアプレットのような任意の真のタスクは、機密保持されたバ
ーサクリプトアプレットを呼出す安全でないユーザタスクに分割される。たとえ
ば、条件付きアクセスソフトウェアは、スマートカードに対する要求の生成およ
びスマートカードからの結果の処理を行うバーサクリプト呼出しを行うユーザ部
分(スマートカードと通信するための割込みハンドラを含む)を有している可能
性がある。ユーザ部分はまた、メッセージ渡し、信号装置および必要ならば周期
的な呼出しを処理することが可能である。バーサクリプトは、機密保持されたタ
スクが関与させられるようにする外部事象を隠すことができないが、代わりに事
象の処理を隠蔽しなければならない。
Any real task, such as the Versacrypt applet, is broken down into insecure user tasks that invoke the secured Versacrypt applet. For example, the conditional access software can have a user portion (including an interrupt handler to communicate with the smart card) that makes a versacrito call to generate requests for the smart card and process the results from the smart card. There is. The user part can also handle message passing, signaling equipment and, if necessary, periodic calls. Versacrypt cannot hide external events that allow secured tasks to be involved, but must instead hide the handling of events.

【0133】 J.バーサクリプトサブアプレット バーサクリプトサブアプレットは、正規アプレットと全く同じであるが、しか
しメモリ限界を越えたバーサクリプトアプレットを分解するために使用される。
それらは、カーネルのみのシステムの呼出しを介して呼出されることが可能であ
り、ユーザソフトによって直接呼出されることはできない。それらがバーサクリ
プトアプレット(またはサブアプレット)によって呼出された場合、呼出し側の
ブロックおよびサブアプレットは実行を開始する。サブアプレットが呼出された
ときにすでに実行している場合、警報がトリガーされる(これは、アプレット間
におけるルーチンの共用、およびほとんどの場合あるタイプの再帰を予め除外し
ている)。サブアプレットは、再入不可能である。呼出し側は、ParmID(
データセグメントのIDである)を送り、バーサクリプトサブアプレットが入力
されたとき、それはこのデータセグメントへのポインタをその唯一のパラメータ
として有する。データセグメントは、パラメータを送ると共に結果を戻すために
使用される。
J. Versacrypt Sub-Applet The Versacrypt sub-applet is exactly the same as the regular applet, but is used to decompose the Versacrypt applet beyond the memory limit.
They can be called through kernel-only system calls and cannot be called directly by user software. When they are called by the Versacrypt applet (or sub-applet), the calling block and sub-applet begin execution. If the sub-applet is already running when it is called, an alert is triggered (this pre-empts the sharing of routines between applets and in most cases some type of recursion). Sub applets are non-reentrant. The caller must use ParmID (
(Which is the ID of the data segment) and when the Versacrypt sub-applet is entered, it has a pointer to this data segment as its only parameter. Data segments are used to send parameters and return results.

【0134】 K.文脈切替えチェック 機密保持されたカーネルは、単一カーネルタスクへの文脈切替えを行った場合
には常に次のチェックを行う(図9参照): 1.バーサクリプト先取り可能要求フラグが設定され、使用禁止バーサクリプ
ト先取り可能フラグがクリアされ、バーサクリプト実行待ち行列が空でない場合
、(a)使用禁止バーサクリプト先取り可能フラグを設定し、(b)エクスポー
トするために現在のスタックポインタを保存し、(c)機密保持されたカーネル
のエクスポート/インポートスタックポインタをロードし、(d)割込み可能に
する(ブロック210 )。この時点で、機密保持されたカーネルタスクは、エクス
ポート/インポート動作を行うために実行している。
K. Context Switching Check The confidential kernel performs the following checks whenever it switches context to a single kernel task (see FIG. 9): If the bar crypt prefetch possible request flag is set, the use prohibited bar crypt prefetch possible flag is cleared, and the bar crypt execution queue is not empty, (a) the use prohibited bar crypt prefetch possible flag is set and (b) export To save the current stack pointer, (c) load the secure kernel export / import stack pointer, and (d) enable interrupts (block 210). At this point, the secured kernel task is executing to perform the export / import operation.

【0135】 アプレットが現在ロードされており(ブロック212 )、所望のアプレットで
ない(ブロック214 )場合、それはエクスポートされる。とくに、アプレットが
実行を終了していない(ブロック216 )場合には、それは実行待ち行列の終わり
に追加される(ブロック218 )。ロードされている各データセグメントに対して
、したがってアプレット自身に対して:(a)エクスポート用のランダムホワイ
トニング値が生成され、(b)MACが計算されて、DMEM18に保存され、(
c)ブロックがホワイトニングによって暗号化され、(d)暗号化され、ホワイ
トニングされたアプレットがDMEM18からSDRAM24にコピーされる(ブロ
ック220 )。バーサクリプト実行待ち行列の上位から次のアプレットが除去され
る(ブロック222 )。
If the applet is currently loaded (block 212) and is not the desired applet (block 214), it is exported. In particular, if the applet has not finished executing (block 216), it is added to the end of the execution queue (block 218). For each data segment being loaded, and thus for the applet itself: (a) a random whitening value is generated for export, (b) the MAC is calculated and stored in DMEM 18;
c) The block is encrypted by whitening, and (d) the encrypted, whitened applet is copied from DMEM 18 to SDRAM 24 (block 220). The next applet is removed from the top of the Versacrypt execution queue (block 222).

【0136】 アプレットがこの時点でロードされていない(ブロック212 )場合、それは
インポートされる(ブロック222 )。とくに、インポートされたアプレットおよ
びその各データセグメントは、(a)SDRAM24からDMEM18にコピーされ
、(b)ホワイトニングにより解読され、(c)解読されたブロックに対するM
ACが計算されてDMEM18中のテーブル中の値と比較され、(d)フラグがチ
ェックされ(すなわち、ブロックが期待タイプのものである等を確認するために
)、(e)インポートされたアプレットが現在実行していないサブアプレットで
ある場合は、そのテーブル中の第1のデータセグメントがそのパラメータと置換
されて、そのためそれがロードされ、(f)アプレットおよびサブアプレットに
対するデータセグメントマップの妥当性がチェックされ、(g)命令およびデー
タキャッシュがフラッシュされる。
If the applet has not been loaded at this point (block 212), it is imported (block 222). In particular, the imported applet and its respective data segments are (a) copied from the SDRAM 24 to the DMEM 18, (b) decrypted by whitening, and (c) M for the decrypted block.
The AC is calculated and compared to the values in the table in DMEM 18, (d) the flags are checked (ie, to make sure the block is of the expected type, etc.), and (e) the imported applet is If it is a sub-applet that is not currently running, the first data segment in the table is replaced with that parameter, so it is loaded, and (f) the validity of the data segment map for the applet and sub-applet Checked, (g) Flush instruction and data cache.

【0137】 他方において、アプレットがまさにスタートしている(ブロック214 および
ブロック224 )場合、その文脈が初期化され:(i)その保存されたスタックポ
インタが設定され;(ii)そのパラメータが待ち行列に入れられた呼出しCB(
アプレットに対して)またはデータセグメント(サブアプレットに対して)に設
定され、(iii) その復帰レジスタ($31)がアプレット終了を処理するために
機密保持されたカーネル中のコードを指すように設定され(これにはまた、呼出
しCB(アプレットに対して)または呼出しアプレットID(サブアプレットに
対して)を保存する必要がある)、(iv)そのフラグが更新される(すなわち、
それが実行されている)(ブロック226 )。
On the other hand, if the applet has just started (blocks 214 and 224), its context is initialized: (i) its saved stack pointer is set; (ii) its parameters are Call CB (
(Iii) set in the data segment (for sub-applet) or data segment (for sub-applet) and (iii) its return register ($ 31) points to code in the kernel secured to handle applet termination (This also requires saving the calling CB (for the applet) or the calling applet ID (for the sub-applet)) and (iv) its flag is updated (ie,
It is running) (block 226).

【0138】 状況が上記の3つのいずれであるか(すなわち、アプレットが現時点でロー
ドされる、アプレットが現時点でロードされていない、あるいはアプレットがロ
ードされて、まさにスタートしている)には関係なく、制御は次に割込み禁止状
態にし;保存されたスタックポインタを復元し;使用禁止バーサクリプト先取り
可能フラグおよびバーサクリプト先取り可能要求フラグをクリアする(ブロック
228 )。
Regardless of whether the situation is one of the three above (ie, the applet is currently loaded, the applet is not currently loaded, or the applet is loaded and has just started) , Control then disables interrupts; restores the saved stack pointer; clears the disabled versatile preemptable flag and the versatile preemptable request flag (block
228).

【0139】 その後、制御は、カーネル文脈を復元し、カーネルモードに入る。[実行可
能なバーサクリプトアプレッチが1つもない場合には、これは1目盛り(tick)の
あいだRTOSの呼出しを休眠させておくループになる。] L.バーサクリプトアプレットのデータセクションフォーマット 以下にバーサクリプトアプレットのデータセクションのフォーマットを示す:
Thereafter, control restores the kernel context and enters kernel mode. [If there is no executable versatile appletch, this is a loop that keeps the RTOS call asleep for one tick. L.]. Data section format of Versacrypt applet The following shows the format of the data section of the Versacrypt applet:

【数3】 (Equation 3)

【0140】 M.バーサクリプトアプレット呼出し制御ブロックフォーマット バーサクリプトアプレット呼出し制御ブロック(呼出しCB)の目的は、バー
サクリプトのユーザ要求を行うための明確に定められたインターフェースを有す
ることである。この呼出しCBは、非同期要求を可能にするので、それ故ユーザ
ソフトウェアはバーサクリプトアプレットの比較的遅いスケジューリングを待つ
必要がなく、多数の要求を待ち行列に入れることができる。異なったセキュリテ
ィレベルで動作している2つのタスク間のインターフェースにおいて多数のセキ
ュリティ問題が発生するため、この簡単化されたインターフェースは、あるタイ
プのセキュリティ問題が生じる可能性の高い領域を最小化することを助ける。
M. Versacrypt Applet Call Control Block Format The purpose of the Versacrypt Applet Call Control Block (Call CB) is to have a well-defined interface for making user requests for Versacrypt. This invocation CB allows asynchronous requests, so that the user software can queue a large number of requests without having to wait for the relatively slow scheduling of the versatile applet. Because of the large number of security issues at the interface between two tasks operating at different security levels, this simplified interface minimizes areas where certain types of security issues are likely to occur. Help.

【0141】 以下にユーザバーサクリプトアプレット呼出し制御ブロックのフォーマット
を示す:
The following shows the format of the user versus applet call control block:

【数4】 (Equation 4)

【0142】 [タンパーチェック] 上述した種々のタンパーチェック特徴に加えて、装置10は、集積回路をタンパ
ーチェックする方法をさらに実行する。この方法は、リセット事象の検出時に実
行される。このような事象が検出された場合、プロセッサ54(16)は、EEPRO
M32がアクセスされることができないように、リセット状態に保持される。EE
PROM32は、プロセッサ54(16)がリセット状態で保持されているときにはアク
セスされることができない。これは、プロセッサが全てのEEPROMへのアク
セスを始めなければならないためである。示されている装置10において、メモリ
を含む全ての可能な回路は、BIST(組込み自己試験)によって試験される。
プロセッサ54(16)は、これらの試験の実行中リセット状態に保持される。プロセ
ッサ54(16)は、試験される素子がそれぞれBIST試験に合格した場合にのみリ
セット状態から解放される。試験された素子のいずれかのものがそれらの各試験
に不合格となった場合、装置10はタンパーされていると考えられ、それ以上命令
が実行されないように、プロセッサ54(16)はリセット状態に保持されるので、ブ
ートアップは発生せず、したがってセンシチブな情報が公開されることはない。
Tamper Check In addition to the various tamper check features described above, apparatus 10 further performs a method of tamper checking an integrated circuit. The method is performed upon detection of a reset event. If such an event is detected, processor 54 (16)
It is held in a reset state so that M32 cannot be accessed. EE
PROM 32 cannot be accessed when processor 54 (16) is held in the reset state. This is because the processor must start accessing all EEPROMs. In the device 10 shown, all possible circuits, including memory, are tested by BIST (Built-In Self Test).
Processor 54 (16) is held in reset during the execution of these tests. Processor 54 (16) is released from reset only if each of the devices under test passes the BIST test. If any of the tested elements fail each of those tests, the device 10 is considered tamped and the processor 54 (16) is in the reset state so that no further instructions are executed. , No boot-up occurs and therefore no sensitive information is disclosed.

【0143】 プロセッサ54(16)はこのプロセス期間中リセット状態に保持されるので、こ
のタンパーチェック方法を実施するための装置をさらに設けなければならない。
示されている実施形態において、タンパーチェック方法は、ウォッチドッグ回路
88(図3参照)の1つによって行われる。このようにして、タンパーチェック方
法は、ハードウェアによって実行され、リセット状態が発生するごとに行われる
ことが好ましい。
Since the processor 54 (16) is held in the reset state during this process, additional equipment must be provided to implement this tamper checking method.
In the embodiment shown, the tamper checking method comprises a watchdog circuit.
88 (see FIG. 3). In this manner, the tamper check method is preferably performed by hardware, and is preferably performed every time a reset state occurs.

【0144】 当業者は、BIST試験トリガーとして使用されるリセットのほかにも、本
発明の技術的範囲から逸脱することなく、別の事象(たとえば、周期的に発生す
る事象)をトリガーとして使用することが可能なことを理解するであろう。周期
的な事象がトリガーとして使用される場合、装置は影響を受ける可能性のある素
子を隔離して試験することが好ましい。さらに、当業者は、プロセッサをリセッ
ト状態に保持することに加えて(あるいは、その代わりに)、本発明の技術的範
囲を逸脱することなく、別のタンパー応答特性を使用することができることを容
易に理解するであろう。さらに、プロセッサは、本発明の技術的範囲を逸脱する
ことなく試験の開始および実行の少なくとも一方を使用されることができる。
Those skilled in the art will use other events as triggers (eg, periodically occurring events) in addition to resets used as BIST test triggers, without departing from the scope of the present invention. You will understand that it is possible. If a periodic event is used as a trigger, the device preferably tests isolated elements that may be affected. Further, those skilled in the art will readily appreciate that in addition to (or instead of) holding the processor in a reset state, alternative tamper response characteristics can be used without departing from the scope of the present invention. Will understand. Further, the processor may be used to initiate and / or execute a test without departing from the scope of the present invention.

【0145】 本発明の好ましい実施形態に関する以下の詳細について注意しなければなら
ない。第1に、好ましい実施形態において、装置10は単一の半導体ダイ中に構成
される。
Attention should be paid to the following details regarding preferred embodiments of the invention. First, in a preferred embodiment, device 10 is configured in a single semiconductor die.

【0146】 また、好ましい実施形態において、プロセッサ16は、ユーザソフトウェアが
アドレススペースのセクションにアクセスして、特権動作を行うことを禁止する
カーネル動作モードを有することとなる。第3に、プロセッサ16を除く全てのバ
スマスタ、すなわちDMAは、制限された視点(ビュー)を有していなければな
らない。外部バスマスタは使用できないことが好ましい。
In a preferred embodiment, the processor 16 will also have a kernel operating mode that prohibits user software from accessing sections of the address space and performing privileged operations. Third, all bus masters except the processor 16, the DMA, must have a limited view. Preferably, no external bus master can be used.

【0147】 さらに、アドレスマップは、全ての機密保持された周辺装置がカーネルアド
レススペース内に入るように、また、その他全ての周辺装置がユーザアドレスス
ペース内に入るように規定されなければならない。さらに、当業者によって理解
されるように、システムは本発明の技術的範囲から逸脱することなく任意の所望
の標準規格または適用特定周辺装置を含むことができる。
In addition, the address map must be defined so that all secured peripherals fall within the kernel address space and all other peripherals fall within the user address space. Further, as will be appreciated by those skilled in the art, the system may include any desired standards or application-specific peripherals without departing from the scope of the invention.

【0148】 さらに、当業者によって認識されるように、好ましい実施形態にわたって、
全ての外部リソースおよびユーザ供給パラメータに関して敵対態勢がとられる。
このようなリソースは、アタックの結果として予測できない回数で通知せずに変
化すると予測すべきである。正規のアクセスは統計的アタックに情報を提供して
いると考えるべきである。全てのアドレスは、使用前に有効性をチェックされな
ければならず、全ての値は、認承および使用の少なくとも一方を行う前に内部メ
モリにコピーされなければならない。
Further, as will be appreciated by those skilled in the art, over preferred embodiments,
Adversary is set for all external resources and user-supplied parameters.
Such resources should be expected to change without notification at unpredictable times as a result of an attack. Legitimate access should be considered as providing information for statistical attacks. All addresses must be checked for validity before use, and all values must be copied to internal memory before at least one of authorization and use.

【0149】 本発明の特定の例がここに記載されているが、本発明の技術的範囲はそれに
限定されるものではない。逆に、本発明は添付した特許請求の範囲の技術的範囲
内に入る全ての構成を事実上あるいは等価な原理の下にカバーする。
While specific examples of the invention have been described herein, the scope of the invention is not limited thereto. On the contrary, the invention covers all features that fall within the scope of the appended claims on a practical or equivalent principle.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 使用可能な1つの環境において本発明の教示にしたがって構成された装置の概
略図。
FIG. 1 is a schematic diagram of an apparatus constructed in accordance with the teachings of the present invention in one available environment.

【図2】 図1の装置の概略図。FIG. 2 is a schematic diagram of the apparatus of FIG.

【図3】 図1および2の装置のさらに詳細な概略図。FIG. 3 is a more detailed schematic diagram of the device of FIGS. 1 and 2;

【図4】 装置において使用されるソフトウェアアーキテクチャの概略図。FIG. 4 is a schematic diagram of a software architecture used in the device.

【図5】 装置をプログラムするための例示的なシステムの概略図。FIG. 5 is a schematic diagram of an exemplary system for programming a device.

【図6】 装置のEEPROMのプログラミングを示すラダーダイヤグラム。FIG. 6 is a ladder diagram showing the programming of the EEPROM of the device.

【図7】 装置のスタートアップ動作を示すフローチャート。FIG. 7 is a flowchart showing a start-up operation of the device.

【図8】 装置によって使用される割込み処理プロセスを示すフローチャート。FIG. 8 is a flowchart illustrating an interrupt handling process used by the device.

【図9】 外部メモリとDMEMとの間においてアプレットを交換するために装置によっ
て使用されるプロセスを示すフローチャート。
FIG. 9 is a flowchart illustrating a process used by the device to exchange applets between external memory and DMEM.

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U Z,VN,YU,ZW (72)発明者 ディロン、ダグラス・エム アメリカ合衆国、メリーランド州 20879 ガイザースバーグ、ベル・ブラフ・コー ト 1 (72)発明者 クロパー、デビッド・エス アメリカ合衆国、メリーランド州 21771 マウント・エアリー、リーフィー・ハロ ー・サークル 1012 (72)発明者 ウエーバー、サンドラ・ジェイ アメリカ合衆国、ペンシルバニア州 15226 ピッツバーグ、ブルックライン・ ブールバード 1431 (72)発明者 バウツ、ブランドン・イー アメリカ合衆国、メリーランド州 20814 ベセスダ、ブリストル・スクエア・レー ン 9803 Fターム(参考) 5B017 AA07 BA07 CA15 5B076 FC08 5J104 AA08 AA34 NA02 PA14 ──────────────────────────────────────────────────続 き Continuation of front page (81) Designated country EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE ), OA (BF, BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, GM, KE, LS, MW, SD, SZ, UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GE, GH, GM, HR, HU, ID, IL, IS, JP, KE, KG, KP , KR, KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM, TR, TT, UA, UG, UZ, VN, YU, ZW Court 1 (72) Inventor Cropper, David S. United States, Maryland 211771 Mount Airy, Leafy Hollow Circle 1012 (72) Inventor Weber, Sandra Jay United States, Pennsylvania 15226 Pittsburgh, Brookline Boulevard 1431 (72) Inventor Bouts, Brandon E United States, Maryland 20814 Bethesda, Brist Square lanes 9803 F-term (reference) 5B017 AA07 BA07 CA15 5B076 FC08 5J104 AA08 AA34 NA02 PA14

Claims (42)

【特許請求の範囲】[Claims] 【請求項1】 情報を記憶する読取り/書き込みメモリと、 読取り/書き込みメモリと共同して、そこから情報を読取り、そこに情報を書
込む第1のプロセッサと、 読取り/書き込みメモリと通信し、暗号化された情報を選択的に解読して解読
された情報にし、第1のプロセッサが後で使用するために解読された情報を読取
り/書き込みメモリに供給するように構成されている暗号化装置と、 第1のプロセッサによって使用される前に、解読された情報を認証する認証装
置とを具備している機密保持された処理環境を提供する装置。
A read / write memory for storing information, a first processor for reading information therefrom and writing information thereto in cooperation with the read / write memory, communicating with the read / write memory, An encryption device configured to selectively decrypt encrypted information into decrypted information, and a first processor configured to provide the decrypted information to a read / write memory for later use. An apparatus for providing a secure processing environment, comprising: an authentication device for authenticating the decrypted information before being used by the first processor.
【請求項2】 認証装置は、読取り/書込みメモリから受取った解読された
情報を再度認証し、暗号化装置は、解読され、再度認証された情報を選択的に暗
号化して再度暗号化された情報にするように構成されている請求項1記載の装置
2. The authentication device re-authenticates the decrypted information received from the read / write memory, and the encryption device selectively encrypts the decrypted and re-authenticated information to re-encrypt. The apparatus of claim 1, wherein the apparatus is configured to be information.
【請求項3】 暗号化装置は、記憶装置に後でエクスポートするために、再
度暗号化された情報を読取り/書込みメモリに戻す請求項2記載の装置。
3. The apparatus of claim 2, wherein the encryption device returns the encrypted information to the read / write memory for later export to the storage device.
【請求項4】 暗号化装置は、修正情報をマスクするためにその元の暗号化
された形態とは異なるように解読され再度認証された情報を再度暗号化する請求
項2記載の装置。
4. The apparatus of claim 2, wherein the encryption device re-encrypts the decrypted and re-authenticated information differently from its original encrypted form to mask the modification information.
【請求項5】 暗号化装置は、修正情報をマスクするためにキーサイクリン
グを使用する請求項4記載の装置。
5. The apparatus according to claim 4, wherein the encryption device uses key cycling to mask the modification information.
【請求項6】 暗号化装置は修正情報をマスクするためにホワイトニングプ
ロセスを使用し、ホワイトニングプロセスはホワイトニングキーを使用し、ホワ
イトニングキーが循環される請求項4記載の装置。
6. The apparatus of claim 4, wherein the encryption device uses a whitening process to mask modification information, the whitening process uses a whitening key, and the whitening key is rotated.
【請求項7】 再暗号化前に解読された情報を再度認証するために使用され
る認証データは、後で解読された情報を認証する時に使用するために、読取り/
書込みメモリ中に記憶される請求項2記載の装置。
7. The authentication data used to re-authenticate the information decrypted before re-encryption is read / written for later use in authenticating the decrypted information.
3. The apparatus of claim 2, wherein the apparatus is stored in a write memory.
【請求項8】 再度暗号化された情報を選択的に記憶する外部メモリをさら
に具備している請求項2記載の装置。
8. The apparatus according to claim 2, further comprising an external memory for selectively storing the re-encrypted information.
【請求項9】 第1のプロセッサは、カーネル動作モードおよびユーザ動作
モードを有しており、カーネルモードとユーザモードとは別個のセキュリティセ
ルを規定している請求項1記載の装置。
9. The apparatus of claim 1, wherein the first processor has a kernel operating mode and a user operating mode, and defines a security cell separate from the kernel mode and the user mode.
【請求項10】 第1のプロセッサは、ユーザ動作モードで機密保持されて
いないソフトウェアを実行し、カーネル動作モードで安全なソフトウェアを実行
する請求項9記載の装置。
10. The apparatus of claim 9, wherein the first processor executes unsecured software in a user mode of operation and executes secure software in a kernel mode of operation.
【請求項11】 暗号化装置および読取り/書込みメモリと通信し、それに
よって読取り/書込みメモリに記憶されている情報の解読および再暗号化を選択
的に開始する第2のプロセッサをさらに具備している請求項1記載の装置。
11. A second processor in communication with the encryption device and the read / write memory, thereby selectively initiating decryption and re-encryption of information stored in the read / write memory. The apparatus of claim 1 wherein:
【請求項12】 暗号化装置は、認証装置を含んでいる請求項11記載の装
置。
12. The device according to claim 11, wherein the encryption device includes an authentication device.
【請求項13】 暗号化された情報は、暗号化されたプロセッサ命令を含ん
でいる請求項1記載の装置。
13. The apparatus of claim 1, wherein the encrypted information includes encrypted processor instructions.
【請求項14】 暗号化された情報は、暗号化されたデータを含んでいる請
求項1記載の装置。
14. The apparatus according to claim 1, wherein the encrypted information includes encrypted data.
【請求項15】 暗号化された情報は、セクションにセグメント化されてい
る請求項1記載の装置。
15. The apparatus of claim 1, wherein the encrypted information is segmented into sections.
【請求項16】 各セクションは、独立に暗号化され、認証される請求項1
5記載の装置。
16. The method of claim 1, wherein each section is independently encrypted and authenticated.
An apparatus according to claim 5.
【請求項17】 不揮発性メモリと、この不揮発性メモリに含まれているデ
ータへのアクセスを制御し、不揮発性メモリに選択的にアクセスし、アクセスさ
れたデータに固有のプロパティを解析することによって、不揮発性メモリに含ま
れてるデータが機密データを含んでいるか否かを決定する論理回路とをさらに具
備している請求項1記載の装置。
17. Controlling access to a non-volatile memory and data contained in the non-volatile memory, selectively accessing the non-volatile memory, and analyzing properties specific to the accessed data. 2. The apparatus of claim 1, further comprising: a logic circuit for determining whether data contained in the non-volatile memory includes confidential data.
【請求項18】 論理回路は、予め定められた特性を有しているアクセスさ
れたデータ中のデータブロックを識別し、その識別されたデータブロックをカウ
ントし、このカウントをしきい値と比較することによって、不揮発性メモリに含
まれているデータが機密データを含んでいるか否かを決定する請求項17記載の
装置。
18. The logic circuit identifies data blocks in the accessed data having predetermined characteristics, counts the identified data blocks, and compares the count to a threshold. 18. The apparatus of claim 17, wherein the method determines whether data contained in the non-volatile memory includes sensitive data.
【請求項19】 各データブロックはビットを含み、予め定められた特性は
予め規定された論理状態を含んでいる請求項18記載の装置。
19. The apparatus of claim 18, wherein each data block includes a bit and the predetermined property includes a predetermined logic state.
【請求項20】 各データブロックは複数のビットを含み、予め定められた
特性は2進値の範囲内に入る2進値を含んでいる請求項18記載の装置。
20. The apparatus of claim 18, wherein each data block includes a plurality of bits, and wherein the predetermined property includes a binary value falling within a range of the binary value.
【請求項21】 論理回路は、第1のプロセッサを備えている請求項17記
載の装置。
21. The apparatus of claim 17, wherein the logic circuit comprises a first processor.
【請求項22】 論理回路を暗号化装置に直接接続するキー分離回路をさら
に具備している請求項17記載の装置。
22. The apparatus of claim 17, further comprising a key separation circuit that connects the logic circuit directly to the encryption device.
【請求項23】 不揮発性メモリはキーを記憶し、キー分離回路がキーを暗
号化装置に供給する請求項22記載の装置。
23. The apparatus of claim 22, wherein the non-volatile memory stores the key, and the key separation circuit supplies the key to the encryption device.
【請求項24】 論理回路、キー分離回路および暗号化装置は、閉じたシス
テムを規定している請求項22記載の装置。
24. The apparatus according to claim 22, wherein the logic circuit, the key separation circuit, and the encryption device define a closed system.
【請求項25】 第1のプロセッサ、読取り/書込みメモリおよび暗号化装
置は、集積回路上に埋込まれている請求項1記載の装置。
25. The apparatus of claim 1, wherein the first processor, the read / write memory, and the encryption device are embedded on an integrated circuit.
【請求項26】 集積回路は外部デバイスに装置を接続するためのピンを含
んでおり、また、機密保持された環境外へのセンシチブな情報の公開を回避する
ようにピンを選択的にディスエーブルにするためのサイレンシング回路をさらに
具備している請求項25記載の装置。
26. The integrated circuit includes pins for connecting the device to an external device and selectively disabling the pins to avoid exposing sensitive information outside a secure environment. 26. The apparatus of claim 25, further comprising a silencing circuit for:
【請求項27】 タンパーするための集積回路を監視するように構成された
ウォッチドッグ回路をさらに具備している請求項25記載の装置。
27. The apparatus of claim 25, further comprising a watchdog circuit configured to monitor the integrated circuit for tamping.
【請求項28】 暗号化された情報を外部ソースから選択的に受取る入力を
さらに具備している請求項25記載の装置。
28. The apparatus of claim 25, further comprising an input for selectively receiving the encrypted information from an external source.
【請求項29】 第1のプロセッサと共同して複数のセキュリティセルを維
持するメモリ管理装置をさらに具備している請求項1記載の装置。
29. The apparatus of claim 1, further comprising a memory management unit for maintaining a plurality of security cells in cooperation with the first processor.
【請求項30】 暗号化装置は暗号化モジュールを含んでいる請求項1記載
の装置。
30. The device according to claim 1, wherein the encryption device includes an encryption module.
【請求項31】 解読された情報の認証は対応している暗号化された情報を
認証することによって行われる請求項1記載の装置。
31. The apparatus according to claim 1, wherein authentication of the decrypted information is performed by authenticating corresponding encrypted information.
【請求項32】 第1の記憶容量を有し、暗号化された情報を記憶する外部
メモリにより使用される、機密保持された処理環境を提供するための集積回路に
おいて、 第1の記憶容量より少ない第2の記憶容量を有している揮発性メモリと、 暗号化された情報を外部メモリと揮発性メモリとの間で選択的にインポートお
よびエクスポートするためのインポート/エクスポート手段と、 機密保持された環境内において揮発性メモリから受取った暗号化された情報を
解読して解読された情報にし、機密保持された環境内において解読された情報を
再び暗号化して暗号化された情報に戻すための暗号化手段と、 機密保持された環境内において解読された情報を処理し、インポート/エクス
ポート手段と共同して、第2の記憶容量の超過を回避するために解読された情報
を外部メモリと揮発性メモリとの間で選択的にインポートおよびエクスポートす
るプロセッサとを具備している集積回路。
32. An integrated circuit for providing a secure processing environment for use by an external memory having a first storage capacity and storing encrypted information, the integrated circuit comprising: a first storage capacity; Volatile memory having a small second storage capacity; import / export means for selectively importing and exporting encrypted information between the external memory and the volatile memory; Decrypting the encrypted information received from the volatile memory into the decrypted information in the environment, and encrypting the decrypted information back into the encrypted information in the confidential environment. Encryption means for processing the decrypted information in a secure environment and working with import / export means to avoid exceeding the second storage capacity; Selectively integrated circuits; and a processor for importing and exporting between the information decrypted with the external memory and the volatile memory.
【請求項33】 暗号化手段は、解読された情報に対応している暗号化され
た情報が外部メモリからインポートされた場合に第1の形態を有し、また、外部
メモリにエクスポートされた場合には、対応している解読された情報が不変のま
まであるときにも、第1の形態とは異なる第2の形態を有するように情報を暗号
化する請求項32記載の集積回路。
33. The encrypting means has a first mode when the encrypted information corresponding to the decrypted information is imported from an external memory, and when the encrypted information is exported to the external memory. 33. The integrated circuit of claim 32, further comprising: encrypting the information so as to have a second form different from the first form even when the corresponding decrypted information remains unchanged.
【請求項34】 解読手段は、暗号化された情報を第1のホワイトニングキ
ーを使用して解読し、解読された情報を第1のホワイトニングキーとは異なる第
2のホワイトニングキーを使用して暗号化する請求項33記載の集積回路。
34. A decrypting means decrypts the encrypted information using a first whitening key, and encrypts the decrypted information using a second whitening key different from the first whitening key. The integrated circuit according to claim 33, wherein the integrated circuit is formed.
【請求項35】 第2のホワイトニングキーを発生する暗号的に強い疑似ラ
ンダム数発生器をさらに具備している請求項34記載の集積回路。
35. The integrated circuit of claim 34, further comprising a cryptographically strong pseudo-random number generator for generating a second whitening key.
【請求項36】 機密保持された環境内において解読された情報を認証する
ための手段をさらに具備している請求項32記載の集積回路。
36. The integrated circuit of claim 32, further comprising means for authenticating the decrypted information in a secure environment.
【請求項37】 認証するための手段は、外部メモリからインポートした後
に解読された情報を認証し、外部メモリにエクスポートする前に解読された情報
を再度認証する請求項36記載の集積回路。
37. The integrated circuit of claim 36, wherein the means for authenticating authenticates the information decrypted after importing from the external memory and re-authenticates the decrypted information before exporting to the external memory.
【請求項38】 機密保持動作を行うために集積回路において使用される、
集積回路をタンパーチェックするための方法において、 事象を検出し、 タンパーが発生しているか否かを決定するために集積回路の1以上の素子に関
して組込み自己試験を実行し、 この組込み自己試験によってタンパーの発生が示された場合には、集積回路の
1以上の動作を制限するステップを含んでいるタンパーチェック方法。
38. Use in an integrated circuit to perform security operations.
A method for tamper checking an integrated circuit, comprising: performing a built-in self-test on one or more elements of the integrated circuit to detect an event and determine whether a tamper has occurred; A tamper check method comprising the step of limiting one or more operations of the integrated circuit if the occurrence of is indicated.
【請求項39】 キー材料を記憶している予め規定されたメモリがアクセス
されることができないように集積回路に関連したプロセッサをリセット状態に保
持し、 1以上の素子が組込み自己試験に合格した場合にはリセット状態からプロセッ
サを解放し、 1以上の素子が組込み自己試験に失敗した場合には、プロセッサをリセット状
態に保持するステップをさらに含んでいる請求項38記載の方法。
39. A processor associated with the integrated circuit is held in a reset state such that a predefined memory storing key material cannot be accessed, and one or more elements have passed a built-in self test. 39. The method of claim 38, further comprising the step of: releasing the processor from the reset state if so, and holding the processor in the reset state if one or more components fail the built-in self test.
【請求項40】 前記1以上の素子はメモリを含んでいる請求項38記載の
方法。
40. The method of claim 38, wherein said one or more devices comprises a memory.
【請求項41】 前記1以上の素子は論理回路を含んでいる請求項38記載
の方法。
41. The method of claim 38, wherein said one or more elements comprises a logic circuit.
【請求項42】 前記事象はリセット事象を含んでいる請求項38記載の方
法。
42. The method of claim 38, wherein said event comprises a reset event.
JP2000572741A 1998-09-25 1998-09-25 Apparatus for providing a security processing environment Pending JP2002526822A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1998/020083 WO2000019299A1 (en) 1998-09-25 1998-09-25 An apparatus for providing a secure processing environment

Publications (1)

Publication Number Publication Date
JP2002526822A true JP2002526822A (en) 2002-08-20

Family

ID=22267934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000572741A Pending JP2002526822A (en) 1998-09-25 1998-09-25 Apparatus for providing a security processing environment

Country Status (5)

Country Link
EP (1) EP1032869A1 (en)
JP (1) JP2002526822A (en)
AU (1) AU743775B2 (en)
CA (1) CA2309627A1 (en)
WO (1) WO2000019299A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003535538A (en) * 2000-05-31 2003-11-25 フランス テレコム Smart card encryption method and device, and smart card with microcircuit
JP2005100378A (en) * 2003-08-26 2005-04-14 Matsushita Electric Ind Co Ltd Program execution device and authentication station device
JP2007215159A (en) * 2005-12-14 2007-08-23 Nvidia Corp Chipset security offload engine
US7270193B2 (en) 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US7849296B2 (en) 2002-11-18 2010-12-07 Arm Limited Monitoring control for monitoring at least two domains of multi-domain processors
US8082589B2 (en) 2002-11-18 2011-12-20 Arm Limited Diagnostic data capture control for multi-domain processors
US8181040B2 (en) 2003-08-26 2012-05-15 Panasonic Corporation Program execution device
JP2013161479A (en) * 2012-02-08 2013-08-19 Arm Ltd Data processing apparatus and method using secure domain and less secure domain
US8713371B2 (en) 2011-01-28 2014-04-29 Arm Limited Controlling generation of debug exceptions
US10025923B2 (en) 2012-02-08 2018-07-17 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
US10083040B2 (en) 2012-02-08 2018-09-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US10169573B2 (en) 2012-02-08 2019-01-01 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US10210349B2 (en) 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3736293B2 (en) * 2000-05-31 2006-01-18 日本電信電話株式会社 Service quality control method and device service quality control program in encrypted communication
JP2002353960A (en) * 2001-05-30 2002-12-06 Fujitsu Ltd Code performing device and code distributing method
DE10200288A1 (en) * 2002-01-07 2003-07-17 Scm Microsystems Gmbh A device for executing applications that include secure transactions and / or access control to valuable content and / or services and methods for protecting such a device
US8473750B2 (en) 2004-12-15 2013-06-25 Nvidia Corporation Chipset security offload engine
FR3059121B1 (en) * 2016-11-23 2019-05-10 Idemia Identity And Security METHOD OF VERIFYING DATA
US20230185636A1 (en) * 2021-12-10 2023-06-15 Nvidia Corporation Application programming interfaces for interoperability

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH087720B2 (en) * 1986-09-16 1996-01-29 富士通株式会社 Area access method for IC cards for multiple services
GB2205667B (en) * 1987-06-12 1991-11-06 Ncr Co Method of controlling the operation of security modules
US5467396A (en) * 1993-10-27 1995-11-14 The Titan Corporation Tamper-proof data storage

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7270193B2 (en) 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US7353404B2 (en) 2000-02-14 2008-04-01 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
JP2003535538A (en) * 2000-05-31 2003-11-25 フランス テレコム Smart card encryption method and device, and smart card with microcircuit
JP2012133390A (en) * 2000-05-31 2012-07-12 Fr Telecom Cryptography method and device for smart card and smart card including microcircuit
US8082589B2 (en) 2002-11-18 2011-12-20 Arm Limited Diagnostic data capture control for multi-domain processors
US7849296B2 (en) 2002-11-18 2010-12-07 Arm Limited Monitoring control for monitoring at least two domains of multi-domain processors
US12019789B2 (en) 2003-08-26 2024-06-25 Panasonic Holdings Corporation Program execution device
US8874938B2 (en) 2003-08-26 2014-10-28 Panasonic Intellectual Property Corporation Of America Program execution device
US8181040B2 (en) 2003-08-26 2012-05-15 Panasonic Corporation Program execution device
US10607036B2 (en) 2003-08-26 2020-03-31 Panasonic Intellectual Property Corporation Of America Program execution device
US10318768B2 (en) 2003-08-26 2019-06-11 Panasonic Intellectual Property Corporation Of America Program execution device
US8522053B2 (en) 2003-08-26 2013-08-27 Panasonic Corporation Program execution device
JP2005100378A (en) * 2003-08-26 2005-04-14 Matsushita Electric Ind Co Ltd Program execution device and authentication station device
JP4691337B2 (en) * 2003-08-26 2011-06-01 パナソニック株式会社 Program execution device, certificate authority device
US9218485B2 (en) 2003-08-26 2015-12-22 Panasonic Intellectual Property Corporation Of America Program execution device
US9524404B2 (en) 2003-08-26 2016-12-20 Panasonic Intellectual Property Corporation Of America Program execution device
US9811691B2 (en) 2003-08-26 2017-11-07 Panasonic Intellectual Property Corporation Of America Program execution device
US11651113B2 (en) 2003-08-26 2023-05-16 Panasonic Holdings Corporation Program execution device
US10970424B2 (en) 2003-08-26 2021-04-06 Panasonic Intellectual Property Corporation Of America Program execution device
US10108821B2 (en) 2003-08-26 2018-10-23 Panasonic Intellectual Property Corporation Of America Program execution device
JP2007215159A (en) * 2005-12-14 2007-08-23 Nvidia Corp Chipset security offload engine
US8713371B2 (en) 2011-01-28 2014-04-29 Arm Limited Controlling generation of debug exceptions
US10210349B2 (en) 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US10169573B2 (en) 2012-02-08 2019-01-01 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US10083040B2 (en) 2012-02-08 2018-09-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US10025923B2 (en) 2012-02-08 2018-07-17 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
JP2013161479A (en) * 2012-02-08 2013-08-19 Arm Ltd Data processing apparatus and method using secure domain and less secure domain

Also Published As

Publication number Publication date
AU1062399A (en) 2000-04-17
WO2000019299A1 (en) 2000-04-06
EP1032869A1 (en) 2000-09-06
AU743775B2 (en) 2002-02-07
CA2309627A1 (en) 2000-04-06

Similar Documents

Publication Publication Date Title
US6385727B1 (en) Apparatus for providing a secure processing environment
US6438666B2 (en) Method and apparatus for controlling access to confidential data by analyzing property inherent in data
KR100851631B1 (en) Secure mode controlled memory
KR100809977B1 (en) Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7313705B2 (en) Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US7073059B2 (en) Secure machine platform that interfaces to operating systems and customized control programs
AU743775B2 (en) An apparatus for providing a secure processing environment
US9311255B2 (en) Multi-layer content protecting microcontroller
US8332653B2 (en) Secure processing environment
US8356188B2 (en) Secure system-on-chip
KR100851623B1 (en) Device with a cryptographic coprocessor
US7945789B2 (en) System and method for securely restoring a program context from a shared memory
TWI490724B (en) Method for loading a code of at least one software module
US20040176068A1 (en) Architecture for encrypted application installation
US8656191B2 (en) Secure system-on-chip
EP1465038B1 (en) Memory security device for flexible software environment
CA2311392C (en) Method and apparatus for controlling access to confidential data
MXPA00005081A (en) An apparatus for providing a secure processing environment
MXPA00005079A (en) Method and apparatus for controlling access to confidential data

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040727