JPH10149102A - コード生成方法及びicカード - Google Patents
コード生成方法及びicカードInfo
- Publication number
- JPH10149102A JPH10149102A JP9329846A JP32984697A JPH10149102A JP H10149102 A JPH10149102 A JP H10149102A JP 9329846 A JP9329846 A JP 9329846A JP 32984697 A JP32984697 A JP 32984697A JP H10149102 A JPH10149102 A JP H10149102A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- data
- message
- key data
- cyclic shift
- 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.)
- Granted
Links
Abstract
(57)【要約】
【課題】32ビットマイクロコンピュータ向けの4バイ
ト基調の処理を行う認証コード生成方法及びICカード
を提供する。 【解決手段】メッセージから各々がnビット長の鍵デー
タK1〜K4を切り出し、初期値に対して、前記メッセ
ージから切り出した鍵データK1〜K4を用いて、合成
関数π4・π3・π2で規定される演算を含む処理を実
行することにより前記2nビット長の認証コードを生成
する。
ト基調の処理を行う認証コード生成方法及びICカード
を提供する。 【解決手段】メッセージから各々がnビット長の鍵デー
タK1〜K4を切り出し、初期値に対して、前記メッセ
ージから切り出した鍵データK1〜K4を用いて、合成
関数π4・π3・π2で規定される演算を含む処理を実
行することにより前記2nビット長の認証コードを生成
する。
Description
【0001】
【発明の属する技術分野】本発明は、コード生成方法及
びICカードに関する。
びICカードに関する。
【0002】
【従来の技術】従来の代表的な暗号アルゴリズムとして
は、DES(Data Encryption Standard)とFEAL
(Fast Encryption Standard)が知られており、DES
に関しては例えば、(1)小山他、「現代暗号理論」、
電子通信学会、pp.41〜49、昭和61年9月にお
いて、また、FEALに関しては、(2)清水他、「高
速データ暗号アルゴリズムFEAL」、電子通信学会論
文誌D、Vol.J70−D.No.7、pp.141
3〜1423、1987年7月において、それぞれ詳細
に述べられている。
は、DES(Data Encryption Standard)とFEAL
(Fast Encryption Standard)が知られており、DES
に関しては例えば、(1)小山他、「現代暗号理論」、
電子通信学会、pp.41〜49、昭和61年9月にお
いて、また、FEALに関しては、(2)清水他、「高
速データ暗号アルゴリズムFEAL」、電子通信学会論
文誌D、Vol.J70−D.No.7、pp.141
3〜1423、1987年7月において、それぞれ詳細
に述べられている。
【0003】先ず、DESの処理における非線形の計算
部分、つまりSボックスといわれる処理について説明す
る(上記(1)のp.45、図3−2とp46、図3−
3参照)。32ビットのRは、まず、表1に示す拡大型
転置表によって置き換えられると共に、一部のビットは
重複されて48ビットに拡大されている。
部分、つまりSボックスといわれる処理について説明す
る(上記(1)のp.45、図3−2とp46、図3−
3参照)。32ビットのRは、まず、表1に示す拡大型
転置表によって置き換えられると共に、一部のビットは
重複されて48ビットに拡大されている。
【0004】
【表1】
【0005】このようにして得られた48ビットのR
は、頭から4ビットごとにその後の2ビットを加えた次
のような6ビットずつの8組のブロックを形成してい
る。
は、頭から4ビットごとにその後の2ビットを加えた次
のような6ビットずつの8組のブロックを形成してい
る。
【0006】 r31 r1 r2 r3 r4 r5, r4 r5 r6 r7 r8 r9, r8 r9 r10 r11 r12 r13, r12 r13 ……, ……、r28 r29, r28 r29 r30 r31 r32 r1, この48ビットのR’は、同じく48ビットの鍵Kと排
他的論理和の演算を行ない、6ビットずつ8組に分割し
て、S1からS8までの8つのSボックスに入力する。
S1〜S8を選択関数と呼ぶ。これらのSボックスは、
6ビットを入力して4ビットを出力する。
他的論理和の演算を行ない、6ビットずつ8組に分割し
て、S1からS8までの8つのSボックスに入力する。
S1〜S8を選択関数と呼ぶ。これらのSボックスは、
6ビットを入力して4ビットを出力する。
【0007】例として、表2に一つのSボックスS1を
取り上げてその換字表を示す。
取り上げてその換字表を示す。
【0008】表2 拡大型転置表 E 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 一つのSボックスには、4種類(行番号0,1,2,
3)が用意され、この4種類の換字表のどれを用いるか
は、入力した6ビットのうち最初と最後のビットを用い
て換字表を選ぶ。そして選ばれた換字表にしたがって入
力した6ビットの中央の4ビットが換字される。具体的
な例として、S1に対して2進数の入力パターンが01
1011となっている場合、最初の0と最後の1で表わ
されている01、つまり行1(2進数01は10進数1
であるから)の換字表が選ばれる。次に中央の4ビット
のパターン1101(10進数13)で表わされる列1
3で指定され、この結果行1、列13で指定される値
5、つまり0101が出力されて4ビットの換字パター
ンとなる。DESではこのような処理f(R,K)を用
い一段の処理を構成し、これを16段繰り返す。
3)が用意され、この4種類の換字表のどれを用いるか
は、入力した6ビットのうち最初と最後のビットを用い
て換字表を選ぶ。そして選ばれた換字表にしたがって入
力した6ビットの中央の4ビットが換字される。具体的
な例として、S1に対して2進数の入力パターンが01
1011となっている場合、最初の0と最後の1で表わ
されている01、つまり行1(2進数01は10進数1
であるから)の換字表が選ばれる。次に中央の4ビット
のパターン1101(10進数13)で表わされる列1
3で指定され、この結果行1、列13で指定される値
5、つまり0101が出力されて4ビットの換字パター
ンとなる。DESではこのような処理f(R,K)を用
い一段の処理を構成し、これを16段繰り返す。
【0009】上記の処理例に見られるように、DESは
1ビット単位の処理が基本になっている。
1ビット単位の処理が基本になっている。
【0010】次にFEALの処理における非線形の計算
部分、つまり、関数Sを含んでいる部分について説明す
る(上記(2)のp.1416,図4及び図5参照)。
FEALの非線形部はDESの非線形部に比べ、数学的
な記述が簡単である。32ビットデータαは8ビットの
データα0,α1,α2,α3にそれぞれ分割された後、8
ビットの単位として、鍵データと排他的論理和がとられ
る。その後、所定の関数Sによる処理が実行される。
部分、つまり、関数Sを含んでいる部分について説明す
る(上記(2)のp.1416,図4及び図5参照)。
FEALの非線形部はDESの非線形部に比べ、数学的
な記述が簡単である。32ビットデータαは8ビットの
データα0,α1,α2,α3にそれぞれ分割された後、8
ビットの単位として、鍵データと排他的論理和がとられ
る。その後、所定の関数Sによる処理が実行される。
【0011】 関数S:S(x1+x2+δ)=Rot2(w) ただし、w=(x1+x2+δ)mod256 δ=0または1(定数) この処理f(α,β)を用い、一段の処理を構成し、こ
れが8段繰り返される。上記の処理に見られるように、
FEALは8ビット単位の処理が基本になっている。
れが8段繰り返される。上記の処理に見られるように、
FEALは8ビット単位の処理が基本になっている。
【0012】
【発明が解決しようとする課題】情報処理と通信技術の
進歩によるコンピュータ・ネットワークの普及化、大衆
化に伴い、データの不正使用や奪取等に対する情報セキ
ュリティを確保するため、伝送路上のデータやコンピュ
ータに蓄積されたデータを暗号化することは有効な対策
であると考えられる。
進歩によるコンピュータ・ネットワークの普及化、大衆
化に伴い、データの不正使用や奪取等に対する情報セキ
ュリティを確保するため、伝送路上のデータやコンピュ
ータに蓄積されたデータを暗号化することは有効な対策
であると考えられる。
【0013】昭和52年に、米国商務省標準局が暗号ア
ルゴリズムの標準として制定したDESは、データの暗
号化を行う一つの手段である。
ルゴリズムの標準として制定したDESは、データの暗
号化を行う一つの手段である。
【0014】ところが、DESはビット単位での処理が
たいへん多いため、バイト単位の処理を基調とするマイ
クロコンピュータのソフトで実現しようとすると、処理
に時間がかかり、実用的な速度が得られなかった。
たいへん多いため、バイト単位の処理を基調とするマイ
クロコンピュータのソフトで実現しようとすると、処理
に時間がかかり、実用的な速度が得られなかった。
【0015】この問題に対し、上記FEALは、1バイ
ト(8ビット)単位の処理を基調とするため、8ビット
マイクロコンピュータで実現する場合、DESに比べ数
倍以上の高速化を達成することができた。FEALによ
り、8ビットマイクロコンピュータのソフトを用いてあ
る程度実用的な速度が得られるようになったと考えられ
る。
ト(8ビット)単位の処理を基調とするため、8ビット
マイクロコンピュータで実現する場合、DESに比べ数
倍以上の高速化を達成することができた。FEALによ
り、8ビットマイクロコンピュータのソフトを用いてあ
る程度実用的な速度が得られるようになったと考えられ
る。
【0016】しかし、最近のマイクロエレクトロニクス
の技術の進歩によって、8ビットマイクロコンピュータ
よりも16ビットマイクロコンピュータ、さらに、16
ビットマイクロコンピュータよりも32ビットマイクロ
コンピュータが使われ出している。近い将来、32ビッ
トマイクロコンピュータが使われる割合がたいへん大き
くなると予想されている。32ビットマイクロコンピュ
ータの時代になると、さらに高速の暗号処理が要求され
るものと予想される。ところが、32ビットマイクロコ
ンピュータは4バイト基調の処理を行うため、1バイト
基調の8ビットマイクロコンピュータ用に設計されたF
EALを32ビットマイクロコンピュータで実現しよう
とすると非効率であった。
の技術の進歩によって、8ビットマイクロコンピュータ
よりも16ビットマイクロコンピュータ、さらに、16
ビットマイクロコンピュータよりも32ビットマイクロ
コンピュータが使われ出している。近い将来、32ビッ
トマイクロコンピュータが使われる割合がたいへん大き
くなると予想されている。32ビットマイクロコンピュ
ータの時代になると、さらに高速の暗号処理が要求され
るものと予想される。ところが、32ビットマイクロコ
ンピュータは4バイト基調の処理を行うため、1バイト
基調の8ビットマイクロコンピュータ用に設計されたF
EALを32ビットマイクロコンピュータで実現しよう
とすると非効率であった。
【0017】そこで、32ビットマイクロコンピュータ
向けの4バイト基調の処理を行う暗号アルゴリズムが望
まれていた。また、同様に32ビットマイクロコンピュ
ータ向けの4バイト基調の処理を行う認証コード生成ア
ルゴリズムが望まれていた。
向けの4バイト基調の処理を行う暗号アルゴリズムが望
まれていた。また、同様に32ビットマイクロコンピュ
ータ向けの4バイト基調の処理を行う認証コード生成ア
ルゴリズムが望まれていた。
【0018】本発明の目的は、32ビットマイクロコン
ピュータ向けの4バイト基調の処理を行う認証コード生
成方法及びICカードを提供することにある。
ピュータ向けの4バイト基調の処理を行う認証コード生
成方法及びICカードを提供することにある。
【0019】
【課題を解決するための手段】上記の問題点を解決する
ため、次の手段を用いる。
ため、次の手段を用いる。
【0020】すなわち、2nビット長の初期値をメッセ
ージを用いて2nビット長のコードに変換するコード生
成方法であって、前記メッセージから各々がnビット長
の鍵データK1〜K4を切り出し、π2(A,B)をB
と鍵データK1との加法演算と、第1のビット数での循
環シフトとを含む処理を行ない、さらにAとの加法演算
を行なったデータと、Bとの組を出力する関数とし、π
3(A,B)をAと、Aと鍵データK2との加法演算
と、第1と異なる第2のビット数での循環シフトと、鍵
データK3との加法演算と、第1及び第2の各々と異な
る第3のビット数での循環シフトとを含む処理を行な
い、さらにBとの加法演算を行なったデータとの組を出
力する関数とし、π4(A,B)をBと鍵データK4と
の加法演算を含む処理を行ない、さらにAとの加法演算
を行なったデータと、 Bとの組を出力する関数とし、
前記初期値に対して、前記メッセージから切り出した鍵
データK1〜K4を用いて、合成関数π4・π3・π2
で規定される演算を含む処理を実行することにより前記
2nビット長のコードを生成する。
ージを用いて2nビット長のコードに変換するコード生
成方法であって、前記メッセージから各々がnビット長
の鍵データK1〜K4を切り出し、π2(A,B)をB
と鍵データK1との加法演算と、第1のビット数での循
環シフトとを含む処理を行ない、さらにAとの加法演算
を行なったデータと、Bとの組を出力する関数とし、π
3(A,B)をAと、Aと鍵データK2との加法演算
と、第1と異なる第2のビット数での循環シフトと、鍵
データK3との加法演算と、第1及び第2の各々と異な
る第3のビット数での循環シフトとを含む処理を行な
い、さらにBとの加法演算を行なったデータとの組を出
力する関数とし、π4(A,B)をBと鍵データK4と
の加法演算を含む処理を行ない、さらにAとの加法演算
を行なったデータと、 Bとの組を出力する関数とし、
前記初期値に対して、前記メッセージから切り出した鍵
データK1〜K4を用いて、合成関数π4・π3・π2
で規定される演算を含む処理を実行することにより前記
2nビット長のコードを生成する。
【0021】これにより、32ビットマイクロコンピュ
ータを用いて、1回の基本命令で32ビットのデータが
換字または転置されるので、コード生成を高速に行うこ
とができる。
ータを用いて、1回の基本命令で32ビットのデータが
換字または転置されるので、コード生成を高速に行うこ
とができる。
【0022】
(1)第1の実施例 図1は、本発明の一実施例である。
【0023】図1において、64ビットの平文101と
64ビット×4=256ビットの鍵データ100が32
ビットマイクロコンピュータに入力され、その後、プロ
グラム103内の命令の順に32ビットマイクロコンピ
ュータ102において暗号変換され、その結果として6
4ビットの暗号文104が出力される。
64ビット×4=256ビットの鍵データ100が32
ビットマイクロコンピュータに入力され、その後、プロ
グラム103内の命令の順に32ビットマイクロコンピ
ュータ102において暗号変換され、その結果として6
4ビットの暗号文104が出力される。
【0024】図2は、図1の32ビットマイクロコンピ
ュータ102とプログラム103において実行される暗
号変換処理のフローを示している。
ュータ102とプログラム103において実行される暗
号変換処理のフローを示している。
【0025】201:入力されたデータMは上位32ビ
ットM1と下位32ビットM2に分割される。
ットM1と下位32ビットM2に分割される。
【0026】202:M1とM2のビット対応の排他的
論和がとられる。
論和がとられる。
【0027】WORK2 ← M1 (+) M2 以下、(+)は同様の処理を示すものとする。なお、図
中では、排他的論理和は、○と+とを重ね合わせた記号
で示している。
中では、排他的論理和は、○と+とを重ね合わせた記号
で示している。
【0028】203:WORK2と鍵データK1のモジ
ュロ加算が行われる。
ュロ加算が行われる。
【0029】x ← WORK2 + K1 ここに、x+K1はxとK1の和を232で割った余りを
とるという、232を法としたモジュロ加算を示してい
る。
とるという、232を法としたモジュロ加算を示してい
る。
【0030】以下、+は同様の処理を示すものとする。
【0031】204:xを左へ2ビット循環シフトした
後、そのデータとxと1のモジュロ加算をとる。
後、そのデータとxと1のモジュロ加算をとる。
【0032】x ← Rot2(x)+x+1 以下、Rot2は同様の処理を示すものとする。
【0033】105:xを左へ4ビット循環シフトした
後、そのデータとxとの排他的論理和をとる。
後、そのデータとxとの排他的論理和をとる。
【0034】x←Rot4(x)(+)x 以下、Rot4は同様の処理を示すものとする。
【0035】206:WORK1←x(+)M1 207:x←x+K2 208:x←Rot2(x)+x+1 y←x 209:x←Rot3(x)(+)x ここに、Rot3(x)はxを左へ8ビット循環シフト
させることを示す。
させることを示す。
【0036】210:x←x+K3 211:x←Rot2(x)+x+1 212:x←Rot16(x)+(x∧y) ここに、Rot16(x)はxを左へ16ビット循環シ
フトすることを示す。また、x∧yはxとyとのビット
対応の論理積をとることを示す。
フトすることを示す。また、x∧yはxとyとのビット
対応の論理積をとることを示す。
【0037】213:WORK2←x(+)WORK2 214:x←WORK2+K4 215:x←Rot2(x)+x 216:WORK1←WORK1(+)x 217:WORK2←WORK2(+)WORK1 218:WORK1を出力データの上位32ビット、W
ORK2を出力データの下位32ビットとして出力す
る。
ORK2を出力データの下位32ビットとして出力す
る。
【0038】以上、図2に示すように関数π1〜π4を
定義すると、本実施例は、 C=π1・π4・π3・π2・π1(M) というように合成関数で表すことができる。
定義すると、本実施例は、 C=π1・π4・π3・π2・π1(M) というように合成関数で表すことができる。
【0039】関数πi・πi(i=1〜4)はすべて、 πi・πi(x)=x というように同じ関数変換を2回繰り返すとともに戻る
という性質がある。
という性質がある。
【0040】したがって、復号関数として、 M=π1・π2・π3・π4・π1(C) を用いれば、暗号文Cをもとの平文Mに戻すことができ
る。
る。
【0041】(2)実施例の変形例1 上記実施例における変換関数π1からπ4までにあたる
処理を2回繰り返したものを暗号変換として用いてもよ
い、すなわち、暗号変換を、 C=π1・π4・π3・π2・π1・π4・π3・π2
・π1(M) としてもよい。
処理を2回繰り返したものを暗号変換として用いてもよ
い、すなわち、暗号変換を、 C=π1・π4・π3・π2・π1・π4・π3・π2
・π1(M) としてもよい。
【0042】このとき、復号変換の式は M=π1・π2・π3・π4・π1・π2・π3・π4
・π1(C) である。
・π1(C) である。
【0043】同様に、一般に本実施例をn回繰り返した
ものを暗号変換としてもよい。
ものを暗号変換としてもよい。
【0044】(3)実施例の変形例2 図4は、本発明の他の実施例である。
【0045】401:入力されたデータMは上位16ビ
ットM1と下位16ビットM2に分割される。
ットM1と下位16ビットM2に分割される。
【0046】402:M1とM2のビット対応の排他的
論理和がとられる。
論理和がとられる。
【0047】WORK2←M1+M2 以下、+は同様の処理を示すものとする。
【0048】403:xと鍵データK1のモジュロ減算
が行われる。
が行われる。
【0049】x←x−K1 ここに、x−K1はxとK1の差を216で割った余りを
とるという、216を法としたモジュロ減算を示してい
る。
とるという、216を法としたモジュロ減算を示してい
る。
【0050】以下、−は同様の処理を示すものとする。
【0051】404:xを左へ2ビット循環シフトした
後、そのデータと1のモジュロ減算を行う。
後、そのデータと1のモジュロ減算を行う。
【0052】x←Rot(x)−x−1 以下、Rot2は同様の処理を示すものとする。
【0053】405:xを左4ビット循環シフトした
後、そのデータとxとの排他的論理和をとる。
後、そのデータとxとの排他的論理和をとる。
【0054】x←Rot4(x)(+)x 以下、Rot4は同様の処理を示すものとする。
【0055】406:WORK1←x(+)M1 407:x←x−K2 y←x 408:x←Rot2(x)−x−1 409:Rot8(x)−(x∧y) ここに、Rot8(x)はxを左へ8ビット循環シフト
することを示す。また、x∧yはxとyとのビット対応
の論理積をとることを示す。
することを示す。また、x∧yはxとyとのビット対応
の論理積をとることを示す。
【0056】410:WORK2←x(+)WORK2 411:x←WORK2−K3 412:x←Rot2(x)−x−1 413:WORK1←WORK1(+)x 414:WORK2←WORK2(+)WORK1 415:WORK1を出力データの上位16ビット、W
ORK2を出力データの下位16ビットとして出力す
る。
ORK2を出力データの下位16ビットとして出力す
る。
【0057】(4)実施例の変形例3 図5は、本発明の他の実施例である。
【0058】501:入力されたデータMは上位8ビッ
トM1と下位8ビットM2に分割される。
トM1と下位8ビットM2に分割される。
【0059】502:M1とM2のビット対応の排他的
論和がとられる。
論和がとられる。
【0060】WORK2←M1(+)M2 以下、+は同様の処理を示すものとする。
【0061】503:xと鍵データK1のモジュロ加算
が行われる。
が行われる。
【0062】x←WORK2+K1 y←x ここに、x+K1はxとK1の差を28で割った余りを
とるという、28を法としたモジュロ加算を示してい
る。
とるという、28を法としたモジュロ加算を示してい
る。
【0063】以下、+は同様の処理を示すものとする。
【0064】504:xを左へ2ビット循環シフトした
後、そのデータとxと1のモジュロ加算を行う。
後、そのデータとxと1のモジュロ加算を行う。
【0065】x←Rot2(x)+x+1 以下、Rot2は同様の処理を示すものとする。
【0066】505:x←Rot4(x)+(x∧y) ここに、Rot4(x)はxを左へ4ビット循環シフト
することを示す。また、x∧yはxとyとのビット対応
の論理積をとることを示す。
することを示す。また、x∧yはxとyとのビット対応
の論理積をとることを示す。
【0067】506:WORK1←WORK1(+)x 507:x←WORK1+K2 508:x←Rot4(x)+x+1 509:WORK2←WORK2(+)x 510:WORK1←WORK1(+)WORK2 511:WORK1を出力データの上位8ビット、WO
RK2を出力データの下位8ビットとして出力する。
RK2を出力データの下位8ビットとして出力する。
【0068】(5)実施例の変形例4 図6は本発明の他の一実施例である。
【0069】(1)認証を行うメッセージ62を鍵デー
タとして、任意の初期値61を本発明によるアルゴリズ
ム63を用いて暗号化する。
タとして、任意の初期値61を本発明によるアルゴリズ
ム63を用いて暗号化する。
【0070】(2)暗号結果64を、(1)において用
いたメッセージの続きのデータにより再び暗号化し、メ
ッセージの終わりまでこの操作を繰り返す。
いたメッセージの続きのデータにより再び暗号化し、メ
ッセージの終わりまでこの操作を繰り返す。
【0071】(3)最終的な暗号結果をメッセージ認証
コード65として出力する。
コード65として出力する。
【0072】(6)実施例の変形例5 図7は本発明の他の実施例である。本ICカードは、メ
ッセージの認証コードを生成する。
ッセージの認証コードを生成する。
【0073】(1)メッセージの認証を行うために必要
な初期値76をI/O74を通して、ICカード71内
のマイクロコンピュータ72に送信する。
な初期値76をI/O74を通して、ICカード71内
のマイクロコンピュータ72に送信する。
【0074】(2)認証を行うメッセージ77を(1)
と同様にマイクロコンピュータ72に順次送信し、マイ
クロコンピュータ72は、メモリ73に記憶されている
暗号ソフト75により認証コード78を生成する。
と同様にマイクロコンピュータ72に順次送信し、マイ
クロコンピュータ72は、メモリ73に記憶されている
暗号ソフト75により認証コード78を生成する。
【0075】
【発明の効果】本実施例は、図3に示すような換字、転
置の繰返しを行っている。
置の繰返しを行っている。
【0076】つまり、図2に示す実施例、(203、2
04)、(207、208)、(210、211)、
(214、215)の処理は、 x←x+Ki x←Rot2(x)+(x)+1 の形となっており、これは、それぞれ、32ビットのデ
ータを4ビットずつのブロックに分割したとき、各ブロ
ック単位の換字処理を、上記2回のデータ変換により8
ブロック分一斉に行っていると見ることができる。
04)、(207、208)、(210、211)、
(214、215)の処理は、 x←x+Ki x←Rot2(x)+(x)+1 の形となっており、これは、それぞれ、32ビットのデ
ータを4ビットずつのブロックに分割したとき、各ブロ
ック単位の換字処理を、上記2回のデータ変換により8
ブロック分一斉に行っていると見ることができる。
【0077】ここに、4ビットのブロックデータ A=(a1,a2,a3,a4)、ただし、 ai=1 or 0(i=1〜4) が、 B=(b1,b2,b3,b4)、ただし、 bi=1 or 0(i=1〜4) に換字変換されるということは、プール代数の演算f
1、f2、f3、f4が存在して、 b1=f1(a1,a2,a3,a4) b2=f2(a1,a2,a3,a4) b3=f3(a1,a2,a3,a4) b4=f4(a1,a2,a3,a4) となることを示す。
1、f2、f3、f4が存在して、 b1=f1(a1,a2,a3,a4) b2=f2(a1,a2,a3,a4) b3=f3(a1,a2,a3,a4) b4=f4(a1,a2,a3,a4) となることを示す。
【0078】また、図2の205、209、212はそ
れぞれ、 (1)x←Rot4(x)(+)x (2)x←Rot8(x)(+)x (3)x←Rot16(x)+(x∧y) の処理を行っており、これらは、それぞれ、(1)4ビ
ット左循環シフトを行うという転置を行った後、さらに
換字を行うという処理、(2)8ビット左循環シフトを
行うという転置を行った後、さらに換字を行うという処
理、(3)16ビット左循環シフトを行うという処理を
示している。
れぞれ、 (1)x←Rot4(x)(+)x (2)x←Rot8(x)(+)x (3)x←Rot16(x)+(x∧y) の処理を行っており、これらは、それぞれ、(1)4ビ
ット左循環シフトを行うという転置を行った後、さらに
換字を行うという処理、(2)8ビット左循環シフトを
行うという転置を行った後、さらに換字を行うという処
理、(3)16ビット左循環シフトを行うという処理を
示している。
【0079】図3から明らかなように、最初の32ビッ
トのデータのうち、いかなるビットの変化も最後の32
ビットのデータすべてに影響を与えることが分かる。
トのデータのうち、いかなるビットの変化も最後の32
ビットのデータすべてに影響を与えることが分かる。
【0080】これにより、本実施例は、高度なランダム
性を持つ暗号変換を効率良く行うという効果が得られる
ことが分かる。
性を持つ暗号変換を効率良く行うという効果が得られる
ことが分かる。
【図1】本発明を実施する暗号変換装置の一実施例。
【図2】図1における暗号変換の詳細を示すフローチャ
ート。
ート。
【図3】本発明の実施例が効率的に換字変換、転置変換
を繰り返していることを示す説明図。
を繰り返していることを示す説明図。
【図4】16ビットマイクロコンピュータを用いた場合
の暗号変換の詳細を示すフローチャート。
の暗号変換の詳細を示すフローチャート。
【図5】8ビットマイクロコンピュータを用いた場合の
暗号変換の詳細を示すフローチャート。
暗号変換の詳細を示すフローチャート。
【図6】本発明による暗号アルゴリズムを用いてメッセ
ージ認証コードを生成する方法を示すフローチャート。
ージ認証コードを生成する方法を示すフローチャート。
【図7】本発明による暗号アルゴリズムを用いてメッセ
ージ認証コードを生成するICカードの構成図である。
ージ認証コードを生成するICカードの構成図である。
100:鍵データ、101:平文、102:32ビット
マイクロコンピュータ、103:プログラム、104:
暗号文。
マイクロコンピュータ、103:プログラム、104:
暗号文。
Claims (6)
- 【請求項1】2nビット長の初期値をメッセージを用い
て2nビット長のコードに変換するコード生成方法であ
って、 前記メッセージから各々がnビット長の鍵データK1〜
K4を切り出し、 π2(A,B)をBと鍵データK1との加法演算と、第
1のビット数での循環シフトとを含む処理を行ない、さ
らにAとの加法演算を行なったデータと、Bとの組を出
力する関数とし、 π3(A,B)をAと、Aと鍵データK2との加法演算
と、第1と異なる第2のビット数での循環シフトと、鍵
データK3との加法演算と、第1及び第2の各々と異な
る第3のビット数での循環シフトとを含む処理を行な
い、さらにBとの加法演算を行なったデータとの組を出
力する関数とし、 π4(A,B)をBと鍵データK4との加法演算を含む
処理を行ない、さらにAとの加法演算を行なったデータ
と、 Bとの組を出力する関数とし、 前記初期値に対して、前記メッセージから切り出した鍵
データK1〜K4を用いて、合成関数π4・π3・π2
で規定される演算を含む処理を実行することにより前記
2nビット長のコードを生成することを特徴とするコー
ド生成方法。 - 【請求項2】所定の初期値をメッセージを用いてコード
に変換するコード生成方法であって、 前記初期値に前記メッセージの第1の部分を用いて換字
処理を施すことにより第1の中間データを生成し、 該第1の中間データに循環シフト処理を所定の第1のビ
ット数施すことにより第2の中間データを生成し、 該第2の中間データに前記メッセージの第1の部分に続
く第2の部分を用いて換字処理を施すことにより第3の
中間データを生成し、 該第3の中間データに循環シフト処理を前記第1と異な
る所定の第2のビット数施すことにより第4の中間デー
タを生成する処理を前記変換は含むことを特徴とするコ
ード生成方法。 - 【請求項3】2nビット長の初期値をメッセージを用い
て2nビット長のコードに変換するICカードであっ
て、 前記メッセージから各々がnビット長の鍵データK1〜
K4を切り出す切り出し手段と、 π2(A,B)をBと鍵データK1との加法演算と、第
1のビット数での循環シフトとを含む処理を行ない、さ
らにAとの加法演算を行なったデータと、Bとの組を出
力する関数とし、 π3(A,B)をAと、Aと鍵データK2との加法演算
と、第1と異なる第2のビット数での循環シフトと、鍵
データK3との加法演算と、第1及び第2の各々と異な
る第3のビット数での循環シフトとを含む処理を行な
い、さらにBとの加法演算を行なったデータとの組を出
力する関数とし、 π4(A,B)をBと鍵データK4との加法演算を含む
処理を行ない、さらにAとの加法演算を行なったデータ
と、 Bとの組を出力する関数とし、 前記初期値に対して、前記切り出し手段によって切り出
された鍵データK1〜K4を用いて合成関数π4・π3
・π2で規定される演算を含む処理を実行することによ
り前記2nビット長のコードを生成する手段を有するこ
とを特徴とするICカード。 - 【請求項4】所定の初期値をメッセージを用いてコード
に変換するICカードであって、 前記初期値に前記メッセージの第1の部分を用いて換字
処理を施すことにより第1の中間データを生成する手段
と、 該第1の中間データに循環シフト処理を所定の第1のビ
ット数施すことにより第2の中間データを生成する手段
と、 該第2の中間データに前記メッセージの第1の部分に続
く第2の部分を用いて換字処理を施すことにより第3の
中間データを生成する手段と、 該第3の中間データに循環シフト処理を前記第1と異な
る所定の第2のビット数施すことにより第4の中間デー
タを生成する手段を有するICカード。 - 【請求項5】初期値をメッセージを用いてコードに変換
するコード生成方法であって、 前記変換は、 前記メッセージから鍵データK2、K3を切り出し、 前記初期値の一部と鍵データK2との加法演算を行な
い、演算結果に第1のビット数での循環シフトを行な
い、前記初期値の一部と鍵データK3との加法演算を行
ない、第1と異なる第2のビット数での循環シフトを行
なう処理を含むことを特徴とするコード生成方法。 - 【請求項6】所定の初期値をメッセージを用いてコード
に変換する変換手段を備えたICカードであって、 前記変換変換手段は、 前記メッセージから鍵データK2、K3を切り出す切り
出し手段と、 前記初期値の一部と鍵データK2との加法演算を行な
い、演算結果に第1のビット数での循環シフトを行な
い、前記初期値の一部と鍵データK3との加法演算を行
ない、第1と異なる第2のビット数での循環シフトを行
なう手段を含むことを特徴とするICカード。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9329846A JP2993487B2 (ja) | 1988-04-28 | 1997-04-28 | 情報処理装置、icカード及びコード生成方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9329841A JP2980085B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号化方法及び復号化方法 |
JP9329846A JP2993487B2 (ja) | 1988-04-28 | 1997-04-28 | 情報処理装置、icカード及びコード生成方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63103919A Division JP2760799B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号方式 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22132098A Division JP3277894B2 (ja) | 1988-04-28 | 1998-08-05 | 情報処理装置及びコード生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10149102A true JPH10149102A (ja) | 1998-06-02 |
JP2993487B2 JP2993487B2 (ja) | 1999-12-20 |
Family
ID=18225838
Family Applications (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9329843A Expired - Lifetime JP2870531B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号化及び復号化装置 |
JP9329842A Expired - Lifetime JP2798086B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号化及び復号化装置 |
JP20577199A Expired - Lifetime JP3275881B2 (ja) | 1988-04-28 | 1988-04-28 | コード生成方法及び装置 |
JP11205770A Pending JP2000035756A (ja) | 1988-04-28 | 1988-04-28 | 暗号化装置 |
JP9329841A Expired - Lifetime JP2980085B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号化方法及び復号化方法 |
JP9329844A Expired - Lifetime JP2798087B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号変換装置 |
JP2001310859A Pending JP2002182558A (ja) | 1988-04-28 | 1988-04-28 | 情報処理装置、コンピュータ・プログラム・プロダクト、コード生成方法及びicカード |
JP9329845A Expired - Lifetime JP2870532B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号変換装置 |
JP9329846A Expired - Lifetime JP2993487B2 (ja) | 1988-04-28 | 1997-04-28 | 情報処理装置、icカード及びコード生成方法 |
JP10221319A Pending JPH11109851A (ja) | 1988-04-28 | 1998-08-05 | コンピュータ・プログラム・プロダクト |
JP22132098A Expired - Lifetime JP3277894B2 (ja) | 1988-04-28 | 1998-08-05 | 情報処理装置及びコード生成方法 |
Family Applications Before (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9329843A Expired - Lifetime JP2870531B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号化及び復号化装置 |
JP9329842A Expired - Lifetime JP2798086B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号化及び復号化装置 |
JP20577199A Expired - Lifetime JP3275881B2 (ja) | 1988-04-28 | 1988-04-28 | コード生成方法及び装置 |
JP11205770A Pending JP2000035756A (ja) | 1988-04-28 | 1988-04-28 | 暗号化装置 |
JP9329841A Expired - Lifetime JP2980085B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号化方法及び復号化方法 |
JP9329844A Expired - Lifetime JP2798087B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号変換装置 |
JP2001310859A Pending JP2002182558A (ja) | 1988-04-28 | 1988-04-28 | 情報処理装置、コンピュータ・プログラム・プロダクト、コード生成方法及びicカード |
JP9329845A Expired - Lifetime JP2870532B2 (ja) | 1988-04-28 | 1988-04-28 | 暗号変換装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10221319A Pending JPH11109851A (ja) | 1988-04-28 | 1998-08-05 | コンピュータ・プログラム・プロダクト |
JP22132098A Expired - Lifetime JP3277894B2 (ja) | 1988-04-28 | 1998-08-05 | 情報処理装置及びコード生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (11) | JP2870531B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005309148A (ja) * | 2004-04-22 | 2005-11-04 | Hitachi Ltd | データ変換装置およびデータ変換方法 |
-
1988
- 1988-04-28 JP JP9329843A patent/JP2870531B2/ja not_active Expired - Lifetime
- 1988-04-28 JP JP9329842A patent/JP2798086B2/ja not_active Expired - Lifetime
- 1988-04-28 JP JP20577199A patent/JP3275881B2/ja not_active Expired - Lifetime
- 1988-04-28 JP JP11205770A patent/JP2000035756A/ja active Pending
- 1988-04-28 JP JP9329841A patent/JP2980085B2/ja not_active Expired - Lifetime
- 1988-04-28 JP JP9329844A patent/JP2798087B2/ja not_active Expired - Lifetime
- 1988-04-28 JP JP2001310859A patent/JP2002182558A/ja active Pending
- 1988-04-28 JP JP9329845A patent/JP2870532B2/ja not_active Expired - Lifetime
-
1997
- 1997-04-28 JP JP9329846A patent/JP2993487B2/ja not_active Expired - Lifetime
-
1998
- 1998-08-05 JP JP10221319A patent/JPH11109851A/ja active Pending
- 1998-08-05 JP JP22132098A patent/JP3277894B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2798086B2 (ja) | 1998-09-17 |
JP2798087B2 (ja) | 1998-09-17 |
JP2980085B2 (ja) | 1999-11-22 |
JPH10149100A (ja) | 1998-06-02 |
JP3275881B2 (ja) | 2002-04-22 |
JP2870532B2 (ja) | 1999-03-17 |
JPH10149101A (ja) | 1998-06-02 |
JPH11109851A (ja) | 1999-04-23 |
JP2002182558A (ja) | 2002-06-26 |
JP2000035755A (ja) | 2000-02-02 |
JPH10149099A (ja) | 1998-06-02 |
JP2993487B2 (ja) | 1999-12-20 |
JP2000035756A (ja) | 2000-02-02 |
JPH10149097A (ja) | 1998-06-02 |
JP3277894B2 (ja) | 2002-04-22 |
JP2870531B2 (ja) | 1999-03-17 |
JPH10149098A (ja) | 1998-06-02 |
JPH11109852A (ja) | 1999-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2760799B2 (ja) | 暗号方式 | |
JP3225440B2 (ja) | デジタル信号ブロックの変換装置およびその使用方法 | |
JP4127472B2 (ja) | データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体 | |
JP5000365B2 (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
US7190791B2 (en) | Method of encryption using multi-key process to create a variable-length key | |
JPH04365240A (ja) | 暗号化方式 | |
US20070064933A1 (en) | Method of symmetric key data encryption | |
JPH1173101A (ja) | 高速ブロック暗号化方法,及び,コンピュータで使用可能な媒体 | |
JPH08248879A (ja) | 2つの鍵を使用して暗号化する方法および装置 | |
JP2002023622A (ja) | 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体 | |
JPH10240500A (ja) | 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム | |
JP2950485B2 (ja) | ストリーム暗号処理装置 | |
JP4515716B2 (ja) | 拡大鍵生成装置、暗号化装置および暗号化システム | |
US6035042A (en) | High speed and method of providing high speed table generation for block encryption | |
JP2798087B2 (ja) | 暗号変換装置 | |
KR101076747B1 (ko) | 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치 | |
JPH10153954A (ja) | 暗号装置 | |
JPH1152850A (ja) | 暗号変換方法および装置 | |
JP2008046151A (ja) | 暗号処理方法 | |
JPH10153955A (ja) | 暗号装置 | |
JPH10214026A (ja) | 電子署名方法 | |
JP2003216025A (ja) | 非線形変換装置及び非線形変換方法及び非線形変換プログラム及び加算方法 | |
JPH10224339A (ja) | データ・セキュリティ装置 | |
JP2003308011A (ja) | 暗号鍵生成装置、暗号鍵生成プログラムおよびそのプログラムを記録した記録媒体 | |
JP2000112348A (ja) | 暗号化装置、および復号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071022 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 9 |