JPH09230787A - Encoding method and device therefor - Google Patents

Encoding method and device therefor

Info

Publication number
JPH09230787A
JPH09230787A JP9029165A JP2916597A JPH09230787A JP H09230787 A JPH09230787 A JP H09230787A JP 9029165 A JP9029165 A JP 9029165A JP 2916597 A JP2916597 A JP 2916597A JP H09230787 A JPH09230787 A JP H09230787A
Authority
JP
Japan
Prior art keywords
block
masked
plaintext block
plaintext
encryption
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
JP9029165A
Other languages
Japanese (ja)
Inventor
Donald Byron Johnson
ドナルド・バイロン・ジョンソン
Stephen Michael Matyas Jr
スティーブン・マイケル・マチヤス・ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH09230787A publication Critical patent/JPH09230787A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To encode long plaintext by using an encoding procedure intended for a short block by forming code from the encoded part where the masked plaintext block is encoded and the remaining parts. SOLUTION: The key block 110 in the encoding procedure 100 is first 'masked'. Namely, the key block is converted to the masked key block 130 of the same size by using a masking procedure 120. Next, part 131 of the masked key block 130 is encoded by using the encoding procedure 140 having the encoding key 141, by which the encoded part 151 of the code block 150 is formed. The code block 150 is thus formed of the part where the masked plaintext block is encoded and the remaining parts of the masked plaintext block. The code block 150 is transmitted to a signal receiver. The signal receiver restores the code block to the original plaintext block by reverse tracing the procedures 140, 120, 100.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、ブロック暗号化シ
ステムに関し、具体的には比較的短いブロック用に意図
された暗号化プロシージャを使用して長い平文ブロック
を暗号化する方法および装置に係わる。
FIELD OF THE INVENTION This invention relates to block cipher systems and, more particularly, to a method and apparatus for encrypting long plaintext blocks using an encryption procedure intended for relatively short blocks.

【0002】[0002]

【従来の技術】暗号化方式は、対称暗号化システムと非
対称暗号化システムの2つの一般的カテゴリに分類され
る。データ暗号化規格(DES)に準拠したものなど、
対称暗号化システムでは、発信者がデータの暗号化(す
なわち平文を暗号文に変換)に使用したのと同じ鍵を使
用して、受信者が同じデータを復号する(すなわち暗号
文を平文に変換し戻す)。対称暗号化方式は、きわめて
効率的に実施可能な場合が多いが、機密保護された通信
チャネルを介して暗号化鍵を前もって交換する必要があ
るという欠点がある。
Cryptographic schemes fall into two general categories: symmetric and asymmetric cryptographic systems. Those that comply with the data encryption standard (DES),
In a symmetric encryption system, the recipient uses the same key that the sender used to encrypt the data (ie, convert plaintext to ciphertext) and the recipient decrypts the same data (ie, ciphertext to plaintext). Turn it back). Symmetric encryption schemes can often be implemented very efficiently, but have the disadvantage that the encryption keys have to be exchanged in advance over a secure communication channel.

【0003】非対称暗号化システム、すなわち通常、公
開鍵暗号化システムと呼ばれるシステムは、1つの鍵を
使用してデータを暗号化し、別の鍵を使用して同じデー
タを復号する。公開鍵暗号化システムでは、公開される
暗号化鍵と、秘密にしておき、他人とは共有しない復号
鍵とから成る鍵の対を、データの意図された受信者が作
成する。これらの鍵は、秘密鍵をそれに対応する公開鍵
の知識から導き出すことができないようにして作成され
る。したがって、公開鍵を使用して作成された暗号文メ
ッセージを復号することができるのは、秘密鍵を持って
いる意図された受信者だけである。公開鍵暗号化システ
ムが対称システムに優っている重要な利点は、秘密鍵情
報を交換する必要がないことである。両当事者が作成し
た公開鍵を交換することによって機密保護された双方向
通信を確立する。このため、対称暗号化システムで必要
な秘密鍵交換に非対称暗号化システムがしばしば使用さ
れる。
Asymmetric cryptographic systems, or systems commonly referred to as public key cryptographic systems, use one key to encrypt data and another key to decrypt the same data. In a public key encryption system, the intended recipient of the data creates a key pair consisting of a publicly available encryption key and a decryption key that is kept secret and not shared with others. These keys are created in such a way that the private key cannot be derived from the knowledge of its corresponding public key. Therefore, a ciphertext message created using the public key can only be decrypted by the intended recipient with the private key. An important advantage of public key cryptography over symmetric systems is that private key information does not have to be exchanged. Establish secure two-way communication by exchanging public keys created by both parties. For this reason, asymmetric cryptosystems are often used for the private key exchanges required in symmetric cryptosystems.

【0004】最もよく知られた公開鍵暗号化システム
は、開発者の名前を取って名称を付けられたRSA暗号
化システムであろう。これについては、R.L.リベス
ト(Rivest)等の論文「A Method for Obtaining Digit
al Signatures and Public-KeyCryptosystems」(Commu
nications of the ACM, vol.21, no.2, pp.120-126, 19
78)に記載されている。RSA暗号化システムは典型的
には512ビット程度の暗号化ブロックを持ち、計算を
きわめて多用する可能性がある。しかし、最近、いわゆ
る楕円曲線システムが、N.コブリッツ(Koblitz)の
「Elliptic Curve Cryptosystems」(Mathematics of C
omputation, vol.48, no.177, pp.203-209, Jan. 198
7)およびA.メネゼス(Menezes)の「Elliptic Curve
Public KeyCryptosystems」(1993)などの参考資料に
記載されている。RSA暗号化システムと同様、楕円曲
線システムは公開暗号化鍵と秘密復号鍵を使用する公開
鍵システムである。楕円曲線システムは、典型的にはそ
れぞれ160ビット程度の比較的短い鍵と暗号化ブロッ
ク・サイズを持つが、暗号強度はより長いブロックのR
SA暗号化システムに匹敵する。したがって楕円曲線シ
ステムは、暗号強度と計算効率の魅力的な組合せになっ
ている。
The most well known public key cryptosystem will be the RSA cryptosystem, named after the developer. Regarding this, R. L. Rivest and other papers "A Method for Obtaining Digit
al Signatures and Public-KeyCryptosystems "(Commu
nications of the ACM, vol.21, no.2, pp.120-126, 19
78). RSA encryption systems typically have about 512 bits of encrypted blocks and can be very computationally intensive. However, recently, so-called elliptic curve systems have been developed by N. Koblitz's "Elliptic Curve Cryptosystems" (Mathematics of C
omputation, vol.48, no.177, pp.203-209, Jan. 198
7) and A. Menezes 「Elliptic Curve
It is described in reference materials such as "Public Key Cryptosystems" (1993). Like the RSA encryption system, the elliptic curve system is a public key system that uses a public encryption key and a secret decryption key. Elliptic curve systems typically have relatively short keys and cipher block sizes, each on the order of 160 bits, but cipher strength is greater for blocks of R
It is comparable to the SA encryption system. Therefore, elliptic curve systems are an attractive combination of cryptographic strength and computational efficiency.

【0005】[0005]

【発明が解決しようとする課題】楕円曲線暗号化システ
ムは公開鍵システムであるため、このようなシステムの
1つの用途は鍵の配布であろう。したがって、ユーザA
は、ユーザBに配布するために公開楕円曲線鍵を使用し
て対称鍵(たとえばDES鍵)を暗号化する。しかし、
対称鍵は通常、前述のように160ビット程度の楕円曲
線暗号化ブロックよりもはるかに長い鍵ブロック(たと
えば512ビット・ブロック)に含まれているため問題
が生じる。鍵ブロックを十分に小さいサイズの複数の暗
号化ブロックに分割することができるが、個々の暗号化
ブロックに必要な付加的な暗号化操作によって、計算効
率という点で楕円曲線システムの本来の利点がある程度
損なわれる。必要なのは、はるかに短い秘密楕円曲線鍵
を使用して大きな鍵ブロックを暗号化することができる
ようにする、楕円曲線アルゴリズムと共に使用可能な鍵
暗号化の方法である。
Since the elliptic curve cryptosystem is a public key system, one use for such a system would be key distribution. Therefore, user A
Encrypts the symmetric key (eg, DES key) using the public elliptic curve key for distribution to user B. But,
A problem arises because the symmetric key is typically contained in a key block (e.g., 512-bit block) that is much longer than the elliptic curve encryption block of about 160 bits, as described above. Although the key block can be split into multiple cipher blocks of sufficiently small size, the additional cryptographic operations required for each cipher block provide the inherent advantage of an elliptic curve system in terms of computational efficiency. It is damaged to some extent. What is needed is a method of key encryption that can be used with an elliptic curve algorithm that allows large key blocks to be encrypted using a much shorter secret elliptic curve key.

【0006】[0006]

【課題を解決するための手段】本発明の一態様は、平文
ブロックよりも小さいブロック・サイズを有するブロッ
ク暗号化アルゴリズム(楕円曲線アルゴリズムなど)を
使用して平文ブロック(鍵ブロックなど)を暗号化する
システムを企図している。本発明のこの態様によると、
任意選択で平文ブロックの外部の追加データに依存する
可逆変換を使用して平文ブロックをマスクされた平文ブ
ロックに変換する。この付加データは、制御情報、制御
ベクトル、または受信者にとって使用可能で暗号化を必
要としないその他の情報を含むことができる。この変換
は、(1)マスクされた鍵ブロックおよび任意選択の付
加情報から元の平文ブロックが復元可能であり、(2)
マスクされた平文ブロックの各ビットが元の平文ブロッ
クのすべてのビットに依存するように定義される。マス
クされた平文ブロックの一部を暗号化アルゴリズムを使
用して暗号化し、マスクされた平文ブロックの暗号化さ
れた部分を生成する。マスクされた平文ブロックのこの
ようにして暗号化された部分とマスクされた平文ブロッ
クの残りの部分とから暗号文ブロックを生成する。この
暗号文ブロックを受信者に送信し、受信者はこのプロシ
ージャを逆にたどって元の平文ブロックを復元する。
One aspect of the present invention is to encrypt a plaintext block (such as a key block) using a block cipher algorithm (such as an elliptic curve algorithm) that has a block size smaller than the plaintext block. Intended for a system that does. According to this aspect of the invention,
Convert the plaintext block to a masked plaintext block, optionally using a lossless transformation that depends on additional data outside the plaintext block. This additional data may include control information, control vectors, or other information that is available to the recipient and does not require encryption. In this conversion, (1) the original plaintext block can be restored from the masked key block and optional additional information, and (2)
Each bit of the masked plaintext block is defined to depend on every bit of the original plaintext block. Encrypt a portion of the masked plaintext block using an encryption algorithm to produce an encrypted portion of the masked plaintext block. A ciphertext block is generated from the thus encrypted part of the masked plaintext block and the rest of the masked plaintext block. This ciphertext block is sent to the recipient, who then reverses this procedure to recover the original plaintext block.

【0007】マスクされた平文ブロック全体を元の平文
ブロックに再構築する必要があるためと、暗号化部分を
残りの部分から導き出すことができないため、マスクさ
れた平文ブロックの残りの部分を非暗号化形式で受信者
に送信することができる。したがって、本発明によって
長い鍵ブロックを短い暗号化鍵を使用して暗号化するこ
とができる。一実施例では、160ビット程度のブロッ
ク・サイズを有する楕円曲線アルゴリズムを使用して、
対称暗号化鍵が入った512ビット・ブロックを暗号化
する。
The rest of the masked plaintext block is non-encrypted because it is necessary to reconstruct the entire masked plaintext block into the original plaintext block and because the encrypted part cannot be derived from the rest. It can be sent to the recipient in encrypted form. Thus, the present invention allows long key blocks to be encrypted using short encryption keys. In one embodiment, using an elliptic curve algorithm with a block size on the order of 160 bits,
Encrypt a 512-bit block containing a symmetric encryption key.

【0008】本発明の他の態様によると、平文ブロック
と、任意選択で変換が依存する付加的データのどちらで
も、増分カウンタ、タイム・スタンプ、乱数、またはそ
の他の仕組みを使用して平文ブロックの暗号化ごとに固
有に修正して、特定の暗号解読攻撃を防ぐことができ
る。
In accordance with another aspect of the present invention, both plaintext blocks and optionally additional data upon which the transformation relies, use increment counters, time stamps, random numbers, or other mechanisms to Each encryption can be uniquely modified to prevent certain cryptanalysis attacks.

【0009】[0009]

