JP2005027358A - 共通鍵暗号方法及び装置 - Google Patents
共通鍵暗号方法及び装置 Download PDFInfo
- Publication number
- JP2005027358A JP2005027358A JP2004309002A JP2004309002A JP2005027358A JP 2005027358 A JP2005027358 A JP 2005027358A JP 2004309002 A JP2004309002 A JP 2004309002A JP 2004309002 A JP2004309002 A JP 2004309002A JP 2005027358 A JP2005027358 A JP 2005027358A
- Authority
- JP
- Japan
- Prior art keywords
- block
- random number
- ciphertext
- plaintext
- common key
- 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
Images
Abstract
高速で,並列度の高い暗号処理と改ざん検出を実現できる共通鍵暗号技術を提供すること。
【解決手段】
暗号化したいデータに冗長性を付加し,その長さよりも真に長い長さの鍵ストリームにより暗号化し,暗号文を生成する。復号化では冗長性の復元を確認することで通信中の改ざんを検出することができる。改ざんの成功確率が評価されており,ブロック暗号よりも高速で,並列度が高く,実装規模を小さくできる。
【選択図】 図1
Description
L=n×b+t (tは0以上b未満の整数、nは0以上の整数) ビットとしたとき,平文の最後にビット文字列`0'を ((b-t) mod b) 個付加し,
冗長性Rを付加し,全体で
L+((b-t) mod b)+bビットの文字列とする。これはbの倍数である。
Fi=Pi^Ai, Ci=(Fi*Bi)^Fi-1(1≦i≦m).
得られたCiをならべ,一つの文字列としたものを暗号文Cとして出力する。ここで,演算子「*」,「^」は,それぞれ有限体F(2b)上での乗算,加算を示す。
得られたP'iをならべ,一つの文字列としたものを復号化結果P'として保存する。演算子「/」は有限体F(2b)上での除算を示す。
得られたCiをならべ,一つの文字列としたものを暗号文Cとして出力する。
得られたP'iから冗長性の部分を取り出し,決められた冗長性が得られたかどうかを検査する。もしそうであるなら,残りのP' iの部分をメッセージとして出力し,そうでないなら,非受理を出力する。
F(j+1) i=(F(j) i*Bj)^F(j) i-1(1≦j≦d),
Ci=F(d+1) i(1≦i≦m).
得られたCiをならべ,一つの文字列としたものを暗号文Cとして出力する。
F'(j) i=(F'(j+1) i^F'(j) i-1)/Bj(1≦j≦d),
P'i=Ai^F'(1) i (1≦i≦m).
得られたP' iから冗長性の部分を取り出し,決められた冗長性が得られたかどうかを検査する。もしそうであるなら,残りのP' iの部分をメッセージとして出力し,そうでないなら,非受理を出力する。
M1=AL^(AR*BL), M2=AR^(M1*BR), M3=M1^(M2*BL),
によりM3||M2を出力する関数に置き換える(BLとBR,ALとAR,M2とM3は,それぞれ入れ替わっても可)。これらの演算は自己逆演算となっており,復号化の際,同じ演算を用いることができる。
(R1||R2||R3||…||Rt)を平文としてさらに送信者受信者間で共有された冗長性Rを用いて暗号化し,暗号文Ct+1を得る。これら,暗号文ブロックの列の連結
(C1||C2||C3||…||Ct+1)を最終的な暗号文Cとする。
図1はネットワーク10001によって接続されたコンピュータA10002,コンピュータB10003を含む,コンピュータA10002からコンピュータB10003への暗号通信を目的としたシステム構成を示すものである。コンピュータA10002は内部に演算装置(以下CPUという)10004,記憶装置(揮発性,不揮発性を問わない。以下RAMという)10005,ネットワークインターフェース10006を装備しており,外部にはコンピュータA10002をユーザが操作するためのディスプレイ10007とキーボード10008が接続されている。RAM10005には暗号化処理プログラム(以下プログラムをPROGともいう)PROG1_10009,乱数生成処理プログラムPROG2_10010,コンピュータA10002とコンピュータB10003間のみで共有されている秘密情報である秘密鍵K10011,コンピュータA10002とコンピュータB10003間で共有されているデータである冗長性R10012と初期値V10013,それに暗号化してコンピュータB10003に送信したいデータ10014が保存されている。コンピュータB10003は内部にCPU10015,RAM10016,ネットワークインターフェース10017を装備しており,外部にはコンピュータB10003をユーザが操作するためのディスプレイ10018とキーボード10019が接続されている。RAM10016には復号化処理プログラムPROG3_10020,乱数生成処理プログラムPROG2_10021,秘密鍵K10011,冗長性R10012,それに初期値V10013が保存されている。
ステップ20002:データセットサブルーチン。初期値V,冗長性R,秘密鍵Kの入力を待つ。
ステップ20003:平文準備サブルーチン。平文の入力を待ち,平文が与えられたあと決められたパディングを行い,冗長性を付加して,最後に64ビットごとに区切って平文ブロックの列Pi(1≦i≦n)を出力する。
ステップ20004:乱数生成サブルーチン。秘密鍵Kから,擬似乱数列Ai,Bi(1≦i≦n)を出力する。
ステップ20005:暗号化サブルーチン。擬似乱数列Ai,Bi,平文ブロック列Pi(1≦i≦n),初期値Vを使って,暗号文ブロック列Ci(1≦i≦n)を出力する。
ステップ20006:ステップ20005で得られた暗号文ブロック列Ci(1≦i≦n)を順にビット連結し,暗号文Cとして出力する。
ステップ20202:暗号処理に用いるメッセージMの入力を待つ。メッセージMは,キーボード10008から入力されたり,RAM内に保存されていたり,他の媒体から導入されたりする。
ステップ20203:メッセージの長さを示すデータをパディング。メッセージMの先頭にメッセージMのビット長を表す64ビット二進数データを付加する。
ステップ20204:メッセージ長をそろえるパディング。後の暗号処理のためパディング後のデータを64ビットの整数倍にする。メッセージMの長さをLビットとすると64―L(mod 64)個の0をステップ20203で長さデータを付加されたメッセージの末尾にパディングする。
ステップ20205:冗長性データのパディング。64ビットデータとして与えられる冗長性Rをさらに末尾にパディングする。
ステップ20206:メッセージデータの平文ブロックへ分割。ステップ20205の結果得られたデータを64ビットのブロックに区切り順にP1,P2,…,Pnとする。
ステップ20302:必要パラメータの入力。パディング後のメッセージブロック数nと,秘密鍵Kを得る。
ステップ20303:擬似乱数列Aの生成。乱数生成処理プログラムPROG2を呼び出し,長さ64nビットの擬似乱数列を生成,出力をAとする。
ステップ20304:乱数列Aをブロックに分割。擬似乱数列Aを64ビットごとに区切り順にA1,A2,…,Anとする。
ステップ20305:カウンタiの初期化。カウンタi=1とする。
ステップ20306:乱数Biの生成。秘密鍵Kを使ってPROG2を実行することにより64ビットの乱数Biを生成する。
ステップ20307:ステップ20306で生成されたBiが0ならば,ステップ20306に戻る。
ステップ20308:i=nならばステップ20310を実行。
ステップ20309:カウンタiをインクリメントしステップ20306へ戻る。
ステップ20402:初期値セット。F0=Vとする。
ステップ20403:カウンタ初期化。i=1とする。
ステップ20404:フィードバック値Fi計算。
Fi=Pi^Aiとする。
ステップ20405:暗号文ブロックCi計算。
Ci=(Fi*Bi)^Fi-1とする。
ステップ20406:i=nならばステップ20408を実行。
ステップ20407:カウンタiをインクリメントしステップ20404へ戻る。
ステップ20502:データセットサブルーチン。初期値V,冗長性R,秘密鍵Kの入力を待つ。
ステップ20503:暗号文準備サブルーチン。暗号文C'の入力を待ち,暗号文C'が与えられたあと64ビットごとに区切って暗号文ブロックの列C'i(1≦i≦n)を出力する。
ステップ20504:乱数生成サブルーチン。秘密鍵Kから,擬似乱数列Ai,Bi(1≦i≦n)を出力する。
ステップ20505:復号化サブルーチン。擬似乱数列Ai,Bi,暗号文ブロック列C'i(1≦i≦n),初期値Vを使って,平文ブロック列P'i(1≦i≦n)を出力する。
ステップ20506:平文切り出しサブルーチン。平文ブロックの列P'iを3つのデータ列,L',M',Z'に分割する。
ステップ20507:冗長性切り出しサブルーチン。Z'をR'とT'に分割する。
ステップ20508:T=0かつR'=Rならばステップ20510に進む。
ステップ20509:拒否(非受理)を出力。ステップ20511に進む。
ステップ20510:M'をRAMへ格納する。
ステップ20509,20510では,復号化処理プログラムは,結果(受理/非受理あるいは復号結果)をディスプレイ10018に出力して,ユーザに結果を通知する。
ステップ20602:暗号文C'の入力を待つ。
ステップ20603:暗号文C'を64ビットごとに区切り,順にC'1,C'2,…,C'nとする。
ステップ20702:初期値セット。F'0=Vとする。
ステップ20703:カウンタ初期化。i=1とする。
ステップ20704:フィードバック値F'i計算。
F'i=(C'i^F'i-1)/Biとする。
ステップ20705:平文ブロックP'i計算。P'i=F'i^Aiとする。
ステップ20706:i=nならばステップ20708を実行。
ステップ20707:カウンタiをインクリメントしステップ20704へ戻る。
ステップ20802:L'を最初の64ビットの平文ブロックとする。
ステップ20803:復号文ブロックのうちP'2最上位ビットからL'ビットのデータをM'とする。
ステップ20804:M'を切り取った残りのデータをZ'とする。
ステップ20902:R'をZ'の下位64ビットのデータとする。
ステップ20903:R'を切り取った後の残りのデータをT'とする。
(実施例2)
以下に示す実施例2では,別の関数を使うことにより,より少ない擬似乱数の消費で行え,また復号化の際の割る数も変化せず,逆数の事前計算によりほぼ乗算と同じ速度で達成できるため,極めて効率的な処理が可能となる。
ステップ21102:必要パラメータの入力。パディング後のメッセージブロック数nと,秘密鍵Kを得る。
ステップ21103:擬似乱数列Aの生成。乱数生成処理プログラムPROG2を呼び出し,長さ64nビットの擬似乱数列を生成,出力をAとする。
ステップ21104:乱数列Aをブロックに分割。擬似乱数列Aを64ビットごとに区切り順にA1,A2,…,Anとする。
ステップ21105:乱数Bの生成。秘密鍵Kを使ってPROG2を実行することにより64ビットの乱数Bを生成する。
ステップ21106:ステップ21105で生成されたBが0ならば,ステップ21105に戻る。
ステップ21202:初期値セット。F0=Vとする。
ステップ21203:カウンタ初期化。i=1とする。
ステップ21204:フィードバック値Fi計算。
Fi=Pi^Aiとする。
ステップ21205:暗号文ブロックCi計算。
Ci=(Fi*B)^Fi-1とする。
ステップ21206:もし,i=nならばステップ21208を実行。
ステップ21207:カウンタiをインクリメントしステップ21204へ戻る。
ステップ21302:データセットサブルーチン。初期値V,冗長性R,秘密鍵Kの入力を待つ。
ステップ21303:暗号文準備サブルーチン。暗号文C'の入力を待ち,暗号文C'が与えられたあと64ビットごとに区切って暗号文ブロックの列C'i(1≦i≦n)を出力する。
ステップ21304:乱数生成サブルーチン。秘密鍵Kから,擬似乱数列Ai(1≦i≦n),
Bを出力する。
ステップ21305: 復号化サブルーチン。擬似乱数列Ai,B,暗号文ブロック列C'i(1≦i≦n),初期値Vを使って,平文ブロック列P'i(1≦i≦n)を出力する。
ステップ21306:平文切り出しサブルーチン。平文ブロックの列P'iを3つのデータ列,L',M',Z'に分割する。
ステップ21307:冗長性切り出しサブルーチン。Z'をR'とT'に分割する。
ステップ21308:T=0かつR'=Rならばステップ21310に進む。
ステップ21309:拒否を出力。ステップ21311に進む。
ステップ21310:M'をRAMへ格納する。
ステップ21402:初期値セット。F'0=Vとする。
ステップ21403:1/Bを事前計算しておく。
ステップ21404:カウンタ初期化。i=1とする。
ステップ21405:フィードバック値F'i計算。F'i=(C'i^F'i-1)*(1/B)とする。
ステップ21406:平文ブロックP'i計算。P'i=F'i^Aiとする。
ステップ21407:i=nならばステップ21409を実行。
ステップ21408:カウンタiをインクリメントしステップ21405へ戻る。
これをL'_21469,M'_21470,Z'_21471に分割後,さらにZ'_21471をT'_21474とR'_21475に分割し,冗長性のチェックを行う。
以下に示す実施例3では,別の高速な関数を使うことにより同じ安全性かつより高速な処理が可能となる。観点を変え,これまでと同じF(264)上の演算を使った場合には(F(2128)の演算相当の)より高い安全性を提供することができる。
ステップ21502:データセットサブルーチン。初期値V,冗長性R,秘密鍵Kの入力を待つ。
ステップ21503:平文準備サブルーチン。平文の入力を待ち,平文が与えられたあと決められたパディングを行い,冗長性を付加して,最後に32ビットごとに区切って平文ブロックの列Pi(1≦i≦n)を出力する。
ステップ21504:乱数生成3サブルーチン。秘密鍵Kから,擬似乱数列Ai(1≦i≦n),Ba,Bbを出力する。
ステップ21505:暗号化3サブルーチン。擬似乱数列Ai,Ba,Bb,平文ブロック列Pi(1≦i≦n),初期値Vを使って,暗号文ブロック列Ci(1≦i≦n)を出力する。
ステップ21506:ステップ21505で得られた暗号文ブロックCi(1≦i≦n)を順にビット連結し,暗号文Cとして出力する。
ステップ21602:必要パラメータの入力。パディング後のメッセージブロック数nと,秘密鍵Kを得る。
ステップ21603:擬似乱数列Aの生成。乱数生成処理プログラムPROG2を呼び出し,長さ32nビットの擬似乱数列を生成,出力をAとする。
ステップ21604:乱数列Aをブロックに分割。擬似乱数列Aを32ビットごとに区切り順にA1,A2,…,Anとする。
ステップ21605:乱数Baの生成。秘密鍵Kを使ってPROG2を実行することにより32ビットの乱数Baを生成する。
ステップ21606:ステップ21605で生成されたBaが0ならば,ステップ21605に戻る。
ステップ21607:乱数Bbの生成。秘密鍵Kを使ってPROG2を実行することにより32ビットの乱数Bbを生成する。
ステップ21608:ステップ21607で生成されたBbが0ならば,ステップ21607に戻る。
ステップ21702:初期値セット。FA0=FB0=Vとする。
ステップ21703:カウンタ初期化。i=1とする。
ステップ21704:フィードバック値FAi計算。
FAi=Pi^Aiとする。
ステップ21705:フィードバック値FBi計算。
FBi=(FAi*Ba)^FAi-1とする。
ステップ21706:暗号文ブロックCi計算。
Ci=(FBi*Bb)^FBi-1とする。
ステップ21707:i=nならばステップ21709を実行。
ステップ21708:カウンタiをインクリメントしステップ21704へ戻る。
ステップ21802:データセットサブルーチン。初期値V,冗長性R,秘密鍵Kの入力を待つ。
ステップ21803: 暗号文準備サブルーチン。暗号文C'の入力を待ち,暗号文C'が与えられたあと32ビットごとに区切って暗号文ブロックの列C'i(1≦i≦n)を出力する。
ステップ21804:乱数生成サブルーチン。秘密鍵Kから,擬似乱数列Ai(1≦i≦n),Ba,Bbを出力する。
ステップ21805:復号化サブルーチン。擬似乱数列Ai,Ba,Bb,暗号文ブロック列C'i(1≦i≦n),初期値Vを使って,平文ブロック列P'i(1≦i≦n)を出力する。
ステップ21806:平文切り出しサブルーチン。平文ブロックの列P'iを3つのデータ列,L',M',Z'に分割する。
ステップ21807:冗長性切り出しサブルーチン。Z'をR'とT'に分割する。
ステップ21808:T=0かつR'=Rならばステップ21810に進む。
ステップ21809:拒否を出力。ステップ21811に進む。
ステップ21810:M'をRAMへ格納する。
ステップ21902:初期値セット。FA'0=FB'0=Vとする。
ステップ21903:1/Ba,1/Bbを事前計算しておく。
ステップ21904:カウンタ初期化。i=1とする。
ステップ21905:フィードバック値FB'i計算。
FB'i=(C'i^FB'i-1)*(1/Bb)とする。
ステップ21906:フィードバック値FA'i計算。
FA'i=(FB'i^FA'i-1)*(1/Ba)とする。
ステップ21907:平文ブロックP'i計算。P'i=FA'i^Aiとする。
ステップ21908:i=nならばステップ21910を実行。
ステップ21909:カウンタiをインクリメントしステップ21905へ戻る。
これをL'_21987,M'_21988,Z'_21989に分割後,さらにZ'_21989をT'_21992とR'_21993に分割し,冗長性のチェックを行う。
(実施例4)
以下に示す実施例4では,メッセージの長さ情報を使うことなく、暗号処理の開始を可能にする方法である。これにより,メッセージ全体の長さがあらかじめ与えられないストリーム型のデータについての暗号処理も可能となる。
ステップ40212:必要パラメータの入力。パディング後のメッセージブロック数nと,秘密鍵Kを得る。
ステップ40213:擬似乱数列Aの生成。乱数生成処理プログラムPROG2を呼び出し,長さ64nビットの擬似乱数列を生成,出力をAとする。
ステップ40214:乱数列Aをブロックに分割。擬似乱数列Aを64ビットごとに区切り順にA1,A2,…,Anとする。
ステップ40215:乱数Bの生成。秘密鍵Kを使ってPROG2を実行することにより64ビットの乱数Bを生成する。
ステップ40216:ステップ40105で生成されたBが0ならば,ステップ40105に戻る。
ステップ40217:乱数Qの生成。秘密鍵Kを使ってPROG2を実行することにより64ビットの乱数Qを生成する。
ステップ40202:暗号化処理対象となるメッセージM40300の入力を待つ。メッセージM40300は,キーボード10008から入力されたり,RAM内に保存されていたり,他の媒体から導入されたりする。
ステップ40203:メッセージ長をそろえるパディング。のちの暗号処理のため,パディング後のデータを64ビットの整数倍にする。メッセージM40300の長さをLビットとすると64―L(mod 64)個の0をメッセージの末尾にパディングする。
ステップ40204:秘密データのパディング。64ビット秘密データとして与えられる秘密データQ40302をさらに末尾にパディングする。この秘密データQ40302は鍵を知るものだけが知る情報であり、例えば秘密鍵Kから生成される乱数などが考えられる。上記ステップ40217はこのための処理である。
ステップ40205:冗長性データのパディング。64ビットデータとして与えられる冗長性R40303をさらに末尾にパディングする。
ステップ40206:メッセージデータの平文ブロックへ分割。ステップ40205の結果得られたデータP40304を64ビットのブロックに区切り順にP1,P2,…,Pnとする。
ステップ40402:データセットサブルーチン。初期値V,冗長性R,秘密鍵Kの入力を待つ。
ステップ40403:暗号文準備サブルーチン。暗号文C'の入力を待ち,暗号文C'が与えられたあと32ビットごとに区切って暗号文ブロックの列C'i(1≦i≦n)を出力する。
ステップ40404:乱数生成4サブルーチン。秘密鍵Kから,擬似乱数列Ai(1≦i≦n),Bを出力する。
ステップ40405:復号化3サブルーチン。擬似乱数列Ai,B,Q,暗号文ブロック列C'i(1≦i≦n),初期値Vを使って,平文ブロック列P'i(1≦i≦n)を出力する。
ステップ40406:平文切り出し2サブルーチン。平文ブロックの列P'i40601を3つのデータ列,M'40602,Q'40603,R'40604に分割する。
ステップ40407:Q'40603=Q40302 かつR'40604=R40303ならばステップ40409に進む。
ステップ40408:拒否を出力。ステップ40410に進む。
ステップ40409:M'をRAMへ格納する。
ステップ40410:終了。
ステップ40502:復号文のうち、最後の128ビットを除く全データを、平文ブロックM'とする。
ステップ40503:処理40502の残りの128ビットのうち、上位64ビットをQ'とする。
ステップ20804:さらに残りのデータ(64ビット)をR'とする。
上記実施例1から4は並列計算を考えない単一プロセッサによる処理の実施形態であった。実施例5において,本発明が並列処理への応用も簡単であることを示す。
ステップ40002:CPU1の実行するメッセージ処理によりメッセージMをM1,M2に2分割する。
ステップ40003:CPU1が実行するPROG1_10009による暗号化処理により,初期値V+1,冗長性R+1,秘密鍵K,平文M1,を使って,暗号文C1を出力する。
ステップ40004:CPU2が実行するPROG1_10009による暗号化処理により,初期値V+2,冗長性R+2,秘密鍵K,平文M2,を使って,暗号文C2を出力する。
ステップ40005:CPU1が実行するPROG1_10009による暗号化処理により,初期値V,冗長性R,秘密鍵K,平文(R1||R2),を使って,暗号文C3を出力する。
ステップ40006:暗号文Cの生成。C=C1||C2||C3とする。
ステップ40007:暗号文Cをメモリへ保存。
ステップ40102:CPU1の実行する暗号文処理により暗号文C'をC'1,C'2,C'3に3分割する。C'3は192ビットであり,C'1,C'2は同じ長さ,かつC'=C'1||C'2||C'3である。
ステップ40103:CPU1が実行するPROG3_10020による復号化処理により,初期値V+1,冗長性R+1,秘密鍵K,暗号文ブロックC'1,を使って,復号化を行い結果を保存する。
ステップ40104:CPU2が実行するPROG3_10020による復号化処理により,初期値V+2,冗長性R+2,秘密鍵K,暗号文ブロックC'2を使って,復号化を行い,結果を保存する。
ステップ40105:ステップ40103の復号化結果,ステップ40104の復号化結果のうち少なくともひとつが非受理ならばステップ40111を実行する。
ステップ40106: CPU1が実行するPROG3_10020による復号化処理により,初期値V,冗長性R,秘密鍵K,暗号文ブロックC'3を使って,復号化を行い,結果を保存する。
ステップ40107:ステップ40106の復号化結果が非受理ならばステップ40111を実行する。
ステップ40108:ステップ40106の復号化結果が(R+1)||(R+2)でないなら,ステップ40111を実行する。
ステップ40109:復号化結果M'=M'1||M'2とする。
ステップ40110:M'をメモリへ格納し,ステップ40112を実行する。
ステップ40111:非受理を出力する。
(実施例6)
上記実施例1から実施例5は暗号処理を目的とした実施形態であった。実施例6以降において,本発明がさまざまな情報システムへの応用も可能であることを示す。
RAM50001,ネットワークインターフェース装置50008を装備している。RAM50001には鍵交換プロトコルを行うための鍵交換プロトコルソフトウェア_50002,センターの公開鍵50004、秘密鍵生成プログラム50003、暗号プログラム50006、そして暗号通信を行いたい通信データ50005(上記各実施例におけるメッセージMに相当)が保存されている。コンピュータB50017は内部にCPU50014,RAM50010,ネットワークインターフェース装置50015を装備している。RAM50010には鍵交換プロトコルソフトウェア_50011,復号化プログラム50013が保存されている。
(実施例7)
上記実施例6は暗号処理をソフトウェアによる実装の実施形態であった。実施例7において,本発明がハードウェア実装も可能であることを示す。
(実施例8)
上記実施例6および7に示した暗号処理可能なコンピュータを使うことで、暗号により保護されるコンテンツ配送などを簡単に実現することができる。実施例8ではコンテンツ配送の実施例を示す。
情報再生装置50205は入力情報を保存、再生する。
(実施例9)
実施例8ではコンテンツを、ネットワークを介して送信していた。しかし、非常に大容量の情報の場合、DVDなどによる暗号文の事前配送のあと、復号化用の鍵を復号許可時に送信する手法が効率的である。このようなシステムを実施例9に示す。
(実施例10)
実施例10はネットワークのパケット配送を制御する、ルータに適用した例を示している。このルータはネットワーク送信時、行き先のルータに応じてパケットに異なる暗号処理を行う。
10002,10003,30002,30003:コンピュータ
10004,10015,30004,40005,30017,30018:CPU
10005,10016,30006,30019:メモリ
10006,10017,30007,30020:ネットワークインターフェース
10007,10018,30008,30021:ディスプレイ
10008,10019,30009,30022:キーボード
Claims (36)
- 共通鍵暗号方法であって,
冗長データとメッセージとからなる平文を特定の長さで区切った複数の平文ブロックを生成し,
秘密鍵から,乱数列を生成し,前記乱数列から前記平文ブロックに対応する乱数ブロックを生成し,
前記平文ブロックと前記乱数ブロックとを演算して得た他の前記平文ブロックへのフィードバック値を出力し,
前記平文ブロックと,前記乱数ブロックと,他の平文ブロックの演算から得られるフィードバック値とを用いて暗号文ブロックを暗号演算する共通鍵暗号方法。 - 請求項1記載の共通鍵暗号方法であって,
前記暗号演算は一つ以上の,その合計の長さは,前記暗号文ブロックより長い前記乱数ブロックを用いる共通鍵暗号方法。 - 請求項2記載の共通鍵暗号方法であって,
前記平文はさらに、所定長の秘密データを含む共通鍵暗号方法。 - 請求項2記載の共通鍵暗号方法であって,
前記暗号演算として,前記平文ブロックを用いた2項演算や単項演算を決められた手順に従って1回以上行い,
得られた複数の暗号文ブロックを組み合わせ,暗号文として出力する共通鍵暗号方法。 - 請求項2記載の共通鍵暗号方法であって,
前記暗号演算を有限体上の乗算と加算により行う共通鍵暗号方法。 - 請求項2記載の共通鍵暗号方法であって,
前記暗号演算を巡回シフト演算と,算術乗算との組み合わせによって行う共通鍵暗号方法。 - 請求項2記載の共通鍵暗号方法であって,
擬似乱数生成手段を備え,前記秘密鍵から前記乱数列を生成する共通鍵暗号方法。 - 請求項7の共通鍵暗号方法であって,
前記メッセージを複数に分割し,
前記擬似乱数生成器を用いて,分割数分の乱数列を生成し,
前記分割したメッセージと前記乱数列のいずれかをそれぞれ異なる演算ユニットに割り当て,並列処理を行う共通鍵暗号方法。 - 共通鍵暗号の復号方法であって,
暗号文を特定の長さで区切った複数の暗号文ブロックを生成し,
秘密鍵から,乱数列を生成し,前記乱数列から前記暗号文ブロックに対応する乱数ブロックを生成し,
前記暗号文ブロックと前記乱数ブロックとを演算して得た他の前記暗号文ブロックへのフィードバック値を出力し,
前記暗号文ブロックと,前記乱数ブロックと,他の暗号文ブロックの演算から得られるフィードバック値と,を用いて平文ブロックを復号演算する共通鍵暗号の復号方法。 - 請求項9記載の共通鍵暗号の復号方法であって,
前記復号演算は一つ以上の,その合計の長さは,前記暗号文ブロックより長い前記乱数ブロックを用いる共通鍵暗号の復号方法。 - 請求項10記載の共通鍵暗号の復号方法であって,
前記平文ブロックを複数連結して平文を生成し,
前記平文に含まれる冗長データを抽出し,
前記冗長データを検査し,前記暗号文への改ざんの有無を検出する共通鍵暗号の復号化方法。 - 請求項11記載の共通鍵暗号の復号方法であって,
さらに,前記平文に含まれる前記秘密データを抽出し,
前記冗長データと前記秘密データとを検査し,前記暗号文への改ざんの有無を検出する共通鍵暗号の復号化方法。 - 共通鍵暗号装置であって,
冗長データとメッセージとからなる平文を入力し,特定の長さで区切った複数の平文ブロックを生成する回路と,
秘密鍵を入力し,乱数列を生成し,前記乱数列から前記平文ブロックに対応する乱数ブロックを生成する回路と,
前記平文ブロックと前記乱数ブロックとを演算して得た他の前記平文ブロックへのフィードバック値を出力する回路と,
前記平文ブロックと,前記乱数ブロックと,他の平文ブロックと他の乱数ブロックとの演算によって得られるフィードバック値と,を用いて暗号文ブロックを暗号演算する回路とを備える共通鍵暗号装置。 - 請求項13記載の共通鍵暗号装置であって,
前記暗号演算回路は,一つ以上の,その合計の長さは,前記暗号文ブロックより長い前記乱数ブロックを用いる,共通鍵暗号装置。 - 請求項14記載の共通鍵暗号装置であって,
前記平文はさらに、所定長の秘密データを含む共通鍵暗号装置。 - 請求項14記載の共通鍵暗号装置であって,
前記暗号演算回路は,前記平文ブロックを用いた2項演算または単項演算を決められた手順に従って1回以上行う回路を含み,
得られた複数の暗号文ブロックを組み合わせ,暗号文として出力する回路を備える共通鍵暗号装置。 - 請求項14記載の共通鍵暗号装置であって,
前記暗号演算回路は,有限体上の乗算と加算を行う共通鍵暗号装置。 - 請求項14記載の共通鍵暗号装置であって,
前記暗号演算回路は,巡回シフト演算回路と算術乗算回路とを備える共通鍵暗号装置。 - 請求項14記載の共通鍵暗号装置であって,
擬似乱数生成器を備え,前記秘密鍵から前記乱数列を生成する共通鍵暗号装置。 - 請求項19の共通鍵暗号装置であって,
前記メッセージを複数に分割する回路と,
前記擬似乱数生成器を用いて,分割数分の乱数列を生成する回路と,
複数の演算ユニットと,
前記分割したメッセージと前記乱数列のいずれかをそれぞれ異なる演算ユニットに割り当てる回路と,
を備える共通鍵暗号装置。 - 共通鍵暗号の復号装置であって,
暗号文を入力し,特定の長さで区切った複数の暗号文ブロックを生成する回路と,
秘密鍵を入力し,前記暗号文よりも長い乱数列を生成し,前記乱数列から前記暗号文ブロックに対応する乱数ブロックを生成する回路と,
前記暗号文ブロックと前記乱数ブロックとを演算して得た他の前記暗号文ブロックへのフィードバック値を出力する回路と,
前記暗号文ブロックと,前記乱数ブロックと,他の暗号文ブロックの演算から得られるフィードバック値と,を用いて平文ブロックを復号演算する回路とを備える共通鍵暗号の復号装置。 - 請求項21記載の共通鍵暗号の復号装置であって,
前記復号演算回路は,一つ以上の,その合計の長さは,長い前記乱数ブロックを用いる,共通鍵暗号の復号装置。 - 請求項22記載の共通鍵暗号の復号装置であって,
前記平文ブロックを複数連結して平文を生成する回路と,
前記平文に含まれる冗長データを抽出する回路と,
前記冗長データを検査して前記暗号文への改ざんの有無を検出する回路とを備える共通鍵暗号の復号装置。 - 請求項23記載の共通鍵暗号の復号装置であって,
さらに,前記平文に含まれる秘密データを抽出する回路を備え,
前記前記暗号文への改ざんの有無を検出する回路は,前記秘密データと前記冗長データとを検査して,前記暗号文への改ざんの有無を検出する共通鍵暗号の復号装置。 - コンピュータに読み込まれ,共通鍵暗号方法を実行させるプログラムを記憶した媒体であって,前記プログラムは,前記コンピュータに,
冗長データとメッセージとからなる平文を読み込ませ,前記平文を特定の長さで区切った複数の平文ブロックを生成させ,
秘密鍵を入力させ,乱数列を生成させ,前記乱数列から前記平文ブロックに対応する乱数ブロックを生成させ,
前記平文ブロックと前記乱数ブロックとを演算させて得た他の前記平文ブロックへのフィードバック値を出力させ,
前記平文ブロックと,前記乱数ブロックと,他の平文ブロックと他の乱数ブロックとの演算によって得られるフィードバック値と,を用いて暗号文ブロックを暗号演算させるプログラムを記憶した媒体。 - 請求項25記載のプログラムを記憶した媒体であって,
前記暗号演算として,一つ以上の,その合計の長さは,前記暗号文ブロックより長い前記乱数ブロックを用いらせる,
プログラムを記憶した媒体。 - 請求項26記載のプログラムを記憶した媒体であって,
前記平文はさらに、所定長の秘密データを含む共通鍵暗号処理を行うプログラムを記憶した媒体。 - 請求項26記載のプログラムを記憶した媒体であって,
前記暗号演算として,前記平文ブロックを用いた2項演算または単項演算を決められた手順に従って1回以上行なわせ,
得られた複数の暗号文ブロックを組み合わせ,暗号文として出力させるプログラムを記憶した媒体。 - 請求項26記載のプログラムを記憶した媒体であって,
前記暗号演算として,有限体上の乗算と加算を行わせるプログラムを記憶した媒体。 - 請求項26記載のプログラムを記憶した媒体であって,
前記暗号演算は,巡回シフト演算と算術乗算とを行わせるプログラムを記憶した媒体。 - 請求項26記載のプログラムを記憶した媒体であって,
擬似乱数生成を行わせ,前記秘密鍵から前記乱数列を生成させるプログラムを記憶した媒体。 - 請求項31記載のプログラムを記憶した媒体であって,
前記メッセージを複数に分割させ,
前記擬似乱数生成を,分割数分行わせ,
前記分割したメッセージと前記乱数列のいずれかをそれぞれ異なる演算ユニットに割り当てさせる,プログラムを記憶した媒体。 - コンピュータに読み込まれ,共通鍵暗号の復号方法を実行させるプログラムを記憶した媒体であって,前記プログラムは,前記コンピュータに,
暗号文を入力させ,特定の長さで区切った複数の暗号文ブロックを生成させ,
秘密鍵を入力させ,前記暗号文よりも長い乱数列を生成させ,前記乱数列から前記暗号文ブロックに対応する乱数ブロックを生成させ,
前記暗号文ブロックと前記乱数ブロックとを演算させて得た他の前記暗号文ブロックへのフィードバック値を出力させ,
前記暗号文ブロックと,前記乱数ブロックと,他の暗号文ブロックの演算から得られるフィードバック値と,を用いて平文ブロックを復号演算させるプログラムを記憶した媒体。 - 請求項33記載のプログラムを記憶した媒体であって,
前記復号演算として,一つ以上の,その合計の長さは,前記暗号文ブロックより長い前記乱数ブロックを用いらせる,プログラムを記憶した媒体。 - 請求項34記載のプログラムを記憶した媒体であって,
前記平文ブロックを複数連結して平文を生成させ,
前記平文に含まれる冗長データを抽出させ,
前記冗長データを検査させて前記暗号文への改ざんの有無を検出させるプログラムを記憶した媒体。 - 請求項35記載のプログラムを記憶した媒体であって,
さらに,前記平文に含まれる秘密データを抽出させ,
前記冗長データと前記秘密データとを検査させて,前記暗号文への改ざんの有無を検出させるプログラムを記憶した媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004309002A JP4752239B2 (ja) | 2000-03-09 | 2004-10-25 | 共通鍵暗号方法及び装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000070994 | 2000-03-09 | ||
JP2000070994 | 2000-03-09 | ||
JP2004309002A JP4752239B2 (ja) | 2000-03-09 | 2004-10-25 | 共通鍵暗号方法及び装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000210690A Division JP3864675B2 (ja) | 2000-03-09 | 2000-07-06 | 共通鍵暗号装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005027358A true JP2005027358A (ja) | 2005-01-27 |
JP2005027358A5 JP2005027358A5 (ja) | 2007-08-23 |
JP4752239B2 JP4752239B2 (ja) | 2011-08-17 |
Family
ID=34196385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004309002A Expired - Fee Related JP4752239B2 (ja) | 2000-03-09 | 2004-10-25 | 共通鍵暗号方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4752239B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032208B2 (en) | 2010-08-24 | 2015-05-12 | Mitsubishi Electric Corporation | Communication terminal, communication system, communication method and communication program |
CN111669269A (zh) * | 2020-06-08 | 2020-09-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
US11876888B2 (en) | 2020-02-06 | 2024-01-16 | Mitsubishi Electric Corporation | Encryption device, decryption device, encryption method, decryption method, and computer readable medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0997175A (ja) * | 1995-10-02 | 1997-04-08 | Matsushita Electric Ind Co Ltd | ソフトウエア利用制御方法 |
-
2004
- 2004-10-25 JP JP2004309002A patent/JP4752239B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0997175A (ja) * | 1995-10-02 | 1997-04-08 | Matsushita Electric Ind Co Ltd | ソフトウエア利用制御方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032208B2 (en) | 2010-08-24 | 2015-05-12 | Mitsubishi Electric Corporation | Communication terminal, communication system, communication method and communication program |
US11876888B2 (en) | 2020-02-06 | 2024-01-16 | Mitsubishi Electric Corporation | Encryption device, decryption device, encryption method, decryption method, and computer readable medium |
CN111669269A (zh) * | 2020-06-08 | 2020-09-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
CN111669269B (zh) * | 2020-06-08 | 2023-08-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP4752239B2 (ja) | 2011-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3864675B2 (ja) | 共通鍵暗号装置 | |
JP3901909B2 (ja) | 暗号化装置およびプログラムを記録した記録媒体 | |
JP7007384B2 (ja) | 曖昧さの増加 | |
US7822797B2 (en) | System and method for generating initial vectors | |
US7945049B2 (en) | Stream cipher using multiplication over a finite field of even characteristic | |
EP1779584A1 (en) | Stream cipher combining system and method | |
KR20100069610A (ko) | 연쇄화된 암호화 모드를 위한 방법 및 디바이스 | |
KR20050027254A (ko) | 데이터 처리 시스템을 위한 효율적인 암호화 및 인증 | |
KR20070022021A (ko) | 데이터 암호 처리 방법 및 장치 | |
TW200828938A (en) | Method for securely extending key stream to encrypt high-entropy data | |
Iyer et al. | A novel idea on multimedia encryption using hybrid crypto approach | |
JP2004363739A (ja) | 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置 | |
JPH05500298A (ja) | 暗号化装置 | |
US7894608B2 (en) | Secure approach to send data from one system to another | |
Jakobsson et al. | Scramble all, encrypt small | |
JP3769804B2 (ja) | 解読化方法および電子機器 | |
JP2008278416A (ja) | データ暗号処理装置、データ復号処理装置、データ暗号処理方法、データ復号処理方法、データ暗号処理プログラム、データ復号処理プログラムおよび集積回路 | |
JP4752239B2 (ja) | 共通鍵暗号方法及び装置 | |
JP3864798B2 (ja) | 共通鍵暗号の復号装置 | |
JP5489115B2 (ja) | 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体 | |
WO2006114841A1 (ja) | 情報処理方法および情報処理システム | |
WO2021249666A1 (en) | Method for processing encrypted data | |
WO2022096141A1 (en) | Method for processing encrypted data | |
JP5293612B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム | |
JP2004347885A (ja) | 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060421 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070705 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110407 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110426 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110509 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |