JP3689595B2 - Encryption device, decryption device, encryption communication method, and automatic fee collection system - Google Patents
Encryption device, decryption device, encryption communication method, and automatic fee collection system Download PDFInfo
- Publication number
- JP3689595B2 JP3689595B2 JP20644099A JP20644099A JP3689595B2 JP 3689595 B2 JP3689595 B2 JP 3689595B2 JP 20644099 A JP20644099 A JP 20644099A JP 20644099 A JP20644099 A JP 20644099A JP 3689595 B2 JP3689595 B2 JP 3689595B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- decryption
- encryption
- input
- conversion
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Traffic Control Systems (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、コンピュータ、情報家電機器、自動料金徴収装置等の間で伝送されるデジタル・データの暗号・復号技術に関するものである。
【0002】
【従来の技術】
一般に、デジタル情報家電機器においては、デジタルデータの不正な複写を防ぐための暗号化技術が必須となる。たとえば、デジタル放送受信機で受信したデジタル映像データを、デジタル録画機器にデジタル録画する場合、デジタル映像データに著作権があれば、それを保護する機能がそれぞれの装置に必要になる。
【0003】
このような著作権保護システムを実現するためには、デジタルデータの複写制限の設定、機器間認証、デジタルデータのリアルタイム暗号化などの暗号技術を用い、データの改ざんや不正な複写を防止しなければならない。
【0004】
暗号技術の従来例としては、例えば日本特開昭51−108701号公報に示されるDES暗号に代表される、共通鍵暗号方式が挙げられる。共通鍵暗号方式の多くは、簡単な変換を繰り返し行うことで、複雑な暗号変換を構成することを特徴としている。これらの暗号をより安全なものにする工夫は従来から様々な形でなされてきた。例えば、簡単な変換の繰り返し回数を大きくすることで、暗号文の統計的な特徴をより撹乱し、暗号解読を困難にできる。
【0005】
【発明が解決しようとする課題】
しかし、変換の繰り返し回数を増やすことは、暗号変換に要する処理時間を増大してしまうことになる。したがって、簡単な変換の繰り返し回数を大きくすることによる安全性強化対策は、上述した著作権保護システムにおける、リアルタイム暗号化処理には適さないという問題があった。
【0006】
本発明は、上記事情に基づいてなされたものであり、本発明の目的は、変換の繰り返し回数を増やすことなく、暗号解読に強い高速な暗号・復号変換を実現することにある。
【0007】
【課題を解決するための手段】
上記目的達成のために、本発明の暗号装置は、暗号鍵を用いて平文データを暗号変換する暗号装置であって、
入力された第1、第2のデータに前記暗号鍵を作用させて演算処理を行い、その結果を、次回に入力すべき第1、第2のデータとして出力する暗号演算処理を複数回実行する暗号変換手段と、
前記平文データを2つに分割し、結果を、前記暗号変換手段の最初の回の前記暗号演算処理に入力すべき第1、第2のデータとして出力する暗号用分割手段と、
前記暗号変換手段の最後の回の前記暗号演算処理より出力された第1、第2のデータを結合し、結果を、暗号データとして出力する暗号用結合手段とを有し、
前記暗号演算処理は、
入力された第1のデータのビット列変換を行なう暗号用ビット列変換処理と、前記暗号用ビット列変換処理の出力データと入力された第2のデータとの排他的論理和を計算する暗号用排他的論理和演算処理と、を実行し、
前記暗号用排他的論理和演算処理の出力データを前記次回に入力すべき第1のデータとし、入力された第1のデータを前記次回に入力すべき第2のデータとして出力するものであり、
前記暗号用ビット列変換処理は、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第1の鍵データとの排他的論理和を計算する第1の排他的論理和演算処理と、
入力されたデータにシフト数S1の巡回シフト演算処理を施す第1の巡回シフト演算処理と、当該入力されたデータと前記第1の巡回シフト演算処理の出力データとの加算演算を行う第1の加算演算処理と、からなる第1の論理演算処理と、
入力されたデータにシフト数S2の巡回シフト演算処理を施す第2の巡回シフト演算処理と、当該入力されたデータと前記第2の巡回シフト演算処理の出力データとの加算演算処理を行う第2の加算演算処理と、からなる第2の論理演算処理と、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第2の鍵データとの排他的論理和を計算する第2の排他的論理和演算処理と、
入力されたデータにシフト数S3の巡回シフト演算処理を施す第3の巡回シフト演算処理と、当該入力されたデータと前記第3の暗号用巡回シフト演算処理の出力データとの加算演算処理を行う第3の加算演算処理と、からなる第3の論理演算処理と、を所定の順番で実行するものであり、
前記暗号用ビット列変換処理におけるシフト数S1、S2およびS3は、全てが奇数、あるいは、S1およびS2のいずれか一方が2で残りの2つが奇数の値となるように設定されており、かつ、連続して実行される前記暗号演算処理間において、S1、S2およびS3の値が互いに一致しないように設定されていることを特徴とする。
【0008】
ここで、前記暗号用ビット列変換処理におけるシフト数S1、S2およびS3は、連続して実行されるN(Nは2以上)回の前記暗号演算処理に設定されるS1、S2およびS3の値のパターンが、当該N回の前記暗号演算処理に続く、連続して実行されるN回の前記暗号演算処理に設定されるS1、S2およびS3の値のパターンと一致しないように設定されていてもよい。
【0009】
また、前記暗号用ビット列変換処理におけるシフト数S1、S2およびS3の値の組み合わせは、複数回実行される前記暗号演算処理各々に共通の3つの値の組み合わせであってもよい。
【0010】
次に、本発明の復号装置は、前記暗号装置で生成された暗号データを、前記暗号装置で使用した暗号鍵と共通の復号鍵を用いて平文データに復号変換する復号装置であって、
入力された第1、第2のデータに前記復号鍵を作用させて演算処理を行い、その結果を、次回に入力すべき第1、第2のデータとして出力する復号演算処理を、前記暗号装置の暗号変換手段の暗号演算処理と同じ回数実行する復号変換手段と、
前記暗号データを2つに分割し、結果を、前記復号変換手段の最初の回の前記復号演算処理に入力すべき第1、第2のデータとして出力する復号用分割手段と、
前記復号変換手段の最後の回の前記復号演算処理より出力された第1、第2のデータを結合し、結果を、平分データとして出力する復号用結合手段とを有し、
前記復号演算処理は、
入力された第2のデータに対し、前記暗号変換手段の前記暗号演算処理における前記暗号用ビット列変換処理と同じ処理を行なう復号用ビット列変換処理と、前記復号用ビット列変換処理の出力データと入力された第1のデータとの排他的論理和を計算する復号用排他的論理和演算処理と、を実行し、
前記復号用排他的論理和演算処理の出力データを前記次回に入力すべき第2のデータとし、入力された第2のデータを前記次回に入力すべき第1のデータとして出力するものであり、
前記復号用ビット列変換処理におけるシフト数S1、S2およびS3は、前記復号変換手段の最初の回の前記復号演算処理に設定される値が前記暗号変換手段の最後の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3の値と各々一致し、前記復号変換手段の最後の回の前記復号演算処理に設定される値が前記暗号変換手段の最初の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3の値と各々一致するように、前記復号変換手段にて複数回実行される前記復号演算処理各々と前記暗号変換手段にて複数回実行される前記暗号演算処理各々との間で、実行順番上、逆順に設定されていることを特徴とする。
【0011】
【発明の実施の形態】
以下に、本発明の実施の形態を図面を用いて説明する。
【0012】
図1は、本発明の一実施形態が適用された暗号通信システムの概略構成図である。図示するように、本実施形態の暗号通信システムは、平文(暗号変換処理が施されていないデータを指す)を暗号変換して暗号文(暗号変換処理が施されたデータを指す)を作成し、送信するデータ送信機1と、データ送信機1より送信された暗号文を復号変換して平文を得るデータ受信機2とを備える。図1において、鍵管理機関3は、暗号・復号変換に用いる各種パラメータを決定するアルゴリズム鍵(これについては後述する)をデータ送信機1およびデータ受信機2に提供するための機関である。
【0013】
データ送信機1は、図示するように、データに所定の処理を施して平文を生成するデータ処理部13と、データ処理部より出力された平文を暗号変換して暗号文を作成する暗号化部11と、暗復号処理に用いる鍵を生成し、当該鍵をデータ受信機2と共有するための処理を行う鍵共有部12と、鍵共有部32で生成する鍵の鍵長を決定する鍵長データを保持する鍵長情報保持部15と、データ受信機2と通信を行う通信処理部14とを有する。
【0014】
一方、データ受信機器2は、データ送信機1と通信を行う通信処理部34と、通信処理部34を介してデータ送信機1より受信した暗号文を復号変換して平文を得る復号化部31と、復号化部31より出力された平文に所定のデータ処理を施すデータ処理部33と、データ送信機1の鍵共有部12との間で暗復号処理に用いる鍵の共有を行う鍵共有部32とを有する。
【0015】
ここで、データ送信機1、データ受信機2としては、たとえば、デジタル放送送信機、デジタル放送受信機が考えられる。この場合、データ処理部13および33は、デジタル放送サービスが配信するMPEG2-TS(Transport Stream)形式のようなデジタル番組データを扱うこととなる。すなわち、データ処理部13はデジタル番組データの圧縮・多重化などの処理などを行い、データ処理部33はデジタル番組データの多重分離・伸長などの処理を行う。
【0016】
さて、データ送信機1およびデータ受信機2間で暗号通信を行う場合、データ送信機1およびデータ受信機2は、先ず、データを暗復号化するために必要な、鍵と呼ばれるデータの共有を行う。鍵の共有は、データ送信機1の鍵共有部12とデータ受信機2の鍵共有部32とが、通信処理部14および通信処理部34を介して、メッセージを互いに交換し合うことで行われる。この時、データ送信機1の鍵長情報保持部15に保持されている鍵長データを基に、共有する鍵の鍵長を決定する。
【0017】
なお、データ送信機1およびデータ受信機2間で行う鍵の共有は、たとえば、暗号通信を行う毎や所定の通信時間毎など、定期的あるいは所定のイベント発生毎に行って、二者間で共有する鍵を変更することが望ましい。鍵が異なれば生成される暗号文が異なるので、第三者による暗号文の解読攻撃を困難にできるからである。鍵の共有方法には様々な方法が考えられるが、たとえば、デフィー・ヘルマンの鍵共有方法(たとえば岡本龍明他著、「現代暗号」、産業図書株式会社発行の特に第200頁乃至第202頁に詳しく記載されている)を用いる。これを用いれば、鍵共有のために交換するメッセージを第三者が盗聴しても、それらから鍵を推定することが非常に困難となり、毎回異なった鍵を安全に共有することが可能になる。
【0018】
鍵の共有が完了した後、データ送信機1は、データ処理部12により送信すべきデータを処理して平文を生成し、これを暗号化部11に入力する。暗号化部11は、暗号変換部20と、鍵変換部23と、アルゴリズム鍵保持部24とを有する。鍵変換部23は、データ受信機2との間で共有している鍵およびその鍵長を示す鍵長データを、鍵共有部12より受け取り、これに基づいて、変換鍵と呼ばれる複数のデータを生成する。アルゴリズム鍵保持部24は、アルゴリズム鍵と呼ばれる複数のデータを保持している。暗号変換部20が行う変換アルゴリズムはアルゴリズム鍵により決定される。暗号変換部20は、鍵変換部23で生成した変換鍵と、アルゴリズム鍵保持部24が保持するアルゴリズム鍵とを用いて、平文を暗号変換し、暗号文を出力する。暗号化部11より出力された暗号文は、通信処理部14を介してデータ受信機器2に送信される。
【0019】
一方、データ受信機2は、通信処理部34により、データ送信機1から送信された暗号文を受信し、これを復号化部31に入力する。復号化部31は、復号変換部40と、鍵変換部43と、アルゴリズム鍵保持部44とを有する。鍵変換部43は、上述したデータ送信機2の暗号化部11が備える鍵変換部23と同様の構成であり、データ送信機1との間で共有している鍵およびその鍵長を示す鍵長データを、鍵共有部32より受け取り、これに基づいて、データ送信機2の暗号化部11が備える鍵変換部23で生成される変換鍵と同じ変換鍵を生成する。アルゴリズム鍵保持部44は、上述したデータ送信機2の暗号化部11が備えるアルゴリズム鍵保持部24が保持するアルゴリズム鍵と同じアルゴリズム鍵を保持している。復号変換部40が行う変換アルゴリズムはアルゴリズム鍵により決定される。復号変換部40は、鍵変換部43で生成した変換鍵とアルゴリズム鍵保持部44が保持するアルゴリズム鍵とを用いて、暗号文を復号変換し、平文を出力する。復号化部31より出力された平文はデータ処理部33に入力され、そこでデータ処理が行われる。
【0020】
なお、データ送信機1およびデータ受信機2間で暗号通信を行うためには、上述したように、データ送信機1の暗号化部11の暗号変換部20で用いる変換アルゴリズムを決定するアルゴリズム鍵と、データ受信機2の復号化部31の復号変換部40で用いる変換アルゴリズムを決定するアルゴリズム鍵とが同じでなければならない。したがって、このアルゴリズム鍵を秘密情報として扱うことで、認証機能を有する暗号通信を実現することができる。すなわち、正当な機器のみが正しいアルゴリズム鍵を保持している構成にすれば、通信相手が正当な機器の場合のみ、暗号通信を行うことができる。
【0021】
本実施形態では、正当な機器のみが正しいアルゴリズム鍵を保持する構成とするために、図1に示すように、アルゴリズム鍵を生成して集中管理する鍵管理機関3を設けている。正当な機器(ここでは、データ送信機1とデータ受信機2)は、鍵管理機関3からアルゴリズム鍵を外部に漏れないように安全に取得する。たとえば、データ送信機1およびデータ受信機2の製造時に、鍵管理機関3が管理しているアルゴリズム鍵を、アルゴリズム鍵保持部24およびアルゴリズム鍵保部44に予め記憶させておく。この際、データ受信機1の鍵長情報保持部15に鍵長データも記憶させておく。
【0022】
このようにすることで、正しいアルゴリズム鍵を保持している正当な機器が送信する暗号文は、正しいアルゴリズム鍵を保持している正当な機器しか復号化することができない。また、鍵に加えて、アルゴリズム鍵も秘密情報であるので、第三者による通信路上を流れる暗号文の解読攻撃をより困難にすることができる。
【0023】
また、データ送信機1は、鍵長データを鍵管理機関3から取得し、これを基に、データ受信機2と共有する暗復号用の鍵を生成するので、当該鍵の鍵長を更新することが可能となる。たとえば、新規に製造するデータ送信機1に、更新した鍵長データを埋め込んでおけば、新規に製造されたデータ送信機1との暗号通信においては、鍵長が更新された鍵を用いることが可能となる。これにより、将来において暗復号用の鍵の鍵長を長くして、より安全性を向上させることが可能となる。また、製品を出荷する地域に応じて、鍵長を変更するようなことも可能となる。
【0024】
次に、データ送信機1の暗号化部11とデータ受信機2の復号化部31のより詳細な構成について説明する。
【0025】
まず、データ送信機1の暗号化部11について説明する。
【0026】
図2は、図1に示す暗号化部11の概略構成図である。なお、図2に示す暗号化部11の各構成要素は、ASIC(Application Specific Integrated Circuits)、FPGA(Field Programmable Gate Array)などの集積ロジックICによりハード的に実現されるものでもよいし、あるいは、DSP(Digital Signal Processor)などの計算機によりソフトウエア的に実現されるものでもよい。
【0027】
鍵変換部23は、鍵共有部15より、40ビットあるいは64ビットの暗復号用の鍵と1ビットの鍵長データとを受け取り、これらを基に、32ビットの変換鍵K1、K2を生成する。ここで、鍵長データの値は、鍵が40ビットならば0とし、64ビットならば1とする。
【0028】
図3は図2に示す鍵変換部23の概略構成図である。
【0029】
図示するように、鍵変換部23は、64ビット長のレジスタ26と、マルチプレクサ27と、加算演算部28とを有する。鍵共有部12から受け取った鍵は、まずレジスタ26に格納され、ここで、鍵長が40ビットならばレジスタ26の下位40ビットに値が格納され、64ビットならばレジスタ26の全てに値が格納される。次に、レジスタ26の下位32ビットを変換鍵K1とする。次いで、鍵共有部12から受け取った鍵長データの値が0ならばレジスタ26の下位9ビット目から下位40ビット目までの32ビットがマルチプレクサ27の出力値として選択され、当該出力値が加算演算部28で変換鍵K1と32ビット加算され、その結果が変換鍵K2となる。一方、鍵共有部12から受け取った鍵長データの値が1ならばレジスタ26の上位32ビットがマルチプレクサ27の出力値として選択され、当該出力値が加算演算部28で変換鍵K1と32ビット加算され、その結果が変換鍵K2となる。なお、ここで32ビット加算とは、通常の加算結果を232で割った余りを結果とする演算処理のことである。
【0030】
図2に戻り、暗号変換部20は、入力された2つの32ビットデータLi、Ri(0≦i≦N)に、変換鍵K1、K2を作用させて、換字転置変換処理を行い、その結果を、次の段に入力すべき2つの32ビットデータLi+1、Ri+1として出力するN段の換字転置変換部211〜21Nと、データ処理部13より出力された64ビットの平文を、上位32ビットデータL0と下位32ビットデータR0に分割して最初の段の換字転置変換部211に入力する分割部25aと、最後の段の換字転置変換部21Nから出力された2つの32ビットデータLN、RNを、データLNを上位ビットデータ、データRNを下位ビットデータとして結合し、64ビットの暗号文を得る結合部25bとを有する。ここで、換字転置変換部21n(1≦n≦N)の変換アルゴリズムは、アルゴリズム鍵保持部24に保持されているアルゴリズム鍵Gnにより決定される。
【0031】
さて、上記構成の暗号変換部20に、データ処理部13より出力された64ビットの平文が入力されると、分割部25aにより上位32ビットデータL0と下位32ビットデータR0に分割されて、換字転置変換部211に入力される。そこで、変換鍵K1、K2を用いて、第1回目の暗号変換が行われる。続いて、換字転置変換部211での暗号変換の結果得られた32ビットデータL1と32ビットデータR1が次の段の換字転置変換部212に入力されると、そこで、変換鍵K1、K2を用いて、第2回目の暗号変換が行われる。換字転置変換部212での暗号変換の結果得られた32ビットデータL2と32ビットデータR2は、次の段の換字転置変換部213に入力され、そこで同様の処理がなされる。以上のような暗号変換をN回繰り返し、最終の段の換字転置変換部21Nでの暗号変換の結果得られた32ビットデータLNと32ビットデータRNが結合部25bで結合されることにより、暗号文が得られる。以降、暗号変換の総繰り返し数Nをラウンド数と呼ぶものとする。
【0032】
図4は、図2に示す換字転置変換部21n(1≦n≦N)の概略構成図である。
【0033】
図示するように、換字転置変換部21nは、ビット列変換部61と、排他的論理和演算部62とからなり、入力された32ビットデータLn-1と32ビットデータRn-1を、変換鍵K1とK2を用いて、32ビットデータLnと32ビットデータRnに変換する。
【0034】
換字転置変換部21nは、まず、入力された32ビットデータLn-1をビット列変換部61に入力する。ビット列変換部61は、アルゴリズム鍵Gnにより決定される変換アルゴリズムにしたがい、変換鍵K1とK2を用いて、入力された32ビットデータLn-1にビット列変換処理を加える。ビット列変換処理は、ビット列変換部61の入力値をUとし、出力値をZとすれば、数式で以下のように表すことができる。
【0035】
Z=FGn(K1,K2,U)
ここで、関数FGn(X)は、アルゴリズム鍵Gnにより決定されるビット列変換部61の変換を表す。また、アルゴリズム鍵Gnは、以下に示すデータからなる。
【0036】
Gn=(A1n,A2n,A3n,S1n,S2n,S3n)
ここで、A1n、A2n、A3nは、加算演算に用いる加算値であり32ビットデータである。S1n、S2n、S3nは、左巡回シフト演算に用いるシフト値であり、いずれも1〜31の値をとる。
【0037】
図5は、図4に示すビット列変換部61の概略構成図である。
【0038】
図示するように、ビット列変換部61は、5個のビット列変換器81〜85からなる。
【0039】
ビット列変換器81は排他的論理和部94を備え、ビット列変換部61に入力された32ビットデータLn-1と変換鍵K1との排他的論理和を計算する。図示するように、ビット列変換器81の入力(すなわち、32ビットデータLn-1)をUとし、出力値をVとすれば、ビット列変換器81の変換は、以下のように表せる。
【0040】
V=K1(+)U
ここで、表記X(+)Yは、XとYとの排他的論理和演算を示す。
【0041】
ビット列変換器82は、巡回シフト演算部91と加算演算部95を備える。巡回シフト演算部91は、ビット列変換器81よりの出力を、アルゴリズム鍵Gnのシフト値S1n(1≦S1n≦31)だけ左に巡回シフトする。加算演算部95は、ビット列変換器81よりの出力と、巡回シフト演算部91よりの出力と、アルゴリズム鍵Gnの加算値A1nとの32ビット加算演算を行う。図示するように、ビット列変換器82の入力(すなわち、ビット列変換器81の出力)をVとし、出力値をWとすれば、ビット列変換器82の変換は、以下のように表せる。
【0042】
W=V+(V<<<S1n)+A1n
ここで、表記X<<<Yは、Xを左にYビットだけ巡回シフトすることで得られるデータを表す。
【0043】
ビット列変換器83は、巡回シフト演算部92と加算演算部96を備える。巡回シフト演算部92は、ビット列変換器82よりの出力を、アルゴリズム鍵Gnのシフト値S2n(1≦S2n≦31)だけ左に巡回シフトする。加算演算部96は、ビット列変換器82よりの出力と、巡回シフト演算部92よりの出力と、アルゴリズム鍵Gnの加算値A2nとの32ビット加算演算を行う。図示するように、ビット列変換器83の入力(すなわち、ビット列変換器82の出力)をWとし、出力値をXとすれば、ビット列変換器82の変換は、以下のように表せる。
【0044】
X=W+(W<<<S2n)+A2n
ビット列変換器84は排他的論理和部97を備え、ビット列変換器83よりの出力と変換鍵K2との排他的論理和を計算する。図示するように、ビット列変換器84の入力(すなわち、ビット列変換器83の出力)をXとし、出力値をYとすれば、ビット列変換器84の変換は、以下のように表せる。
【0045】
Y=K2(+)X
ビット列変換器85は、巡回シフト演算部93と加算演算部98を備える。巡回シフト演算部93は、ビット列変換器84よりの出力を、アルゴリズム鍵Gnのシフト値S3n(1≦S3n≦31)だけ左に巡回シフトする。加算演算部98は、ビット列変換器84よりの出力と、巡回シフト演算部93よりの出力と、アルゴリズム鍵Gnの加算値A3nとの32ビット加算演算を行う。図示するように、ビット列変換器85の入力(すなわち、ビット列変換器84の出力)をYとし、出力値をZとすれば、ビット列変換器82の変換は、以下のように表せる。
【0046】
Z=Y+(Y<<<S3n)+A3n
このように、ビット列変換部61は、5つのビット列変換器81〜85をデータに作用させていくことで、ビット列変換を行う。なお、5つのビット列変換器81〜85のデータへの作用順序は、図5に示すものに限定されるものではない。図5では、ビット列変換器81→ビット列変換器82→ビット列変換器83→ビット列変換器84→ビット列変換器85の順序で、データへ作用させているが、たとえば、ビット列変換器84→ビット列変換器83→ビット列変換器81→ビット列変換器85→ビット列変換器82の順序で、データへ作用させるようにしてもよい。
【0047】
図4に戻り、排他的論理和演算部62は、ビット列変換器83よりの出力と、換字転置変換部21nに入力された32ビットデータRn-1との排他的論理和を計算する。そして、その結果を、次の段の換字転置変換部21n+1に入力すべき32ビットデータLnとして出力する。一方、換字転置変換部21nに入力された32ビットデータLn-1を、次の段の換字転置変換部21n+1に入力すべき32ビットデータRnとして出力する。
【0048】
換字転置変換部21nでの変換をまとめると、以下のように表せる。
【0049】
Ln=Rn-1(+)FGn(K1,K2,Ln-1)
Rn=Ln-1
ここで、換字転置変換部21n(1≦n≦N、Nはラウンド数)に設定するアルゴリズム鍵Gnについて説明する。
【0050】
先に図5を用いて説明したように、アルゴリズム鍵Gnは、加算演算部95、96、98での加算演算に用いる加算値A1n、A2n、A3n(32ビットデータ)と、巡回シフト演算部91、92、93での左巡回シフト演算に用いるシフト値S1n、S2n、S3n(1≦S1n、S2n、S3n≦31)からなる。このうち、シフト値S1n、S2n、S3nについて、本実施形態では、以下の条件を満たすように設定している。
【0051】
(1)シフト値S1n、S2n、S3nは、全てが奇数、あるいはS1nおよびS2nのいずれか一方が2で残り2つが奇数の値となるように設定する。また、連続する2段の換字転置変換部21i、21i+1(1≦i≦N−1)において、対応するシフト値が一致しないように設定する。すなわち、S1i≠S1i+1、S2i≠S2i+1、S3i≠S3i+1となるように設定する。
【0052】
(2)連続するL(2≦L)段の換字転置変換部21i〜21i+L-1に設定されるシフト値のパターンが、次の連続するL段の換字転置変換部21i+L〜21i+2L-1(1≦i、i+2L−1≦N)に設定されるシフト値のパターンと一致しないように設定する。たとえば、連続する2段の換字転置変換部21i、21i+1に設定するシフト値のパターンをBCとした場合、次の連続する2段の換字転置変換部21i+2、21i+3に設定するシフト値のパターンがBCとならないように、すなわち、S1i≠S1i+2、S1i+1≠S1i+3、S2i≠S2i+2、S2i+1≠S2i+3、S3i≠S3i+2、S3i+1≠S3i+3となるように設定する。
【0053】
上記(1)に示す条件は、本発明者等が行った差分解読法および線形解読法による暗号解読に対する強度評価より見出したものである。
【0054】
ここで、差分解読法とは、1990年にBihamとShamirによって提案された解読法である((E.Biham, A.Shamir, Differential Cryptanalysis of DES-like Cryptosystems (Extended Abstract), Advances in Cryptology, CRYPTO'90 proceedings, Lecture Notes in Computer Science Vol. 537, Springer-Verlag, 1990.), (E.Biham, A.Shamir, Differential Cryptanalysis of the Full 16-round DES, Advances in Cryptology, CRYPTO'92 proceedings, Lecture Notes in Computer Science Vol. 740, Springer-Verlag, 1992.))。ある特定の差分を有する平文・暗号文のペアが生じる確率が高くなる場合に、それらの平文・暗号文のペアを利用して候補となる鍵を絞り込む方法である。たとえば、あるF関数に対して、ある一定の入力データの差分ΔXに対して高い確率で生成される出力データの差分ΔYを予め調べておき、次に、鍵Kを固定したF関数に対し、ΔXの差分を有する入力データに対して生成される出力データの差分がΔYに偏っていないかどうか調べる。固定した鍵Kが真の値であれば出力データは高い確率でΔYであるはずなので、差分がΔYに偏っている場合、鍵Kが真の鍵である確率が高くなる。この原理を用いて鍵の候補を絞り込む。
【0055】
差分解読法に対する厳密な安全性評価尺度として、平均差分確率が提案されている(X.Lai, L.Massey and S.Murphy, Markov Cipher and Differential Cryptanalysis, EUROCRYPTO'91 proceedings, Lecture Notes in Computer Science Vol. 547, Springer-Verlag, 1991.)。非線型関数の入出力データにおいて各差分のペアが発生する確率をすべての鍵について計算し、そのなかで最も発生確率の高くなる差分のペアを見つける。このような差分ペアの発生する確率が平均差分確率である。平均差分確率が小さいほど、差分解読法に対する安全性が高くなる。平均差分確率は以下のように定義される。
【0056】
【数1】
【0057】
差分解読法に対する安全性を評価する場合、データランダム化部全体の平均差分確率を計算することは困難である。そこで、厳密な意味で安全性を保証するものではないが、差分解読法に対する安全性の必要条件として、最大差分特性確率が利用されている。例えばデータランダム化部の一部となっている非線型関数の平均差分確率を計算する。次に各非線型関数の平均差分確率がすべて独立であると仮定したうえで、これらの平均差分確率を用いてデータランダム化部全体の確率を計算する。このような条件付き確率が最大差分特性確率となる。実際の計算方法は、データランダム化部の構造に依存する。なお、差分解読に必要な平文・暗号文のペアの数は、平均差分確率の逆数として求めることができる。
【0058】
一方、線形解読法とは、1993年に松井によって提案された解読法である((M.Matsui, Linear Cryptanalysis Method for DES Cipher, Advances in Cryptology, EUROCRYPTO'93 proceedings, Lecture Notes in Computer Science Vol. 765, Springer-Verlag, 1993.), (M.Matsui, The First Experimental Cryptanalysis of the Data Encryption Standard, Advances in Cryptology, CRYPTO'94 proceedings, Lecture Note in Computer Science Vol. 839, Springer-Verlag, 1994.)。平文と暗号文のbit値の間に線形関係を持つ確率が1/2から離れている場合、その線形関係を利用して候補となる鍵を推定し解読を行う方法である。実際に解読を行う場合には、任意の平文・暗号文のペアを多数入手する必要がある。
【0059】
線形解読に対する安全性の尺度として、平均線形確率が提案されている(K.Nyberg, Linear Approximation of Block Ciphers, Advances in Cryptology, - CRYPTO'94, Lecture Notes in Computer Science Vol.950, Springer-Verlag, 1995.)。非線型関数の入出力データのbit間で線形関係を持つ確率をすべての鍵について計算し、その中で最も発生確率が高くなる線形関係を見つける。このような線形関係が生じる確率が平均線形確率である。平均線形確率が小さいほど、線形解読法に対する安全性は高くなる。平均線形確率は以下のように定義される。
【0060】
【数2】
【0061】
線形解読法に対する安全性を評価する場合、差分解読法の場合と同様にデータランダム化部全体の平均線形確率を評価することは困難である。そこで差分解読法の場合と同様に最大線形特性確率という指標を用いる。たとえば、まずデータランダム化部の一部になっている非線型関数の平均線形確率を計算する。次に、各非線型関数が独立であると仮定した上で、これらの平均線形確率を基に、データランダム化部全体の確率を計算する。実際の計算方法はデータランダム化部の構造に依存する。なお、線形解読法による解読で実際に必要となる平文・暗号文のペアの数は、線形確率の逆数として求まる。
【0062】
本発明者等は、上記(1)の条件を満たすように、各換字転置変換部21nのアルゴリズム鍵Gnのシフト値を設定することで、換字転置変換部の段数すなわちラウンド数Nを増やさなくても、差分解読法および線形解読法による攻撃に対する強度を向上させることが可能になることを見出した。その根拠については後述する。
【0063】
また、上記(2)に示す条件は、スライド攻撃に対抗するためのものである。スライド攻撃とは、段数(ラウンド数)に依存しない選択平文型攻撃方法のことである。スライド攻撃による暗号解読については、BiryukovとWagnerによりFSE99(Fast Software Encription work shop 1999)にて発表された論文「Slide Attacks」に詳しく記載されている。
【0064】
さらに、本実施形態では、以下の条件を満たすようにアルゴリズム鍵Gnを設定している。
【0065】
いま、鍵変換部23で生成される変換鍵K1、K2を固定とし、全ての換字転置変換部211〜21Nから連続する2以上の換字転置変換部21i〜21i+j(1≦i、i+j≦N)を任意に選んで、同一のデータを入力値として変換する場合を考える。この場合、変換結果は、選択した換字転置変換部21i〜21i+jで用いるアルゴリズム鍵Gi〜Gi+jにより決定される。本実施形態では、上述した全ての組み合わせにおいて、異なった変換結果が得られるようなアルゴリズム鍵のみを用いるものとする。このようにすることで、換字転置変換部を繰り返し用いた暗号変換に周期性が現れないようにすることができ、これにより、暗号の強度を向上させることができる。
【0066】
なお、暗号化部11がASICやFPGAなどの集積ロジックICによりハード的に実現される場合、シフト値S1n、S2n、S3nの組み合わせとして、全てのアルゴリズム鍵G1〜GNに共通の3つの値の組み合わせを用い、加算値A1n、A2n、A3nの組み合わせとして、全てのアルゴリズム鍵G1〜GNに共通の3つの値の組み合わせを用いるようにしてもよい。このようにすることで、ハード構成が複雑になるのを防ぐことができる。
【0067】
次に、データ受信機2の復号化部31について説明する。
【0068】
図6は、図1に示す復号化部31の概略構成図である。この復号化部31は、上述した図2の暗号化部11を用いて暗号変換された暗号文を、元の平文に復号するものである。なお、図6に示す復号化部31の各構成要素は、図2に示す暗号化部11と同様、ASICやFPGAなどの集積ロジックICによりハード的に実現されるものでもよいし、あるいは、DSPなどの計算機によりソフトウエア的に実現されるものでもよい。
【0069】
鍵変換部43は、図2に示す暗号化部11の鍵変換部23と同様の処理を行う。すなわち、鍵共有部32より、40ビットあるいは64ビットの暗復号用の鍵と1ビットの鍵長データとを受け取り、これらを基に、32ビットの変換鍵K1、K2を生成する。ここで、鍵長データの値は、鍵が40ビットならば0とし、64ビットならば1とする。
【0070】
復号変換部40は、入力された2つの32ビットデータLi、Ri(0≦i≦N)に、変換鍵K1、K2を作用させて、換字転置変換処理を行い、その結果を、次の段に入力すべき2つの32ビットデータLi-1、Ri-1として出力するN段の換字転置変換部411〜41Nと、通信処理部34を介してデータ送信機1より受け取った64ビットの暗号文を、上位32ビットデータLNと下位32ビットデータRNに分割して、最初の段の換字転置変換部41Nに入力する分割部45aと、最後の段の換字転置変換部411から出力された2つの32ビットデータL0、R0を、データL0を上位ビットデータ、データR0を下位ビットデータとして結合し、64ビットの平文を得る結合部45bとを有する。ここで、換字転置変換部41n(1≦n≦N)の変換アルゴリズムは、アルゴリズム鍵保持部44に保持されているアルゴリズム鍵Gnにより決定される。アルゴリズム鍵保持部44は、図2に示す暗号化部11のアルゴリズム鍵保持部24が保持するアルゴリズム鍵G1〜GNと同じアルゴリズム鍵を保持している。
【0071】
さて、上記構成の復号変換部40に、通信処理部34を介してデータ送信機1より受け取った64ビットの暗号文が入力されると、分割部45aにより上位32ビットデータLN(図2に示す最終段の換字転置変換部21Nより出力される32ビットデータLNと一致)と下位32ビットデータRN(図2に示す最終段の換字転置変換部21Nより出力される32ビットデータRNと一致)に分割されて、換字転置変換部41Nに入力される。そこで、変換鍵K1、K2を用いて、第1回目の暗号変換が行われる。続いて、換字転置変換部41Nでの暗号変換の結果得られた32ビットデータLN-1と32ビットデータRN-1が次の段の換字転置変換部41N-1に入力されると、そこで、変換鍵K1、K2を用いて、第2回目の暗号変換が行われる。換字転置変換部41N-1での暗号変換の結果得られた32ビットデータLN-2と32ビットデータRN-2は、次の段の換字転置変換部413に入力され、そこで同様の処理がなされる。以上のような暗号変換をN回繰り返し、最終の段の換字転置変換部411での暗号変換の結果得られた32ビットデータL0と32ビットデータR0が結合部45bで結合されることにより、元の平文が得られる。以降、復号変換の総繰り返し数Nを、暗号変換の場合と同様、ラウンド数と呼ぶものとする。
【0072】
図7は、図6に示す換字転置変換部41n(1≦n≦N)の概略構成図である。ここで、図4に示す暗号化部11の換字転置変換部21nと同じ機能を有するものには同じ符号を付している。
【0073】
図示するように、換字転置変換部41nは、ビット列変換部61と、排他的論理和演算部62とからなり、入力された32ビットデータLnと32ビットデータRnを、変換鍵K1とK2を用いて、32ビットデータLn-1と32ビットデータRn-1に変換する。
【0074】
換字転置変換部41nは、まず、入力された32ビットデータLn-1をビット列変換部61に入力する。ビット列変換部61は、アルゴリズム鍵Gnにより決定される変換アルゴリズムにしたがい、変換鍵K1とK2を用いて、入力された32ビットデータRnにビット列変換処理を加える。
【0075】
排他的論理和演算部62は、ビット列変換部61よりの出力と、換字転置変換部41nに入力された32ビットデータLnとの排他的論理和を計算する。そして、その結果を、次の段の換字転置変換部41n-1に入力すべき32ビットデータRn-1として出力する。一方、換字転置変換部41nに入力された32ビットデータRnを、次の段の換字転置変換部41n-1に入力すべき32ビットデータLn-1として出力する。
【0076】
換字転置変換部41nでの変換をまとめると、以下のように表せる。
【0077】
Rn-1=Ln(+)FGn(K1,K2,Rn)
Ln-1=Rn
この変換は、先に図4、5を用いて説明した、暗号変換部20の換字転置変換部41nにおける変換の逆変換に相当する。
【0078】
図6に示すように、アルゴリズム鍵Gn(1≦n≦N)は、最初の段の換字転置変換部41Nに設定されるアルゴリズム鍵GNが図2に示す暗号変換部20の最後の段の換字転置変換部21Nに設定されるアルゴリズム鍵GNと一致し、最後の段の換字転置変換部411に設定されるアルゴリズム鍵G1が図2に示す暗号変換部20の最初の段の換字転置変換部211に設定されるアルゴリズム鍵G1と一致するように、復号変換部40の換字転置変換部411〜41Nと暗号変換部20の換字転置変換部211〜21Nとの間で、段の順番上逆順に設定されている。
【0079】
したがって、復号化部31が暗号化部11との間で同じ暗復号用の鍵を共有すれば、暗号化部11が暗号化したデータを復号化することができる。
【0080】
以上、本発明の一実施形態について説明した。
【0081】
本実施形態では、上述したように、データ送信機1が送信する暗号文は、当該データ送信機1が用いる暗復号用の鍵およびアルゴリズム鍵と同じ暗復号用の鍵およびアルゴリズム鍵を保持するデータ受信機2しか復号化することができない。そして、暗復号用の鍵に加えて、アルゴリズム鍵も秘密情報としているので、第三者による通信路上を流れる暗号文の解読攻撃をより困難にすることができる。
【0082】
また、本実施形態では、上述したように、アルゴリズム鍵Gn(1≦n≦N)のシフト値S1n、S2n、S3nとして、全てが奇数、あるいはS1nおよびS2nのいずれか一方が2で残り2つが奇数の値となるように設定している。このようにすることで、換字転置変換部の段数すなわちラウンド数Nを増やさなくても、差分解読法および線形解読法による攻撃に対する強度を向上させることができる。
【0083】
本発明者等は、差分解読法および線形解読法による暗号解読に対する強度評価実験を以下の要領で行った。
【0084】
1.差分解読法による暗号解読に対する強度評価
(1)準備
図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を、入力差分がΔX、出力差分がΔYで与えられるF関数とし、当該F関数の差分確率dp(ΔX→ΔY)を以下のように定義する。
【0085】
dp(ΔX→ΔY)=prob{F(U(+)ΔX)(+)F(U)=ΔY}
ここで、prob{A=B}はA=Bとなる確率(A=Bとなる出現回数/サンプル数)を意味する。
【0086】
差分確率を求めるための評価パターンとして、図8(a)に示す評価パターンを用意した。ここで、図8(a)は差分2段繰り返し型の評価パターンであり、1段目の関数F1は入力差分ΔX=0で出力差分ΔY=0、2段目の関数F2は入力差分ΔX=Δaで出力差分ΔY=0である。この評価パターンを用いたのは、差分2段繰り返し型の評価パターンにおける2段目の関数F2の差分確率
dp(Δa→0)=prob{F2(U(+)Δa)(+)F(U)=0}
が最も大きくなるからである。
【0087】
(2)関数Fの入力Uのビット幅が16ビット以下の場合の評価
関数Fの入力Uのビット幅(すなわち、関数Fで処理されるデータのビット幅)を2e(e=2、3、4)とし、シフト値S1n、S2n、S3nの全ての組み合わせ(但し、入力Uのビット幅が2eであるので、シフト値S1n、S2n、S3nは1〜2eの範囲の値をとる)に対して、差分2段繰り返し型評価パターンの2段目の関数F2の差分確率
dp(Δa→0)=prob{F2(U(+)Δa)(+)F(U)=0}
を評価した。関数Fの入力Uのビット幅を24=16としたときの評価結果を図9、10に示す。図9では、シフト値S1n、S2n、S3n各々と入力Uのビット幅16との最大公約数をそれぞれa、b、cとすると、a、b、cの最大値max(a,b,c)は8、4、2、1のいずれかの値をとることに着目し、max(a,b,c)の値の大きい順に示した。また、max(a,b,c)各々において、出力差分0を導く入力差分のうち、最大差分確率を与えるシフト値(S1n、S2n、S3n)を、当該最大差分確率の大きい順に示した。図10は、図9に示すmax(a,b,c)=2の場合の結果のうち、シフト値(S1n、S2n、S3n)が(2、奇数、奇数)あるいは(奇数、2、奇数)の場合の結果を抜き出したものである。
【0088】
図9に示すように、max(a,b,c)が小さい程、近似の確率が低下する。したがって、max(a,b,c)が1のとき、つまり、シフト値S1n、S2n、S3n各々の、入力Uのビット幅との最大公約数が1のとき、いいかえれば、シフト値S1n、S2n、S3nがすべて奇数のとき、最良差分確率が2-4.75〜2-6.68程度と最も低くなり、差分解読法による攻撃に対する耐性を最も高くすることができることがわかった。また、max(a,b,c)が2の場合でも、図10に示すように、シフト値(S1n、S2n、S3n)が(2、奇数、奇数)あるいは(奇数、2、奇数)の場合は、最良差分確率が2-3.71〜2-4.79程度と、max(a,b,c)が2の場合におけるその他の場合に比べて低くなり、差分解読法による攻撃に対する耐性を高くすることができることがわかった。なお、ここでは、入力Uのビット幅が16の場合についてのみ結果を表示しているが、入力Uのビット幅が4、8の場合についても、シフト値(S1n、S2n、S3n)として、任意の値(但し、1≦S1n、S2n、S3n<入力Uのビット幅)をピックアップし、評価した結果も、同様の傾向を示した。したがって、本発明者等は、上記の実施形態で用いる換字転置変換部21n、41nのビット列変換部61に設定するアルゴリズム鍵Gnのシフト値(S1n、S2n、S3n)として、(奇数、奇数、奇数)、(2、奇数、奇数)あるいは(奇数、2、奇数)となるように設定することで、差分解読法による攻撃に対する強度を向上させることができることを見出した。
【0089】
(3)関数Fの入力Uのビット幅が32ビットの場合の評価
上記(2)での結果を踏まえ、上記の実施形態で用いる換字転置変換部21n、41nのビット列変換部61に設定するアルゴリズム鍵Gnのシフト値(S1n、S2n、S3n)として、(2、奇数、奇数)あるいは(奇数、2、奇数)となるように設定し、入力Uのビット幅を25=32とした場合における差分2段繰り返し型評価パターンの2段目の関数F2の差分確率
dp(Δa→0)=prob{F2(U(+)Δa)(+)F(U)=0}
を評価した。結果を図11に示す。この結果からわかるように、入力Uのビット幅32の場合、シフト値(S1n、S2n、S3n)が(2、奇数、奇数)あるいは(奇数、2、奇数)であれば、最良差分確率は2-7.69〜2-8.70程度であった。
【0090】
2.線形解読法による暗号解読に対する強度評価
(1)準備
図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を、入力マスクがΓX、出力マスクがΓYで与えられるF関数とし、当該F関数の線形近似確率lp(ΓX→ΓY)を以下のように定義する。
【0091】
lp(ΓX→ΓY)=|2prob{F(U)・ΓY=X・ΓX}−1|2
ここで、A・Bは、Aについて、Bのビット列において値「1」のビットのビット位置と同じビット位置のビットの値が「1」であるビットの数を調べ、そのビット数のmod2をとる意味である。
【0092】
線形近似確率を求めるための評価パターンとして、図8(b)に示す評価パターンを用意した。ここで図8(b)は線形2段繰り返し型の評価パターンであり、1段目の関数F1は入力マスクΓX=0で出力マスクΓY=0、2段目の関数F2は入力マスクΓX=0で出力マスクΓY=Γaである。この評価パターンを用いたのは、線形2段繰り返し型の評価パターンにおける2段目の関数F2の線形近似確率
lp(0→Γa)=|2prob{F2(U)・Γa=U・0}−1|2
が最も大きくなるからである。
【0093】
(2)関数Fの入力Uのビット幅が16ビット以下の場合の評価
関数Fの入力Uのビット幅(すなわち、関数Fで処理されるデータのビット幅)を2e(e=2、3、4)とし、シフト値S1n、S2n、S3nの全ての組み合わせ(但し、入力Uのビット幅が2eであるので、シフト値S1n、S2n、S3nは1〜2e-1の範囲の値をとる)に対して、線形2段繰り返し型の評価パターンの2段目の関数F2の線形近似確率
lp(0→Γa)=|2prob{F2(U)・Γa=U・0}−1|2
を評価した。図12、13に、関数Fの入力Uのビット幅を24=16としたときの評価結果を示す。図12では、図9と同様、シフト値S1n、S2n、S3n各々について、入力Uのビット幅16との最大公約数をそれぞれa、b、cとすると、a、b、cの最大値max(a,b,c)が8、4、2、1のいずれかの値をとることに着目し、max(a,b,c)の値の大きい順に示した。また、max(a,b,c)各々において、入力マスク0となる出力マスクのうち最大線形近似確率を与えるシフト値(S1n、S2n、S3n)を、当該最大線形近似確率の大きい順に示した。図12は、図11に示すmax(a,b,c)=2の場合の結果のうち、シフト値(S1n、S2n、S3n)が(2、奇数、奇数)あるいは(奇数、2、奇数)の場合の結果を抜き出したものである。
【0094】
図12に示すように、max(a,b,c)が小さい程、近似の確率が低下する。したがって、max(a,b,c)が1のとき、つまり、シフト値S1n、S2n、S3n各々の、入力Uのビット幅との最大公約数が1のとき、いいかえれば、シフト値S1n、S2n、S3nがすべて奇数のとき、最良線形近似確率が2-5.24〜2-7.18程度と最も低くなり、線形解読法による攻撃に対する耐性を最も高くすることができることがわかった。また、max(a,b,c)が2の場合でも、図13に示すように、シフト値(S1n、S2n、S3n)が(2、奇数、奇数)あるいは(奇数、2、奇数)の場合は、最良線形近似確率が2-3.44〜2-5.58程度と、max(a,b,c)が2の場合におけるその他の場合に比べて低くなり、線形解読法による攻撃に対する耐性を高くすることができることがわかった。なお、ここでは、入力Uのビット幅が16の場合についてのみ結果を表示しているが、入力Uのビット幅が4、8の場合についても、シフト値(S1n、S2n、S3n)として、任意の値(但し、1≦S1n、S2n、S3n<入力Uのビット幅)をピックアップし、評価した結果も、同様の傾向を示した。したがって、本発明者等は、上記の実施形態で用いる換字転置変換部21n、41nのビット列変換部61に設定するアルゴリズム鍵Gnのシフト値(S1n、S2n、S3n)として、(奇数、奇数、奇数)、(2、奇数、奇数)あるいは(奇数、2、奇数)となるように設定することで、線形解読法による攻撃に対する強度を、差分解読法による攻撃に対する場合と同様、向上させることができることを見出した。
【0095】
(3)関数Fの入力Uのビット幅が32ビットの場合の評価
上記(2)での結果を踏まえ、上記の実施形態で用いる換字転置変換部21n、41nのビット列変換部61に設定するアルゴリズム鍵Gnのシフト値(S1n、S2n、S3n)として、(2、奇数、奇数)あるいは(奇数、2、奇数)となるように設定し、入力Uのビット幅を25=32とした場合における線形2段繰り返し型評価パターンの2段目の関数F2の差分確率
lp(0→Γa)=|2prob{F2(U)・Γa=U・0}−1|2
を評価した。結果を図14に示す。この結果からわかるように、入力Uのビット幅32の場合、シフト値(S1n、S2n、S3n)が(2、奇数、奇数)あるいは(奇数、2、奇数)であれば、最良線形近似確率は2-7.36〜2-10.78程度であった。
【0096】
3.総合評価
本発明者等は、上記1および2での結果を踏まえ、上記の実施形態で用いる換字転置変換部21n、41nのビット列変換部61に設定するアルゴリズム鍵Gnのシフト値(S1n、S2n、S3n)として、(2、奇数、奇数)あるいは(奇数、2、奇数)となるように設定し、図8に示す差分および線形近似確率を求めるための評価パターンの段数を18段および21段に増加させた場合における確率を推定した。この段数(18段、21段)は、実際の暗復号処理に用いられるラウンド数を考慮して決定した値である。推定は以下の前提に基づいて行っている。
【0097】
▲1▼差分解読法:評価パターンの段数が2rの場合、この最良差分確率は、図8(a)に示す差分2段繰り返し型の最良差分確率dp(Δa→0)に対し、dp(Δa→0)rで与えられる。
【0098】
▲2▼線形解読法:評価パターンの段数が2rの場合、この最良差分確率は、図8(b)に示す線形2段繰り返し型の最良線形近似確率lp(0→Γa)に対し、lp(0→Γa)rで与えられる。
【0099】
結果を図15、16に示す。これらの結果からわかるように、上記の実施形態で用いる換字転置変換部21n、41nのビット列変換部61に設定するアルゴリズム鍵Gnのシフト値(S1n、S2n、S3n)として、(2、奇数、奇数)あるいは(奇数、2、奇数)となるように設定した場合、入力Uのビット幅が25=32であれば、確率は2-70前後となる。したがって、差分解読法および線形解読法による攻撃に対して、計算量的に十分な強度を持った暗号アルゴリズムを構築することができる。
【0100】
なお、上記の実施形態では、暗号変換部20および復号変換部40として、それぞれ図2、6に示すように、ラウンド数N分の換字転置変換部211〜21N、411〜41Nを有するものについて説明した。しかしながら、本発明はこれに限定されるものではなく、1つの換字転置変換部に、換字転置変換処理を、アルゴリズム鍵を変えながら、ラウンド数N回実行させるように構成してもよい。
【0101】
また、上記の実施形態では、データ送信機1およびデータ受信機2間で共有する暗復号用の鍵として40ビットあるいは64ビットを用い、鍵長が40ビットおよび64ビットのいずれであるかを示すための鍵長データとして1ビットのものを用いた場合について説明した。しかしながら、本発明はこれに限されるものではない。
【0102】
たとえば、暗号鍵を40ビットから128ビットまで変更可能とし、鍵長データはこれらを選択できるように7ビットとしてもよい。この場合、鍵変換部23、43では、2個の32ビット長である変換鍵K1、K2を生成できるように、入力された鍵長データの値に応じて、レジスタ26に格納された暗復号用の鍵から抽出するビット列位置を変更できるようにセレクタを増加させればよい。また、暗復号用の鍵を64以上とし、4個の32ビット長である変換鍵を生成させ、N個の換字転置変換部を2組に分け、2個ずつ供給するような構成にしてもよい。
【0103】
あるいは、暗号変換で用いた換字転置変換部21n(1≦n≦N)を複数個用いて、暗復号用の鍵から複数個の変換鍵を生成するようにしてもよい。
【0104】
図17は、データ送信機1およびデータ受信機2の鍵変換部23、43の変形例を示す図である。この例では、64ビットの暗復号用の鍵から8個の変換鍵からなる256ビットのシステム鍵を生成している。
【0105】
図示するように、鍵変換部23a、43aは、拡張鍵保持部100と、8段の換字転置変換部211〜218を有する。
【0106】
拡張鍵保持部100には、鍵共有部12、32によりデータ送信機1およびデータ受信機2間で共有している256ビットの拡張鍵を保持する。この256ビットの拡張鍵は、図1において、データ送信機1の鍵情報保持部15が、鍵管理機関3より、鍵長情報に代えて受け取り保持するようにすればよい。この場合、データ送信機1において、鍵情報保持部15が拡張鍵保持部100として機能するようにしてもよい。鍵拡張保持部100は、自身が保持する256ビットの拡張鍵を8個の32ビットの拡張鍵KE1〜KE8に分割し、図17に示すように、2個づつ順番に、換字転置変換部211〜218に投入する。
【0107】
さて、上記構成の鍵変換部23a、43aに、暗復号用の鍵(64ビット)が入力されると、上位32ビットデータL0と下位32ビットデータR0に分割されて、換字転置変換部211に入力される。そこで、拡張鍵KE1、KE2を用いて、第1回目の変換が行われ、その結果得られた32ビットデータL1と32ビットデータR1が次の段の換字転置変換部212に入力される。また、32ビットデータL1は変換鍵K1として取り出される。次に、換字転置変換部212にて、拡張鍵KE3、KE4を用いて、第2回目の変換が行われ、その結果得られた32ビットデータL2と32ビットデータR2が次の段の換字転置変換部213に入力される。また、32ビットデータL2は変換鍵K2として取り出される。以上のような変換を順次行い、最終の段の換字転置変換部218での変換の結果得られた32ビットデータL8を、変換鍵K8として取り出す。これにより、8個の32ビットの変換鍵K1〜K8からなる256ビットシステム鍵が生成される。
【0108】
図18は、図2に示す暗号化部11において、鍵変換部23に代えて図17に示す鍵変換部23aを用いた場合の変形例を示す図である。
【0109】
図18において、暗号変換部20に平文(64ビット)が入力されると、分割部25aにより上位32ビットデータL0と下位32ビットデータR0に分割されて、換字転置変換部211に入力される。そこで、変換鍵K1、K2を用いて、第1回目の変換が行われ、その結果得られた32ビットデータL1と32ビットデータR1が次の段の換字転置変換部212に入力される。このような変換が順次行われ、換字転置変換部214にて、変換鍵K7、K8を用いた第4回目の変換が行われ、その結果得られた32ビットデータL4と32ビットデータR5が次の段の換字転置変換部215に入力されると、使用する変換鍵をK1、K2とし、上記の要領で変換を繰り返す。
【0110】
図19は、図6に示す復号化部31において、鍵変換部43に代えて図17に示す鍵変換部43aを用いた場合の変形例を示す図である。
【0111】
図19において、復号変換部40に暗号文(64ビット)が入力されると、分割部45aにより上位32ビットデータLNと下位32ビットデータRNに分割されて、換字転置変換部41Nに入力される。そこで、変換鍵K8、K7を用いて、第1回目の変換が行われ、その結果得られた32ビットデータLN-1と32ビットデータRN-1が次の段の換字転置変換部41N-1に入力される。このような変換が順次行われ、換字転置変換部41N-3にて、変換鍵K2、K1を用いた第4回目の変換が行われ、その結果得られた32ビットデータLN-4と32ビットデータRN-4が次の段の換字転置変換部41N-4に入力されると、使用する変換鍵をK8、K7とし、上記の要領で変換を繰り返す。この変換は、図18を用いて説明した暗号変換の逆変換に相当する。
【0112】
また、上記の実施形態では、図5に示すビット列変換部61のビット列変換器82、83、85として、それぞれ、巡回シフト演算部91、92、93と、加算演算部95、96、98とでなるものを用いた場合について説明した。しかしながら、本発明はこれに限定されるものではなく、加算演算部95、96、98各々の前段に乗算演算部を設けるようにしてもよい。
【0113】
図20は、本実施形態で用いるビット列変換部61の変形例を示す図である。この図に示すビット列変換部61aが図5に示すビット列変換部61と異なる点は、加算演算部95、96、98各々の前段に乗算演算部95a、96a、98aを設けた点である。
【0114】
図5に示すビット列変換部61のビット列変換器82、83、85各々について、入力をX、出力をYとして変換を式で表わすと、
Y=X+(X<<<Sin)+Ain
但し、i=1,2,3、1≦n≦ラウンド数N
となる。
【0115】
一方、図20に示すビット列変換部61aのビット列変換器82、83、85各々について、入力をX、出力をYとし変換を式で表わすと、
Y=BinX+(X<<<Sin)+Ain
但し、i=1,2,3、1≦n≦ラウンド数N
となる。
【0116】
ここで、処理ビット幅(入出力X、Yのビット長)をmとした場合、2Sin+Binと2m−1とが互いに素となる値となるように、BinとSinを設定することで、ビット列変換部61aのビット列変換器82、83、85各々での関数を全単射関数に近づけることができる。これにより、差分解読法および線形解読法による攻撃する強度をさらに強化することができる。なお、乗算演算部95a、96a、98aでの乗算値B1n、B2n、B3nは、シフト値S1n、S2n、S3nや加算値A1n、A2n、A3nと同様、アルゴリズム鍵Gnに含まれるパラメータとして、アルゴリズム鍵保持部24、44に保持させるようにすればよい。
【0117】
次に、上記説明した本実施形態の暗号通信システムの自動料金徴収システムへの適用例について説明する。
【0118】
ここで、自動料金徴収システムとは、自動車が有料道路を通過する時に、有料道路上に設置されている路側機により、自動車を停止させることなく、運転手のICカードから通行料金を電子決済によって徴収するシステムのことである。自動料金徴収システムは、有料道路の料金所での渋滞解消や、ICカードでの電子決済化による利便性の向上など、様々な期待が寄せられている。
【0119】
図21に自動料金徴収システムの概略構成を示す。
【0120】
図示するように、自動料金徴収システムは、自動車200に搭載された車載機202と、ICカード203と、路側機201とからなる。
【0121】
車載機202は、ICカード203が装着自在に構成されている。ICカード203は、たとえば自動車200の運転手により、運転時に車載機202に装着される。
【0122】
路側機201は、たとえば有料道路の料金ゲートに設置されるものであり、自動車200が通過する際に、通行料金を徴収する機能を有している。
【0123】
ICカード203には、予め自動料金徴収システムの契約情報(ICカードの持ち主の情報や決済方法に関する情報(たとえば、クレジット決済にするかあるいは電子マネーによる現金決済にするかなど)が格納されており、自動車200が路側機201を通過する時に、ICカード203が挿入されている車載機202を介した無線通信により、路側機201にこの契約情報を転送する。そして、その後、路側機201から経路情報や決済情報を受信する。
【0124】
これらの処理を安全および正確に行うためには、契約情報、経路情報および決済情報の正当性の検証と、不正な改竄や盗聴を防止する機能が必要である。したがって、ICカード203と車載機202との間、および、車載機202と路側機201との間において、通信相手を正当であると認識するための相手認証処理や、交換データの暗復号化のために用いる鍵の共有処理や、共有した鍵を用いた暗号通信のための処理を行う必要がある。この相手認証処理、鍵共有処理および暗号通信に、上記の実施形態で説明した暗号通信システムにおける暗復号処理を適用することができる。
【0125】
以上の処理を実現するために、車載機202、ICカード203および路側機201には、鍵管理機関204が発行した、共通のアルゴリズム鍵とライセンス鍵とを、秘密情報として、事前に保持しておく。たとえば、製造時に各々の内部に埋め込んでおく。
【0126】
ここで、アルゴリズム鍵の詳細およびアルゴリズム鍵によって定まる暗号変換および復号変換の詳細は前述した通りである。
【0127】
また、ライセンス鍵は、相手認証処理および鍵共有処理を正しく行うために用いる。たとえば、ICカード203と車載機202が通信を行うために、ICカード203が正当な機器であることを、車載機202が確認する場合を考える。このためには、ICカード203は、自分が保持しているライセンス鍵が正しいことを、車載機202に証明すればよい。ここで、ライセンス鍵は秘密情報であるので、ICカード203は自分のライセンス鍵を明かすことなく、それが正しいことを、車載機202に証明しなければならない。この証明は、暗号通信技術を用いることで実現できる。たとえば、対称鍵暗号方式を用いた手法が、セキュリティメカニズムの国際規格であるISO9798−2で説明されている。この対称鍵暗号方式の具体例として、上記の実施形態で説明した暗号通信システムにおける暗復号処理を適用することができる。
【0128】
次に、図21に示す路側機201、車載機202およびICカード203各々の構成要素について説明する。
【0129】
路側機201は、無線通信部232と、暗号化・復号化部230と、相手認証・鍵共有処理部233と、データ保持部234と、主制御部235とを有する。
【0130】
車載機202は、無線通信部212と、暗号化・復号化部210と、、ICカード通信部211と、相手認証・鍵共有処理部213と、データ保持部214と、主制御部215とを有する。
【0131】
ICカード203は、ICカード通信部221と、暗号化・復号化部220と、相手認証・鍵共有処理部223と、データ保持部224と、主制御部225とを有する。
【0132】
ここで、暗号化・復号化部210、220、230は、上記の実施形態で説明した暗号通信システムの暗号化部11および復号化部31(図1参照)の両方を備えており、データの暗号化および復号化を行うことが可能である。
【0133】
また、ICカード通信部211、221は、車載機202とICカード203との間の通信処理を行うために用いられ、無線通信部212、232は、車載機202と路側機201との間の無線通信処理を行うために用いられる。
【0134】
さらに、認証・鍵共有処理部213、223、233は、通信相手を正当であると認識するために行う相手認証処理と、データの暗復号化のために用いる鍵の共有処理を行う。
【0135】
認証・鍵共有処理部213は、暗号化・復号化部210が提供する暗号変換機能および復号変換機能を用いて、暗号通信技術を用いた相手認証処理および鍵共有処理を行う。同様に、認証・鍵共有処理部223は、暗号化・復号化部220が提供する暗号変換機能および復号変換機能を用いて、暗号通信技術を用いた暗号相手認証処理および鍵共有処理を行い、認証・鍵共有処理部233は、暗号化・復号化部230が提供する暗号変換機能および復号変換機能を用いて、暗号通信技術を用いた暗号相手認証処理および鍵共有処理を行う。
【0136】
データ保持部214、224、234は、鍵管理機関204から取得した、アルゴリズム鍵およびライセンス鍵を保持しておくのに用いられる。また、契約情報や経路情報や決済情報も保持できるのもとする。
【0137】
図22は、図21に示す自動料金徴収システムの通信フローを示す図である。
【0138】
図示するように、まず、ICカード203が車載機202に装着されると、ICカード203と車載機202との間で、相手認証・鍵共有処理240が行われる。そして、相手認証・鍵共有処理240が成功した後、ICカード203は、契約情報を車載機202に転送するために暗号通信241を行う。車載機202は、ICカード203の契約情報を取得すると、車載機202内のデータ保持部214に秘密に保持しておく。
【0139】
次に、車載機202を搭載した自動車200が路側機201を通過すると、車載機202と路側機201の間で、相手認証・鍵共有処理250が行われる。そして、相手認証・鍵共有処理250が成功した後、車載機202は、先にICカード203から取得しデータ保持部214に秘密に保持して契約情報を、路側機201に転送するために、暗号通信251を行う。路側機201は、車載機202から契約情報を受け取ると、当該契約情報にしたがい、当該契約情報により特定されるICカード203の持ち主より通行料金を徴収し、決済を行う。暗号通信251は、路側機201から車載機202に、この決済情報や経路情報(たとえば決済を行った路側機201(料金を徴収した有料道路上の場所)を特定するための情報)を転送するためにも用いられる。
【0140】
次に、車載機202は、路側機201から得た決済情報や経路情報をICカード203に転送するために、暗号通信261を行う。
【0141】
ここで、道路通行料金の決済はICカード203と路側機201との間で行われるが、ICカード203と路側機2011とは、車載機202を介さないと通信が行えない。この場合、車載機202が不正処理を行うことで、不正な決済が行われてしまう可能性も考えられる。このような事態に備え、路側機201は、ICカード203との決済で用いた車載機202を特定できるようにしておく必要がある。たとえば、車載機202に識別番号を割り当て、車載機202は、ICカード203との相手認証・鍵共有処理240の中で、車載機202の識別番号をICカード203に転送するようにする。ICカード203は、車載機202の識別番号とICカード203の決済履歴の両方に対する、デジタル署名を生成して返送する。そして、車載機202は、自分の識別番号と、ICカード203から取得したデジタル署名を、路側機201に、相手認証・鍵共有処理250の中で転送するようにする。その後、路側機201は、ICカード203が生成したデジタル署名を検証することで、車載機202がいつ用いられたかを特定することが可能になる。
【0142】
また、暗号通信241、251、261において、通信路上を流れる暗号化データを第三者に改竄されないようにしておく必要がある。これを実現するためには、受信したメッセージが正当であることを判定できる、メッセージ認証を行う必要がある。メッセージ認証を行うためには、送信者と受信者が予めメッセージ認証鍵を秘密に共有しておく。メッセージ認証鍵の共有は、たとえば図12に示した相手認証・鍵共有処理250内で行う。そして、送信者が、転送するメッセージとメッセージ認証鍵から、メッセージ認証子(MAC: Message Authentication Code)と呼ばれるデータを生成する。送信者は、メッセージと一緒にメッセージ認証子を、受信者に転送する。受信者は、受信したメッセージ認証子を、メッセージ認証鍵を用いて検証する。この検証によって、受信したメッセージが改竄されているかどうかを判定できる。メッセージ認証に関しては、たとえば対称鍵暗号方式を用いた手法が、セキュリティメカニズムの国際規格であるISO9797で説明されている。この対称鍵暗号方式の具体例として、上記の実施形態で説明した暗号通信システムにおける暗復号化処理を適用することができる。
【0143】
図23は、図22の暗号通信241において、メッセージ認証を含めた例の詳細フローを示している。
【0144】
図示するように、まず、ICカード203は、メッセージ認証子の生成を、MAC生成処理261で行う。次に、転送メッセージとメッセージ認証子を結合する結合処理262を行う。その後、転送メッセージとメッセージ認証子を結合したデータを暗号化する暗号処理263を行って暗号化データを生成する。
【0145】
一方、車載機202は、ICカードより暗号化データを受信すると、まず復号化処理264を行う。その後、分離処理265を行うことで、ICカードが転送した転送メッセージとメッセージ認証子とを復元する。次に、復元されたメッセージ認証子を検証するMAC検証処理266を行って、受信した転送メッセージの正当性を検証する。
【0146】
これによって、課金情報や経路情報などの盗聴や改竄されてはならないデータを安全に交換することが可能になる。
【0147】
以上の処理を行うことにより、通行料金をICカード203に課金し、さらに路側機201で課金情報を管理することができる。
【0148】
【発明の効果】
以上説明したように、本発明によれば、変換の繰り返し回数を増やすことなく、暗号解読に強い高速な暗号・復号変換を実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態が適用された暗号通信システムの概略構成図である。
【図2】図1に示す暗号化部11の概略構成図である。
【図3】図2に示す鍵変換部23の概略構成図である。
【図4】図2に示す換字転置変換部21n(1≦n≦ラウンド数N)の概略構成図である。
【図5】図4に示すビット列変換部61の概略構成図である。
【図6】図1に示す復号化部31の概略構成図である。
【図7】図6に示す換字転置変換部41n(1≦n≦ラウンド数N)の概略構成図である。
【図8】差分解読法および線形解読法による暗号解読に対する強度評価実験に用いた評価パターンを示す図である。
【図9】図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を関数F、当該関数Fの入力Uのビット幅を16とし、図8に示す差分2段繰り返し型評価パターンを用いた場合の評価結果を示す図である。
【図10】図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を関数F、当該関数Fの入力Uのビット幅を16とし、図8に示す差分2段繰り返し型評価パターンを用いた場合の差分確率の評価結果を示す図である。
【図11】図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を関数F、当該関数Fの入力Uのビット幅を32とし、図8に示す差分2段繰り返し型評価パターンを用いた場合の差分確率の評価結果を示す図である。
【図12】図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を関数F、当該関数Fの入力Uのビット幅を16とし、図8に示す線形2段繰り返し型評価パターンを用いた場合の線形近似確率の評価結果を示す図である。
【図13】図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を関数F、当該関数Fの入力Uのビット幅を16とし、図8に示す線形2段繰り返し型評価パターンを用いた場合の線形近似確率の評価結果を示す図である。
【図14】図5に示すビット列変換部61において、変換鍵K1=K2=0、加算値A1n=1、A2n=A3n=0とした場合に得られる変換を関数F、当該関数Fの入力Uのビット幅を32とし、図8に示す線形2段繰り返し型評価パターンを用いた場合の線形近似確率の評価結果を示す図である。
【図15】図8に示す差分および線形近似確率を求めるための評価パターンの段数を18段および21段に増加させた場合における差分確率および線形近似確率を推定値を示す図である。
【図16】図8に示す差分および線形近似確率を求めるための評価パターンの段数を18段および21段に増加させた場合における差分確率および線形近似確率を推定値を示す図である。
【図17】図1に示すデータ送信機1およびデータ受信機2の鍵変換部23、43の変形例を示す図である。
【図18】図2に示す暗号化部11において、鍵変換部23に代えて図17に示す鍵変換部23aを用いた場合の変形例を示す図である。
【図19】図6に示す復号化部31において、鍵変換部43に代えて図17に示す鍵変換部43aを用いた場合の変形例を示す図である。
【図20】図5に示すビット列変換部61の変形例を示す図である。
【図21】本発明の一実施形態である暗号通信システムが適用された自動料金徴収システムの概略構成図である。
【図22】図21に示す自動料金徴収システムの通信フローを示す図である。
【図23】図22の暗号通信241において、メッセージ認証を含めた例の詳細フローを示す図である。
【符号の説明】
1…データ送信機
2…データ受信機
3、204…鍵管理機関
11、11a…暗号化部
12、32…鍵共有部
13、33…データ処理部
14、34…通信処理部
15…鍵長情報保持部
20…暗号変換部
211〜21N、411〜41N…換字転置変換部
23、23a、43、43a…鍵変換部
24、44…アルゴリズム鍵保持部
25a、45a…分割部
25b、45b…結合部
26…レジスタ
27…マルチプレクサ
28、95、96、98…加算演算部
31、31a…復号化部
40…復号変換部
61、61a…ビット列変換部
62、94、97…排他的論理和演算部
81〜85…ビット列変換器
91〜93…巡回シフト演算部
95a、96a、98a…乗算演算部
100…拡張鍵保持部
200…自動車
201…路側機
202…車載機
203…ICカード
210、220、230…暗号化・復号化部
211、221…ICカード通信部
212、232…無線通信部
213、223、233…相手認証・鍵共有処理部
214、224、234…データ保持部
215、225、235…主制御部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an encryption / decryption technique for digital data transmitted between a computer, an information home appliance, an automatic fee collection device, and the like.
[0002]
[Prior art]
In general, in digital information home appliances, an encryption technique for preventing unauthorized copying of digital data is essential. For example, when digital video data received by a digital broadcast receiver is digitally recorded on a digital recording device, if the digital video data has a copyright, a function for protecting the digital video data is required for each device.
[0003]
In order to realize such a copyright protection system, it is necessary to prevent data tampering and unauthorized copying by using encryption techniques such as digital data copy restrictions, device authentication, and real-time digital data encryption. I must.
[0004]
As a conventional example of encryption technology, for example, a common key encryption method represented by DES encryption disclosed in Japanese Patent Laid-Open No. 51-108701 can be cited. Many of the common key cryptosystems are characterized in that complex encryption conversion is configured by repeatedly performing simple conversion. Various attempts have been made to make these ciphers more secure. For example, by increasing the number of simple conversion iterations, the statistical characteristics of the ciphertext can be further disturbed, making cryptanalysis difficult.
[0005]
[Problems to be solved by the invention]
However, increasing the number of conversion iterations increases the processing time required for cryptographic conversion. Therefore, there is a problem that the security enhancement measure by increasing the number of times of simple conversion is not suitable for the real-time encryption process in the copyright protection system described above.
[0006]
The present invention has been made on the basis of the above circumstances, and an object of the present invention is to realize high-speed encryption / decryption conversion that is resistant to cryptanalysis without increasing the number of repetitions of conversion.
[0007]
[Means for Solving the Problems]
To achieve the above object, the encryption device of the present invention is an encryption device that encrypts plaintext data using an encryption key,
The cryptographic process is performed by applying the encryption key to the input first and second data, and the result is output a plurality of times as the first and second data to be input next time. Cryptographic conversion means;
Dividing the plaintext data into two, and outputting the result as first and second data to be input to the first cryptographic operation processing of the cipher conversion means;
Combining the first and second data output from the cryptographic operation processing of the last round of the cryptographic conversion means, and the cryptographic combining means for outputting the result as encrypted data,
The cryptographic operation processing is
Cryptographic bit string conversion process for performing bit string conversion of input first data and Cryptographic exclusive logic for calculating an exclusive OR of output data of the encryption bit string conversion process and input second data A sum operation process,
The output data of the exclusive OR operation for encryption is set as the first data to be input next time, and the input first data is output as the second data to be input next time,
The encryption bit string conversion process includes:
A first exclusive OR operation process for calculating an exclusive OR of the input data and the first key data generated from the encryption key or a part thereof;
Shift number S in the input data1A first cyclic shift calculation process for performing the cyclic shift calculation process, and a first addition calculation process for adding the input data and the output data of the first cyclic shift calculation process. 1 logical operation processing;
Shift number S in the input data2The second cyclic shift calculation process for performing the cyclic shift calculation process and the second addition calculation process for performing the addition calculation process of the input data and the output data of the second cyclic shift calculation process. A second logical operation process;
A second exclusive OR operation process for calculating an exclusive OR of the input data and the second key data generated from the encryption key or a part thereof;
Shift number S in the input dataThreeA third cyclic shift calculation process for performing the cyclic shift calculation process, and a third addition calculation process for performing an addition calculation process of the input data and the output data of the third cryptographic cyclic shift calculation process; And a third logical operation process consisting of:
Shift number S in the encryption bit string conversion process1, S2And SThreeAre all odd or S1And S2Is set to be an odd value and the remaining two are set to odd numbers, and S1, S2And SThreeThe values are set so as not to match each other.
[0008]
Here, the shift number S in the encryption bit string conversion process1, S2And SThreeIs set to N (N is 2 or more) times of the cryptographic operation processing executed continuously.1, S2And SThreeThe pattern of the value of S is set to N times of the cryptographic operation processing executed successively following the N times of the cryptographic operation processing.1, S2And SThreeIt may be set not to match the pattern of the value of.
[0009]
Further, the shift number S in the encryption bit string conversion process1, S2And SThreeThe combination of the values may be a combination of three values common to each of the cryptographic operation processes executed a plurality of times.
[0010]
Next, the decryption device of the present invention is a decryption device that decrypts and converts encrypted data generated by the encryption device into plaintext data using a decryption key that is common with the encryption key used in the encryption device,
Decryption operation processing is performed by applying the decryption key to the input first and second data and performing the operation processing as first and second data to be input next time. Decryption conversion means for performing the same number of times as the cryptographic operation processing of the encryption conversion means,
A splitting unit for decryption that divides the encrypted data into two, and outputs the result as first and second data to be input to the decryption calculation process of the first round of the decryption conversion unit;
A decoding combining unit that combines the first and second data output from the decoding calculation process of the last round of the decoding conversion unit, and outputs the result as equal data;
The decryption calculation process is:
A decryption bit string conversion process for performing the same process as the encryption bit string conversion process in the cryptographic operation process of the cipher conversion unit and an output data of the decryption bit string conversion process are input to the input second data. And an exclusive OR operation process for decoding for calculating an exclusive OR with the first data,
The output data of the exclusive OR operation for decoding is the second data to be input next time, and the input second data is output as the first data to be input next time,
Shift number S in the decoding bit string conversion process1, S2And SThreeIs the number of shifts S set in the last cipher operation processing of the cipher conversion means is the value set in the first cipher operation processing of the decryption conversion means1, S2And SThreeThe value set in the last decryption calculation process of the decryption conversion means is the number of shifts S set in the first encryption calculation process of the cipher conversion means1, S2And SThreeIn order of execution between each of the decryption operation processes executed by the decryption conversion means a plurality of times and each of the encryption operation processes executed a plurality of times by the encryption conversion means so as to match each of the values of The reverse order is set.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0012]
FIG. 1 is a schematic configuration diagram of a cryptographic communication system to which an embodiment of the present invention is applied. As shown in the figure, the cryptographic communication system of the present embodiment creates a ciphertext (points to data that has undergone cryptographic conversion processing) by cipher-converting plaintext (points to data that has not been subjected to cryptographic transformation processing). A
[0013]
As shown in the figure, the
[0014]
On the other hand, the
[0015]
Here, as the
[0016]
When performing cryptographic communication between the
[0017]
The key sharing performed between the
[0018]
After the key sharing is completed, the
[0019]
On the other hand, the
[0020]
In order to perform cryptographic communication between the
[0021]
In this embodiment, a
[0022]
By doing so, ciphertext transmitted by a legitimate device holding the correct algorithm key can be decrypted only by a legitimate device holding the correct algorithm key. Moreover, since the algorithm key is also secret information in addition to the key, it is possible to make it more difficult for a third party to decipher the ciphertext flowing on the communication path.
[0023]
Further, the
[0024]
Next, more detailed configurations of the
[0025]
First, the
[0026]
FIG. 2 is a schematic configuration diagram of the
[0027]
The
[0028]
FIG. 3 is a schematic configuration diagram of the
[0029]
As illustrated, the
[0030]
Returning to FIG. 2, the
[0031]
When the 64-bit plaintext output from the data processing unit 13 is input to the
[0032]
FIG. 4 shows the substitution
[0033]
As shown in the figure, the substitution
[0034]
Substitution
[0035]
Z = FGn(K1, K2, U)
Here, the function FGn(X) is the algorithm key GnRepresents the conversion of the bit
[0036]
Gn= (A1n, A2n, A3n, S1n, S2n, S3n)
Where A1n, A2n, A3nIs an addition value used for the addition operation and is 32-bit data. S1n, S2n, S3nIs a shift value used for the left cyclic shift calculation, and all take values of 1 to 31.
[0037]
FIG. 5 is a schematic configuration diagram of the
[0038]
As shown in the figure, the bit
[0039]
The
[0040]
V = K1 (+) U
Here, the notation X (+) Y indicates an exclusive OR operation between X and Y.
[0041]
The
[0042]
W = V + (V <<< S1n) + A1n
Here, the notation X <<<< Y represents data obtained by cyclically shifting X to the left by Y bits.
[0043]
The
[0044]
X = W + (W <<< S2n) + A2n
The
[0045]
Y = K2 (+) X
The
[0046]
Z = Y + (Y <<< S3n) + A3n
As described above, the bit
[0047]
Returning to FIG. 4, the exclusive OR
[0048]
Substitution
[0049]
Ln= Rn-1(+) FGn(K1, K2, Ln-1)
Rn= Ln-1
Here, the substitution
[0050]
As described above with reference to FIG. 5, the algorithm key GnIs an addition value A used for the addition calculation in the
[0051]
(1) Shift value S1n, S2n, S3nAre all odd or S1nAnd S2nEither one of these is set to 2 and the remaining two are set to odd numbers. In addition, the continuous two-stage substitution
[0052]
(2) L (2 ≦ L) continuous
[0053]
The condition shown in the above (1) is found from the strength evaluation for the cryptanalysis by the differential cryptanalysis and the linear cryptanalysis performed by the present inventors.
[0054]
Here, differential cryptanalysis is a cryptanalysis proposed by Biham and Shamir in 1990 ((E. Biham, A. Shamir, Differential Cryptanalysis of DES-like Cryptosystems (Extended Abstract), Advances in Cryptology, CRYPTO '90 proceedings, Lecture Notes in Computer Science Vol. 537, Springer-Verlag, 1990.), (E. Biham, A. Shamir, Differential Cryptanalysis of the Full 16-round DES, Advances in Cryptology, CRYPTO'92 proceedings, Lecture Notes in Computer Science Vol. 740, Springer-Verlag, 1992.)). When the probability that a plaintext / ciphertext pair having a specific difference is generated is high, a candidate key is narrowed down using the plaintext / ciphertext pair. For example, for a certain F function, a difference ΔY of output data generated with a high probability with respect to a certain input data difference ΔX is examined in advance, and then, for an F function with a fixed key K, It is checked whether the difference between the output data generated with respect to the input data having the difference of ΔX is biased toward ΔY. If the fixed key K is a true value, the output data should be ΔY with a high probability. Therefore, if the difference is biased to ΔY, the probability that the key K is a true key increases. Using this principle, key candidates are narrowed down.
[0055]
Mean differential probabilities have been proposed as a strict security measure for differential cryptanalysis (X. Lai, L. Massey and S. Murphy, Markov Cipher and Differential Cryptanalysis, EUROCRYPTO'91 proceedings, Lecture Notes in Computer Science Vol. 547, Springer-Verlag, 1991.). The probability that each difference pair occurs in the input / output data of the nonlinear function is calculated for all keys, and the difference pair having the highest occurrence probability is found among them. The probability that such a difference pair occurs is the average difference probability. The smaller the average difference probability, the higher the security for differential cryptanalysis. The average difference probability is defined as follows.
[0056]
[Expression 1]
[0057]
When evaluating the security against differential cryptanalysis, it is difficult to calculate the average differential probability of the entire data randomizing unit. Therefore, although the security is not guaranteed in a strict sense, the maximum differential characteristic probability is used as a necessary condition of security for differential cryptanalysis. For example, the average difference probability of the nonlinear function that is a part of the data randomizing unit is calculated. Next, assuming that the average difference probabilities of each nonlinear function are all independent, the probability of the entire data randomizing unit is calculated using these average difference probabilities. Such a conditional probability becomes the maximum difference characteristic probability. The actual calculation method depends on the structure of the data randomizing unit. Note that the number of plaintext / ciphertext pairs necessary for differential decryption can be obtained as the reciprocal of the average differential probability.
[0058]
On the other hand, linear cryptanalysis is a cryptanalysis proposed by Matsui in 1993 ((M. Matsui, Linear Cryptanalysis Method for DES Cipher, Advances in Cryptology, EUROCRYPTO'93 proceedings, Lecture Notes in Computer Science Vol. 765 , Springer-Verlag, 1993.), (M. Matsui, The First Experimental Cryptanalysis of the Data Encryption Standard, Advances in Cryptology, CRYPTO'94 proceedings, Lecture Note in Computer Science Vol. 839, Springer-Verlag, 1994.). When the probability of having a linear relationship between the plaintext and the ciphertext bit value is away from 1/2, this is a method of using the linear relationship to estimate a candidate key and decrypting it. When doing so, it is necessary to obtain a large number of arbitrary plaintext / ciphertext pairs.
[0059]
Mean linear probability has been proposed as a measure of security against linear cryptanalysis (K. Nyberg, Linear Approximation of Block Ciphers, Advances in Cryptology,-CRYPTO'94, Lecture Notes in Computer Science Vol. 950, Springer-Verlag, 1995.). The probability of having a linear relationship between the bits of the input / output data of the nonlinear function is calculated for all the keys, and the linear relationship having the highest occurrence probability is found among them. The probability that such a linear relationship occurs is the average linear probability. The smaller the average linear probability, the higher the security for linear cryptanalysis. The mean linear probability is defined as:
[0060]
[Expression 2]
[0061]
When evaluating the security against linear cryptanalysis, it is difficult to evaluate the average linear probability of the entire data randomizing unit as in the case of differential cryptanalysis. Therefore, as in the case of differential cryptanalysis, an index called the maximum linear characteristic probability is used. For example, first, the average linear probability of the nonlinear function that is a part of the data randomizing unit is calculated. Next, assuming that each nonlinear function is independent, the probability of the entire data randomizing unit is calculated based on these average linear probabilities. The actual calculation method depends on the structure of the data randomizing unit. Note that the number of plaintext / ciphertext pairs actually required for decryption by linear cryptanalysis is obtained as the reciprocal of the linear probability.
[0062]
The inventors of the present invention have each substitution /
[0063]
Further, the condition shown in (2) above is for combating a slide attack. The slide attack is a selected plaintext attack method that does not depend on the number of stages (number of rounds). Decryption by slide attack is described in detail in a paper “Slide Attacks” published by Fry 99 and Fast Software Encription work shop 1999 by Biryukov and Wagner.
[0064]
Furthermore, in the present embodiment, the algorithm key G is set so as to satisfy the following conditions:nIs set.
[0065]
Now, the conversion keys K1 and K2 generated by the
[0066]
Note that when the
[0067]
Next, the
[0068]
FIG. 6 is a schematic configuration diagram of the
[0069]
The
[0070]
The
[0071]
When the 64-bit ciphertext received from the
[0072]
FIG. 7 shows the substitution
[0073]
As shown in the figure, the substitution
[0074]
Substitution
[0075]
The exclusive OR
[0076]
Substitution
[0077]
Rn-1= Ln(+) FGn(K1, K2, Rn)
Ln-1= Rn
This conversion is performed by using the substitution
[0078]
As shown in FIG.n(1 ≦ n ≦ N) is the first-stage substitution
[0079]
Therefore, if the
[0080]
The embodiment of the present invention has been described above.
[0081]
In the present embodiment, as described above, the ciphertext transmitted by the
[0082]
In the present embodiment, as described above, the algorithm key GnShift value S of (1 ≦ n ≦ N)1n, S2n, S3nAll are odd or S1nAnd S2nOne of these is set to 2 and the remaining two are set to odd values. By doing in this way, the intensity | strength with respect to the attack by a differential cryptanalysis method and a linear cryptanalysis can be improved, without increasing the stage number of the substitution transposition conversion part, ie, the number N of rounds.
[0083]
The present inventors conducted a strength evaluation experiment for cryptanalysis by differential cryptanalysis and linear cryptanalysis as follows.
[0084]
1. Strength evaluation for cryptanalysis by differential cryptanalysis
(1) Preparation
In the
[0085]
dp (ΔX → ΔY) = prob {F (U (+) ΔX) (+) F (U) = ΔY}
Here, prob {A = B} means the probability that A = B (number of appearances / number of samples where A = B).
[0086]
An evaluation pattern shown in FIG. 8A was prepared as an evaluation pattern for obtaining the difference probability. Here, FIG. 8A shows an evaluation pattern of a two-stage difference difference type, and the function F at the first stage.1Is the input difference ΔX = 0 and the output difference ΔY = 0, the second stage function F2Is the input difference ΔX = Δa and the output difference ΔY = 0. This evaluation pattern is used because the second-stage function F in the evaluation pattern of the difference two-stage repetition type is used.2Differential probability of
dp (Δa → 0) = prob {F2(U (+) Δa) (+) F (U) = 0}
Is the largest.
[0087]
(2) Evaluation when the bit width of the input U of the function F is 16 bits or less
The bit width of the input U of the function F (that is, the bit width of the data processed by the function F) is 2e(E = 2, 3, 4) and the shift value S1n, S2n, S3nAll combinations (however, the input U has a bit width of 2)eTherefore, the shift value S1n, S2n, S3n1-2eThe second stage function F of the difference two-stage iterative evaluation pattern.2Differential probability of
dp (Δa → 0) = prob {F2(U (+) Δa) (+) F (U) = 0}
Evaluated. Set bit width of input U of function F to 2FourThe evaluation results when = 16 are shown in FIGS. In FIG. 9, the shift value S1n, S2n, S3nAssuming that the greatest common divisors of each and the
[0088]
As shown in FIG. 9, the smaller the max (a, b, c), the lower the probability of approximation. Therefore, when max (a, b, c) is 1, that is, the shift value S1n, S2n, S3nWhen the greatest common divisor with the bit width of each input U is 1, in other words, the shift value S1n, S2n, S3nIf all are odd, the best differential probability is 2-4.75~ 2-6.68It was found that the resistance to attacks by differential cryptanalysis could be maximized. Even when max (a, b, c) is 2, as shown in FIG.1n, S2n, S3n) Is (2, odd, odd) or (odd, 2, odd), the best differential probability is 2-3.71~ 2-4.79It was found that the degree and the max (a, b, c) are lower than the other cases in the case of 2, and the resistance to the attack by the differential cryptanalysis can be increased. Here, the result is displayed only when the bit width of the input U is 16, but the shift value (S) is also obtained when the bit width of the input U is 4 or 8.1n, S2n, S3n) As an arbitrary value (however, 1 ≦ S1n, S2n, S3nThe result of picking up and evaluating <bit width of input U) also showed a similar tendency. Therefore, the present inventors have used the substitution
[0089]
(3) Evaluation when the bit width of the input U of the function F is 32 bits
Based on the result of (2) above, the substitution
dp (Δa → 0) = prob {F2(U (+) Δa) (+) F (U) = 0}
Evaluated. The results are shown in FIG. As can be seen from this result, the shift value (S1n, S2n, S3n) Is (2, odd, odd) or (odd, 2, odd), the best difference probability is 2-7.69~ 2-8.70It was about.
[0090]
2. Strength evaluation for cryptanalysis by linear cryptanalysis
(1) Preparation
In the
[0091]
lp (ΓX → ΓY) = | 2prob {F (U) ・ ΓY = X ・ ΓX} −1 |2
Here, A · B examines the number of bits having the bit value “1” at the same bit position as the bit position of the bit “1” in the bit string of B in A, and sets mod2 of the number of bits. It means to take.
[0092]
An evaluation pattern shown in FIG. 8B was prepared as an evaluation pattern for obtaining a linear approximation probability. Here, FIG. 8B is a linear two-stage repetitive evaluation pattern, and the first-stage function F1Is input mask ΓX = 0 and output mask ΓY = 0, second stage function F2Is an input mask ΓX = 0 and an output mask ΓY = Γa. This evaluation pattern is used because the function F at the second stage in the linear two-stage repetition type evaluation pattern is used.2Linear approximation probability of
lp (0 → Γa) = | 2prob {F2(U) ・ Γa = U ・ 0} −1 |2
Is the largest.
[0093]
(2) Evaluation when the bit width of the input U of the function F is 16 bits or less
The bit width of the input U of the function F (that is, the bit width of the data processed by the function F) is 2e(E = 2, 3, 4) and the shift value S1n, S2n, S3nAll combinations (however, the input U has a bit width of 2)eTherefore, the shift value S1n, S2n, S3n1-2e-1For the second-stage function F of the linear two-stage iterative evaluation pattern.2Linear approximation probability of
lp (0 → Γa) = | 2prob {F2(U) ・ Γa = U ・ 0} −1 |2
Evaluated. 12 and 13, the bit width of the input U of the function F is 2FourThe evaluation result when = 16 is shown. In FIG. 12, the shift value S is the same as in FIG.1n, S2n, S3nFor each, if the greatest common divisor with the
[0094]
As shown in FIG. 12, the smaller the max (a, b, c), the lower the probability of approximation. Therefore, when max (a, b, c) is 1, that is, the shift value S1n, S2n, S3nWhen the greatest common divisor with the bit width of each input U is 1, in other words, the shift value S1n, S2n, S3nWhen all are odd, the best linear approximation probability is 2-5.24~ 2-7.18It was found that the resistance to attacks by linear cryptanalysis could be maximized. Even when max (a, b, c) is 2, as shown in FIG.1n, S2n, S3n) Is (2, odd, odd) or (odd, 2, odd), the best linear approximation probability is 2.-3.44~ 2-5.58It was found that the degree and the max (a, b, c) are lower than the other cases in the case of 2, and the resistance to the attack by the linear cryptanalysis can be increased. Here, the result is displayed only when the bit width of the input U is 16, but the shift value (S) is also obtained when the bit width of the input U is 4 or 8.1n, S2n, S3n) As an arbitrary value (however, 1 ≦ S1n, S2n, S3nThe result of picking up and evaluating <bit width of input U) also showed a similar tendency. Therefore, the present inventors have used the substitution
[0095]
(3) Evaluation when the bit width of the input U of the function F is 32 bits
Based on the result of (2) above, the substitution
lp (0 → Γa) = | 2prob {F2(U) ・ Γa = U ・ 0} −1 |2
Evaluated. The results are shown in FIG. As can be seen from this result, the shift value (S1n, S2n, S3n) Is (2, odd, odd) or (odd, 2, odd), the best linear approximation probability is 2-7.36~ 2-10.78It was about.
[0096]
3. Comprehensive evaluation
Based on the results in 1 and 2 above, the present inventors have used the substitution
[0097]
(1) Differential decryption method: When the number of stages of the evaluation pattern is 2r, this best differential probability is dp (Δa (→ 0)rGiven in.
[0098]
(2) Linear decoding method: When the number of stages of the evaluation pattern is 2r, this best differential probability is lp (0 (0 → Γa)rGiven in.
[0099]
The results are shown in FIGS. As can be seen from these results, the substitution
[0100]
In the above-described embodiment, as the
[0101]
In the above embodiment, 40 bits or 64 bits are used as the encryption / decryption key shared between the
[0102]
For example, the encryption key may be changed from 40 bits to 128 bits, and the key length data may be 7 bits so that these can be selected. In this case, the encryption / decryption stored in the
[0103]
Alternatively, the substitution
[0104]
FIG. 17 is a diagram illustrating a modification of the
[0105]
As shown in the figure, the
[0106]
The extended
[0107]
When the encryption / decryption key (64 bits) is input to the
[0108]
18 is a diagram showing a modification in the case where the
[0109]
In FIG. 18, when plaintext (64 bits) is input to the
[0110]
FIG. 19 is a diagram illustrating a modification of the
[0111]
In FIG. 19, when the ciphertext (64 bits) is input to the decryption /
[0112]
In the above embodiment, as the
[0113]
FIG. 20 is a diagram illustrating a modification of the bit
[0114]
For each of the
Y = X + (X <<< Sin) + Ain
However, i = 1,2,3, 1 ≦ n ≦ number of rounds N
It becomes.
[0115]
On the other hand, for each of the
Y = BinX + (X <<< Sin) + Ain
However, i = 1,2,3, 1 ≦ n ≦ number of rounds N
It becomes.
[0116]
Here, when the processing bit width (bit length of input / output X and Y) is m, 2Sin+ BinAnd 2mB-1 so that −1 is a relatively prime value.inAnd SinIs set, the functions of the
[0117]
Next, an application example of the encryption communication system of the present embodiment described above to the automatic fee collection system will be described.
[0118]
Here, the automatic toll collection system means that when a car passes through a toll road, the roadside machine installed on the toll road allows the toll from the driver's IC card by electronic payment without stopping the car. It is a collecting system. The automatic toll collection system has various expectations such as the elimination of traffic congestion at toll gates on toll roads and the improvement of convenience by electronic payment using IC cards.
[0119]
FIG. 21 shows a schematic configuration of the automatic fee collection system.
[0120]
As shown in the figure, the automatic fee collection system includes an in-
[0121]
The in-
[0122]
The
[0123]
The
[0124]
In order to perform these processes safely and accurately, it is necessary to verify the validity of contract information, route information and payment information, and to prevent unauthorized tampering and wiretapping. Therefore, between the
[0125]
In order to realize the above processing, the in-
[0126]
Here, details of the algorithm key and details of encryption conversion and decryption conversion determined by the algorithm key are as described above.
[0127]
The license key is used for correctly performing the partner authentication process and the key sharing process. For example, consider a case where the in-
[0128]
Next, the components of the
[0129]
The
[0130]
The in-
[0131]
The
[0132]
Here, the encryption /
[0133]
The IC
[0134]
Further, the authentication / key
[0135]
The authentication / key
[0136]
The
[0137]
FIG. 22 is a diagram showing a communication flow of the automatic fee collection system shown in FIG.
[0138]
As shown in the figure, first, when the
[0139]
Next, when the
[0140]
Next, the in-
[0141]
Here, the settlement of the road toll is performed between the
[0142]
Further, in the
[0143]
FIG. 23 shows a detailed flow of an example including message authentication in the
[0144]
As shown in the figure, first, the
[0145]
On the other hand, when the in-
[0146]
This makes it possible to safely exchange data that should not be wiretapped or tampered with such as billing information and route information.
[0147]
By performing the above processing, the toll is charged to the
[0148]
【The invention's effect】
As described above, according to the present invention, it is possible to realize high-speed encryption / decryption conversion that is strong against cryptanalysis without increasing the number of conversion repetitions.
[Brief description of the drawings]
FIG. 1 is a schematic configuration diagram of a cryptographic communication system to which an embodiment of the present invention is applied.
FIG. 2 is a schematic configuration diagram of an
FIG. 3 is a schematic configuration diagram of a
4 is a substitution
5 is a schematic configuration diagram of a
6 is a schematic configuration diagram of a
7 is a substitution
FIG. 8 is a diagram showing evaluation patterns used in strength evaluation experiments for cryptanalysis by differential cryptanalysis and linear cryptanalysis.
9 shows a conversion key K1 = K2 = 0 and an addition value A in the bit
10 shows a conversion key K1 = K2 = 0 and an addition value A in the bit
11 shows a conversion key K1 = K2 = 0 and an addition value A in the bit
12 shows a conversion key K1 = K2 = 0 and an addition value A in the bit
FIG. 13 shows a conversion key K1 = K2 = 0 and an addition value A in the bit
14 shows a conversion key K1 = K2 = 0 and an addition value A in the bit
15 is a diagram showing estimated values of the difference probability and the linear approximation probability when the number of stages of the evaluation pattern for obtaining the difference and the linear approximation probability shown in FIG. 8 is increased to 18 stages and 21 stages.
16 is a diagram showing estimated values of the difference probability and the linear approximation probability when the number of stages of the evaluation pattern for obtaining the difference and the linear approximation probability shown in FIG. 8 is increased to 18 and 21. FIG.
17 is a diagram illustrating a modification of the
18 is a diagram showing a modification when the
19 is a diagram showing a modification in the case where the
20 is a diagram showing a modification of the bit
FIG. 21 is a schematic configuration diagram of an automatic fee collection system to which an encryption communication system according to an embodiment of the present invention is applied.
22 is a diagram showing a communication flow of the automatic fee collection system shown in FIG. 21. FIG.
23 is a diagram showing a detailed flow of an example including message authentication in the
[Explanation of symbols]
1 ... Data transmitter
2 ... Data receiver
3, 204 ... Key management organization
11, 11a: Encryption unit
12, 32 ... Key sharing part
13, 33 ... Data processing unit
14, 34 ... Communication processing unit
15 ... Key length information holding unit
20 ... encryption conversion part
211~ 21N, 411~ 41N... Substitution transpose converter
23, 23a, 43, 43a ... key conversion unit
24, 44 ... Algorithm key holding unit
25a, 45a ... division part
25b, 45b ... coupling part
26: Register
27. Multiplexer
28, 95, 96, 98 ... Addition calculation unit
31, 31a ... Decoding unit
40: Decoding conversion unit
61, 61a: Bit string converter
62, 94, 97 ... exclusive OR operation part
81-85 ... Bit string converter
91-93 ... cyclic shift operation part
95a, 96a, 98a ... Multiplication calculation unit
100: Extended key holding unit
200 ... car
201 ... roadside machine
202 ... In-vehicle device
203 ... IC card
210, 220, 230 ... encryption / decryption unit
211, 221 ... IC card communication section
212, 232 ... Wireless communication unit
213, 223, 233 ... Partner authentication / key sharing processing unit
214, 224, 234 ... Data holding unit
215, 225, 235 ... main control unit
Claims (13)
入力された第1、第2のデータに前記暗号鍵を作用させて演算処理を行い、その結果を、次回に入力すべき第1、第2のデータとして出力する暗号演算処理を複数回実行する暗号変換手段と、
前記平文データを2つに分割し、結果を、前記暗号変換手段の最初の回の前記暗号演算処理に入力すべき第1、第2のデータとして出力する暗号用分割手段と、
前記暗号変換手段の最後の回の前記暗号演算処理より出力された第1、第2のデータを結合し、結果を、暗号データとして出力する暗号用結合手段とを有し、
前記暗号演算処理は、
入力された第1のデータのビット列変換を行なう暗号用ビット列変換処理と、前記暗号用ビット列変換処理の出力データと入力された第2のデータとの排他的論理和を計算する暗号用排他的論理和演算処理と、を実行し、
前記暗号用排他的論理和演算処理の出力データを前記次回に入力すべき第1のデータとし、入力された第1のデータを前記次回に入力すべき第2のデータとして出力するものであり、
前記暗号用ビット列変換処理は、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第1の鍵データとの排他的論理和を計算する第1の排他的論理和演算処理と、
入力されたデータにシフト数S1の巡回シフト演算処理を施す第1の巡回シ
フト演算処理と、当該入力されたデータと前記第1の巡回シフト演算処理の出力データとの加算演算を行う第1の加算演算処理と、からなる第1の論理演算処理と、
入力されたデータにシフト数S2の巡回シフト演算処理を施す第2の巡回シ
フト演算処理と、当該入力されたデータと前記第2の巡回シフト演算処理の出力データとの加算演算処理を行う第2の加算演算処理と、からなる第2の論理演算処理と、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第2の鍵データとの排他的論理和を計算する第2の排他的論理和演算処理と、
入力されたデータにシフト数S3の巡回シフト演算処理を施す第3の巡回シ
フト演算処理と、当該入力されたデータと前記第3の暗号用巡回シフト演算処理の出力データとの加算演算処理を行う第3の加算演算処理と、からなる第3の論理演算処理と、を所定の順番で実行するものであり、
前記暗号用ビット列変換処理におけるシフト数S1、S2およびS3は、全てが
奇数、あるいは、S1およびS2のいずれか一方が2で残りの2つが奇数の値となるように設定されており、かつ、連続して実行される前記暗号演算処理間において、S1、S2およびS3の値が互いに一致しないように設定されていること
を特徴とする暗号装置。An encryption device that encrypts plaintext data using an encryption key,
The cryptographic process is performed by applying the encryption key to the input first and second data, and the result is output a plurality of times as the first and second data to be input next time. Cryptographic conversion means;
Dividing the plaintext data into two, and outputting the result as first and second data to be input to the first cryptographic operation processing of the cipher conversion means;
Combining the first and second data output from the cryptographic operation processing of the last round of the cryptographic conversion means, and the cryptographic combining means for outputting the result as encrypted data,
The cryptographic operation processing is
Cryptographic bit string conversion process for performing bit string conversion of input first data and Cryptographic exclusive logic for calculating an exclusive OR of output data of the encryption bit string conversion process and input second data A sum operation process,
The output data of the exclusive OR operation for encryption is set as the first data to be input next time, and the input first data is output as the second data to be input next time,
The encryption bit string conversion process includes:
A first exclusive OR operation process for calculating an exclusive OR of the input data and the first key data generated from the encryption key or a part thereof;
A first cyclic shift calculation process for performing a cyclic shift calculation process with a shift number S1 on the input data, and a first calculation for adding the input data and the output data of the first cyclic shift calculation process A first logical operation process comprising: an addition operation process;
A second cyclic shift calculation process for performing a cyclic shift calculation process with a shift number S2 on the input data, and a second calculation process for adding the input data and the output data of the second cyclic shift calculation process. A second logical operation process comprising:
A second exclusive OR operation process for calculating an exclusive OR of the input data and the second key data generated from the encryption key or a part thereof;
A third cyclic shift calculation process for performing a cyclic shift calculation process with a shift number S3 on the input data, and an addition calculation process of the input data and the output data of the third cryptographic cyclic shift calculation process are performed. A third addition operation process, and a third logical operation process including the third addition operation process in a predetermined order,
The shift numbers S1, S2 and S3 in the encryption bit string conversion process are all set to be odd numbers, or one of S1 and S2 is 2 and the remaining two are odd values, and A cryptographic apparatus, wherein the values of S1, S2 and S3 are set so as not to coincide with each other between the cryptographic computation processes executed successively.
前記暗号用ビット列変換処理におけるシフト数S1、S2およびS3は、連続し
て実行されるN(Nは2以上)回の前記暗号演算処理に設定されるS1、S2およびS3の値のパターンが、当該N回の前記暗号演算処理に続く、連続して実行されるN回の前記暗号演算処理に設定されるS1、S2およびS3の値のパターンと
一致しないように設定されていること
を特徴とする暗号装置。The encryption device according to claim 1,
The number of shifts S1, S2 and S3 in the cryptographic bit string conversion process is the pattern of the values of S1, S2 and S3 set in N (N is 2 or more) of the cryptographic operation processes executed continuously. It is set so as not to match the pattern of values of S1, S2 and S3 set in N times of the cryptographic operation processing executed successively following the N times of the cryptographic operation processing. Cryptographic device.
前記第1の加算演算処理は、入力されたデータと前記第1の巡回シフト演算処理の出力データとの加算結果と、パラメータA1との加算あるいは排他的論理和演算をさらに行い、
前記第2の加算演算処理は、入力されたデータと前記第2の巡回シフト演算処理の出力データとの加算結果と、パラメータA2との加算あるいは排他的論理和演算をさらに行い、
前記第3の加算演算処理は、入力されたデータと前記第3の巡回シフト演算処理の出力データとの加算結果と、パラメータA3との加算あるいは排他的論理和演算を行うこと
を特徴とする暗号装置。The encryption device according to claim 1 or 2 ,
The first addition operation processing further performs addition or exclusive OR operation of the addition result of the input data and the output data of the first cyclic shift operation processing and the parameter A1,
The second addition operation processing further performs addition or exclusive OR operation of the addition result of the input data and the output data of the second cyclic shift operation processing and the parameter A2,
The third addition operation processing performs addition or exclusive OR operation of the addition result of the input data and the output data of the third cyclic shift operation processing and the parameter A3. apparatus.
少なくとも、前記暗号用ビット列変換処理におけるシフト数S1、S2およびS3を含む、複数回実行される前記暗号演算処理各々での演算に使用する各種パラメータを設定するアルゴリズムパラメータ設定手段をさらに備えること
を特徴とする暗号装置。The encryption device according to claim 1, 2, or 3 ,
It further comprises algorithm parameter setting means for setting various parameters used for calculation in each of the cryptographic calculation processes executed a plurality of times, including at least the shift numbers S1, S2 and S3 in the cryptographic bit string conversion process. A cryptographic device.
入力された第1、第2のデータに前記復号鍵を作用させて演算処理を行い、その結果を、次回に入力すべき第1、第2のデータとして出力する復号演算処理を、前記暗号装置の暗号変換手段の暗号演算処理と同じ回数実行する復号変換手段と、
前記暗号データを2つに分割し、結果を、前記復号変換手段の最初の回の前記復号演算処理に入力すべき第1、第2のデータとして出力する復号用分割手段と、
前記復号変換手段の最後の回の前記復号演算処理より出力された第1、第2のデータを結合し、結果を、平分データとして出力する復号用結合手段とを有し、
前記復号演算処理は、
入力された第2のデータに対し、前記暗号変換手段の前記暗号演算処理における前記暗号用ビット列変換処理と同じ処理を行なう復号用ビット列変換処理と、前記復号用ビット列変換処理の出力データと入力された第1のデータとの排他的論理和を計算する復号用排他的論理和演算処理と、を実行し、
前記復号用排他的論理和演算処理の出力データを前記次回に入力すべき第2のデータとし、入力された第2のデータを前記次回に入力すべき第1のデータとして出力するものであり、
前記復号用ビット列変換処理におけるシフト数S1、S2およびS3は、前記復
号変換手段の最初の回の前記復号演算処理に設定される値が前記暗号変換手段の最後の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3の値と各々一致し、前記復号変換手段の最後の回の前記復号演算処理に設定される値が前記暗号変換手段の最初の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3の値と各々一致するように、前記復号変換手段にて複数回実行される前記復号演算処理各々と前記暗号変換手段にて複数回実行される前記暗号演算処理各々との間で、実行順番上、逆順に設定されていること
を特徴とする復号装置。A decryption device that decrypts and converts encrypted data generated by the encryption device according to claim 1 or 2 into plaintext data using a decryption key that is common to the encryption key used in the encryption device,
Decryption operation processing is performed by applying the decryption key to the input first and second data and performing the operation processing as first and second data to be input next time. Decryption conversion means for performing the same number of times as the cryptographic operation processing of the encryption conversion means
A splitting unit for decryption that divides the encrypted data into two, and outputs the result as first and second data to be input to the decryption calculation process of the first round of the decryption conversion unit;
A decoding combining unit that combines the first and second data output from the decoding calculation process of the last round of the decoding conversion unit, and outputs the result as equal data;
The decryption calculation process is:
A decryption bit string conversion process for performing the same process as the encryption bit string conversion process in the cryptographic operation process of the cipher conversion unit and an output data of the decryption bit string conversion process are input to the input second data. And an exclusive OR operation process for decoding for calculating an exclusive OR with the first data,
The output data of the exclusive OR operation for decoding is the second data to be input next time, and the input second data is output as the first data to be input next time,
As for the shift numbers S1, S2 and S3 in the decryption bit string conversion process, the values set in the first decryption operation process of the decryption conversion means are set in the last encryption operation process of the encryption conversion means The values set in the last decryption operation process of the decryption / conversion means are set in the first encryption operation process of the encryption / conversion means and match the values of the shift numbers S1, S2 and S3 respectively. Each of the decryption calculation processes executed a plurality of times by the decryption conversion means and the cryptographic calculation processes executed a plurality of times by the encryption conversion means so as to match the values of the shift numbers S1, S2 and S3 respectively The decoding apparatus is characterized in that it is set in reverse order with respect to the execution order.
入力された第1、第2のデータに前記復号鍵を作用させて演算処理を行い、その結果を、次回に入力すべき第1、第2のデータとして出力する復号演算処理を、前記暗号装置の前記暗号変換手段の前記暗号演算処理と同じ回数実行する復号変換手段と、
前記暗号データを2つに分割し、結果を、前記復号変換手段の最初の回の前記復号演算処理に入力すべき第1、第2のデータとして出力する復号用分割手段と、
前記復号変換手段の最後の回の前記復号演算処理より出力された第1、第2のデータを結合し、結果を、平分データとして出力する復号用結合手段とを有し、 前記復号演算処理は、
入力された第2のデータに対し、前記暗号変換手段の前記暗号演算処理における前記暗号用ビット列変換処理と同じ処理を行なう復号用ビット列変換処理と、前記復号用ビット列変換処理の出力データと入力された第1のデータとの排他的論理和を計算する復号用排他的論理和演算処理と、を実行し、
前記復号用排他的論理和演算処理の出力データを前記次回に入力すべき第2のデータとし、入力された第2のデータを前記次回に入力すべき第1のデータとして出力するものであり、
前記復号用ビット列変換処理におけるシフト数S1、S2およびS3とパラメー
タA1、A2およびA3は、前記復号変換手段の最初の回の前記復号演算処理に設
定される値が前記暗号変換手段の最後の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3とパラメータA1、A2およびA3の値と各々一致し、前記復号変換手段の最後の回の前記復号演算処理に設定される値が前記暗号変換手段の最初の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3とパラメータA1、A2およびA3の値と各々一致するように、前記復号変換手段にて複数回実行される前記復号演算処理各々と前記暗号変換手段にて複数回実行される前記暗号演算処理各々との間で、実行順序上、逆順に設定されていること
を特徴とする復号装置。A decryption device that decrypts and converts encrypted data generated by the encryption device according to claim 3 into plaintext data using a decryption key that is common to the encryption key used in the encryption device,
Decryption operation processing is performed by applying the decryption key to the input first and second data and performing the operation processing as first and second data to be input next time. Decryption conversion means for performing the same number of times as the cryptographic operation processing of the encryption conversion means,
A splitting unit for decryption that divides the encrypted data into two, and outputs the result as first and second data to be input to the decryption calculation process of the first round of the decryption conversion unit;
A decoding combining unit that combines the first and second data output from the decoding operation process of the last round of the decoding conversion unit, and outputs a result as equal data; ,
A decryption bit string conversion process for performing the same process as the encryption bit string conversion process in the cryptographic operation process of the cipher conversion unit and an output data of the decryption bit string conversion process are input to the input second data. And an exclusive OR operation process for decoding for calculating an exclusive OR with the first data,
The output data of the exclusive OR operation for decoding is the second data to be input next time, and the input second data is output as the first data to be input next time,
As for the shift numbers S1, S2 and S3 and the parameters A1, A2 and A3 in the decryption bit string conversion process, the values set in the first decryption operation process of the decryption conversion means are the last times of the encryption conversion means. The shift numbers S1, S2 and S3 set in the encryption calculation process of FIG. 4 coincide with the values of the parameters A1, A2 and A3, respectively, and the value set in the decryption calculation process of the last round of the decryption conversion means is The decryption and conversion means executes a plurality of times so that the shift numbers S1, S2 and S3 set in the first cryptographic operation processing of the encryption conversion means coincide with the values of the parameters A1, A2 and A3, respectively. Between each of the decryption operation processes and each of the encryption operation processes executed a plurality of times by the encryption conversion means, the execution order is set in the reverse order. Decoding device.
少なくとも、前記復号用ビット列変換処理におけるシフト数S1、S2およびS3を含む、前記復号変換手段にて複数回実行される前記復号演算処理各々での演算に使用する各種パラメータを設定するアルゴリズムパラメータ設定手段をさらに備えること
を特徴とする復号装置。The decoding device according to claim 5 or 6 , comprising:
Algorithm parameter setting means for setting various parameters used for the calculation in each of the decoding calculation processes executed a plurality of times by the decoding conversion means, including at least the shift numbers S1, S2 and S3 in the decoding bit string conversion process The decoding device further comprising:
前記暗号装置において、
前記暗号用分割手段が、前記平文データを2つに分割する暗号分割ステップと、
前記暗号変換手段が、前記暗号分割ステップにより得られた2つのデータを最初の暗号演算ステップに入力すべき第1、第2のデータとして、入力された第1、第2のデータに前記暗号鍵を作用させて演算処理を行い、その結果を次回の暗号演算ステップに入力すべき第1、第2のデータとして出力する暗号演算ステップを、複数回実行する暗号変換ステップと、
前記暗号用結合手段が、前記暗号変換ステップにおける最後の暗号演算処理により出力された第1、2のデータを結合して前記暗号データを生成する暗号用結合ステップと、を有し、
前記暗号演算ステップは、
入力された第1のデータのビット列変換を行なう暗号用ビット列変換ステップと、前記暗号用ビット列変換ステップの出力データと入力された第2のデータとの排他的論理和を計算する暗号用排他的論理和演算ステップと、を実行し、
前記暗号用排他的論理和演算ステップの出力データを前記次回の暗号演算ステップに入力すべき第1のデータとし、入力された第1のデータを前記次回の暗号演算ステップに入力すべき第2のデータとして出力するものであり、
前記暗号用ビット列変換ステップは、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第1の鍵データとの排他的論理和を計算する第1の排他的論理和演算ステップと、
入力されたデータにシフト数S1の巡回シフト演算処理を施す第1の巡回シフト演算ステップと、当該入力されたデータと前記第1の巡回シフト演算処理の出力データとの加算演算を行う第1の加算演算ステップと、からなる第1の論理演算ステップと、
入力されたデータにシフト数S2の巡回シフト演算処理を施す第2の巡回シフト演算ステップと、当該入力されたデータと前記第2の巡回シフト演算ステップの出力データとの加算演算処理を行う第2の加算演算ステップと、からなる第2の論理演算ステップと、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第2の鍵データとの排他的論理和を計算する第2の排他的論理和演算ステップと、
入力されたデータにシフト数S3の巡回シフト演算処理を施す第3の巡回シフト演算ステップと、当該入力されたデータと前記第3の暗号用巡回シフト演算ステップの出力データとの加算演算処理を行う第3の加算演算ステップと、からなる第3の論理演算ステップと、を所定の順番で実行するものであり、
前記暗号用ビット列変換ステップにおけるシフト数S1、S2およびS3は、全てが奇数、あるいは、S1およびS2のいずれか一方が2で残りの2つが奇数の値となるように設定されており、かつ、連続して実行される2つの暗号演算ステップ間において、S1、S2およびS3の値が互いに一致しないように設定されており、
前記復号装置において、
前記復号用分割手段が、前記暗号データを2つに分割する復号分割ステップと、
前記復号変換手段が、前記復号分割ステップにより得られた2つのデータを最初の復号演算ステップに入力すべき第1、第2のデータとして、入力された第1、第2のデータに前記復号鍵を作用させて演算処理を行い、その結果を次回の復号演算ステップに入力すべき第1、第2のデータとして出力する復号演算ステップを、前記暗号演算ステップと同じ回数実行する復号変換ステップと、
前記復号用結合手段が、前記復号変換ステップにおける最後の復号演算ステップにより出力された第1、2のデータを結合して前記平文データを生成する復号用結合ステップと、を有し、
前記復号演算ステップは、
入力された第2のデータに対し、前記暗号演算ステップにおける前記暗号用ビット列変換ステップと同じ処理を行なう復号用ビット列変換ステップと、前記復号用ビット列変換ステップの出力データと入力された第1のデータとの排他的論理和を計算する復号用排他的論理和演算ステップと、を実行し、
前記復号用排他的論理和演算ステップの出力データを前記次回の復号演算ステップに入力すべき第2のデータとし、入力された第2のデータを前記次回の復号演算ステップに入力すべき第1のデータとして出力するものであり、
前記復号用ビット列変換ステップにおけるシフト数S1、S2およびS3は、前記復号変換ステップの最初の回の前記復号演算ステップに設定される値が前記暗号変換ステップの最後の回の前記暗号演算ステップに設定されるシフト数S1、S2およびS3の値と各々一致し、
前記復号変換ステップの最後の回の前記復号演算ステップに設定される値が前記暗号変換ステップの最初の回の前記暗号演算ステップに設定されるシフト数S1、S2およびS3の値と各々一致するように、前記復号変換ステップにて複数回実行される前記復号演算ステップ各々と前記暗号変換ステップにて複数回実行される前記暗号演算ステップ各々との間で、実行順番上、逆順に設定されていること
を特徴とする暗号通信方法。An encryption device having an encryption conversion means, an encryption division means, and an encryption combination means encrypts plaintext data using an encryption key, transmits the result as encryption data, and receives a decryption conversion means, a decryption division means and a decryption means A decryption device having a combining means is an encryption communication method for decrypting and converting the encrypted data into plaintext data using a decryption key common to the encryption key,
In the encryption device,
An encryption division step in which the encryption dividing means divides the plaintext data into two;
The cipher conversion means uses the two pieces of data obtained in the cipher division step as the first and second data to be inputted to the first cipher operation step, and the encryption key is added to the inputted first and second data. A cryptographic conversion step of performing a plurality of cryptographic computation steps to output the results as first and second data to be input to the next cryptographic computation step;
The cryptographic combining means includes a cryptographic combining step of combining the first and second data output by the last cryptographic operation processing in the cryptographic conversion step to generate the cryptographic data;
The cryptographic operation step includes
An encryption bit string conversion step for converting a bit string of input first data, and an exclusive logic for encryption for calculating an exclusive OR of the output data of the encryption bit string conversion step and the input second data A sum operation step,
The output data of the encryption exclusive OR operation step is set as first data to be input to the next encryption operation step, and the input first data is input to the next encryption operation step. Output as data,
The encryption bit string conversion step includes:
A first exclusive OR operation step of calculating an exclusive OR of the input data and the first key data generated from the encryption key or a part thereof;
A first cyclic shift operation step for performing a cyclic shift operation process with a shift number S 1 on the input data, and a first operation for adding the input data and the output data of the first cyclic shift operation process A first logical operation step consisting of:
The performing a second cyclic shift calculating step performs cyclic shift processing of the shift number S 2 to the input data, the addition operation processing of the output data of the with the received data a second cyclic shift calculating step A second logical operation step comprising: 2 addition operation steps;
A second exclusive OR operation step of calculating an exclusive OR of the input data and the second key data generated from the encryption key or a part thereof;
A third cyclic shift operation step of performing cyclic shift processing of shifting the number S 3 to the input data, the addition operation processing of the output data of the with the input data the third cyclic shift operation steps for encryption Performing a third addition operation step, and a third logical operation step comprising:
The shift numbers S 1 , S 2 and S 3 in the encryption bit string conversion step are all set to be odd numbers, or one of S 1 and S 2 is 2 and the remaining two are odd values. And the values of S 1 , S 2 and S 3 are set so as not to coincide with each other between two cryptographic operation steps executed in succession,
In the decoding device,
A decryption and dividing step in which the decryption dividing means divides the encrypted data into two;
The decryption conversion means uses the decryption key as the first and second data inputted as the first and second data to be inputted to the first decryption calculation step with the two data obtained by the decryption division step. A decryption conversion step for performing the same number of times as the encryption operation step, a decryption operation step for outputting the result as first and second data to be input to the next decryption operation step;
The decryption combining means includes a decryption combining step of combining the first and second data output by the last decryption calculation step in the decryption conversion step to generate the plaintext data;
The decoding operation step includes
A decryption bit string conversion step for performing the same processing as the encryption bit string conversion step in the encryption operation step on the input second data, and output data of the decryption bit string conversion step and the input first data Performing an exclusive OR operation step for decoding to calculate an exclusive OR with:
The output data of the decoding exclusive OR operation step is set as second data to be input to the next decoding calculation step, and the input second data is input to the next decoding calculation step. Output as data,
The number of shifts S 1 , S 2, and S 3 in the decryption bit string conversion step is the value set in the decryption operation step in the first round of the decryption conversion step. Each of the shift numbers S 1 , S 2, and S 3 set in the step matches the value,
The value set in the decryption calculation step in the last round of the decryption conversion step is the same as the values of the shift numbers S 1 , S 2 and S 3 set in the cryptographic calculation step in the first round of the cryptographic conversion step, respectively. Set in reverse order in execution order between each of the decryption operation steps executed a plurality of times in the decryption conversion step and each of the encryption operation steps executed a plurality of times in the encryption conversion step so as to coincide with each other A cryptographic communication method characterized by the above.
共通の鍵を、前記暗号装置が暗号鍵として保持し、前記復号装置が復号鍵として保持するための鍵共有ステップを有すること
を特徴とする暗号通信方法。The encryption communication method according to claim 8 , wherein
An encryption communication method comprising: a key sharing step for holding a common key as an encryption key by the encryption device and holding the common key as a decryption key by the decryption device.
前記ICカードが前記車載機に装着されると、当該ICカードに記憶された契約情報を暗号通信により前記車載機に送信し、前記車載機を搭載した車両が道路に設置された路側機を通過すると、前記車載機に記憶された前記ICカードの契約情報を暗号通信により前記路側機に送信し、前記路側機にて前記車載機より受信した前記契約情報にしたがって決済を行い、その決済情報を暗号通信により前記車載機に送信し、前記車載機が受信した前記路側機よりの決済情報を暗号通信により前記ICカードに送信する、自動料金徴収システムであって、
前記ICカード、前記車載機および前記路側機は、各々、通信相手に送信すべき情報である平文データを暗号鍵を用いて暗号データに暗号変換する暗号化部と、通信相手から送られてきた暗号データを、当該通信相手が有する暗号鍵と共通の復号鍵を用いて平文データに復号変換する復号化部とを有し、
前記暗号化部は、
入力された第1、第2のデータに前記暗号鍵を作用させて演算処理を行い、その結果を、次回に入力すべき第1、第2のデータとして出力する暗号演算処理を複数回実行する暗号変換手段と、
前記平文データを2つに分割し、結果を、前記暗号変換手段の最初の回の前記暗号演算処理に入力すべき第1、第2のデータとして出力する暗号用分割手段と、
前記暗号変換手段の最後の回の前記暗号演算処理より出力された第1、第2のデータを結合し、結果を、暗号データとして出力する暗号用結合手段とを有し、 前記暗号演算処理は、
入力された第1のデータのビット列変換を行なう暗号用ビット列変換処理と、前記暗号用ビット列変換処理の出力データと入力された第2のデータとの排他的論理和を計算する暗号用排他的論理和演算処理と、を実行し、
前記暗号用排他的論理和演算処理の出力データを前記次回に入力すべき第1のデータとし、入力された第1のデータを前記次回に入力すべき第2のデータとして出力するものであり、
前記暗号用ビット列変換処理は、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第1の鍵データとの排他的論理和を計算する第1の排他的論理和演算処理と、
入力されたデータにシフト数S1の巡回シフト演算処理を施す第1の巡回シ
フト演算処理と、当該入力されたデータと前記第1の巡回シフト演算処理の出力データとの加算演算を行う第1の加算演算処理と、からなる第1の論理演算処理と、
入力されたデータにシフト数S2の巡回シフト演算処理を施す第2の巡回シ
フト演算処理と、当該入力されたデータと前記第2の巡回シフト演算処理の出力データとの加算演算処理を行う第2の加算演算処理と、からなる第2の論理演算処理と、
入力されたデータと、前記暗号鍵あるいはその一部から生成された第2の鍵データとの排他的論理和を計算する第2の排他的論理和演算処理と、
入力されたデータにシフト数S3の巡回シフト演算処理を施す第3の巡回シ
フト演算処理と、当該入力されたデータと前記第3の暗号用巡回シフト演算処理の出力データとの加算演算処理を行う第3の加算演算処理と、からなる第3の論理演算処理と、を所定の順番で実行するものであり、
前記暗号用ビット列変換処理におけるシフト数S1、S2およびS3は、全てが
奇数、あるいは、S1およびS2のいずれか一方が2で残りの2つが奇数の値となるように設定されており、かつ、連続して実行される前記暗号演算処理間において、S1、S2およびS3の値が互いに一致しないように設定されており、
前記復号化部は、
入力された第1、第2のデータに前記復号鍵を作用させて演算処理を行い、その結果を、次回に入力すべき第1、第2のデータとして出力する復号演算処理を、前記暗号装置の暗号変換手段の暗号演算処理と同じ回数実行する復号変換手段と、
前記暗号データを2つに分割し、結果を、前記復号変換手段の最初の回の前記復号演算処理に入力すべき第1、第2のデータとして出力する復号用分割手段と、
前記復号変換手段の最後の回の前記復号演算処理より出力された第1、第2のデータを結合し、結果を、平分データとして出力する復号用結合手段とを有し、 前記復号演算処理は、
入力された第2のデータに対し、前記暗号変換手段の前記暗号演算処理における前記暗号用ビット列変換処理と同じ処理を行なう復号用ビット列変換処理と、前記復号用ビット列変換処理の出力データと入力された第1のデータとの排他的論理和を計算する復号用排他的論理和演算処理と、を実行し、
前記復号用排他的論理和演算処理の出力データを前記次回に入力すべき第2のデータとし、入力された第2のデータを前記次回に入力すべき第1のデータとして出力するものであり、
前記復号用ビット列変換処理におけるシフト数S1、S2およびS3は、前記復
号変換手段の最初の回の前記復号演算処理に設定される値が前記暗号変換手段の最後の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3の値と各々一致し、前記復号変換手段の最後の回の前記復号演算処理に設定される値が前記暗号変換手段の最初の回の前記暗号演算処理に設定されるシフト数S1、S2およびS3の値と各々一致するように、前記復号変換手段にて複数回実行される前記復号演算処理各々と前記暗号変換手段にて複数回実行される前記暗号演算処理各々との間で、実行順番上、逆順に設定されていること
を特徴とする自動料金徴収システム。It is equipped with an in-vehicle device that is used by being mounted on a vehicle, an IC card that is configured to be freely mounted on the in-vehicle device, and a roadside device that is installed and used on a road.
When the IC card is attached to the in-vehicle device, the contract information stored in the IC card is transmitted to the in-vehicle device by encrypted communication, and the vehicle equipped with the in-vehicle device passes through the roadside device installed on the road. Then, the contract information of the IC card stored in the in-vehicle device is transmitted to the roadside device by encrypted communication, the settlement is performed according to the contract information received from the in-vehicle device in the roadside device, and the settlement information is An automatic fee collection system that transmits to the in-vehicle device by encrypted communication and transmits settlement information from the roadside device received by the in-vehicle device to the IC card by encrypted communication,
The IC card, the in-vehicle device, and the roadside device are each sent from a communication partner and an encryption unit that encrypts plaintext data, which is information to be transmitted to the communication partner, into encrypted data using an encryption key. A decryption unit that decrypts and converts the encrypted data into plaintext data using a decryption key that is common to the encryption key of the communication partner;
The encryption unit is
The cryptographic process is performed by applying the encryption key to the input first and second data, and the result is output a plurality of times as the first and second data to be input next time. Cryptographic conversion means;
Dividing the plaintext data into two, and outputting the result as first and second data to be input to the first cryptographic operation processing of the cipher conversion means;
A cryptographic combining unit that combines the first and second data output from the cryptographic calculation process of the last round of the cryptographic conversion unit, and outputs the result as cryptographic data; ,
Cryptographic bit string conversion process for performing bit string conversion of input first data and Cryptographic exclusive logic for calculating an exclusive OR of output data of the encryption bit string conversion process and input second data A sum operation process,
The output data of the exclusive OR operation for encryption is set as the first data to be input next time, and the input first data is output as the second data to be input next time,
The encryption bit string conversion process includes:
A first exclusive OR operation process for calculating an exclusive OR of the input data and the first key data generated from the encryption key or a part thereof;
A first cyclic shift calculation process for performing a cyclic shift calculation process with a shift number S1 on the input data, and a first calculation for adding the input data and the output data of the first cyclic shift calculation process A first logical operation process comprising: an addition operation process;
A second cyclic shift calculation process for performing a cyclic shift calculation process with a shift number S2 on the input data, and a second calculation process for adding the input data and the output data of the second cyclic shift calculation process. A second logical operation process comprising:
A second exclusive OR operation process for calculating an exclusive OR of the input data and the second key data generated from the encryption key or a part thereof;
A third cyclic shift calculation process for performing a cyclic shift calculation process with a shift number S3 on the input data, and an addition calculation process of the input data and the output data of the third cryptographic cyclic shift calculation process are performed. A third addition operation process, and a third logical operation process including the third addition operation process in a predetermined order,
The shift numbers S1, S2 and S3 in the encryption bit string conversion process are all set to be odd numbers, or one of S1 and S2 is 2 and the remaining two are odd values, and The values of S1, S2 and S3 are set so as not to coincide with each other between the cryptographic computation processes executed successively,
The decoding unit
Decryption operation processing is performed by applying the decryption key to the input first and second data and performing the operation processing as first and second data to be input next time. Decryption conversion means for performing the same number of times as the cryptographic operation processing of the encryption conversion means
A splitting unit for decryption that divides the encrypted data into two, and outputs the result as first and second data to be input to the decryption calculation process of the first round of the decryption conversion unit;
A decoding combining unit that combines the first and second data output from the decoding operation process of the last round of the decoding conversion unit, and outputs a result as equal data; ,
A decryption bit string conversion process for performing the same process as the encryption bit string conversion process in the cryptographic operation process of the cipher conversion unit and an output data of the decryption bit string conversion process are input to the input second data. And an exclusive OR operation process for decoding for calculating an exclusive OR with the first data,
The output data of the exclusive OR operation for decoding is the second data to be input next time, and the input second data is output as the first data to be input next time,
As for the shift numbers S1, S2 and S3 in the decryption bit string conversion process, the values set in the first decryption operation process of the decryption conversion means are set in the last encryption operation process of the encryption conversion means The values set in the decryption calculation process of the last round of the decryption / conversion means are set in the cipher calculation process of the first round of the cipher conversion means, which respectively match the values of the shift numbers S1, S2 and S3 Each of the decryption calculation processes executed a plurality of times by the decryption conversion means and the cryptographic calculation processes executed a plurality of times by the encryption conversion means so as to match the values of the shift numbers S1, S2 and S3 respectively An automatic fee collection system characterized in that it is set in reverse order with respect to each other.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20644099A JP3689595B2 (en) | 1999-07-21 | 1999-07-21 | Encryption device, decryption device, encryption communication method, and automatic fee collection system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20644099A JP3689595B2 (en) | 1999-07-21 | 1999-07-21 | Encryption device, decryption device, encryption communication method, and automatic fee collection system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001034163A JP2001034163A (en) | 2001-02-09 |
| JP3689595B2 true JP3689595B2 (en) | 2005-08-31 |
Family
ID=16523422
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20644099A Expired - Lifetime JP3689595B2 (en) | 1999-07-21 | 1999-07-21 | Encryption device, decryption device, encryption communication method, and automatic fee collection system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3689595B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104243085A (en) * | 2013-06-08 | 2014-12-24 | 阿尔卡特朗讯 | Method and device used for coding and recombining bit data and base station controller |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5000365B2 (en) * | 2006-04-27 | 2012-08-15 | 株式会社日立製作所 | Hash value generation device, program, and hash value generation method |
| CN114629706B (en) * | 2022-03-16 | 2024-01-23 | 平安国际智慧城市科技股份有限公司 | File encryption methods, devices, equipment and storage media |
-
1999
- 1999-07-21 JP JP20644099A patent/JP3689595B2/en not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104243085A (en) * | 2013-06-08 | 2014-12-24 | 阿尔卡特朗讯 | Method and device used for coding and recombining bit data and base station controller |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001034163A (en) | 2001-02-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6298153B1 (en) | Digital signature method and information communication system and apparatus using such method | |
| US6683956B1 (en) | Encrypting conversion apparatus, decrypting conversion apparatus, cryptographic communication system, and electronic toll collection apparatus | |
| JP4596686B2 (en) | Secure encryption against DPA | |
| Moon et al. | Impossible differential cryptanalysis of reduced round XTEA and TEA | |
| JP5229315B2 (en) | Encryption device and built-in device equipped with a common key encryption function | |
| US5815573A (en) | Cryptographic key recovery system | |
| CN102577228A (en) | Method for protecting sensor data from manipulation, and sensor to this end | |
| SG173111A1 (en) | Cryptography circuit protected against observation attacks, in particular of a high order | |
| US6111952A (en) | Asymmetrical cryptographic communication method and portable object therefore | |
| US7783045B2 (en) | Secure approach to send data from one system to another | |
| Jain et al. | Implementation of hybrid cryptography algorithm | |
| CN100393026C (en) | Binary data block encryption conversion method | |
| Bokhari et al. | Cryptanalysis techniques for stream cipher: a survey | |
| JP3695526B2 (en) | Encryption key update method | |
| KR20030094217A (en) | Threshold cryptography scheme for message authentication systems | |
| JP4556252B2 (en) | IC card, in-vehicle device and roadside device used for encryption conversion device, decryption conversion device, encryption communication device and automatic fee collection system | |
| JP3689595B2 (en) | Encryption device, decryption device, encryption communication method, and automatic fee collection system | |
| JPH0916678A (en) | Cryptographic communication device and cryptographic communication system | |
| Lu et al. | Related-key attacks on the full-round Cobra-F64a and Cobra-F64b | |
| Hafsa et al. | Secure transmission of medical images using improved hybrid cryptosystem: authentication, confidentiality and integrity | |
| Young et al. | A subliminal channel in secret block ciphers | |
| JP5500277B2 (en) | Encryption device and built-in device equipped with a common key encryption function | |
| Keliher et al. | Modeling linear characteristics of substitution-permutation networks | |
| JP2001016197A (en) | Self-synchronous stream cipher system and MAC generation method using the same | |
| McEvoy et al. | All-or-nothing transforms as a countermeasure to differential side-channel analysis |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041207 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050204 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050329 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050428 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050428 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050519 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050607 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050613 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 3689595 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080617 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090617 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090617 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100617 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100617 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110617 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110617 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120617 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120617 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130617 Year of fee payment: 8 |
|
| EXPY | Cancellation because of completion of term |