【発明の実施の形態】図1に、本発明の一般的な暗号化
プロシージャ100を示す。特定の実施態様に応じて、
図1およびその他で図示する機能ブロックは、ハードウ
ェア要素、ソフトウェア・コード、またはその2つの何
らかの組合せとすることができる。通例どおり、「ソフ
トウェア・コード」とは、説明する方法手段を行うため
に機械(サーバまたはクライアント・ワークステーショ
ンなど)によって実行可能な機械可読プログラム記憶装
置(磁気ディスクまたは光ディスク)上にある命令のプ
ログラムを意味する。機械およびそのようなソフトウェ
ア実施態様のプログラム記憶装置は、まったく従来通り
のものであり、したがって図示しない。
DETAILED DESCRIPTION OF THE INVENTION FIG. 1 illustrates a general encryption procedure 100 of the present invention. Depending on the particular embodiment,
The functional blocks illustrated in FIG. 1 and elsewhere may be hardware elements, software code, or some combination of the two. As is customary, "software code" means a program of instructions that resides on a machine-readable program storage device (magnetic disk or optical disk) that can be executed by a machine (such as a server or client workstation) to carry out the described method means. Means The machine and program storage for such software implementations are quite conventional and therefore not shown.

【0010】暗号化プロシージャ100はその入力デー
タとして図の鍵ブロック110のような長い平文ブロッ
クを有する。一般に、鍵ブロック110は対称暗号化鍵
など任意の所望のデータで構成することができる。しか
し、鍵ブロック110は、試し尽くされるのを防ぎ、敵
対者が後述するマスキング・プロシージャを逆にたどる
のを防ぐ十分な長さの秘密値(たとえば秘密DES鍵ま
たは秘密乱数)を含む必要がある。説明のために、この
秘密値はその値を見つけるための試し尽くし攻撃を防止
するのに十分な独立したビット、たとえば128ビット
を有するものとする。しかし、本発明はこの秘密値につ
いて特定のビット数を企図しない。
The encryption procedure 100 has as input data a long plaintext block, such as the key block 110 shown. In general, the key block 110 can be composed of any desired data such as a symmetric encryption key. However, the key block 110 must contain a secret value (eg, secret DES key or secret random number) of sufficient length to prevent exhaustion and to prevent adversaries from following the masking procedure described below. . For the sake of explanation, it is assumed that this secret value has enough independent bits, eg 128 bits, to prevent exhaustive attacks to find it. However, the present invention does not contemplate a particular number of bits for this secret value.

【0011】鍵ブロック110は、(たとえば上位ビッ
トをゼロに設定するなど)暗号化プロセスに必要な特定
の固定ビットまたは(たとえば区切りバイトの使用な
ど)構文解析アルゴリズムに必要な特定の固定ビットを
含むこともできる。しかし、鍵ブロック110は、非可
鍛性のために使用する他の固定または予測可能ビットも
含むことが好ましい。これらのビットを使用して、鍵ブ
ロックが正しく復元されたことを検証することができ
る。
Key block 110 contains certain fixed bits required for the encryption process (eg, setting the high-order bit to zero) or certain fixed bits (eg, using delimiter bytes) for parsing algorithms. You can also However, the key block 110 also preferably includes other fixed or predictable bits used for non-muggability. These bits can be used to verify that the key block was successfully restored.

【0012】図5に、鍵ブロック110の形式として可
能な形式を示す。鍵ブロック110は、復元プロセスを
検証するための固定情報が入った第1のフィールド50
1と、対称暗号化鍵または受信者に伝達するその他の秘
密情報が入った第2のフィールド502と、平文ブロッ
クの暗号化のたびに増加する(505)カウンタ504
からのカウントが入った任意選択の第3のフィールド5
03を含む。
FIG. 5 shows possible formats for the key block 110. The key block 110 contains a first field 50 containing fixed information for verifying the restoration process.
1, a second field 502 containing the symmetric encryption key or other secret information to convey to the recipient, and a counter 504 that increments (505) with each encryption of a plaintext block.
Optional third field 5 with count from
Including 03.

【0013】カウント・フィールド503によって、鍵
ブロック110は平文ブロックの暗号化ごとに確実に固
有のものになる。同様の目的のためにランダムに生成さ
れた数値を使用することもできるが、カウントを使用す
ることによって同じ鍵ブロック110が決定論的に防止
される。それに対して、乱数は同じ鍵ブロックを防ぐ確
率を提供するに過ぎない。鍵ブロック110自体にカウ
ントを持たせる代わりに、後述するように、マスキング
変換が任意選択で依存する鍵ブロックの外部にある付加
データ・フィールドにカウントを挿入することもでき
る。
The count field 503 ensures that the key block 110 is unique for each encryption of the plaintext block. Randomly generated numbers can be used for similar purposes, but the use of counts deterministically prevents the same key block 110. Random numbers, on the other hand, only provide the probability of preventing the same key block. Instead of having the count in the key block 110 itself, it is also possible to insert the count in an additional data field that is external to the key block upon which the masking transformation optionally depends, as described below.

【0014】図1を再び参照すると、暗号化プロシージ
ャ100において鍵ブロック110はまず「マスク」さ
れる。すなわち、マスキング・プロシージャ120を使
用して同じサイズのマスクされた鍵ブロック130に変
換される。マスキング・プロシージャ120の詳細につ
いては後述するが、マスキング・プロシージャは以下の
暗号文特性を有するように定義された可逆変換である。 1.マスクされた鍵ブロック130の各ビットは、鍵ブ
ロック110内の1つ1つのすべてのビットの関数であ
る(すなわち強力なシンボル間独立性がある)。 2.(敵対者がマスクされた鍵ブロックの未知のビット
を試し尽くすことができる場合を除き)マスクされた鍵
ブロック130内のすべてのビットがわかっているかま
たは入手可能でない限り、鍵ブロック110内のどのビ
ットも判別することができない。
Referring again to FIG. 1, in the encryption procedure 100 the key block 110 is first “masked”. That is, it is transformed into a masked key block 130 of the same size using masking procedure 120. Although details of the masking procedure 120 will be described later, the masking procedure is a reversible transformation defined to have the following ciphertext properties. 1. Each bit of the masked key block 130 is a function of every single bit in the key block 110 (ie, there is strong intersymbol independence). 2. Which key block 110, unless all bits in the masked key block 130 are known or available (unless the adversary can exhaust the unknown bits in the masked key block) The bit cannot be discriminated either.

【0015】上記の特性を有するマスキング・プロシー
ジャ120によって生成されたマスクされた鍵ブロック
130は、鍵の長さが試し尽くし型の攻撃を抑止するの
に十分な長さである限り、その任意の一部を暗号化する
ことによって保護することができる。
The masked key block 130 produced by the masking procedure 120 having the above characteristics is of any length as long as the key length is long enough to deter a try-and-play type attack. It can be protected by encrypting a part.

【0016】次に、マスクされた鍵ブロック130の一
部131を、暗号化鍵141を有する暗号化プロシージ
ャ140を使用して暗号化し、暗号文ブロック150の
暗号化部分151を生成する。暗号化プロシージャ14
0は、160ビット程度の鍵(および暗号化ブロック)
サイズを有する楕円曲線プロシージャなどの公開鍵プロ
シージャであることが好ましい。使用する楕円曲線プロ
シージャの詳細は本発明の一部を形成しないが、上記で
引用した参考資料に記載されている。楕円曲線プロシー
ジャは、そのブロック・サイズの割合に暗号強度が高い
ためきわめて好ましいが、一般には、暗号化プロシージ
ャ140の代わりに他のどのような公開鍵プロシージャ
またはDESなどの秘密鍵プロシージャでも使用するこ
とができる。
The portion 131 of the masked key block 130 is then encrypted using the encryption procedure 140 with the encryption key 141 to produce the encrypted portion 151 of the ciphertext block 150. Encryption procedure 14
0 is a 160-bit key (and encryption block)
It is preferably a public key procedure such as an elliptic curve procedure with size. Details of the elliptic curve procedure used do not form part of the present invention but are set forth in the references cited above. The elliptic curve procedure is highly preferred because of its high cryptographic strength for its block size, but generally any other public key procedure or secret key procedure such as DES should be used in place of the encryption procedure 140. You can

【0017】暗号文ブロックの残りの部分152は、マ
スクされた平文ブロック130の対応する部分132か
ら、それを暗号化せずに単純に取ることができる。ある
いは、マスクされた鍵ブロック130の残りの部分13
2の全部または一部を、1つまたは複数の鍵と1つまた
は複数の暗号化アルゴリズムを使用して、1つまたは複
数のブロックまたは部分として暗号化することもでき
る。やはり、1つまたは複数の鍵と1つまたは複数の暗
号化アルゴリズムを使用して、暗号化パイプラインに従
って同じデータを多様に暗号化することもできる。
The remaining portion 152 of the ciphertext block can simply be taken from the corresponding portion 132 of the masked plaintext block 130 without encrypting it. Alternatively, the remaining portion 13 of the masked key block 130
All or part of two may also be encrypted as one or more blocks or parts using one or more keys and one or more encryption algorithms. Again, one or more keys and one or more encryption algorithms may be used to variously encrypt the same data according to an encryption pipeline.

【0018】図2にマスキング・プロシージャ120を
示す。マスキング・プロシージャはまず、鍵ブロック1
10を第1の部分202(部分A)と第2の部分204
(部分B)に分割する。図では部分Aを部分Bの左側に
図示してあるが、この2つの部分にビットを割り当てる
他のどのような方式も使用することができる。ビットの
順序と場所は重要ではない。部分A(202)およびB
(204)の長さは等しくても異なっていてもよい。し
かし、部分202、204の長さを等しくするかまたは
ほぼ等しくすればセキュリティ上有利である。
A masking procedure 120 is shown in FIG. The masking procedure starts with key block 1
10 for the first part 202 (part A) and the second part 204
Divide into (part B). Although part A is shown to the left of part B in the figure, any other scheme for allocating bits to the two parts can be used. The order and location of bits is not important. Parts A (202) and B
The lengths of (204) may be equal or different. However, it is advantageous in security to make the lengths of the portions 202 and 204 equal or nearly equal.

【0019】部分202、204のうちの少なくとも1
つに、秘密鍵または秘密乱数などの秘密値が含まれてい
るものとする。しかし、この秘密値は、一部を部分20
2に一部を部分204に分けることできる。
At least one of the portions 202, 204
One of them contains a secret value such as a secret key or secret random number. However, this secret value is partially
2 can be partly divided into parts 204.

【0020】一般に、マスキング・プロシージャ120
は以下のステップを含む。 1.部分A(202)を部分B(204)でマスクして
中間段階の部分A(212)を生成する。 2.部分B(204)をその中間段階の部分A(21
2)でマスクしてマスクされた部分B(220)を生成
する。 3.中間段階の部分A(212)をマスクされた部分B
(220)でマスクして最終的なマスクされた部分A
(228)を生成する。 4.任意選択により、所望の場合または必要な場合はマ
スキングをさらに繰り返す(図示せず)。
In general, the masking procedure 120
Includes the following steps. 1. Part A (202) is masked with part B (204) to produce an intermediate part A (212). 2. Part B (204) is replaced by part A (21
The masked portion B (220) is generated by masking in 2). 3. Masked part B of intermediate stage part A (212)
Masked in (220) and finally masked part A
(228) is generated. 4. Optionally, masking is repeated further if desired or necessary (not shown).

【0021】マスクされた鍵ブロック130内の各ビッ
トを(マスクされていない)鍵ブロック110内の各ブ
ロックの関数にするには、マスキングを3回繰り返す必
要がある。適切に行われたマスキングの3回の繰り返し
は、マスクされた鍵ブロック130内の各ビットを元の
鍵ブロック110内の各ビットに依存させるのにも十分
であるはずである。これによって完全なシンボル間依存
性が得られる。
To make each bit in the masked key block 130 a function of each block in the (unmasked) key block 110, masking must be repeated three times. Three proper iterations of masking should also be sufficient to make each bit in the masked key block 130 dependent on each bit in the original key block 110. This gives a complete inter-symbol dependency.

【0022】以下に、マスキング・プロシージャについ
て詳述する。マスキング・プロシージャ120は、第1
の生成関数(G1)206を使用して部分B(204)
について第1のマスク値208(マスク1)を算出す
る。マスク1(208)の長さは部分A(202)の長
さと等しい。
The masking procedure will be described in detail below. The masking procedure 120 is the first
Part B (204) using the generator function (G1) 206 of
A first mask value 208 (mask 1) is calculated for The length of the mask 1 (208) is equal to the length of the portion A (202).

【0023】次にマスク1(208)を部分A(20
2)と結合して(210)中間段階の部分A(212)
を生成する。この結合演算210は、図のように排他的
論理和(XOR)、すなわちビット単位のモジュロ2加
算とすることができる。具体的には、結合演算210
は、nビット・ブロックに対するモジュロ加算など、任
意の可逆演算を含むことができる。
Next, the mask 1 (208) is covered with the portion A (20
Combined with 2) (210) Intermediate part A (212)
Generate This join operation 210 can be an exclusive OR (XOR), that is, bit-wise modulo-2 addition as shown. Specifically, the join operation 210
Can include any lossless operation, such as modulo addition for n-bit blocks.

