[go: up one dir, main page]

WO2005045789A1 - セキュア・プロセッサ - Google Patents

セキュア・プロセッサ Download PDF

Info

Publication number
WO2005045789A1
WO2005045789A1 PCT/JP2004/016589 JP2004016589W WO2005045789A1 WO 2005045789 A1 WO2005045789 A1 WO 2005045789A1 JP 2004016589 W JP2004016589 W JP 2004016589W WO 2005045789 A1 WO2005045789 A1 WO 2005045789A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
register
signature
data
instruction
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.)
Ceased
Application number
PCT/JP2004/016589
Other languages
English (en)
French (fr)
Inventor
Masakazu Soga
Toshimitsu Inomata
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Science and Technology Agency
Original Assignee
Japan Science and Technology Agency
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 Japan Science and Technology Agency filed Critical Japan Science and Technology Agency
Priority to US10/578,258 priority Critical patent/US20070055872A1/en
Publication of WO2005045789A1 publication Critical patent/WO2005045789A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the present invention relates to an architecture (logical configuration) of a general-purpose microprocessor, and more particularly, to an architecture of a microprocessor used for security technology such as a digital signature.
  • a processor dedicated to public key cryptography eg, RSA cryptography
  • It is a dedicated processor for security such as IBM, Fujitsu, Matsushita Communication, and NTT DATA.
  • This is an additional processor dedicated to receiving only signature and cryptographic calculations. It is assumed that a general-purpose main processor exists separately. Since these processors are function-limited processors that only accept signature and encryption calculations, the danger of using key data for other purposes can be easily avoided.
  • Non-Patent Document 1 For the algorithm of cryptographic calculation by RSA, for example, reference was made to the literature shown in Non-Patent Document 1.
  • Non-Patent Document 1 Cetin Kaya Koc "High-Speed RSA Implementation Version 2.0 ⁇ RSA Data Security, Inc. 1994 (ftp://ftp.rsasecurity.com/pub/pdfs/tr201.pdl)
  • An object of the present invention is to provide a processor having a general-purpose function and also having a security function (that is, secure storage of key data and high-speed calculation of a digital signature).
  • the present invention provides a method in which a key register composed of a nonvolatile memory storing key data and the key data stored in the key register are referred to bit by bit.
  • the key counter indicating the bit position, the digest 'digest storing data' register used for the digital signature, and the contents of the digest register when the 1-bit key data referred to by the key counter is 0 are stored.
  • 1, 1 there is provided a gate for directly outputting the contents of the digest register.
  • the key register is not provided with a path for reading all data from the outside, and together with general instructions, the key register, the key counter, and A plurality of signature-only instructions for operating the digest register to obtain a digital signature from the digest data are provided.
  • a secure 'processor This makes it possible to provide a processor having a general-purpose function and also having a security function because the key data stored in the key register of the nonvolatile memory cannot be read directly.
  • the running mode of the processor includes a general mode and a security mode, and includes a security register for displaying the security mode, and a general instruction for setting the security mode and a signature-only instruction for resetting.
  • the general instruction is valid in the general mode
  • the signature-only instruction is valid in the security mode.
  • the security mode setting command sets the security register and simultaneously initializes the key counter to 1023, and the signature-only command executes a signature calculation for one bit of the key register.
  • the key counter is decremented, the signature calculation for each bit proceeds in sequence, and the security mode is reset only when the key counter is 0.
  • the secure processor is connected to the main memory, and the signature-only instruction stores the operation result of the operation for obtaining the digital signature only in a specific area of the main memory, and stores the final result of the digital signature operation. It is not possible to leave the intermediate result in main memory by overwriting the result with the previous operation result.
  • An ic card incorporating the above secure processor can execute a signature operation in the ic card, and can safely execute a signature operation without having to take out key data outside the ic card. In addition, it is impossible to extract the key data from the IC card to the outside by a program.
  • the secure processor of the present invention solves the trade-off between versatility and security functions by devising a new architecture.
  • the main function of an IC card for personal authentication using the above-described secure processor is a signature operation.
  • the Secure 'processor of the present invention it is possible to reduce the amount of cash card function, credit card function, falsification prevention function, toll payment function, ticket reservation function, etc.
  • the security function is finally determined, and in particular, personal key data can be used only for signature calculation, and all other operations are rejected.
  • the secure processor of the present invention is broadly classified and has two configurations.
  • A When the private key data is used in the signature calculation, etc., only the operation in which the superior power is referred to in order one bit at a time, there is no other operation. Focusing on this, the private key is stored in a unique non-volatile dedicated register instead of the main memory or general-purpose register. Then, the dedicated register does not have a path to read all data by external force. Make only the path for the operation that refers to the
  • security mode In the secure processor, introduce a mode called security mode that did not exist in the conventional processor. This is also a condition that limits the environment for running the program. In security mode, normal commands are not interpreted as commands. Only special instructions used only in signature operations function as instructions.
  • FIG. 1 is a block diagram showing an example of an embodiment of a secure processor.
  • FIG. 2 is a block diagram of a key register portion in the secure processor.
  • FIG. 3 is an instruction format of the secure processor of the embodiment.
  • Fig. 4 shows an example of the operation code (OP code: instruction code) of the Secure 'processor.
  • the processor 100 shown in FIG. 1 has a relatively long word length (64 bits) for a signature operation, and can calculate up to a 16-fold word with one instruction.
  • the address unit with the main memory 200 is also a word unit (64-bit unit).
  • the word unit of the secure processor described below is configured to use 64 bits, but this is because the word length is selected as long as possible from the signature operation with the key data. This is a matter to be determined from the relationship with the wear amount.
  • the CPU 100 shown in FIG. 1 includes an instruction register (IS: Instruction Register) 143, a memory data register (MD: Memory Data Register) 144, a program 'counter (PC: Program Counter) 145, an F operand' counter (FC: F -Operand Counter) 146, T Operand 'Counter (TC: T-operand Counter) 147 is provided. These are between the main memory 200 and read and write instructions and data from the main memory 200. Register.
  • IS Instruction Register
  • MD Memory Data Register
  • PC Program Counter
  • F operand' counter FC: F -Operand Counter
  • TC T-operand Counter
  • an instruction in the format (64 bits) shown in FIG. 3A is read from the main memory 200 to the instruction register (IS) 143.
  • This instruction sets the address, etc. in the F operand 'Counter 146, T operand' counter 147 according to the address mode (see Fig. 3 (b)) specified in the MF and MT fields in Fig. 3 (a).
  • data is read from the main memory 200 to the memory data register (MD) 144, or data in the memory data register 144 (MD) is written to the main memory 200.
  • the F operand 'counter 146 and T operand' counter 147 are incremented (increased by one) by the word length specified in the L field in FIG.
  • the general-purpose operation unit (ALU rithmetic and logic unit) 164 is an operation unit that performs general operations (addition, subtraction, logical operation, etc.), and the multiplier (MPY: MultiPlY unit) 162 is a 64-bit X 64-bit An arithmetic unit that performs multiplication.
  • the PF register (Program Status Flag) 148 is a 4-bit flag that is set by the execution of the instruction.
  • the PF register 148 has a PSW term in the opcode table shown in Figure 41 (a) and Figure 4-2 (b). Is set. N, Z, V, and C of PSW (Program Status Word) in the operation code table indicate negative (Negative), zero (Zero), overflow (oVerflow), and carry (Carry), respectively.
  • the operation register (R0-RF) 110 is a general-purpose register used for general operation instructions and the like.
  • An operation instruction using this general-purpose register specifies the register directly in Fig. 3 (b) in MF or MT in Fig. 3 (a), and specifies the register number in the field of the F or T operand.
  • the buffers' registers (B0, Bl) 141 and 142 are registers for storing the results during the operation and the like.
  • FIGS. 41 and 42 Refer to the instruction format shown in FIG. 3 and the operation code table (instruction code table) shown in FIGS. 41 and 42 for details of the operation of the above-described instruction and the function of each register.
  • Fig. 41 (a) and Fig. 42 (b) are opcode tables
  • Fig. 42 (c) is an explanation of the symbols used for each field of the opcode table
  • Fig. 42 (d) Is the notation in the operation section of the opcode table. This is an explanation
  • FIG. 42 (e) is a supplementary explanation of what is indicated by * in FIGS. 42 (c) and (d).
  • OP For the OP, SOP, MF, MT, L, F, T, and S terms in the opcode table, refer to the instruction format descriptions in Figs. 3 (a) and 3 (b) and the symbol descriptions in Fig. 42 (c). I want to be.
  • the mnemonic is an abbreviation of an instruction, and this instruction is used to refer to each instruction in the future. The operation of each instruction is described in the operation section.
  • the attribute is the instruction classification.
  • SFT is a shift instruction
  • ADD is an addition instruction
  • SUB is a subtraction instruction
  • BIT is a bit processing instruction
  • MOV is a move instruction
  • JMP is a jump instruction
  • LINK is a subroutine call instruction
  • BR is Shows a branch instruction by PSW.
  • the SVC instruction is a supervisor's call instruction and sets the IT flag as shown in FIG. RIT is a return instruction of the supervisor's call instruction and resets the IT flag.
  • the above-mentioned operation code table also includes a signature calculation instruction described below. These instructions will be described later.
  • the configuration described below is a configuration example closely related to the signature calculation of the secure processor.
  • key data is stored in a key register (K0-KF: Key register) 130 composed of a nonvolatile memory (for example, ROM).
  • K0-KF Key register
  • secret key data (1024 bits) of, for example, RSA of each user is written.
  • the writing of the key into the non-volatile memory may be performed, for example, by writing the key from outside using a dedicated writer.
  • the value of the key K must be referred to from the upper bits one bit at a time and reflected in another multiplication, and this is the only usage. Therefore, for this purpose, select one bit at a time from the key register 130 as shown in FIG. A key reference circuit to be referred to is provided. The algorithm of the digital signature calculation using these circuits will be described later in detail.
  • a key-bit reference counter (KC) 152 sequentially decrements to 1023 zero. Based on the contents of the key bit reference counter 152, the K data stored in the key register 130 is sequentially designated one bit at a time from the bit designation gate 154 and referenced. As can be seen from FIG. 2, a word data parallel transmission path for transferring data from the key register 130 storing the key K to another is provided. As shown in FIG. 1, the reference output from the bit designation gate 154 is used only for the output selection gate 156 of the digest 'register 120. As described above, it is impossible to directly output the key data directly to the outside from the hardware structure shown in FIGS.
  • the digest 'register (DO-D2: Digest register) 120 in Fig. 1 is a 64-bit X3 register, which is extracted from the text for adding a digital signature for processing the digital signature. This register is used to store digest data (160-bit feature data).
  • a digest of 160-bit length is created from the text and stored in the main memory 200.
  • the digest data is set to small prime numbers (2, 3, 5, 7, 11, 13, 17, 19, 23, ...;) and the signature calculation results are collected in advance, these If the signature calculation result corresponding to the digest 'data value which is relatively free to use can be synthesized, there is a danger. In order to prevent this, it is necessary to confirm that the data value of the digest is a sufficiently large value corresponding to 160 bits.
  • the Secure 'processor calls these non-hazardous values as "valid patterns" as conditions for starting signature calculation.
  • the instruction designated as DMV is used to specify in the F field.
  • the digest stored in the address of the main memory 200 is stored in the digest register (D register) 120 for a digest of three words.
  • the D register 120 has a bit pattern detection gate (not shown).
  • the bit pattern detection gate divides all 160 bits of the D register 120 into 10 blocks of 16 bits each, and detects whether all blocks have at least one "1". This detects whether the stored data is a “valid pattern”.
  • the 1-bit key data read by the above-described key reference circuit is reflected by the D determination gate 156 on the digest ′ data D read from the D register 120. This will be described later in the signature calculation.
  • the secure processor uses a program run mode. It is divided into normal mode and security mode. The mode in which the vehicle is running is indicated by a security flag register (SF register: Security Flag register) 149.
  • SF register Security Flag register
  • the SF register 149 in Fig. 1 has four bits, SF3, SF2, SF1, and SFO, but only SFO is used for the time being.
  • the calculation result for each bit is accumulated more and more only at a fixed address, and the interim result for each bit cannot be taken out to the outside, but only the last all bit integration result can be taken out to the outside.
  • the digital signature in the RSA public key system is to calculate D K modN (D: digest data, K: key, N: specific integer).
  • the contents of the digest 'register 120 must be a valid pattern.
  • attack that combines the signature calculation value for an arbitrary digest value described above into a plurality of simple digest values collected separately from the calculated signature value This is what is known as the “attack”.
  • blind signature technology uses a method known as blind signature technology to multiply a small prime number by a random number R and convert it to a large number, escape the effective pattern check, obtain the signature value, and divide by R to obtain the desired signature value Sex is considered.
  • the use of blind signature technology increases the size up to 1024 bits instead of 160 bits, so it is possible to avoid checking the valid pattern.However, since it does not fit in 160 bits, it does not fit in the D register in the first place, and the signature calculation is not performed. Cannot start.
  • D is calculated by the value of Kc (the bit at the position indicated by the key strength counter (KC) 152 in the key ⁇ ) as follows. Take the value of the street.
  • is generated by the hardware 'gate 156 from the digest' data D read from the register D120 and the Kc read by the key counter (KC) 152 from the key register 130.
  • the MDK instruction is an instruction that simultaneously decrements the key counter and obtains the above ⁇ .
  • the mod calculation (S314 and S316) has a structure in which a plurality of steps centered on a multiplication instruction are looped.
  • the modN operation is usually a division, but is performed by a multiplication and one subtraction using a calculation procedure called Montgomery multiplication. See Non-Patent Document 1 (3.8 Montgomery's Method p.46-p.47) for the algorithm of Montgomery multiplication.
  • R, IT, and N * appearing in the above equation are constants that can be derived simultaneously when N is first set.
  • the public parameter N is fixed at 102 4 bits long, so R, R *, N * are as follows.
  • N * y Rl.
  • is an arbitrary integer. (The data bit length of N * is 1024 or less.)
  • R In the form of the expression, there are three divisions by R and three modRs.
  • the value of R is a special form of 21G24, so it can be done by bit manipulation.
  • FIG. 6 (a) shows a case where the above-described equation is performed by the instructions in the operation code tables shown in FIGS. 41 (a) and 42 (b). The meaning of the symbols shown in FIG. 6 (a) is shown in FIG. 6 (b).
  • FIG. 7A shows an authentication IC card 310 currently used.
  • personal key data is written in the IC card 310.
  • the message sender puts it on a card reader (not shown) attached to the computer 320 and clicks a button or the like indicating a signature operation on the display screen of the computer 320 to activate it.
  • the personal key data is read from the authentication IC card 310, a digital signature is generated in the personal computer 320, and the digital signature is paired with the message body and sent to the other party via the Internet 330.
  • the signature operation is completed, the entire signature operation is completed by removing the IC card from the reader.
  • the security level differs depending on where the signature operation is performed.
  • the current method shown in Fig. 7 (a) there is a danger that the private key data may be eavesdropped or copied even during the short time when it is transferred to the personal computer.
  • the target message is taken into the IC card 315 since the IC card 315 has a signature calculation capability, and the signature calculation is performed in the IC card 315.
  • the data taken into the IC card 315 may be digest data. What is sent from the IC card 315 to the personal computer 320 is the digital signature result, not the key data. Since the signature calculation is performed in the IC card, there is no such danger that the key data does not need to be read out. Backcalculating the key from the signature result takes astronomical time.
  • the key data itself (including all viruses and crackers) can be taken out of the IC card, copied, measured, and other observations can be made regardless of any program measures. Every action is difficult and impossible is there.
  • FIG. 1 is a block diagram showing a configuration example of a secure processor.
  • FIG. 2 is a block diagram of a portion for reading key data.
  • FIG. 3 is a diagram showing a format example of an instruction of a secure processor.
  • FIG. 4-2 This is a continuation of the secure processor opcode table, and a table of explanations of opcode field symbols and operation notation.
  • FIG. 5 is a flowchart showing a signature operation.
  • FIG. 6 is a diagram showing a case where a Montgomery operation is performed by an instruction of a secure processor.
  • FIG. 7 is a diagram illustrating a configuration example in which a secure processor is applied to an IC card.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

 汎用機能を持ち、なおかつ、セキュリティ機能(すなわち鍵データの安全保管とディジタル署名計算の高速化)も持つプロセッサの提供。  一般用と署名演算用の命令を有するセキュア・プロセッサ100内に、不揮発性の鍵レジスタ130に、鍵データが格納されている。鍵ビット参照カウンタ152は1023から0まで、順次デクリメントする。この鍵ビット参照カウンタ152の内容により、ビット指定ゲート154から、鍵レジスタ130に格納されているKデータが順次1ビットづつ指定され、逐次署名演算に使用される。鍵Kを格納する鍵レジスタ130から他へデータを転送する語データ並列伝送経路を設けていない。  このようなハードウェア構造からして、鍵データを生の形で直接外部へ出すことは不可能である。

Description

セキュア'プロセッサ
技術分野
[0001] 本発明は、汎用マイクロプロセッサのアーキテクチャ (論理構成)に関し、特に、デジ タル署名等のセキュリティ技術にも用いられるマイクロプロセッサのアーキテクチャに 関する。
背景技術
[0002] コンピュータ誕生以来約 60年の間、プロセッサの機能'性能の向上は 100万倍の オーダーにも達する。改善の主たる担い手は素子 ·回路の機能 ·性能の改善による。 その次の副たる担い手は、アーキテクチャの改善である。そのアーキテクチャ面での 改善も殆どが性能向上に向けられてきた。最近 20年間程度ではごく一部で、信頼性 向上や電力低減のためのアーキテクチャ改善もあった。し力しながら、セキュリティ改 善のために行われたアーキテクチャ改善の例は、ようやく出つつある(例えば、
Palladium計画、 LaGrande計画、 Enhanced Virus Protection機能)。
ただし、セキュリティ改善の目的のために公開鍵暗号計算 (例えば RSA暗号計算) 専用のプロセッサが使用されている実用例は既にある。それは IBM,富士通,松下 通信, NTTデータ等のセキュリティ専用プロセッサである。これは署名演算や暗号計 算だけを弓 Iき受ける専用の付加プロセッサである。別に汎用の主プロセッサが存在 することが前提である。これらは、もともと専用プロセッサ全体が署名演算 ·暗号計算 だけしか受け付けない機能限定プロセッサであるから、鍵データを他目的に使われる 危険も容易に避けられる。
なお、 RSAによる暗号計算のアルゴリズムについては、例えば、非特許文献 1に示 した文献を参考にされた 、。
非特許文献 1 : Cetin Kaya Koc "High- Speed RSA Implementation Version 2.0〃 RSA Data Security, Inc. 1994(ftp:/ / ftp.rsasecurity.com/ pub/ pdfs/ tr201.pdl)
発明の開示
発明が解決しょうとする課題 [0003] 本発明の目的は、汎用機能を持ち、なおかつ、セキュリティ機能 (すなわち鍵デー タの安全保管とデジタル署名計算の高速化)も持つプロセッサの提供である。
課題を解決するための手段
[0004] 上述の目的を達成するために、本発明は、鍵データを格納した不揮発性メモリで構 成される鍵レジスタと、該鍵レジスタに格納された鍵データを 1ビットずつ参照するた めに、ビット位置を示す鍵カウンタと、デジタル署名に用いるダイジェスト 'データを格 納するダイジェスト 'レジスタと、前記鍵カウンタにより参照された 1ビットの鍵データが 0のときは前記ダイジェスト ·レジスタの内容を 1、 1のときは前記ダイジェスト ·レジスタ の内容をそのまま出力するゲートとを備え、前記鍵レジスタには全データを外部から 読み取るパスは設けず、一般命令とともに、前記鍵レジスタ、前記鍵カウンタ、及び前 記ダイジェスト ·レジスタを操作して前記ダイジェスト ·データからデジタル署名を求め るための複数の署名専用命令を有することを特徴とするセキュア'プロセッサである。 これにより、汎用機能を持ち、不揮発性メモリの鍵レジスタに格納した鍵データを直 接的には読めないため、セキュリティ機能も持つプロセッサを提供することができる。 このプロセッサの走行モードとして、一般モードとセキュリティ 'モードを有し、前記セ キユリティ ·モードを表示するセキュリティ ·レジスタを備えるとともに、前記セキュリティ · モードをセットする一般命令及びリセットする署名専用命令を有し、前記一般命令は 一般モードのときに有効となり、前記署名専用命令はセキュリティ ·モードのときに有 効となるとすることちでさる。
[0005] 前記セキュリティ ·モード設定命令は、前記セキュリティ 'レジスタをセットすると同時 に、前記鍵カウンタを 1023に初期設定し、前記署名専用命令は、署名計算を鍵レジ スタの 1ビット分実行する命令の実行と同時に鍵カウンタをデクリメントして、順次ビット ごとの署名計算が進行し、前記鍵カウンタが 0のときのみにセキュリティ 'モードをリセ ットする構成とし、ー且、デジタル署名の演算過程に入ると、終了するまで (鍵カウン タが 0となるまで)、演算過程力 抜けられず、演算過程の中間結果力 プログラムに より鍵データを推定することを不可能として 、る。
前記ダイジェスト ·レジスタに設定されたダイジェスト ·データが 16ビット毎に少なくと も 1つの 1を有することを検出する手段を備え、前記セキュリティ設定命令は、 16ビット 毎に少なくとも 1個は 1があることを条件に、前記鍵カウンタを初期設定し、 SFO= lと なったあとはダイジェスト ·レジスタ内のデータは変更できな!/ヽとして、鍵データを間接 的にも読み出すことができな 、ようにしてもょ 、。
セキュア'プロセッサには、主メモリに接続しており、前記署名専用命令は、前記デ ジタル署名を求める演算の演算結果を、前記主メモリの特定の領域のみに格納して 、デジタル署名演算の最終結果を前の演算結果に上書きする構成として、中間結果 を主メモリに残すことを不可能としてもょ 、。
上述のセキュア.プロセッサを^ aみ込んだ icカードでは、署名演算を icカード内で 実行でき、鍵データを icカード外部に取り出す必要がなぐ署名演算を安全に実行 することができる。また、鍵データを icカードからプログラムにより外部に取り出すこと は不可能である。
発明の効果
[0006] 本発明のセキュア ·プロセッサは、汎用性とセキュリティ機能の二律背反性を新しい アーキテクチャを考案することによって解決して 、る。 上述のセキュア ·プロセッサが用いられて 、る個人認証用の ICカードの主たる機能 は署名演算である。本発明のセキュア'プロセッサを用いることにより、セキュリティ機 能で署名演算を行うば力りでなぐキャッシュカード機能、クレジットカード機能、改竄 防止機能、通行料金支払い機能、チケット予約機能、等々の応用に対して、異なる 汎用の応用プログラムをプロセッサの上で走行することにより、対応することができる。 発明を実施するための最良の形態
[0007] 個人認証にお!、て、セキュリティ機能を突き詰めて 、くと、個人鍵データを署名演 算にのみ使えるようにし、他のあらゆる操作を拒否するようにすることに行き着く。これ を実現するために、本発明のセキュア ·プロセッサは大きく分類して 2つの構成を有し ている。
A:個人鍵データが署名演算等において使われるときは、上位力も順番に 1ビットず つ参照される動作のみで、他の動作はない。このことに着目して、個人鍵を主メモリ や汎用レジスタではなぐ独自の不揮発性専用レジスタに格納する。そして、その専 用レジスタには、全データを外部力も読み取るパスはなくし、上位力 順に 1ビットず つ参照する演算のためのパスのみを作る。
B:セキュア ·プロセッサにお 、て、従来のプロセッサには存在しなかったセキュリティ · モードと称するモードを導入する。これはプログラム走行の環境を制約する条件でも ある。セキュリティ 'モードにおいては通常の命令語は命令として解読されない。署名 演算でのみ使用される特殊な命令語のみが命令として機能する。
これらの手法によって、本発明のセキュア ·プロセッサは、如何なるプログラムによつ ても個人鍵データを外部へ漏洩せしめることは不可能となる。
以下に、図面を用いて、上述の A, Bの両機能を備えたセキュア'プロセッサの構成 例を詳しく説明する。
[0008] <プロセッサの構成 >
図 1は、セキュア ·プロセッサの実施形態の 1例を示すブロック図である。図 2は、セ キュア ·プロセッサ内の鍵レジスタ部分のブロック図である。図 3は、実施形態のセキュ ァ.プロセッサの命令フォーマットである。図 4は、セキュア'プロセッサのオペコード( OPコード:命令コード)例である。
[0009] <セキュア ·プロセッサの内部構成 >
図 1に示したプロセッサ 100は、署名演算のために、比較的長い語長(64ビット)を 有し、 16倍長語までの計算が 1個の命令でできる。また、主メモリ 200とのアドレス単 位も語単位(64ビット単位)である。主メモリの容量は、 64ビット X 64K語(512KB = 4Mbits)である。これらについては、後で詳しく説明する。
なお、以下に説明するセキュア'プロセッサの語単位として、 64ビットを用いた構成 としているが、これは、鍵データとの署名演算から、なるべく長い語長を選択したため であり、演算速度等やハードウェア量との関係から、決定すればよい事項である。
[0010] (セキュア ·プロセッサ内部構成の 1例の説明)
図 1の CPU100内には、命令レジスタ(IS : Instruction Register) 143,メモリデータ •レジスタ(MD: Memory Data Register) 144,プログラム 'カウンタ(PC: Program Counter) 145, F オペランド 'カウンタ(FC : F- operand Counter) 146, T オペラン ド 'カウンタ(TC :T- operand Counter) 147が用意されている。これらは、主メモリ 200 との間にあり、主メモリ 200から、命令やデータを読み出したり、書き込んだりするため のレジスタである。
プログラム.カウンタ(PC) 145の内容により、主メモリ 200から命令レジスタ(IS) 14 3に、図 3 (a)に示すフォーマット(64ビット)の命令が読み出される。この命令により、 図 3 (a)の MFや MTのフィールドで指定されたアドレスモード(図 3 (b)参照)に従つ て、 F オペランド 'カウンタ 146, T オペランド 'カウンタ 147にアドレス等が設定され 、主メモリ 200からメモリデータ'レジスタ(MD) 144にデータが読み出されたり、メモリ データ ·レジスタ 144 (MD)内のデータが主メモリ 200に書き込まれたりする。
倍長演算命令では、図 3の Lフィールドに指定された語長分、 F オペランド 'カウン タ 146や T オペランド 'カウンタ 147は、インクリメント(1ずつ増カロ)されて、オペランド が主メモリ 200から次々に読み出されるか書き込まれることで、 16倍長語までの処理 力 個の命令でできる。
汎用演算器 (ALU rithmetic and Logic Unit) 164は、一般的な演算(加算,減算 ,論理演算等)を行う演算器であり、乗算器 (MPY:MultiPlY unit) 162は、 64ビット X 64ビットの掛け算を行う演算器である。
PFレジスタ(Program Status Flag) 148は、命令の実行によりセットされる 4ビットのフ ラグであり、図 4 1 (a) ,図 4—2 (b)に示されているオペコード表の PSWの項に示さ れているものがセットされる。オペコード表の PSW (Program Status Word)の N, Z, V , Cは、それぞれ、負(Negative) ,ゼロ(Zero) ,オーバーフロー(oVerflow) ,キヤリ( Carry)を示している。
演算用レジスタ (R0— RF) 110は、一般用の演算命令等で用いられる汎用のレジ スタである。この汎用レジスタを用いる演算命令は、図 3 (a)の MF又は MTに図 3 (b) のレジスタ直接を指定して、 F又は Tオペランドのフィールドにレジスタ番号を指定す る。バッファ 'レジスタ(B0, Bl) 141, 142は、演算途中の結果等を格納しておくレジ スタである。
上述の命令の動作や各レジスタの機能は、詳しくは、図 3に示した命令のフォーマ ットと図 4 1,図 4 2のオペコード表 (命令コード表)等を参照されたい。図 4 1 (a)及 び図 4 2 (b)はオペコード表であり、図 4 2 (c)は、オペコード表のフィールドごとに 使用されている記号の説明であり、図 4 2 (d)は、オペコード表の動作の項の表記の 説明であり、図 4 2 (e)は、図 4 2 (c) , (d)の *で示していることの補足説明である。 オペコード表の OP, SOP, MF, MT, L, F, T, Sの各項は、図 3 (a) (b)の命令フ ォーマットの説明と図 4 2 (c)の記号の説明を参照されたい。また、ニモニックは、命 令の略号であり、今後、各命令を参照するときは、この-モニックを使用している。各 命令の動作は、動作の項に記載されている。属性は、命令の分類で、例えば、 SFT はシフト命令、 ADDは加算命令、 SUBは減算命令、 BITはビット処理命令、 MOV は移動命令、 JMPはジャンプ命令、 LINKはサブルーティンコール命令、 BRは PSW によるブランチ命令を示している。なお、 SVC命令は、スーパバイザ 'コール命令で、 図 1に示して ヽな 、ITフラグをセットして!/、る。 RITはスーパバイザ 'コール命令のリタ ーン命令で、 ITフラグをリセットしている。
なお、上述のオペコード表の中に、以下で説明する署名演算用の命令も含まれて いる。これらの命令については、後で説明する。
[0012] 以上説明した構成は、通常の汎用マイクロプロセッサの構成と同様のものである。こ れらは、このセキュア ·プロセッサが応用される分野に応じて、変更することができる。 例えば、 64ビット Z語の構成を生かすために、以下の署名演算で用意されている mo d演算に有効な命令を、暗号計算用に一般用の命令として用意してもよい。
[0013] <署名演算に関する構成 >
以下に説明する構成は、セキュア'プロセッサの署名演算に密着している構成例で ある。
[0014] (鍵データ漏洩防止)
さて、セキュリティ機能のひとつの目的は、鍵データ K漏洩の防止である。図 1にお いて、鍵データは、不揮発性メモリ(例えば ROM)で構成された鍵レジスタ (K0— KF : Key register) 130に格納されている。鍵レジスタ 130には、各ユーザの例えば RSA の秘密鍵データ(1024ビット)が書き込まれている。この不揮発性メモリへの鍵の書き 込みは、例えば外部から専用のライタにより書き込むことで行っても良い。
RSA公開鍵方式でのデジタル署名演算の方式では、鍵 Kの値は 1ビットずつ上位 ビットから参照して、別の乗算へ反映させる必要があり、これが唯一の使用方法であ る。従って、この目的のために、図 2のような、鍵レジスタ 130から 1ビットずつ選択して 参照する鍵参照回路を設けている。なお、これらの回路を用いたデジタル署名演算 のアルゴリズムについては、後で詳しく説明する。
[0015] 図 2の鍵参照回路にお!、て、鍵ビット参照カウンタ(KC: Key-bit reference Counter ) 152は 1023力 0まで、順次デクリメントする。この鍵ビット参照カウンタ 152の内容 により、ビット指定ゲート 154から、鍵レジスタ 130に格納されている Kデータが順次 1 ビットずつ指定されて参照される。図 2からも分かるように、鍵 Kを格納する鍵レジスタ 130から他へデータを転送する語データ並列伝送経路を設けて ヽな ヽ。図 1に示す ように、ビット指定ゲート 154からの参照出力は、ダイジェスト 'レジスタ 120の出力選 択ゲート 156にのみ使用される。このように、図 1,図 2に示されているハードウェア構 造からして、鍵データを生の形で直接外部へ出すことは不可能である。
[0016] 図 1のダイジェスト 'レジスタ(DO— D2 : Digest register) 120は、 64ビット X 3のレジ スタであり、デジタル署名の処理のために、デジタル署名を付加するための本文から 抽出されたダイジェスト 'データ(160ビットの特徴データ)を格納するためのレジスタ である。
デジタル署名の処理を行う前に、本文から 160ビット長分のダイジェストを作成し、 主メモリ 200に格納しておく。ダイジェストは、本文のビット構成如何にかかわらず 16 0ビットまで圧縮攪拌され (たとえばハッシュ関数 SHA-1によって)ランダムなビット構 成となっている。し力しながら、このダイジェスト 'データを故意に 2のような単純な値に 設定することもできる。すると、 2の署名計算結果力 鍵 Kの値を逆算される危険が発 生する。これを防止するためにダイジェスト 'レジスタの内容が「2n」 (n= l, 2, · ··)の ような単純な値ではな 、ことを検知する必要がある。またダイジェスト ·データを小さな 素数(2, 3, 5, 7, 11, 13, 17, 19, 23,…;)に設定し、それらの署名計算結果を事 前に収集しておくと、これらを使用して比較的自由なダイジェスト 'データ値に対応す る署名計算結果を合成しうると 、う危険が発生する。これを防止するためにダイジヱス ト 'データ値が 160ビットに対応する充分大きな値であることを確認する必要がある。 セキュア'プロセッサでは、これらの危険性のある値ではないことを「有効パターン」と 呼んで署名計算開始の条件として 、る。
図 4—1のオペコード表で、 DMVと表記されている命令により、 Fフィールドで指定さ れて 、る主メモリ 200のアドレスに格納されて!、る 3語長分のダイジェストをダイジエス ト ·レジスタ(Dレジスタ) 120に格納する。
Dレジスタ 120には、ビットパターン検知ゲート(図示せず)が付属している。ビットパ ターン検知ゲートは、 Dレジスタ 120の全 160ビットを 16ビットずつ 10ブロックに区分 し、すべてのブロックが少なくとも 1個の" 1"を持つかを検知している。これにより、格 納したデータが「有効パターン」であるかを検出して 、る。
上述した鍵参照回路で読み出された 1ビットの鍵データは、 Dレジスタ 120から読み 出したダイジェスト 'データ Dに対して、 D判定ゲート 156により反映している。これに ついては、後述する署名演算で説明する。
[0017] (セキュリティ 'モード)
さて、上述した鍵レジスタ 130や鍵参照回路のハードウェア構造からして鍵データ Kをそのままの形で外部へ出すことは不可能なことは自明である。残る問題は上記の 計算の中で間接的に使用される鍵データのビット毎の値を計測され、集められるかど うか、および、ある種の署名計算結果を収集して別の任意のダイジェスト値に対する 署名を合成できるかどうか、である。観測対象が複雑な署名処理の最終結果 (全 102 4ビット)ならば、それはデジタル署名データである力 鍵データの推測は実用上不 可能であることは知られている。そこで各個別の 1ビット毎にモンゴメリー乗算結果か ら Kの値 (0または 1)を推測されないようにするための他の防護策を次に説明する。 合成の防御策はあとで説明する。
[0018] 署名演算を他の普通の計算と区別し、署名演算の途中で使用される命令を署名以 外の目的に悪用されないように防護するために、セキュア ·プロセッサでは、プロダラ ム走行モードを普通モードとセキュリティ 'モードとに区分している。どちらのモードで 走行中かをセキュリティフラグ'レジスタ(SFレジスタ: Security Flag register) 149で示 している。
図 1の SFレジスタ 149には SF3, SF2, SF1, SFOの 4ビットがあるが、当面使うの は SFOのみである。
(l) SFO = 0 :普通モード
応用プログラム部分、パソコン交信部分、圧縮計算 (ダイジェスト ·データを得る) 部分
(2) SF0= 1 :署名モード
署名演算実行中 (後で説明する図 5のフローチャート部分)
命令セットの中で、一般的命令は、セキュリティ 'フラグ SF0が 0でないと有効に働か ない。命令セットの一部に署名演算の途中でのみ使用される命令を用意する。これら の命令は SF0= 1でないと有効に働かない。なお、 SF0のマッチングがとれないとき は無動作 NOP命令と同じになる。図 4 1 (a) ,図 4 2 (b)のオペコード表で、「動作」 の欄に [SF= 1]と表示がある命令がこの命令に該当し、 SIE, KCJ, ADO, SCMP , SSB, MLS, MDK, MLD, MLL, MLH, MLPの各命令である。なお、 MLS, MDK, MLD, MLL, MLH, MLPの命令は、演算結果を格納するための先頭アド レスを指定する Sフィールドを有しており、他の命令とフォーマットが異なっている。
[0019] 3 0= 1を設定する命令(図4 1 (&): SIG)は、必ず同時に、 KC = 03FF ( = 102 3d) , 0000— 000F番地の 1024ビッ卜データ = 0000 · · · · 0001に設定する。 SIG 命令は、ダイジェスト ·レジスタ 120の内容が有効パターンでな!/ヽと有効に働かな!/、。 これは、ダイジェスト 'レジスタ 120に" 2"と設定されて、 2KmodNから鍵 Κを逆算され ることを防ぐ。
[0020] 署名演算の途中で使用する計算結果の格納箇所は、以下の主メモリの上位 64番 地の固定番地を使用している。
(1) 0000— 000F 16番地(1024ビットデータ)
(2) 0010— 001F 16番地(1024ビットデータ)
(3) 0020— 002F 16番地(1024ビットデータ)
(4) 0030— 003F 16番地(1024ビットデータ)
計算結果が 1024ビットの場合は(1) 0000— 000F番地の 16番地へ格納される。 計算結果が 2048ビットの場合は(1) (2) 0000— 001Fの 32番地へ格納される。計 算結果をー且退避させたいときは、 (3) (4) 0020— 003Fへ退避させることのみでき る。なお、 SF0= 1が解除されて SF0 = 0になったあとでは、普通の MOV命令(図 4— 1 (a)参照)等で上述の上位固定番地の内容を他番地へ移せる。
[0021] そして、署名演算が終了するまで、即ち、鍵カウンタ KCがゼロとなるまで、 SF0をリ セットする命令(SIE)を動作させることができな 、 (04-1 (a)参照)。これにつ 、ては 後で詳しく説明する。
この結果、ビット毎の計算結果は固定の番地のみへどんどん集積し、ビットごとの途 中結果は外部へ取り出すことはできず、最後の全ビット積算結果のみ外部へ取り出 せる。
[0022] (署名演算)
RSA公開鍵システムにおけるデジタル署名は、 DKmodN (D:ダイジェスト ·デー タ, K:鍵, N :特定の整数)を計算することである。
DKmodNを一個の巨大な特殊命令で扱うことは、セキュリティ上は望ましいものの、 ハードウェア資源上得策でないので、通常の命令と同程度の大きさの特殊命令を複 数個用意して実行する。すると、それらの特殊命令の使い方を変えて、鍵 Kを外部へ 漏洩する悪意のプログラムを構成できる可能性も発生する。これを防護するのが上述 したセキュリティ機能である。このセキュリティ機能を利用する、 DKmodNの計算をお こなう手順を、図 5のフローチャートを用いて説明する。図 5のフローチャートは、バイ ナリ法(Binary Method)のアルゴリズムで処理する場合であり、詳しくは、例えば上記 の非特許文献 1 (2.3 The Binary Method (p.10— p.ll))を参照されたい。なお、手順 中の Aはメモリ 0000— 000F番地の内容である。
[0023] 図 5のフローチャートにおいて、初期設定(S312)に必要な、 1→SF0, 1→A, 10 23→KCの 3つの初期動作を 1個の命令(SIG命令)で行っている。そして、署名演 算のサブルーティンに入る。
ただし、 SFをセットするためには、ダイジェスト 'レジスタ 120の内容が有効パターン であることが条件となる。有効パターンとは、 160ビットあるダイジェスト 'レジスタ内の データが十分に撹拌され、圧縮されたデータであることを言う。具体的な 1例としては 、 16ビット X 10の 16ビット毎に少なくとも 1個は 1があることをノヽードウエア的に検知す る。 SF0= 1となったあとは署名演算に使用される命令し力機能しないので、ダイジェ スト ·レジスタ 120内のデータ変更はできな!、。
先に述べた任意のダイジェスト値にたいする署名計算値を、別に収集した複数個 の簡単なダイジェスト値にた 、する署名計算値から合成する攻撃 (Desmedt- Odlyzko の攻撃として知られている)に対する対策を述べる。
さて、何らかの方法で 2, 3, 5, 7, 11, 13,…などの小さな素数にたいする署名計 算値が収集されると、別の任意のダイジェスト値 Mにた ヽする署名計算値 MKmodN は、直接署名せずとも別に合成される危険がある。すなわち、 Mを素因数分解して M を小さな素数 A, B, C, …の積 M=APBQCR…として表現し、 A, B, C, …の署名値 U, V, W,…が事前に収集されておれば、
MKmodN= (APBQCR- · ·) KmodN=UPVQWR- · -modN
として Kを直接知らずとも合成可能である。
しかし、この方法は、 2, 3, 5, 7, 11, 13,…などの素数がダイジェスト値の有効パ タンチェックにより阻止されるため、署名計算結果は事前に収集されること自体が防 護される。
次に、ブラインド署名技術として知られる方法により、小さな素数に乱数 Rを乗じて 大きな数へ変換して有効パタンチェックを逃れ、署名値を得たあとで Rで割って目的 の署名値を得る可能性が考えられる。この場合はブラインド署名技術を使うために 16 0ビットではなく 1024ビットまで大きくなつてしまうため、有効パタンの検査を回避でき るものの、 160ビットに収まらないためそもそも Dレジスタに入りきらず、署名計算を開 始できない。
さて、初期化のあと、八21110(1?^を計算する(3314)。最初は、 A= lである。
つぎに、八 ^1110(1?^を計算する(3316)。 Dは、以下のように Kc (鍵 Κ中の、鍵力 ゥンタ (KC) 152で指示された位置のビット)の値によって 2通りの値をとる。
[数 1]
Figure imgf000013_0001
if Kc = 0 then D = l
βは、ダイジェスト 'レジスタ D120から読み出されたダイジェスト 'データ Dと、鍵レジ スタ 130から鍵カウンタ (KC) 152により読み出された Kcとから、ハードウェア 'ゲート 156で作られる。図 4— 2 (b)のオペコード表では、 MDK命令であり、鍵カウンタのデ クリメントと上述の βを得ることを同時に行う命令である。
問題の鍵 Κは、直接には表面に現れないが、間接的に A XDKmodN→Aの βに影 響を与える。外部に絶対に漏洩させてはならない Kが、間接的に関与する部分は A
X DKmodNの計算部分である。
[0025] これを鍵 Kの長さ分、即ち、鍵カウンタ KC152が零となるまで(S318で YES)、鍵 カウンタ KC152をデクリメントして(S320)、 2つの mod計算(S314. S316)を行う。 鍵カウンタ KC152が零となると、 SFOを零にリセットして、この署名演算のサブルーテ インから抜けることができる(SIE命令)。
特定の領域に格納される計算途中の演算結果は、次々に上書きされ、署名演算が 終了すると、最終結果として署名されたデータが格納されて 、る。
[0026] 上述の mod計算(S314. S316)の部分は、乗算命令を中心とする複数ステップが ループする構造になっている。 modNの演算は、通常ならば割り算となるが、モンゴメ リー乗算と呼ばれる計算手順を使って多数の乗算と 1回の減算で実行する。モンゴメ リー乗算のアルゴリズムについては、非特許文献 1 (3.8 Montgomery's Method p.46 一 P.47)を参照されたい。
[0027] (モンゴメリー乗算の手順)
ADKmodN をモンゴメリー乗算で求めると、次のような式となる(式中の減算 Nは 引けないときはそのまま)。
[数 2]
Figure imgf000014_0001
上記の式に現れる R, IT, N*は、いずれも Nが与えられた最初の設定時に同時に 導出できる定数である。実用上の RSA公開鍵システムでは、公開パラメータ Nは 102 4ビット長に固定されているので、 R, R*, N*は下記となる。
.R= 21024= 100000 · · · - 000
(Rのデータビット長は 1025ビットになる。 )
•R* =R2modN = 22048modN
(modNをとるから、 R*のデータビット長は 1024ビット以下である。 )
•NN* = y R-lを満足するように N*を計算する。 γは任意の整数である。 (N*のデータビット長は 1024かまたはそれ以下となる。 )
式の形の上では Rによる除算が 3箇所、 modRが 3箇所存在する力 Rの値が特殊 な形の 21G24なのでビット操作で済ませられる。
上述の式を求めるための手順は、網掛け部分が同じであるので、以下の通りである
(01) AR*を求める。
乗算、結果は Max. 2048ビットである。
(02) AR*N*を求めると、 2048ビットでもオーバーフローするので、 AR*modRを 先に求める(下位 Lビットの抽出)。上半分の 1024ビットを捨てる。
(03) (02) X N*を求める。乗算結果は最大 2048ビットである。
(04) (03) modR を求める(下位 Lビットの抽出)。上半分の 1024ビットを捨てる。
(05) (04) X Nを求める。乗算結果は最大 2048ビットである。
(06) (01) + (05) を求める。加算結果は最大 2049ビットである。
(07) (06) ZRを求める(下位 Lビットの 0の除去)。下半分の 1024ビットを捨てる。
(08) (07)— Nを求める。これを Xとする。減算は、正負判定して選択して行う。
(09) (08) XDを求める(ここで Kcが影響する)。乗算の結果は、 1024+ 160= 11 84ビットである。
(10) (09) N*を求めると 2048ビットでもオーバーフローするので、(09) modRを 先に求める(下位 Lビットの抽出)。下半分の 1024ビットを取り出す。
(11) (10) X N*を求める。乗算結果は最大 2048ビットである。
(12) (l l) modRを求める(下位 Lビットの抽出)。下半分の 1024ビットを取り出す。
(13) (12) X Nを求める。乗算結果は最大 2048ビットである。
(14) (09) + (13)を求める。加算結果は最大 2049ビットである。
(15) ( 14) ZRを求める(下位 Lビットの除去)。下半分の 1024ビットを捨てる。
(16) (15)— Nを求める。減算は、正負判定して選択する。
なお、上述の(08)および(16)「正負判定して選択する」としているのは、減算結果 が正ならばそのままの値を答えとし、減算結果が負ならば、その値を捨てて、減算す る前の値を答えとすることを意味する。 [0029] 上述の式を、図 4 1 (a) ,図 4 2 (b)に示したオペコード表の命令で行う場合を、図 6 (a)に示す。図 6 (a)に表された記号の意味は図 6 (b)に示されて 、る。
図 6 (a)で示されているように、上述の手順は、全て、図 4 1および図 4 2に示され ている、セキュリティ 'モードであるときに動作する命令で、計算することができる。
[0030] < ICカードへの応用 >
セキュア ·プロセッサを ICカードに応用した場合にっ 、て、図 7を用いて説明する。 さて、デジタル署名は、上述したように、対象メッセージから作成したダイジェスト'デ ータに対して、個人鍵で暗号ィ匕することで生成される。図 7 (a)は現在用いられている 認証 ICカード 310を示している。現在用いられている認証用 ICカード 310は、 IC力 ード 310に個人の鍵データが書き込まれている。メッセージ送り主は、ノ ソコン 320に 付属するカードリーダ(図示せず)へ乗せ、バソコン 320の表示画面上の署名動作を 示すボタン等をクリックして起動する。すると、認証用 ICカード 310から個人の鍵デー タが読み出され、パソコン 320内でデジタル署名が生成され、メッセージ本体とペア になってインターネット 330経由で相手先へ送られる。署名演算がすむと ICカードを リーダから取り除くことで署名動作全体が終了する。
この動作において、署名演算をどこで実施するかでセキュリティレベルが違ってくる 。図 7 (a)に示す現在の方法では、個人鍵データがパソコンの中に移るわずかな時間 の間にも、盗聴されたりコピーされたりする危険が有りうる。
図 7 (b)に示すセキュア'プロセッサを組み込んだ ICカード 315の場合は、署名演 算能力を有するので、 ICカード 315に対象メッセージを取り込み、 ICカード 315内で 署名演算を実施する。 ICカード 315に取り込むデータは、ダイジェスト 'データでもよ い。 ICカード 315からパソコン 320へ送られて出てくるのは、デジタル署名結果であり 、鍵データではない。 ICカード内で、署名演算を行っているために、鍵データを外部 に読み出す必要はなぐ上記の危険性はない。署名結果から鍵を逆算することは天 文学的時間を要する。
し力も、セキュア ·プロセッサ ICカード 315の場合は如何なるプログラム手段を講じ ても(ウィルス、クラッカーすべてを含め)鍵データそのものを ICカード力も外部へ取り 出すこと、コピーすること、計測すること、その他観察行為すべてが難しぐ不可能で ある。
図面の簡単な説明
[図 1]セキュア ·プロセッサの構成例を示すブロック図である。
[図 2]鍵データを読み出す部分のブロック図である。
[図 3]セキュア.プロセッサの命令のフォーマット例を示す図である。
[図 4-1]セキュア ·プロセッサのオペコード表の一部分である。
[図 4- 2]セキュア ·プロセッサのオペコード表の続きと、オペコードのフィールド記号や 動作の表記の説明の表等である。
[図 5]署名演算を示すフローチャートである。
[図 6]モントゴメリー演算をセキュア'プロセッサの命令で行う場合を示す図である。
[図 7]セキュア ·プロセッサを ICカードに適用した構成例を説明する図である。

Claims

請求の範囲
[1] 鍵データを格納した不揮発性メモリで構成される鍵レジスタと、
該鍵レジスタに格納された鍵データを 1ビットずつ参照するために、ビット位置を示 す鍵カウンタと、
デジタル署名に用いるダイジェスト ·データを格納するダイジェスト ·レジスタと、 前記鍵カウンタにより参照された 1ビットの鍵データが 0のときは前記ダイジェスト'レ ジスタの内容を 1、 1のときは前記ダイジェスト ·レジスタの内容をそのまま出力するゲ 一トとを備え、
前記鍵レジスタには全データを外部力 読み取るパスは設けず、
一般命令とともに、前記鍵レジスタ、前記鍵カウンタ、及び前記ダイジェスト 'レジス タを操作して前記ダイジェスト ·データからデジタル署名を求めるための複数の署名 専用命令を有する
ことを特徴とするセキュア ·プロセッサ。
[2] 請求項 1に記載のセキュア ·プロセッサにお 、て、
プロセッサの走行モードとして、一般モードとセキュリティ ·モードを有し、 前記セキュリティ ·モードを表示するセキュリティ ·レジスタを備えるとともに、前記セ キユリティ ·モードをセットする一般命令及びリセットする署名専用命令を有し、 前記一般命令は一般モードのときに有効となり、前記署名専用命令はセキュリティ' モードのときに有効となることを特徴とするセキュア.プロセッサ。
[3] 請求項 2に記載のセキュア ·プロセッサにお 、て、
前記セキュリティ ·モード設定命令は、前記セキュリティ 'レジスタをセットすると同時 に、前記鍵カウンタを 1023に初期設定し、
前記署名専用命令は、署名計算を鍵レジスタの 1ビット分実行する命令の実行と同 時に鍵カウンタをデクリメントして、順次ビットごとの署名計算が進行し、前記鍵カウン タが 0のときのみにセキュリティ ·モードをリセットすることを特徴とするセキュア ·プロセ ッサ。
[4] 請求項 3に記載のセキュア ·プロセッサにお 、て、
前記ダイジェスト ·レジスタに設定されたダイジェスト ·データが 16ビット毎に少なくと も 1つの 1を有することを検出する手段を備え、
前記セキュリティ設定命令は、 16ビット毎に少なくとも 1個は 1があることを条件に、 前記鍵カウンタを初期設定し、セキュリティ 'レジスタがセットされたあとはダイジェスト' レジスタ内のデータは変更できないとすることを特徴とするセキュア'プロセッサ。
[5] 請求項 3又は 4に記載のセキュア'プロセッサにおいて、
セキュア'プロセッサには、主メモリに接続しており、
前記署名専用命令は、前記デジタル署名を求める演算の演算結果を、前記主メモ リの特定の領域のみに格納して、デジタル署名演算の最終結果を前の演算結果に 上書きすることを特徴とするセキュア ·プロセッサ。
[6] 請求項 1一 5のいずれかに記載のセキュア'プロセッサを組み込んだ ICカード。
PCT/JP2004/016589 2003-11-10 2004-11-09 セキュア・プロセッサ Ceased WO2005045789A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/578,258 US20070055872A1 (en) 2003-11-10 2004-11-09 Secure processor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-380114 2003-11-10
JP2003380114A JP2005141160A (ja) 2003-11-10 2003-11-10 セキュア・プロセッサ

Publications (1)

Publication Number Publication Date
WO2005045789A1 true WO2005045789A1 (ja) 2005-05-19

Family

ID=34567220

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/016589 Ceased WO2005045789A1 (ja) 2003-11-10 2004-11-09 セキュア・プロセッサ

Country Status (3)

Country Link
US (1) US20070055872A1 (ja)
JP (1) JP2005141160A (ja)
WO (1) WO2005045789A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008005791A3 (en) * 2006-06-30 2008-10-09 Scientific Atlanta Renewable conditional access

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016767A1 (en) * 2005-07-05 2007-01-18 Netdevices, Inc. Switching Devices Avoiding Degradation of Forwarding Throughput Performance When Downloading Signature Data Related to Security Applications
US8250656B2 (en) * 2007-11-21 2012-08-21 Mikhail Y. Vlasov Processor with excludable instructions and registers and changeable instruction coding for antivirus protection
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US8898089B2 (en) * 2008-06-24 2014-11-25 Visa U.S.A. Inc. Dynamic verification value system and method
WO2011104822A1 (ja) * 2010-02-23 2011-09-01 富士通株式会社 電子署名装置および電子署名方法
CN113330423B (zh) * 2019-02-11 2025-07-29 惠普发展公司,有限责任合伙企业 固件指令的删除设备
US12008149B2 (en) 2020-12-16 2024-06-11 International Business Machines Corporation Method and system for on demand control of hardware support for software pointer authentification in a computing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07287514A (ja) * 1994-03-30 1995-10-31 Philips Electron Nv メッセージ署名システム実行装置及びこれを具えるチップカード
JP2003517671A (ja) * 1999-12-17 2003-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 単純なアルゴリズムの暗号エンジン

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2618002B1 (fr) * 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5999626A (en) * 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
GB9626241D0 (en) * 1996-12-18 1997-02-05 Ncr Int Inc Secure data processing method and system
EP0933695B1 (en) * 1998-01-28 2006-03-15 Hitachi, Ltd. IC card equipped with elliptic curve encryption processing facility
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
AU6381799A (en) * 1998-06-03 2000-01-10 Cryptography Research, Inc. Secure modular exponentiation with leak minimization for smartcards and other cryptosystems
US20010054147A1 (en) * 2000-04-04 2001-12-20 Richards Ernest S. Electronic identifier
WO2002015037A1 (en) * 2000-08-14 2002-02-21 Gien Peter H System and method for facilitating signing by buyers in electronic commerce
US7195154B2 (en) * 2001-09-21 2007-03-27 Privasys, Inc. Method for generating customer secure card numbers
KR100436814B1 (ko) * 2001-12-20 2004-06-23 한국전자통신연구원 아이씨카드용 알에스에이 암호 연산 장치
JP2004054128A (ja) * 2002-07-23 2004-02-19 Sony Corp 暗号化装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07287514A (ja) * 1994-03-30 1995-10-31 Philips Electron Nv メッセージ署名システム実行装置及びこれを具えるチップカード
JP2003517671A (ja) * 1999-12-17 2003-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 単純なアルゴリズムの暗号エンジン

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAMAO H. ET AL.: "RSA ango no himitsu kagi hogo kino no ango keisan kino o motsu IC card-yo han'yo processor no sekkei", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS GIJUTSU KENKYU HOKOKU, vol. 103, no. 499, 8 December 2003 (2003-12-08), pages 67 - 73, XP002988187 *
KRISHNAMURTHY A. ET AL.: "An efficient implementation of multi-prime RSA on DSP processor", PROCEEDINGS 2003 IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO, vol. 3, 6 July 2003 (2003-07-06) - 9 July 2003 (2003-07-09), pages 437 - 440, XP010640969 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008005791A3 (en) * 2006-06-30 2008-10-09 Scientific Atlanta Renewable conditional access
US8127009B2 (en) 2006-06-30 2012-02-28 Pinder Howard G Renewable conditional access

Also Published As

Publication number Publication date
US20070055872A1 (en) 2007-03-08
JP2005141160A (ja) 2005-06-02

Similar Documents

Publication Publication Date Title
US10902156B2 (en) Asymmetrically masked multiplication
May et al. Random register renaming to foil DPA
Wang et al. Covert and side channels due to processor architecture
US6298135B1 (en) Method of preventing power analysis attacks on microelectronic assemblies
US20090092245A1 (en) Protection Against Side Channel Attacks
JP2002261753A (ja) 耐タンパー暗号処理方法
KR20060127921A (ko) 전력 분석 공격에 대한 방어 방법
JP4568886B2 (ja) Rsaタイプの暗号アルゴリズムを安全に実施するための方法、および対応する構成要素
US20100232603A1 (en) Decryption processor and decryption processing method
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
WO2005045789A1 (ja) セキュア・プロセッサ
JP4378479B2 (ja) カバート・チャネル攻撃に対して安全な整数除算法
JP2005236977A (ja) 電力分析攻撃に安全な基本演算装置および方法
Walter Some security aspects of the MIST randomized exponentiation algorithm
WO2009091748A1 (en) Modular reduction using a special form of the modulus
JP4909403B2 (ja) 安全にデータを求める方法
TW200411593A (en) Method and apparatus for protecting public key schemes from timing, power and fault attacks
US20040184604A1 (en) Secure method for performing a modular exponentiation operation
WO2007104706A1 (fr) Procede de securisation d&#39;un calcul d&#39;une exponentiation ou d&#39;une multiplication par un scalaire dans un dispositif electronique
Fournier et al. Cache based power analysis attacks on AES
US20060023873A1 (en) Method for secure integer division or modular reduction against hidden channel attacks
US7174016B2 (en) Modular exponentiation algorithm in an electronic component using a public key encryption algorithm
Park et al. An improved side channel attack using event information of subtraction
Sun et al. An efficient modular exponentiation algorithm against simple power analysis attacks
Joye et al. A protected division algorithm

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007055872

Country of ref document: US

Ref document number: 10578258

Country of ref document: US

DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10578258

Country of ref document: US