【0024】次に、第2の生成関数214(G2)を使
用して中間段階の部分A(212)について第2のマス
ク値216(マスク2)を計算する。マスク2(21
6)の長さは部分B(204)の長さに等しい。マスク
2(216)と部分B(204)との排他的論理和(2
18)をとって、マスクされた部分B(220)を生成
する。
Next, a second mask value 216 (mask 2) is calculated for the intermediate stage portion A (212) using the second generator function 214 (G2). Mask 2 (21
The length of 6) is equal to the length of part B (204). Exclusive OR (2 if mask 2 (216) and part B (204)
18) is taken to produce the masked portion B (220).

【0025】最後に、マスクされた部分B(204)に
ついて第3の生成関数222(G3)を使用して第3の
マスク値224(マスク3)を計算する。マスク3(2
24)の長さは部分A(202)の長さと等しい。マス
ク3(224)と中間段階の部分A(212)との排他
的論理和(226)をとって、最終的なマスクされた部
分A(228)を生成する。
Finally, the third mask value 224 (mask 3) is calculated for the masked portion B (204) using the third generation function 222 (G3). Mask 3 (2
The length of 24) is equal to the length of part A (202). Exclusive-OR (226) mask 3 (224) with intermediate stage portion A (212) to produce the final masked portion A (228).

【0026】生成関数G1〜G3のそれぞれは、mビッ
トの入力値からnビットの出力値を計算する暗号文片方
向関数である(ただしmおよびnは生成関数への入力変
数である)。暗号で従来使用される意味の「片方向」関
数とは、その逆関数によってその関数のほとんどどのよ
うな出力値も計算することができない関数を意味する。
生成関数G1〜G3の可能な一実施態様は、FIPS Publi
caion 180-1セキュア・ハッシュ規格(SHS)に記載
されているNISTセキュア・ハッシュ・アルゴリズム
・リビジョン1(SHA−1)、R.L.Revest「The MD5
Message DigestAlgorithm」(RFC 1321, Apr. 1992)に
記載されているRSAメッセージ・ダイジェスト・アル
ゴリズム5(MD5)、またはブラクトル等の米国特許
第4908861号に記載されているIBM修正検出コ
ード・アルゴリズム(MDC−2/4)などの強力な暗
号ハッシュ関数Hを使用することであろう。
Each of the generation functions G1 to G3 is a ciphertext one-way function that calculates an n-bit output value from an m-bit input value (where m and n are input variables to the generation function). A "one-way" function, in the sense conventionally used in cryptography, is a function that by its inverse cannot calculate almost any output value of that function.
One possible implementation of the generator functions G1-G3 is FIPS Publi
NIST Secure Hash Algorithm Revision 1 (SHA-1), described in caion 180-1 Secure Hash Standard (SHS), RLRevest “The MD5
RSA Message Digest Algorithm 5 (MD5) described in "Message Digest Algorithm" (RFC 1321, Apr. 1992), or the IBM Modified Detection Code Algorithm (MDC- Would use a strong cryptographic hash function H such as 2/4).

【0027】以下の例では、128ビットのハッシュ値
を生成するMD5をハッシュ関数Hに使用するものとす
る。簡略化するための前提として、部分202および2
04の長さは128ビット(16バイト)の倍数である
ものとする。さらに、説明のために、部分A(202)
は3つの16バイト・ブロックから成り、部分B(20
4)は2つの16バイト・ブロックから成るものとす
る。
In the following example, MD5 for generating a 128-bit hash value is used for the hash function H. As a premise for simplification, parts 202 and 2
The length of 04 is assumed to be a multiple of 128 bits (16 bytes). Further, for purposes of explanation, part A (202)
Consists of three 16-byte blocks, part B (20
4) shall consist of two 16-byte blocks.

【0028】図3を参照すると、第1のマスク値208
(マスク1)は以下のようにして関数G1(206)を
使用して計算される。 1.固有値302(値1)を部分B(204)と連結
し、その結果値をH(308)を使用してハッシュして
128ビットの値314(X1)を得る。 2.固有値304(値2)を部分B(204)と連結
し、その結果値をH(310)を使用してハッシュして
128ビットの値316(X2)を得る。 3.固有値306(値3)を部分B(204)と連結
し、その結果値をH(312)を使用してハッシュして
128ビットの値318(X3)を得る。
Referring to FIG. 3, the first mask value 208
(Mask 1) is calculated using function G1 (206) as follows. 1. The eigenvalue 302 (value 1) is concatenated with the part B (204) and the resulting value is hashed using H (308) to obtain the 128-bit value 314 (X1). 2. The eigenvalue 304 (value 2) is concatenated with the part B (204) and the resulting value is hashed using H (310) to obtain the 128-bit value 316 (X2). 3. The eigenvalue 306 (value 3) is concatenated with the part B (204) and the resulting value is hashed using H (312) to obtain the 128-bit value 318 (X3).

【0029】マスク1(208)は、値314、31
6、318(X1〜X3)の連結として定義される。マ
スク1(208)の長さは、それとの排他的論理和をと
るために使用した部分A(202)の長さと同じ3×1
6=48バイトである。
Mask 1 (208) has the values 314, 31.
6, 318 (X1 to X3) are defined as concatenations. The length of the mask 1 (208) is the same as the length of the portion A (202) used for the exclusive OR with it, which is 3 × 1.
6 = 48 bytes.

【0030】図4を参照すると、関数G2(214)を
使用して以下のように第2のマスク値216(マスク
2)を計算する。 1.固有値402(値4)を中間段階の部分A(21
2)と連結し、その結果値をH(406)を使用してハ
ッシュして128ビットの値410(X4)を得る。 2.固有値404(値5)を中間段階の部分A(21
2)と連結し、その結果値をH(408)を使用してハ
ッシュして128ビットの値412(X5)を得る。
Referring to FIG. 4, function G2 (214) is used to calculate the second mask value 216 (mask 2) as follows. 1. The eigenvalue 402 (value 4) is set to the intermediate part A (21
2) concatenate and hash the resulting value using H (406) to get the 128-bit value 410 (X4). 2. The eigenvalue 404 (value 5) is set to the intermediate part A (21
Concatenate with 2) and hash the resulting value using H (408) to get the 128-bit value 412 (X5).

【0031】マスク2(216)は、値410、412
(X4〜X5)の連結として定義される。マスク2(2
16)の長さは、それとの排他的論理和をとった部分B
(204)の長さと同じ2×16=32バイトである。
Mask 2 (216) has the values 410, 412.
It is defined as a concatenation of (X4 to X5). Mask 2 (2
The length of 16) is the part B obtained by exclusive OR with that.
The same as the length of (204), 2 × 16 = 32 bytes.

【0032】図の実施例では、関数G3(222)は関
数G1(206)と同じであり、この2つの関数の唯一
の相違は、関数G3がその入力値をマスクされていない
部分B(204)ではなくマスクされた部分B(22
0)から受け取ることである。これは単に実施の効率の
ために過ぎないが、一般には、G3はG1とは異なる。
また、関数G2は関数G1およびG3とは異なるが、こ
れは部分202と204の長さが異なるために過ぎな
い。2つの部分の長さが同じであれば、これらの関数G
1〜G3はすべて同じとなることができる。
In the illustrated embodiment, the function G3 (222) is the same as the function G1 (206) and the only difference between the two functions is that the function G3 has its input value unmasked in part B (204). ) Instead of the masked part B (22
It is to receive from 0). This is merely for efficiency of implementation, but in general G3 differs from G1.
Also, function G2 is different than functions G1 and G3, but only because the lengths of portions 202 and 204 are different. If the two parts have the same length, these functions G
1 to G3 can all be the same.

【0033】値302〜306および402〜404は
互いに異なるが、関数G1〜G3のそれぞれの呼出しに
ついて同じままとすることができる。あるいは、増分カ
ウンタまたはその他の適合する機構を使用して、生成関
数のそれぞれの連続した呼出しごとにこれらの値のそれ
ぞれを変更することもできる。
The values 302-306 and 402-404 are different from each other, but can remain the same for each invocation of the functions G1-G3. Alternatively, an incremental counter or other suitable mechanism may be used to change each of these values on each successive invocation of the generate function.

【0034】部分202または204の値がハッシュ関
数Hの長さ(上記の例では16バイト)の倍数でない場
合、(1)ハッシュ関数Hの長さの倍数であり、(2)
マスクしようとするデータより長いマスク値を計算す
る。その場合、マスクの一部と入力データとの排他的論
理和をとる。データをハッシュする前に入力データの埋
込みが必要な場合もある。しかし、これは生成関数の設
計には実質的影響を与えない。
If the value of the portion 202 or 204 is not a multiple of the length of the hash function H (16 bytes in the above example), it is (1) a multiple of the length of the hash function H, and (2)
Calculate a mask value that is longer than the data you want to mask. In that case, the exclusive OR of a part of the mask and the input data is taken. It may be necessary to pad the input data before hashing the data. However, this has no substantial effect on the design of the generating function.

【0035】図6に、暗号文ブロック150から元の鍵
ブロックを復元するために使用するプロシージャ600
を示す。プロシージャ600は、復号プロシージャ61
0を使用して暗号文ブロック150の暗号化部分151
を復号して、再生されたマスクされた鍵ブロック620
の第1の部分621を生成する。復号プロシージャ61
0は、暗号化プロシージャ140の逆に過ぎない。暗号
化プロシージャ140が公開暗号化鍵141を有する公
開鍵プロシージャである場合、復号プロシージャ610
は、受信者だけが知っている対応する秘密復号鍵611
を有する。暗号化プロシージャ140が対称プロシージ
ャの場合、復号鍵611は(秘密)暗号化鍵141と同
じである。再生されたマスクされた鍵ブロック620の
残りの部分622は、暗号文ブロック150の残りの部
分152から変更なしに単純に取り出される。次にマス
ク解除プロシージャ630によって、再生されたマスク
された鍵ブロック620を、元の鍵ブロック110と一
致するマスク解除された鍵ブロック640に変換する。
Referring to FIG. 6, the procedure 600 used to recover the original key block from the ciphertext block 150.
Is shown. The procedure 600 is the decryption procedure 61.
The encrypted portion 151 of the ciphertext block 150 using 0
Decrypted and regenerated the masked key block 620
To generate a first portion 621 of Decryption procedure 61
0 is just the reverse of the encryption procedure 140. If the encryption procedure 140 is a public key procedure with the public encryption key 141, the decryption procedure 610
Is the corresponding private decryption key 611 known only to the recipient.
Having. If the encryption procedure 140 is a symmetric procedure, the decryption key 611 is the same as the (secret) encryption key 141. The remaining portion 622 of the reclaimed masked key block 620 is simply retrieved from the remaining portion 152 of the ciphertext block 150 without modification. The unmask procedure 630 then transforms the regenerated masked key block 620 into an unmasked key block 640 that matches the original key block 110.

【0036】図7に、マスク解除プロシージャ630を
示す。これはマスキング・プロシージャ120の逆に過
ぎない。プロシージャ630はまず、再生されたマスク
された鍵ブロック620を、部分202および204
(図2)とそれぞれ長さが対応するマスクされた部分A
(702)と部分B(704)とに分割する。プロシー
ジャ630は次に、生成関数G3(706)を使用し
て、マスクされた部分B(704)からマスク3(70
8)を再生する。次に、マスク3(708)をマスクさ
れた部分A(702)と結合して(710)中間段階の
部分A(712)を再生する。次に、生成関数G2(7
14)を使用して中間段階の部分A(712)からマス
ク2(716)を生成する。マスク2(716)をマス
クされた部分B(704)と結合して(718)、元の
部分B(720)を再生する。最後に、生成関数G1
(722)を使用して元の部分B(720)からマスク
1(724)を生成する。マスク1(724)を中間段
階の部分A(712)と結合して(726)、最終的な
マスク解除された部分A(728)を生成する。
An unmask procedure 630 is shown in FIG. This is just the reverse of the masking procedure 120. Procedure 630 first reconstructs the reconstructed masked key block 620 into portions 202 and 204.
(FIG. 2) and masked portions A corresponding in length to
(702) and part B (704). Procedure 630 then uses generator function G3 (706) to mask 3 (70) from masked portion B (704).
Play 8). Next, the mask 3 (708) is combined with the masked portion A (702) to regenerate (710) the intermediate portion A (712). Next, the generation function G2 (7
14) is used to generate mask 2 (716) from intermediate stage part A (712). Mask 2 (716) is combined with masked portion B (704) (718) to recreate the original portion B (720). Finally, the generation function G1
(722) is used to generate Mask 1 (724) from the original part B (720). Mask 1 (724) is combined (726) with intermediate stage part A (712) to produce the final unmasked part A (728).

【0037】結合演算710、718、および726は
それぞれ、マスキング・プロシージャ120の演算22
6、218、および210の逆になるように構成されて
いる。マスキング・プロシージャ120における結合演
算がXOR演算である図の実施例では、その逆の結合演
算710、718、および726もXOR演算である。
Join operations 710, 718, and 726 are each operation 22 of masking procedure 120.
It is configured to be the reverse of 6, 218, and 210. In the illustrated embodiment, where the join operation in the masking procedure 120 is an XOR operation, the inverse join operations 710, 718, and 726 are also XOR operations.

【0038】本実施例のように関数G1とG3が同じ場
合、マスク解除プロシージャ630(図6〜図7)はマ
スキング・プロシージャ120(図1〜図4)と同じで
ある。すなわち、マスキング・プロシージャ120を2
回適用することによって、元の出力が得られる。しか
し、これは特殊な場合であって、一般にはマスキング・
プロシージャ120は逆のマスク解除プロシージャ63
0と異なることがある。
When the functions G1 and G3 are the same as in this embodiment, the unmasking procedure 630 (FIGS. 6-7) is the same as the masking procedure 120 (FIGS. 1-4). That is, the masking procedure 120 is set to 2
The original output is obtained by applying it twice. However, this is a special case and generally masking
Procedure 120 is the reverse unmask procedure 63
May differ from zero.

【0039】制御情報、初期設定ベクトルまたはカウン
トなど、鍵に関連づけたり結合したりしたいデータがあ
るが、鍵ブロック自体には入れておきたくない状況が存
在する場合がある。これは、平文ブロックを分割した部
分のうちの1つに当該データまたは当該データのハッシ
ュを付加し、その拡張部分についてマスク値を計算する
ことによって行うことができる。それ以外は、この方法
は前述の通りである。
Although there is data such as control information, an initialization vector or a count, which is desired to be associated with or combined with a key, there may be a situation where it is not desired to keep it in the key block itself. This can be done by adding the data or the hash of the data to one of the divided parts of the plaintext block and calculating the mask value for the expanded part. Otherwise, this method is as described above.

【0040】図8に、部分B(204)を付加データ・
フィールド801(「その他のデータ」)に連結して拡
張された部分B(204')を生成することによって修
正されたマスク1(208')を計算する修正されたマ
スキング・プロシージャ120'を示す。付加データ・
フィールド801は制御情報、初期設定ベクトル、連続
した暗号化ごとに増加するカウント、または受信者が使
用可能なその他の情報または受信者が作成可能なその他
の情報に基づく。付加データ・フィールド801には、
未修正形式の情報を入れるか、またはそのような情報の
ハッシュ関数に基づくことができる。付加データ・フィ
ールド801は部分B(204)の右に付加されるよう
に図示されているが、多くの場合に好ましいことである
が、部分Bの左に付加することもできる。拡張された部
分B(204')に応答して、修正された関数G1(2
06')は、修正されたマスク1(208')を生成し、
それが部分A(204)と結合されて(210)、修正
された中間段階の部分A(212')が生成される。
In FIG. 8, the part B (204) is added data.
A modified masking procedure 120 'is shown that computes modified mask 1 (208') by concatenating field 801 ("other data") to produce expanded portion B (204 '). Additional data
Field 801 is based on control information, an initialization vector, a count that increments with each successive encryption, or other information available to or available to the recipient. In the additional data field 801,
It can contain unmodified form of the information or be based on a hash function of such information. The additional data field 801 is shown as being added to the right of part B (204), although it is often preferred, but it can also be added to the left of part B (204). In response to the expanded portion B (204 '), the modified function G1 (2
06 ') produces a modified mask 1 (208'),
It is combined (210) with part A (204) to produce a modified intermediate stage part A (212 ').

【0041】修正されたマスキング・プロシージャ12
0'の残りの部分は、(修正された入力値を受け取る以
外は)図2に図示するマスキング・プロシージャ120
と同じであり、したがって図示していない。この修正さ
れたマスキング・プロシージャ120'に対応するマス
ク解除プロシージャはマスク解除プロシージャ630と
同様であるが、付加データ・フィールド801を考慮に
入れるための適切な修正が加えられる。
Modified Masking Procedure 12
The rest of the 0'is the masking procedure 120 illustrated in FIG. 2 (other than receiving the modified input value).
The same and is therefore not shown. The unmasking procedure corresponding to this modified masking procedure 120 'is similar to the unmasking procedure 630, with the appropriate modification to take into account the additional data field 801.

【0042】図8に示す修正されたマスキング・プロシ
ージャ120'では、マスキング値を付加データ・フィ
ールド801に依存させるように修正されているのは最
初のマスキング段階(部分Bを使用して部分Aをマスク
する)である。しかし、別法として、または追加とし
て、それに続く2つのマスキング段階のいずれか一方あ
るいは両方を、付加データ・フィールド801を使用す
るように修正することもできる。したがって、元のブロ
ック部分を付加データ・フィールドと連結することによ
って作成された拡張鍵ブロック部分に依存するように、
生成関数G2(214)およびG3(222)のいずれ
か一方または両方を修正することができる。前者の場
合、付加データ・フィールド801は部分Bではなく部
分Aと連結されて、関数G2への入力値を供給すること
になる。
In the modified masking procedure 120 'shown in FIG. 8, it is modified to make the masking value dependent on the additional data field 801 by modifying the first masking step (part A using part B Mask). However, alternatively, or in addition, either or both of the two subsequent masking steps may be modified to use the additional data field 801. Therefore, to rely on the extended key block part created by concatenating the original block part with the additional data field,
Either or both of the generation functions G2 (214) and G3 (222) can be modified. In the former case, the additional data field 801 would be concatenated with part A rather than part B to provide the input value to function G2.

【0043】この修正は、マスクされた鍵ブロック13
0が、元の鍵ブロック110だけでなく付加データ・フ
ィールド801内の余分のデータ(またはそのようなデ
ータのハッシュ)の関数でもあるという利点を有する。
しかし、この余分のデータは鍵ブロック110自体の一
部ではなく、したがってマスクされない。
This modification consists of masking the key block 13
0 has the advantage that it is a function of the extra data (or a hash of such data) in the additional data field 801 as well as the original key block 110.
However, this extra data is not part of the key block 110 itself and is therefore not masked.

【0044】前述のように、鍵ブロック110と付加デ
ータ・フィールド801のいずれか一方(または両方)
が、平文ブロックの暗号化ごとに固有でなければならな
い。これは、鍵ブロック110または付加データ・フィ
ールド801に固有のカウントを挿入するか、または前
述のようにタイム・スタンプ、乱数、またはその他の機
構を使用することによって実現することができる。
As described above, either (or both) the key block 110 and the additional data field 801.
Must be unique for each plaintext block encryption. This can be accomplished by inserting a unique count in the key block 110 or the extra data field 801, or by using a time stamp, random number, or other mechanism as described above.

【0045】まとめとして、本発明の構成に関して以下
の事項を開示する。
In summary, the following is disclosed regarding the configuration of the present invention.

【0046】(1)平文ブロックよりも小さいブロック
・サイズを有するブロック暗号化プロシージャを使用し
て前記平文データ・ブロックを暗号化する方法であっ
て、マスクされた平文ブロックの各ビットが元の平文ブ
ロックの1つ1つのビットに依存するように定義された
所定の可逆変換を使用して前記平文ブロックを前記マス
クされた平文ブロックに変換するステップと、前記暗号
化プロシージャを使用して前記ブロック・サイズを有す
る前記マスクされた平文ブロックの一部を暗号化して、
前記マスクされた平文ブロックの暗号化された部分を生
成するステップと、前記マスクされた平文ブロックの前
記暗号化された部分と前記マスクされた平文ブロックの
残りの部分とから暗号文ブロックを生成するステップと
を含む方法。 (2)前記暗号文ブロックを受信者に送信するステップ
をさらに含む、上記(1)に記載の方法。 (3)前記暗号文ブロックが前記マスクされた平文ブロ
ックの残りの部分を暗号化することによって生成される
ことを特徴とする、上記(1)に記載の方法。 (4)前記マスクされたブロックの前記残りの部分が、
前記マスクされた平文ブロックの前記一部を暗号化する
ために使用する暗号化プロシージャとは異なる暗号化プ
ロシージャを使用して暗号化されることを特徴とする、
上記(3)に記載の方法。 (5)前記マスクされた平文ブロックの残りの部分を暗
号化することなく前記平文ブロックが生成されることを
特徴とする、上記(1)に記載の方法。 (6)前記平文ブロックから元の平文ブロックを復元す
るステップをさらに含む、上記(1)に記載の方法。 (7)前記復元ステップが、前記平文ブロックから前記
マスクされた平文ブロックを再生するステップを含み、
前記再生ステップは前記マスクされた平文ブロックの前
記暗号化された部分を復号するステップを含み、前記復
元ステップは、前記所定の変換を逆に行うことによっ
て、再生されたマスクされた平文ブロックから元の平文
ブロックを再生するステップを含むことを特徴とする、
上記(6)に記載の方法。 (8)前記暗号化プロシージャが、公開暗号化鍵と公開
復号鍵とを有する対称暗号化プロシージャを含むことを
特徴とする、上記(1)に記載の方法。 (9)前記暗号化プロシージャが楕円曲線プロシージャ
を含むことを特徴とする、上記(1)に記載の方法。 (10)前記平文ブロックが第1および第2の部分を含
み、前記変換ステップが、前記第2の部分を使用して前
記第1の部分をマスクして中間段階の第1の部分を生成
するステップと、前記中間段階の第1の部分を使用して
前記第2の部分をマスクしてマスクされた第2の部分を
生成するステップと、前記マスクされた第2の部分を使
用して前記中間段階の第1の部分をマスクしてマスクさ
れた第1の部分を生成するステップとを含み、前記マス
クされた部分のうちの一方を使用して前記マスクされた
平文ブロックの第1の部分が生成され、前記マスクされ
た部分のうちの他方を使用して前記マスクされた平文ブ
ロックの第2の部分が生成されることを特徴とする、上
記(1)に記載の方法。 (11)前記マスキング・ステップのうちの少なくとも
1つのステップが、前記部分のうちの一方を前記鍵ブロ
ックの外部の付加データと連結して拡張された部分を生
成するステップと、前記部分のうちの他方を前記拡張さ
れた部分を使用してマスクするステップとを含むことを
特徴とする、上記(10)に記載の方法。 (12)前記マスクされた第1の部分が前記マスクされ
た平文ブロックの前記第1の部分を形成し、前記マスク
された第2の部分が前記マスクされた平文ブロックの前
記第2の部分を形成することを特徴とする、上記(1
0)に記載の方法。 (13)前記平文ブロックが第1および第2の部分を含
み、前記変換ステップが、第1の変換を使用して前記第
2の部分から第1のマスク値を生成するステップと、前
記第1のマスク値を前記第1の部分と結合して中間段階
の第1の部分を生成するステップと、第2の変換を使用
して前記中間段階の第1の部分から第2のマスク値を生
成するステップと、前記第1のマスク値を前記第2の部
分と結合してマスクされた第2の部分を生成するステッ
プと、第3の変換を使用して前記マスクされた第2の部
分から第3のマスク値を生成するステップと、前記第3
のマスク値を前記中間段階の第1の部分と結合してマス
クされた第1の部分を生成するステップとを含み、前記
マスクされた部分のうちの一方を使用して前記マスクさ
れた平文ブロックの第1の部分が生成され、前記マスク
された部分のうちの他方を使用して前記マスクされた平
文ブロックの第2の部分が生成されることを特徴とす
る、上記(1)に記載の方法。 (14)前記マスク値が片方向関数を使用して生成され
ることを特徴とする、上記(13)に記載の方法。 (15)前記結合ステップが、モジュロ加算を使用して
nビットのブロックを結合することによって行われるこ
とを特徴とする、上記(13)に記載の方法。 (16)前記結合ステップがビット単位のモジュロ2加
算を使用して行われることを特徴とする、上記(15)
に記載の方法。 (17)前記マスクされた平文ブロックが前記平文ブロ
ックと任意選択の付加データに応じて生成され、前記方
法が、平文ブロックの暗号化ごとに前記平文ブロックと
任意選択の付加データのうちの少なくとも一方を固有に
修正するステップをさらに含み、前記変換ステップが前
記修正された平文ブロックに対して行われることを特徴
とする、上記(1)に記載の方法。 (18)ブロック暗号化プロシージャを使用して平文ブ
ロックを暗号化する方法であって、元の平文ブロックが
前記マスクされた平文ブロックおよび任意選択の付加デ
ータから復元可能であるように定義された所定の可逆変
換を使用して、マスクされた平文ブロックを前記平文ブ
ロックと任意選択の付加データに応じて生成するステッ
プと、前記マスクされた平文ブロックの少なくとも一部
を前記暗号化プロシージャを使用して暗号化して暗号文
ブロックを生成するステップと、平文ブロックの暗号化
ごとに、前記マスクされた平文ブロックの生成の前に前
記平文ブロックと前記任意選択の付加データのうちの少
なくとも一方を固有に修正するステップとを含む方法。 (19)平文ブロックの暗号化ごとに前記マスクされた
平文ブロックの生成の前に前記平文ブロックが固有に修
正されることを特徴とする、上記(18)に記載の方
法。 (20)平文ブロックの暗号化ごとに前記マスクされた
平文ブロックの生成の前に前記付加データが固有に修正
されることを特徴とする、上記(18)に記載の方法。 (21)前記平文ブロックと前記任意選択の付加データ
のうちの前記少なくとも一方が、平文ブロックの暗号化
ごとに増加するカウントを含むことを特徴とする、上記
(18)に記載の方法。 (22)前記平文ブロックと前記任意選択の付加データ
のうちの前記少なくとも一方が、平文ブロックの暗号化
ごとに異なるタイム・スタンプを含むことを特徴とす
る、上記(18)に記載の方法。 (23)前記平文ブロックと前記任意選択の付加データ
のうちの前記少なくとも一方が、平文ブロックの暗号化
ごとにランダムに生成される値を含むことを特徴とす
る、上記(18)に記載の方法。 (24)平文ブロックよりも小さいブロック・サイズを
有するブロック暗号化プロシージャを使用して前記平文
データ・ブロックを暗号化する装置であって、マスクさ
れた平文ブロックの各ビットが元の平文ブロックの1つ
1つのビットに依存するように定義された所定の可逆変
換を使用して前記平文ブロックを前記マスクされた平文
ブロックに変換する手段と、前記暗号化プロシージャを
使用して前記ブロック・サイズを有する前記マスクされ
た平文ブロックの一部を暗号化して、前記マスクされた
平文ブロックの暗号化された部分を生成する手段と、前
記マスクされた平文ブロックの前記暗号化された部分と
前記マスクされた平文ブロックの残りの部分とから暗号
文ブロックを生成する手段とを含む装置。 (25)前記平文ブロックが第1および第2の部分を含
み、前記変換手段が、前記第2の部分を使用して前記第
1の部分をマスクして中間段階の第1の部分を生成する
手段と、前記中間段階の第1の部分を使用して前記第2
の部分をマスクしてマスクされた第2の部分を生成する
手段と、前記マスクされた第2の部分を使用して前記中
間段階の第1の部分をマスクしてマスクされた第1の部
分を生成する手段とを含み、前記マスクされた部分のう
ちの一方を使用して前記マスクされた平文ブロックの第
1の部分が生成され、前記マスクされた部分のうちの他
方を使用して前記マスクされた平文ブロックの第2の部
分が生成されることを特徴とする、上記(24)に記載
の装置。 (26)前記平文ブロックが第1および第2の部分を含
み、前記変換手段が、第1の変換を使用して前記第2の
部分から第1のマスク値を生成する手段と、前記第1の
マスク値を前記第1の部分と結合して中間段階の第1の
部分を生成する手段と、第2の変換を使用して前記中間
段階の第1の部分から第2のマスク値を生成する手段
と、前記第1のマスク値を前記第2の部分と結合してマ
スクされた第2の部分を生成する手段と、第3の変換を
使用して前記マスクされた第2の部分から第3のマスク
値を生成する手段と、前記第3のマスク値を前記中間段
階の第1の部分と結合してマスクされた第1の部分を生
成する手段とを含み、前記マスクされた部分のうちの一
方を使用して前記マスクされた平文ブロックの第1の部
分が生成され、前記マスクされた部分のうちの他方を使
用して前記マスクされた平文ブロックの第2の部分が生
成されることを特徴とする、上記(24)に記載の装
置。 (27)ブロック暗号化プロシージャを使用して平文ブ
ロックを暗号化する装置であって、元の平文ブロックが
前記マスクされた平文ブロックおよび任意選択の付加デ
ータから復元可能であるように定義された所定の可逆変
換を使用して、マスクされた平文ブロックを前記平文ブ
ロックと任意選択の付加データに応じて生成する手段
と、前記マスクされた平文ブロックの少なくとも一部を
前記暗号化プロシージャを使用して暗号化して暗号文ブ
ロックを生成する手段と、平文ブロックの暗号化ごと
に、前記マスクされた平文ブロックの生成の前に前記平
文ブロックと前記任意選択の付加データのうちの少なく
とも一方を固有に修正する手段とを含む装置。 (28)平文ブロックより小さいブロック・サイズを有
するブロック暗号化プロシージャを使用して前記平文デ
ータ・ブロックを暗号化する方法ステップを実行するた
めに機械によって実行可能な命令のプログラムを有形に
実施する、機械によって読取り可能なプログラム記憶装
置であって、前記方法ステップは、マスクされた平文ブ
ロックの各ビットが元の平文ブロックの1つ1つのビッ
トに依存するように定義された所定の可逆変換を使用し
て前記平文ブロックを前記マスクされた平文ブロックに
変換するステップと、前記暗号化プロシージャを使用し
て前記ブロック・サイズを有する前記マスクされた平文
ブロックの一部を暗号化して、前記マスクされた平文ブ
ロックの暗号化された部分を生成するステップと、前記
マスクされた平文ブロックの前記暗号化された部分と前
記マスクされた平文ブロックの残りの部分とから暗号文
ブロックを生成するステップとを含む、プログラム記憶
装置。 (29)ブロック暗号化プロシージャを使用して平文ブ
ロックを暗号化する方法ステップを実行するために、機
械によって実行可能な命令のプログラムを有形に実施す
る、機械によって実行可能なプログラム記憶装置であっ
て、前記方法ステップは、元の平文ブロックが前記マス
クされた平文ブロックと任意選択の付加データとから復
元可能なように定義された所定の可逆変換を使用して、
前記平文ブロックおよび任意の付加データに応じてマス
クされた平文ブロックを生成するステップと、前記暗号
化プロシージャを使用して前記マスクされた平文ブロッ
クの少なくとも一部を暗号化して暗号文ブロックを生成
するステップと、平文ブロックの暗号化ごとに前記マス
クされた平文ブロックの生成の前に前記平文ブロックと
前記任意選択の付加データのうちの少なくとも一方を固
有に修正するステップとを含む、プログラム記憶装置。 (30)ブロック暗号化プロシージャを使用して平文ブ
ロックを暗号化する方法であって、元の平文ブロックが
前記マスクされた平文ブロックと任意選択の付加データ
とから復元可能なように定義された所定の可逆変換を使
用して前記平文ブロックと付加データに応じてマスクさ
れた平文ブロックを生成するステップと、前記暗号化プ
ロシージャを使用して前記マスクされた平文ブロックの
少なくとも一部を暗号化して暗号文ブロックを生成する
ステップとを含む方法。
(1) A method of encrypting a plaintext data block using a block encryption procedure having a block size smaller than the plaintext block, wherein each bit of the masked plaintext block is the original plaintext. Transforming the plaintext block into the masked plaintext block using a predetermined lossless transform defined to depend on each and every bit of the block; and the block using the encryption procedure. Encrypting a portion of the masked plaintext block having a size,
Generating an encrypted part of the masked plaintext block, and generating a ciphertext block from the encrypted part of the masked plaintext block and the rest of the masked plaintext block A method including steps and. (2) The method according to (1) above, further including the step of transmitting the ciphertext block to a recipient. (3) The method according to (1) above, wherein the ciphertext block is generated by encrypting the rest of the masked plaintext block. (4) The remaining portion of the masked block is
Being encrypted using an encryption procedure different from the encryption procedure used to encrypt the portion of the masked plaintext block,
The method according to (3) above. (5) The method according to (1) above, wherein the plaintext block is generated without encrypting the rest of the masked plaintext block. (6) The method according to (1) above, further including a step of restoring an original plaintext block from the plaintext block. (7) The restoring step includes a step of reproducing the masked plaintext block from the plaintext block,
The reproducing step includes the step of decrypting the encrypted part of the masked plaintext block, and the decompressing step reverses the predetermined transformation to recover the original masked plaintext block from the reproduced masked plaintext block. Characterized by including the step of playing a plaintext block of
The method according to the above (6). (8) The method according to (1) above, wherein the encryption procedure includes a symmetric encryption procedure having a public encryption key and a public decryption key. (9) The method according to (1) above, wherein the encryption procedure includes an elliptic curve procedure. (10) The plaintext block includes first and second parts, and the converting step uses the second part to mask the first part to generate an intermediate first part. Masking the second portion using the first portion of the intermediate stage to produce a masked second portion, and using the masked second portion Masking the intermediate first portion to produce a masked first portion, the first portion of the masked plaintext block using one of the masked portions. Is generated, and the other of the masked portions is used to generate a second portion of the masked plaintext block. (11) at least one of the masking steps concatenates one of the portions with additional data outside the key block to generate an extended portion; and Masking the other using the extended portion. (12) The masked first portion forms the first portion of the masked plaintext block, and the masked second portion forms the second portion of the masked plaintext block. The above (1
The method according to 0). (13) the plaintext block includes first and second parts, the converting step generating a first mask value from the second part using a first conversion; Combining the mask values of the first part with the first part to produce a first part of the intermediate stage, and using a second transform to generate a second mask value from the first part of the intermediate stage. Combining the first mask value with the second portion to produce a masked second portion, and using a third transform from the masked second portion. Generating a third mask value;
Of the mask values of the intermediate stage with the first portion of the intermediate stage to produce a masked first portion, the masked plaintext block using one of the masked portions. Is generated, and the other of the masked portions is used to generate a second portion of the masked plaintext block. Method. (14) The method according to (13) above, wherein the mask value is generated using a one-way function. (15) The method according to (13) above, wherein the combining step is performed by combining blocks of n bits using modulo addition. (16) The above-mentioned (15), wherein the combining step is performed by using modulo-2 addition in bit units.
The method described in. (17) The masked plaintext block is generated according to the plaintext block and the optional additional data, and the method is at least one of the plaintext block and the optional additional data for each encryption of the plaintext block. The method according to (1) above, further comprising the step of uniquely modifying the modified plaintext block. (18) A method for encrypting a plaintext block using a block encryption procedure, the original plaintext block being defined to be recoverable from the masked plaintext block and optional additional data. Generating a masked plaintext block according to the plaintext block and optional additional data using a reversible transform of at least a portion of the masked plaintext block using the encryption procedure. Encrypting to generate a ciphertext block, and uniquely modifying at least one of the plaintext block and the optional additional data before generating the masked plaintext block for each encryption of the plaintext block And a step of performing. (19) The method according to (18) above, wherein the plaintext block is uniquely modified before the generation of the masked plaintext block for each encryption of the plaintext block. (20) The method according to (18) above, wherein the additional data is uniquely modified before the generation of the masked plaintext block for each encryption of the plaintext block. (21) The method according to (18) above, wherein the at least one of the plaintext block and the optional additional data includes a count that increases with each encryption of the plaintext block. (22) The method according to (18) above, wherein the at least one of the plaintext block and the optional additional data includes a different time stamp for each encryption of the plaintext block. (23) The method according to (18), wherein the at least one of the plaintext block and the optional additional data includes a value randomly generated for each encryption of the plaintext block. . (24) A device for encrypting a plaintext data block using a block encryption procedure having a block size smaller than the plaintext block, wherein each bit of the masked plaintext block is one of the original plaintext block. Means for transforming the plaintext block into the masked plaintext block using a predetermined lossless transform defined to be dependent on every one bit, and having the block size using the encryption procedure Means for encrypting a portion of the masked plaintext block to produce an encrypted portion of the masked plaintext block; and the encrypted portion of the masked plaintext block and the masked portion. An apparatus including means for generating a ciphertext block from the rest of the plaintext block. (25) The plaintext block includes first and second parts, and the converting means uses the second part to mask the first part to generate an intermediate first part. Means and the second part using the first part of the intermediate stage
Means for masking a portion of the mask to produce a masked second portion, and the masked second portion is used to mask the first portion of the intermediate stage to mask the first portion. Generating a first portion of the masked plaintext block using one of the masked portions and using the other of the masked portions to generate the first portion of the masked plaintext block. Apparatus according to (24) above, characterized in that a second part of the masked plaintext block is generated. (26) The plaintext block includes first and second parts, the conversion means generating a first mask value from the second part using a first conversion; Generating a second mask value from the first part of the intermediate stage using a second transform using a second transform to combine the mask value of the first part with the first part to produce a first part of the intermediate stage. Means for combining the first mask value with the second portion to produce a masked second portion, and using a third transform from the masked second portion. Means for generating a third mask value and means for combining the third mask value with the first portion of the intermediate stage to generate a masked first portion, the masked portion A first portion of the masked plaintext block is generated using one of the Characterized in that by using the other second part of said masked plaintext block of disk portion is generated, according to the above (24). (27) A device for encrypting a plaintext block using a block encryption procedure, wherein the original plaintext block is defined to be recoverable from the masked plaintext block and optional additional data. Means for generating a masked plaintext block according to the plaintext block and optional additional data using a reversible transformation of, and at least a portion of the masked plaintext block using the encryption procedure. Means for encrypting to generate a ciphertext block, and for each encryption of the plaintext block, uniquely modifying at least one of the plaintext block and the optional additional data before generating the masked plaintext block A device including: (28) tangibly embodying a program of machine-executable instructions for performing the method steps of encrypting said plaintext data block using a block encryption procedure having a block size smaller than the plaintext block, A machine readable program storage device, wherein the method steps use a predetermined reversible transformation defined such that each bit of the masked plaintext block depends on each and every bit of the original plaintext block. And converting the plaintext block into the masked plaintext block, and encrypting a portion of the masked plaintext block having the block size using the encryption procedure to obtain the masked plaintext block. Generating an encrypted part of a plaintext block, said masked plaintext From the encrypted part of the lock and the remaining portion of said masked plaintext block and generating a ciphertext block, a program storage device. (29) A machine-executable program storage device tangibly embodying a program of machine-executable instructions for performing method steps of encrypting a plaintext block using a block encryption procedure. , The method steps use a predetermined lossless transform defined such that the original plaintext block is recoverable from the masked plaintext block and optional additional data,
Generating a masked plaintext block according to the plaintext block and any additional data; and encrypting at least a portion of the masked plaintext block using the encryption procedure to generate a ciphertext block. A program storage device comprising: a step of uniquely modifying at least one of the plaintext block and the optional additional data prior to generating the masked plaintext block for each encryption of the plaintext block. (30) A method for encrypting a plaintext block using a block encryption procedure, wherein a predetermined plaintext block is defined so that it can be restored from the masked plaintext block and optional additional data. Generating a masked plaintext block according to the plaintext block and the additional data using a lossless transformation of Generating a statement block.

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

【図1】本発明の暗号化プロシージャを示す略ブロック
図である。
FIG. 1 is a schematic block diagram illustrating the encryption procedure of the present invention.

【図2】図1に示す暗号化プロシージャで使用するマス
キング・プロシージャを示す略ブロック図である。
2 is a schematic block diagram showing a masking procedure used in the encryption procedure shown in FIG. 1. FIG.

【図3】図2に示すマスキング・プロシージャで使用す
る第1の生成機構関数を示す略ブロック図である。
3 is a schematic block diagram showing a first generator function used in the masking procedure shown in FIG. 2. FIG.

【図4】図2の示すマスキング・プロシージャで使用す
る第2の生成機構関数を示す略ブロック図である。
FIG. 4 is a schematic block diagram showing a second generator function used in the masking procedure shown in FIG.

【図5】鍵ブロックの形式を示す略ブロック図である。FIG. 5 is a schematic block diagram showing a format of a key block.

【図6】本発明の復号プロシージャを示す略ブロック図
である。
FIG. 6 is a schematic block diagram showing the decoding procedure of the present invention.

【図7】図6に示す復号プロシージャで使用するマスク
解除プロシージャを示す略ブロック図である。
7 is a schematic block diagram showing an unmasking procedure used in the decoding procedure shown in FIG.

【図8】鍵ブロック外部の付加的データを使用する修正
されたマスキング・プロシージャを示す略ブロック図で
ある。
FIG. 8 is a schematic block diagram showing a modified masking procedure using additional data outside the key block.

【符号の説明】[Explanation of symbols]

100 暗号化プロシージャ 110 鍵ブロック 120 マスキング・プロシージャ 130 マスクされた鍵ブロック 140 暗号化プロシージャ 141 暗号化鍵 150 暗号文ブロック 151 暗号化部分 100 encryption procedure 110 key block 120 masking procedure 130 masked key block 140 encryption procedure 141 encryption key 150 ciphertext block 151 encrypted part

───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーブン・マイケル・マチヤス・ジュ ニア アメリカ合衆国12601 ニューヨーク州ポ キープシー バルキル・ドライブ 25 ─────────────────────────────────────────────────── ———————————————————————————————————————————————————————————————————————————————————————————————— Photoucuc–us.com

Claims (30)

【特許請求の範囲】[Claims] 【請求項1】平文ブロックよりも小さいブロック・サイ
ズを有するブロック暗号化プロシージャを使用して前記
平文データ・ブロックを暗号化する方法であって、 マスクされた平文ブロックの各ビットが元の平文ブロッ
クの1つ1つのビットに依存するように定義された所定
の可逆変換を使用して前記平文ブロックを前記マスクさ
れた平文ブロックに変換するステップと、 前記暗号化プロシージャを使用して前記ブロック・サイ
ズを有する前記マスクされた平文ブロックの一部を暗号
化して、前記マスクされた平文ブロックの暗号化された
部分を生成するステップと、 前記マスクされた平文ブロックの前記暗号化された部分
と前記マスクされた平文ブロックの残りの部分とから暗
号文ブロックを生成するステップとを含む方法。
1. A method of encrypting a plaintext data block using a block encryption procedure having a block size smaller than a plaintext block, wherein each bit of the masked plaintext block is an original plaintext block. Transforming the plaintext block into the masked plaintext block using a predetermined lossless transform defined to be dependent on each and every bit of the block size using the encryption procedure. Encrypting a portion of the masked plaintext block having: to generate an encrypted portion of the masked plaintext block; and the encrypted portion of the masked plaintext block and the mask. Generating a ciphertext block from the rest of the generated plaintext block.
【請求項2】前記暗号文ブロックを受信者に送信するス
テップをさらに含む、請求項1に記載の方法。
2. The method of claim 1, further comprising sending the ciphertext block to a recipient.
【請求項3】前記暗号文ブロックが前記マスクされた平
文ブロックの残りの部分を暗号化することによって生成
されることを特徴とする、請求項1に記載の方法。
3. The method of claim 1, wherein the ciphertext block is generated by encrypting the rest of the masked plaintext block.
【請求項4】前記マスクされたブロックの前記残りの部
分が、前記マスクされた平文ブロックの前記一部を暗号
化するために使用する暗号化プロシージャとは異なる暗
号化プロシージャを使用して暗号化されることを特徴と
する、請求項3に記載の方法。
4. The encryption of the remaining portion of the masked block using an encryption procedure different from the encryption procedure used to encrypt the portion of the masked plaintext block. Method according to claim 3, characterized in that
【請求項5】前記マスクされた平文ブロックの残りの部
分を暗号化することなく前記平文ブロックが生成される
ことを特徴とする、請求項1に記載の方法。
5. The method of claim 1, wherein the plaintext block is generated without encrypting the rest of the masked plaintext block.
【請求項6】前記平文ブロックから元の平文ブロックを
復元するステップをさらに含む、請求項1に記載の方
法。
6. The method of claim 1, further comprising recovering an original plaintext block from the plaintext block.
【請求項7】前記復元ステップが、 前記平文ブロックから前記マスクされた平文ブロックを
再生するステップを含み、前記再生ステップは前記マス
クされた平文ブロックの前記暗号化された部分を復号す
るステップを含み、 前記復元ステップは、 前記所定の変換を逆に行うことによって、再生されたマ
スクされた平文ブロックから元の平文ブロックを再生す
るステップを含むことを特徴とする、請求項6に記載の
方法。
7. The restoring step includes the step of regenerating the masked plaintext block from the plaintext block, and the regenerating step includes the step of decrypting the encrypted portion of the masked plaintext block. 7. The method of claim 6, wherein the decompressing step includes the step of reconstructing the original plaintext block from the reconstructed masked plaintext block by reversing the predetermined transformation.
【請求項8】前記暗号化プロシージャが、公開暗号化鍵
と公開復号鍵とを有する対称暗号化プロシージャを含む
ことを特徴とする、請求項1に記載の方法。
8. The method of claim 1, wherein the encryption procedure comprises a symmetric encryption procedure having a public encryption key and a public decryption key.
【請求項9】前記暗号化プロシージャが楕円曲線プロシ
ージャを含むことを特徴とする、請求項1に記載の方
法。
9. Method according to claim 1, characterized in that the encryption procedure comprises an elliptic curve procedure.
【請求項10】前記平文ブロックが第1および第2の部
分を含み、前記変換ステップが、 前記第2の部分を使用して前記第1の部分をマスクして
中間段階の第1の部分を生成するステップと、 前記中間段階の第1の部分を使用して前記第2の部分を
マスクしてマスクされた第2の部分を生成するステップ
と、 前記マスクされた第2の部分を使用して前記中間段階の
第1の部分をマスクしてマスクされた第1の部分を生成
するステップとを含み、前記マスクされた部分のうちの
一方を使用して前記マスクされた平文ブロックの第1の
部分が生成され、前記マスクされた部分のうちの他方を
使用して前記マスクされた平文ブロックの第2の部分が
生成されることを特徴とする、請求項1に記載の方法。
10. The plaintext block includes first and second portions, and the transforming step masks the first portion with the second portion to obtain a first portion of an intermediate stage. Producing a masked second portion using the first portion of the intermediate step to produce a masked second portion, and using the masked second portion. And masking the first portion of the intermediate stage to produce a masked first portion, the first of the masked plaintext blocks using one of the masked portions. 2. The method of claim 1, wherein the second portion of the masked plaintext block is generated using the other of the masked portions.
【請求項11】前記マスキング・ステップのうちの少な
くとも1つのステップが、 前記部分のうちの一方を前記鍵ブロックの外部の付加デ
ータと連結して拡張された部分を生成するステップと、 前記部分のうちの他方を前記拡張された部分を使用して
マスクするステップとを含むことを特徴とする、請求項
10に記載の方法。
11. At least one of the masking steps comprises concatenating one of the portions with additional data external to the key block to produce an extended portion; Masking the other of the two using the expanded portion.
【請求項12】前記マスクされた第1の部分が前記マス
クされた平文ブロックの前記第1の部分を形成し、前記
マスクされた第2の部分が前記マスクされた平文ブロッ
クの前記第2の部分を形成することを特徴とする、請求
項10に記載の方法。
12. The masked first portion forms the first portion of the masked plaintext block and the masked second portion of the second portion of the masked plaintext block. Method according to claim 10, characterized in that it forms a part.
【請求項13】前記平文ブロックが第1および第2の部
分を含み、前記変換ステップが、 第1の変換を使用して前記第2の部分から第1のマスク
値を生成するステップと、 前記第1のマスク値を前記第1の部分と結合して中間段
階の第1の部分を生成するステップと、 第2の変換を使用して前記中間段階の第1の部分から第
2のマスク値を生成するステップと、 前記第1のマスク値を前記第2の部分と結合してマスク
された第2の部分を生成するステップと、 第3の変換を使用して前記マスクされた第2の部分から
第3のマスク値を生成するステップと、 前記第3のマスク値を前記中間段階の第1の部分と結合
してマスクされた第1の部分を生成するステップとを含
み、前記マスクされた部分のうちの一方を使用して前記
マスクされた平文ブロックの第1の部分が生成され、前
記マスクされた部分のうちの他方を使用して前記マスク
された平文ブロックの第2の部分が生成されることを特
徴とする、請求項1に記載の方法。
13. The plaintext block includes first and second portions, the transforming step using a first transform to generate a first mask value from the second portion. Combining a first mask value with the first portion to produce an intermediate stage first portion; and using a second transformation to convert the intermediate stage first portion to a second mask value. Generating a masked second portion by combining the first mask value with the second portion, and using a third transform to generate the masked second portion. Generating a third mask value from the portion; and combining the third mask value with the first portion of the intermediate stage to generate a masked first portion. The masked flat surface using one of the The first part of a block is generated and the other of the masked parts is used to generate a second part of the masked plaintext block. Method.
【請求項14】前記マスク値が片方向関数を使用して生
成されることを特徴とする、請求項13に記載の方法。
14. The method of claim 13, wherein the mask value is generated using a one-way function.
【請求項15】前記結合ステップが、モジュロ加算を使
用してnビットのブロックを結合することによって行わ
れることを特徴とする、請求項13に記載の方法。
15. The method of claim 13, wherein the combining step is performed by combining n-bit blocks using modulo addition.
【請求項16】前記結合ステップがビット単位のモジュ
ロ2加算を使用して行われることを特徴とする、請求項
15に記載の方法。
16. The method of claim 15, wherein the combining step is performed using bitwise modulo-2 addition.
【請求項17】前記マスクされた平文ブロックが前記平
文ブロックと任意選択の付加データに応じて生成され、
前記方法が、平文ブロックの暗号化ごとに前記平文ブロ
ックと任意選択の付加データのうちの少なくとも一方を
固有に修正するステップをさらに含み、前記変換ステッ
プが前記修正された平文ブロックに対して行われること
を特徴とする、請求項1に記載の方法。
17. The masked plaintext block is generated in response to the plaintext block and optional additional data,
The method further comprises the step of uniquely modifying at least one of the plaintext block and optional additional data for each encryption of the plaintext block, the converting step being performed on the modified plaintext block. The method according to claim 1, characterized in that
【請求項18】ブロック暗号化プロシージャを使用して
平文ブロックを暗号化する方法であって、 元の平文ブロックが前記マスクされた平文ブロックおよ
び任意選択の付加データから復元可能であるように定義
された所定の可逆変換を使用して、マスクされた平文ブ
ロックを前記平文ブロックと任意選択の付加データに応
じて生成するステップと、 前記マスクされた平文ブロックの少なくとも一部を前記
暗号化プロシージャを使用して暗号化して暗号文ブロッ
クを生成するステップと、 平文ブロックの暗号化ごとに、前記マスクされた平文ブ
ロックの生成の前に前記平文ブロックと前記任意選択の
付加データのうちの少なくとも一方を固有に修正するス
テップとを含む方法。
18. A method of encrypting a plaintext block using a block encryption procedure, the original plaintext block being defined to be recoverable from the masked plaintext block and optional additional data. Generating a masked plaintext block according to the plaintext block and optional additional data using a predetermined reversible transformation, and using at least a portion of the masked plaintext block using the encryption procedure. And then encrypting to generate a ciphertext block, and for each encryption of the plaintext block, at least one of the plaintext block and the optional additional data is unique before the generation of the masked plaintext block. And a step of modifying.
【請求項19】平文ブロックの暗号化ごとに前記マスク
された平文ブロックの生成の前に前記平文ブロックが固
有に修正されることを特徴とする、請求項18に記載の
方法。
19. The method of claim 18, wherein each plaintext block encryption uniquely modifies the plaintext block prior to the generation of the masked plaintext block.
【請求項20】平文ブロックの暗号化ごとに前記マスク
された平文ブロックの生成の前に前記付加データが固有
に修正されることを特徴とする、請求項18に記載の方
法。
20. The method of claim 18, wherein the additional data is uniquely modified prior to the generation of the masked plaintext block for each plaintext block encryption.
【請求項21】前記平文ブロックと前記任意選択の付加
データのうちの前記少なくとも一方が、平文ブロックの
暗号化ごとに増加するカウントを含むことを特徴とす
る、請求項18に記載の方法。
21. The method of claim 18, wherein the at least one of the plaintext block and the optional additional data comprises a count that increases with each encryption of the plaintext block.
【請求項22】前記平文ブロックと前記任意選択の付加
データのうちの前記少なくとも一方が、平文ブロックの
暗号化ごとに異なるタイム・スタンプを含むことを特徴
とする、請求項18に記載の方法。
22. The method of claim 18, wherein the at least one of the plaintext block and the optional additional data includes a different time stamp for each encryption of the plaintext block.
【請求項23】前記平文ブロックと前記任意選択の付加
データのうちの前記少なくとも一方が、平文ブロックの
暗号化ごとにランダムに生成される値を含むことを特徴
とする、請求項18に記載の方法。
23. The method of claim 18, wherein the at least one of the plaintext block and the optional additional data includes a value randomly generated for each encryption of the plaintext block. Method.
【請求項24】平文ブロックよりも小さいブロック・サ
イズを有するブロック暗号化プロシージャを使用して前
記平文データ・ブロックを暗号化する装置であって、 マスクされた平文ブロックの各ビットが元の平文ブロッ
クの1つ1つのビットに依存するように定義された所定
の可逆変換を使用して前記平文ブロックを前記マスクさ
れた平文ブロックに変換する手段と、 前記暗号化プロシージャを使用して前記ブロック・サイ
ズを有する前記マスクされた平文ブロックの一部を暗号
化して、前記マスクされた平文ブロックの暗号化された
部分を生成する手段と、 前記マスクされた平文ブロックの前記暗号化された部分
と前記マスクされた平文ブロックの残りの部分とから暗
号文ブロックを生成する手段とを含む装置。
24. An apparatus for encrypting a plaintext data block using a block encryption procedure having a block size smaller than the plaintext block, each bit of the masked plaintext block being the original plaintext block. Means for transforming the plaintext block into the masked plaintext block using a predetermined lossless transformation defined to depend on each and every bit of the block size of the block using the encryption procedure Means for encrypting a portion of the masked plaintext block to generate an encrypted portion of the masked plaintext block, and the encrypted portion of the masked plaintext block and the mask Means for generating a ciphertext block from the rest of the encrypted plaintext block.
【請求項25】前記平文ブロックが第1および第2の部
分を含み、前記変換手段が、 前記第2の部分を使用して前記第1の部分をマスクして
中間段階の第1の部分を生成する手段と、 前記中間段階の第1の部分を使用して前記第2の部分を
マスクしてマスクされた第2の部分を生成する手段と、 前記マスクされた第2の部分を使用して前記中間段階の
第1の部分をマスクしてマスクされた第1の部分を生成
する手段とを含み、前記マスクされた部分のうちの一方
を使用して前記マスクされた平文ブロックの第1の部分
が生成され、前記マスクされた部分のうちの他方を使用
して前記マスクされた平文ブロックの第2の部分が生成
されることを特徴とする、請求項24に記載の装置。
25. The plaintext block includes first and second portions, and the converting means masks the first portion using the second portion to form a first portion of an intermediate stage. Means for generating, a means for masking the second portion using the first portion of the intermediate stage to generate a masked second portion, and using the masked second portion Means for masking the first portion of the intermediate stage to produce a masked first portion, the first of the masked plaintext blocks using one of the masked portions. 25. The apparatus of claim 24, wherein the second portion of the masked plaintext block is generated using the other of the masked portions.
【請求項26】前記平文ブロックが第1および第2の部
分を含み、前記変換手段が、 第1の変換を使用して前記第2の部分から第1のマスク
値を生成する手段と、 前記第1のマスク値を前記第1の部分と結合して中間段
階の第1の部分を生成する手段と、 第2の変換を使用して前記中間段階の第1の部分から第
2のマスク値を生成する手段と、 前記第1のマスク値を前記第2の部分と結合してマスク
された第2の部分を生成する手段と、 第3の変換を使用して前記マスクされた第2の部分から
第3のマスク値を生成する手段と、 前記第3のマスク値を前記中間段階の第1の部分と結合
してマスクされた第1の部分を生成する手段とを含み、
前記マスクされた部分のうちの一方を使用して前記マス
クされた平文ブロックの第1の部分が生成され、前記マ
スクされた部分のうちの他方を使用して前記マスクされ
た平文ブロックの第2の部分が生成されることを特徴と
する、請求項24に記載の装置。
26. The plaintext block includes first and second portions, the transforming means generating a first mask value from the second portion using a first transform; Means for combining a first mask value with the first portion to produce a first portion of the intermediate stage; and a second transform to use the second mask value from the first portion of the intermediate stage. Generating a masked second portion by combining the first mask value with the second portion to generate a masked second portion; Means for generating a third mask value from the portion, and means for combining the third mask value with the first portion of the intermediate stage to generate a masked first portion,
One of the masked portions is used to generate a first portion of the masked plaintext block and the other of the masked portions is used to generate a second portion of the masked plaintext block. 25. The device according to claim 24, characterized in that the parts are generated.
【請求項27】ブロック暗号化プロシージャを使用して
平文ブロックを暗号化する装置であって、 元の平文ブロックが前記マスクされた平文ブロックおよ
び任意選択の付加データから復元可能であるように定義
された所定の可逆変換を使用して、マスクされた平文ブ
ロックを前記平文ブロックと任意選択の付加データに応
じて生成する手段と、 前記マスクされた平文ブロックの少なくとも一部を前記
暗号化プロシージャを使用して暗号化して暗号文ブロッ
クを生成する手段と、 平文ブロックの暗号化ごとに、前記マスクされた平文ブ
ロックの生成の前に前記平文ブロックと前記任意選択の
付加データのうちの少なくとも一方を固有に修正する手
段とを含む装置。
27. An apparatus for encrypting a plaintext block using a block encryption procedure, the original plaintext block being defined to be recoverable from the masked plaintext block and optional additional data. Means for generating a masked plaintext block according to the plaintext block and optional additional data using a predetermined reversible transformation, and using the encryption procedure for at least a portion of the masked plaintext block And encrypting each of the plaintext blocks to generate a ciphertext block by uniquely encrypting at least one of the plaintext block and the optional additional data before generating the masked plaintext block. And a means for modifying the device.
【請求項28】平文ブロックより小さいブロック・サイ
ズを有するブロック暗号化プロシージャを使用して前記
平文データ・ブロックを暗号化する方法ステップを実行
するために機械によって実行可能な命令のプログラムを
有形に実施する、機械によって読取り可能なプログラム
記憶装置であって、前記方法ステップは、 マスクされた平文ブロックの各ビットが元の平文ブロッ
クの1つ1つのビットに依存するように定義された所定
の可逆変換を使用して前記平文ブロックを前記マスクさ
れた平文ブロックに変換するステップと、 前記暗号化プロシージャを使用して前記ブロック・サイ
ズを有する前記マスクされた平文ブロックの一部を暗号
化して、前記マスクされた平文ブロックの暗号化された
部分を生成するステップと、 前記マスクされた平文ブロックの前記暗号化された部分
と前記マスクされた平文ブロックの残りの部分とから暗
号文ブロックを生成するステップとを含む、プログラム
記憶装置。
28. A tangible implementation of a program of machine-executable instructions for performing the method steps of encrypting a block of plaintext data using a block encryption procedure having a block size smaller than a plaintext block. A machine readable program storage device comprising: a predetermined reversible transformation defined such that each bit of the masked plaintext block depends on each and every bit of the original plaintext block. Transforming the plaintext block into the masked plaintext block using: and encrypting a portion of the masked plaintext block having the block size using the encryption procedure to obtain the mask. Generating an encrypted part of the encrypted plaintext block, said masked And and generating a ciphertext block from said encrypted part of the plaintext block with the rest of the masked plaintext block, a program storage device.
【請求項29】ブロック暗号化プロシージャを使用して
平文ブロックを暗号化する方法ステップを実行するため
に、機械によって実行可能な命令のプログラムを有形に
実施する、機械によって実行可能なプログラム記憶装置
であって、前記方法ステップは、 元の平文ブロックが前記マスクされた平文ブロックと任
意選択の付加データとから復元可能なように定義された
所定の可逆変換を使用して、前記平文ブロックおよび任
意の付加データに応じてマスクされた平文ブロックを生
成するステップと、 前記暗号化プロシージャを使用して前記マスクされた平
文ブロックの少なくとも一部を暗号化して暗号文ブロッ
クを生成するステップと、 平文ブロックの暗号化ごとに前記マスクされた平文ブロ
ックの生成の前に前記平文ブロックと前記任意選択の付
加データのうちの少なくとも一方を固有に修正するステ
ップとを含む、プログラム記憶装置。
29. A machine-executable program storage device tangibly embodying a program of machine-executable instructions for performing the method steps of encrypting a plaintext block using a block encryption procedure. Wherein the method steps use a predetermined lossless transform defined such that the original plaintext block is recoverable from the masked plaintext block and optional additional data. Generating a masked plaintext block according to additional data; encrypting at least a portion of the masked plaintext block using the encryption procedure to generate a ciphertext block; The plaintext block and the arbitrary block before the generation of the masked plaintext block for each encryption. At least one of-option of additional data and correcting the specific program storage device.
【請求項30】ブロック暗号化プロシージャを使用して
平文ブロックを暗号化する方法であって、 元の平文ブロックが前記マスクされた平文ブロックと任
意選択の付加データとから復元可能なように定義された
所定の可逆変換を使用して前記平文ブロックと付加デー
タに応じてマスクされた平文ブロックを生成するステッ
プと、 前記暗号化プロシージャを使用して前記マスクされた平
文ブロックの少なくとも一部を暗号化して暗号文ブロッ
クを生成するステップとを含む方法。
30. A method of encrypting a plaintext block using a block encryption procedure, wherein an original plaintext block is defined so as to be recoverable from the masked plaintext block and optional additional data. Generating a masked plaintext block according to the plaintext block and additional data using a predetermined reversible transformation, and encrypting at least a part of the masked plaintext block using the encryption procedure. And generating a ciphertext block.
JP9029165A 1996-02-20 1997-02-13 Encoding method and device therefor Pending JPH09230787A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/603,771 US5870470A (en) 1996-02-20 1996-02-20 Method and apparatus for encrypting long blocks using a short-block encryption procedure
US08/603771 1996-02-20

Publications (1)

Publication Number Publication Date
JPH09230787A true JPH09230787A (en) 1997-09-05

Family

ID=24416843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9029165A Pending JPH09230787A (en) 1996-02-20 1997-02-13 Encoding method and device therefor

Country Status (4)

Country Link
US (2) US5870470A (en)
EP (1) EP0792041B1 (en)
JP (1) JPH09230787A (en)
DE (1) DE69739887D1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519527A (en) * 2002-03-07 2005-06-30 アクサルト・エス・アー How to securely protect an electronic cryptographic assembly with a private key
JP2006311383A (en) * 2005-04-28 2006-11-09 Trusted Solutions Kk Data managing method, data management system and data managing device
JP5964460B2 (en) * 2013-01-11 2016-08-03 株式会社日立製作所 Data encryption storage system
JPWO2016088453A1 (en) * 2014-12-04 2017-09-14 日本電気株式会社 Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program
JP2020109938A (en) * 2018-11-16 2020-07-16 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft Computer-implemented method for error-correction encoding and encryption of file

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064738A (en) * 1996-12-10 2000-05-16 The Research Foundation Of State University Of New York Method for encrypting and decrypting data using chaotic maps
GB2321741B (en) 1997-02-03 2000-10-04 Certicom Corp Data card verification system
US6144739A (en) * 1998-01-20 2000-11-07 Motorola, Inc. Computer network protection using cryptographic sealing software agents and objects
JP3812123B2 (en) * 1998-02-12 2006-08-23 富士ゼロックス株式会社 Authentication method and apparatus
US5974144A (en) * 1998-02-25 1999-10-26 Cipheractive Ltd. System for encryption of partitioned data blocks utilizing public key methods and random numbers
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6470454B1 (en) * 1998-03-31 2002-10-22 International Business Machines Corporation Method and apparatus for establishing computer configuration protection passwords for protecting computer configurations
US6504941B2 (en) * 1998-04-30 2003-01-07 Hewlett-Packard Company Method and apparatus for digital watermarking of images
US6266412B1 (en) * 1998-06-15 2001-07-24 Lucent Technologies Inc. Encrypting speech coder
JP3600454B2 (en) * 1998-08-20 2004-12-15 株式会社東芝 Encryption / decryption device, encryption / decryption method, and program storage medium therefor
FR2789776B1 (en) * 1999-02-17 2001-04-06 Gemplus Card Int COUNTER-MEASUREMENT METHOD IN AN ELECTRONIC COMPONENT USING A SECRET KEY CRYPTOGRAPHY ALGORITHM
US6668323B1 (en) 1999-03-03 2003-12-23 International Business Machines Corporation Method and system for password protection of a data processing system that permit a user-selected password to be recovered
US6715077B1 (en) * 1999-03-23 2004-03-30 International Business Machines Corporation System and method to support varying maximum cryptographic strength for common data security architecture (CDSA) applications
US6697490B1 (en) * 1999-10-19 2004-02-24 Lucent Technologies Inc. Automatic resynchronization of crypto-sync information
AU2040801A (en) * 1999-12-03 2001-06-12 Cipheractive Communication Security Ltd. Encryption of partitioned data blocks utilizing public key methods and random numbers
US6865550B1 (en) * 2000-02-03 2005-03-08 Eastman Kodak Company System for secure distribution and playback of digital data
US6978378B1 (en) 2000-05-12 2005-12-20 Bluetie, Inc. Secure file transfer system
US8234203B1 (en) 2000-05-12 2012-07-31 Adventive, Inc. E-commerce system including online automatable inventory monitor and control system
US7613917B1 (en) 2000-09-18 2009-11-03 Navteq North America, Llc Method and system for mass distribution of geographic data for navigation systems
US6768942B1 (en) * 2000-09-18 2004-07-27 Navigation Technologies Corp. Navigation system with decryption functions and secure geographic database
JP3770584B2 (en) * 2000-10-31 2006-04-26 シャープ株式会社 Encryption key generation circuit
JP2002149396A (en) * 2000-11-07 2002-05-24 Hitachi Ltd Data processor, semiconductor integrated circuit and cpu
FR2820576B1 (en) * 2001-02-08 2003-06-20 St Microelectronics Sa ENCRYPTION METHOD PROTECTED AGAINST ENERGY CONSUMPTION ANALYSIS, AND COMPONENT USING SUCH AN ENCRYPTION METHOD
JP4596686B2 (en) * 2001-06-13 2010-12-08 富士通株式会社 Secure encryption against DPA
DE10129285C2 (en) * 2001-06-18 2003-01-09 Hans-Joachim Mueschenborn Encryption procedure with arbitrary selectable one-time keys
GB2377514B (en) * 2001-07-05 2005-04-27 Hewlett Packard Co Document encryption
GB2374260B (en) 2001-10-12 2003-08-13 F Secure Oyj Data encryption
US8204929B2 (en) * 2001-10-25 2012-06-19 International Business Machines Corporation Hiding sensitive information
CA2364174A1 (en) * 2001-11-27 2003-05-27 Bayer Inc. Filled elastomeric butyl compounds with improved scorch safety
AU2003251803A1 (en) * 2002-07-09 2004-01-23 Kaleidescape, Inc. Content and key distribution system for digital content representing media streams
US7274792B2 (en) * 2002-08-09 2007-09-25 Broadcom Corporation Methods and apparatus for initialization vector processing
RU2003131278A (en) * 2002-10-29 2005-04-20 Хай-О Информтех Эсдиэн Биэйчди (MY) DATA ENCRYPTION METHOD
DE10303723B4 (en) * 2003-01-30 2006-02-16 Infineon Technologies Ag Apparatus and method for calculating encrypted data from unencrypted data or unencrypted data from encrypted data
WO2004070585A2 (en) * 2003-01-31 2004-08-19 Kaleidescape, Inc. Detecting collusion among multiple recipients of fingerprinted information
US7529367B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7392400B2 (en) * 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7536560B2 (en) * 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US8060755B2 (en) * 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7502943B2 (en) * 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7519833B2 (en) * 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7542566B2 (en) * 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7539876B2 (en) * 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7529368B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7844053B2 (en) * 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7321910B2 (en) * 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7900055B2 (en) * 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7310421B2 (en) * 2003-10-06 2007-12-18 National Institute Of Information And Communications Technology Particular plaintext detector
FR2881900B1 (en) * 2005-02-09 2007-04-27 Algoril Holding Sa METHOD FOR CRYPTOGRAPHY OF PRIVATE KEY MESSAGES, AND APPLICATION TO A FACILITY
KR20070118589A (en) * 2005-02-11 2007-12-17 유니버셜 데이터 프로텍션 코퍼레이션 Method and system for microprocessor data security
US8995653B2 (en) * 2005-07-12 2015-03-31 International Business Machines Corporation Generating a secret key from an asymmetric private key
US20070177433A1 (en) * 2005-09-07 2007-08-02 Jean-Francois Poirier Method and system for data security of recording media
US20070083467A1 (en) * 2005-10-10 2007-04-12 Apple Computer, Inc. Partial encryption techniques for media data
US8260924B2 (en) 2006-05-03 2012-09-04 Bluetie, Inc. User load balancing systems and methods thereof
US8056082B2 (en) 2006-05-31 2011-11-08 Bluetie, Inc. Capacity management and predictive planning systems based on trended rate change of monitored factors and methods thereof
US9767460B2 (en) 2006-09-18 2017-09-19 Adventive, Inc. Methods for integrating revenue generating features within a software application and systems thereof
JP4154444B2 (en) * 2006-10-16 2008-09-24 シャープ株式会社 Information recording apparatus, information reproducing apparatus, program, and recording medium
US20080091726A1 (en) * 2006-10-16 2008-04-17 Bluetie, Inc. Methods for scheduling and completing reservations within an application and systems thereof
US8769279B2 (en) * 2006-10-17 2014-07-01 Verifone, Inc. System and method for variable length encryption
US20080097815A1 (en) * 2006-10-23 2008-04-24 Bluetie, Inc. Methods for employing temporary time zones and predictive locations and systems thereof
US10430845B2 (en) * 2006-10-23 2019-10-01 Adventive, Inc. Systems and methods for automated purchase requests
US20080098000A1 (en) * 2006-10-23 2008-04-24 Blue Tie, Inc. System and method for storing user data in a centralized database and intelligently reducing data entry
EP1921858A1 (en) * 2006-11-09 2008-05-14 Thomson Licensing Method and device for managing a transmission of keys
US20080120570A1 (en) * 2006-11-22 2008-05-22 Bluetie, Inc. Methods for managing windows within an internet environment and systems thereof
US20080137859A1 (en) * 2006-12-06 2008-06-12 Ramanathan Jagadeesan Public key passing
US9489177B2 (en) * 2008-02-25 2016-11-08 Adventive, Inc. Methods for integrating and managing one or more features in an application and systems thereof
US8601259B2 (en) * 2009-04-20 2013-12-03 Cleversafe, Inc. Securing data in a dispersed storage network using security sentinel value
US9274976B2 (en) * 2010-11-05 2016-03-01 Apple Inc. Code tampering protection for insecure environments
EP2974096A4 (en) * 2013-03-14 2016-11-09 Massachusetts Inst Technology Method and apparatus for secure communication
ES2613881B1 (en) * 2016-06-13 2018-04-02 Alvaro DIAZ BAÑO HYBRID METHOD OF ENCRYPTING AND DEFRYING ELECTRONIC DOCUMENTS
US10680801B2 (en) * 2017-11-15 2020-06-09 International Business Machines Corporation Data distribution against credential information leak
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
CN112035573A (en) * 2020-08-26 2020-12-04 深圳壹账通智能科技有限公司 Data processing method, device, node and storage medium based on block chain network
CN113630386B (en) * 2021-07-15 2023-05-09 金杉 Encryption and decryption method and device and communication system thereof

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3956615A (en) * 1974-06-25 1976-05-11 Ibm Corporation Transaction execution system with secure data storage and communications
DE69113245D1 (en) * 1991-03-14 1995-10-26 Omnisec Ag Regensdorf Public key encryption system using elliptical curves over rings.
US5351297A (en) * 1991-06-28 1994-09-27 Matsushita Electric Industrial Co., Ltd. Method of privacy communication using elliptic curves
US5272755A (en) * 1991-06-28 1993-12-21 Matsushita Electric Industrial Co., Ltd. Public key cryptosystem with an elliptic curve
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5159632A (en) * 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5351299A (en) * 1992-06-05 1994-09-27 Matsushita Electric Industrial Co., Ltd. Apparatus and method for data encryption with block selection keys and data encryption keys
US5442707A (en) * 1992-09-28 1995-08-15 Matsushita Electric Industrial Co., Ltd. Method for generating and verifying electronic signatures and privacy communication using elliptic curves
CA2150683C (en) * 1992-12-22 1999-09-07 Nicholas Demytko A cryptographic method
DE69322376T2 (en) * 1993-05-05 1999-05-06 Zunquan Liu Data encryption facility and method
US5425103A (en) * 1994-03-14 1995-06-13 Shaw; William Y. Variable-key cryptography system
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5696823A (en) * 1995-03-31 1997-12-09 Lucent Technologies Inc. High-bandwidth encryption system with low-bandwidth cryptographic modules
US5675653A (en) * 1995-11-06 1997-10-07 Nelson, Jr.; Douglas Valmore Method and apparatus for digital encryption
US5684876A (en) * 1995-11-15 1997-11-04 Scientific-Atlanta, Inc. Apparatus and method for cipher stealing when encrypting MPEG transport packets

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519527A (en) * 2002-03-07 2005-06-30 アクサルト・エス・アー How to securely protect an electronic cryptographic assembly with a private key
JP2006311383A (en) * 2005-04-28 2006-11-09 Trusted Solutions Kk Data managing method, data management system and data managing device
JP5964460B2 (en) * 2013-01-11 2016-08-03 株式会社日立製作所 Data encryption storage system
JPWO2016088453A1 (en) * 2014-12-04 2017-09-14 日本電気株式会社 Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program
JP2020109938A (en) * 2018-11-16 2020-07-16 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft Computer-implemented method for error-correction encoding and encryption of file
US11196447B2 (en) 2018-11-16 2021-12-07 Siemens Aktiengesellschaft Computer-implemented method for error-correction-encoding and encrypting of a file
JP2022071033A (en) * 2018-11-16 2022-05-13 シーメンス アクチエンゲゼルシヤフト Data communication system including computer which performs error correction encoding on file and encrypt file, and computer which performs error correction decoding on file and decrypt file

Also Published As

Publication number Publication date
US5987124A (en) 1999-11-16
EP0792041A3 (en) 2000-08-02
EP0792041B1 (en) 2010-05-26
US5870470A (en) 1999-02-09
DE69739887D1 (en) 2010-07-08
EP0792041A2 (en) 1997-08-27

Similar Documents

Publication Publication Date Title
US5870470A (en) Method and apparatus for encrypting long blocks using a short-block encryption procedure
Jutla Encryption modes with almost free message integrity
JP3901909B2 (en) ENCRYPTION DEVICE AND RECORDING MEDIUM CONTAINING PROGRAM
US7200227B2 (en) Method and apparatus for facilitating efficient authenticated encryption
US8503670B2 (en) Parallelizable integrity-aware encryption technique
US7110545B2 (en) Method and apparatus for symmetric-key encryption
JP4712017B2 (en) Message authentication code generation method using stream cipher, authentication encryption method using stream cipher, and authentication decryption method using stream cipher
US7054445B2 (en) Authentication method and schemes for data integrity protection
US7046802B2 (en) Method and apparatus for facilitating efficient authenticated encryption
US20020048364A1 (en) Parallel block encryption method and modes for data confidentiality and integrity protection
Nevelsteen et al. Software performance of universal hash functions
US7899184B2 (en) Ends-messaging protocol that recovers and has backward security
US8107620B2 (en) Simple and efficient one-pass authenticated encryption scheme
Jakobsson et al. Scramble all, encrypt small
JP4317593B2 (en) Data decorrelation method
KR100551992B1 (en) encryption/decryption method of application data
KR100388059B1 (en) Data encryption system and its method using asymmetric key encryption algorithm
JPH04335730A (en) Random ciphering communication system
CN113141248B (en) Threshold decryption method and system based on homomorphic encryption and readable storage medium
Blelloch Introduction to Cryptography
Barlow Symmetric encryption with multiple keys: techniques and applications
Piper Recent Developments in Cryptography
BSAFE Wireless Core