JP6052166B2 - 暗号化方法、暗号化装置および暗号化プログラム - Google Patents

暗号化方法、暗号化装置および暗号化プログラム Download PDF

Info

Publication number
JP6052166B2
JP6052166B2 JP2013509934A JP2013509934A JP6052166B2 JP 6052166 B2 JP6052166 B2 JP 6052166B2 JP 2013509934 A JP2013509934 A JP 2013509934A JP 2013509934 A JP2013509934 A JP 2013509934A JP 6052166 B2 JP6052166 B2 JP 6052166B2
Authority
JP
Japan
Prior art keywords
data
series
transposition
sequence
transposing
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.)
Active
Application number
JP2013509934A
Other languages
English (en)
Other versions
JPWO2012141189A1 (ja
Inventor
智保 洲崎
智保 洲崎
角尾 幸保
幸保 角尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2012141189A1 publication Critical patent/JPWO2012141189A1/ja
Application granted granted Critical
Publication of JP6052166B2 publication Critical patent/JP6052166B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2011−087088号(2011年 4月11日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、暗号化方法、暗号化装置および暗号化プログラムに関し、特に、共通鍵(秘密鍵)を用いてブロック単位の暗号化を行う暗号化方法、暗号化装置および暗号化プログラムに関する。
通信データや蓄積データを秘匿する技術として共通鍵ブロック暗号(以下、単に“ブロック暗号”と称する。)がある。ブロック暗号の基本構造の一つに“Feistel構造”がある。図11は、ブロック長2nビットのFeistel構造の1ラウンド分の構成を表した図である。入力データをnビットデータBとBの2つに分割し、Bと鍵データKとを関数Fで攪拌し、その出力データをデータBに排他的論理和したものがB’となる。また、BはそのままB’となる。このようにして得られたB’とB’が次のラウンドの入力となる。
更にFeistel構造の分割数を2以上に拡張した一般化Feistel構造(非特許文献1の中では“Feistel Type Transformation”と呼ばれている。)がある(非特許文献1)。
非特許文献1では、Type−1からType−3までの3種類の構造が提案されているが、ここではType−2に限定して説明を行う(以下、特に断りがない限り“一般化Feistel構造”という表記はType−2を指すものとする。)。
図12は、入力データをk(2以上の偶数)個に分割(以下、分割した各々を“系列”と呼ぶ。)して処理を行う一般化Feistel構造(以下、“k系列一般化Feistel構造”と記述する。)の1ラウンド分の構成を表した図である。
一般化Feistel構造1ラウンド分の処理を非線形変換部20と転置処理部21に分けて考える。非線形変換部20は入力されるk系列のデータのうち、データX(iはk以下の奇数)をそのまま出力すると共に、関数Fで鍵データK(j=(i+1)/2)と攪拌し、データXi+1に排他的論理和して出力する。転置処理部21は系列データを1系列分左巡回シフトする転置処理である。
Y. Zheng, T. Matsumoto, H. Imai, "On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses," CRYPTO 1989,LNCS vol. 435, pp.461−480, Springer−Verlag, 1998.
上記の非特許文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明によって与えられたものである。ブロック暗号では、入力データ(平文)の各ビットデータが出力データ(暗号文)の全ビットへ影響していることが必要であり、暗号アルゴリズムはビットデータを効率よく拡散させることが望ましい。
しかしながら、図12に示したように、一般化Feistel構造は分割された系列データのうち奇数番目の系列データは関数Fを介して偶数系列データに波及するが、偶数系列データは拡散することなく奇数系列へ移動するだけである。このように、ある1ラウンドに注目すると奇数系列と偶数系列で拡散に差が生じている。
また、一般化Feistel構造を持つブロック暗号において、分割数kを大きくすると、F関数を小型化できるメリットがある一方で、不能差分攻撃や飽和攻撃の適用可能ラウンド数が大きくなる。このため、対策としてラウンド数を増やさねばならず、結果として処理速度の低下を招くという問題点がある。
本発明の目的とするところは、優れた拡散性を持ち、ラウンド数を少なくすることのできる暗号化方法、暗号化装置および暗号化プログラムを提供することにある。
本発明の第1の視点によれば、コンピュータが、n×kビット(kは6以上の偶数)のブロックデータを分割して得られたk個のnビット系列データについて、第i系列と第i+1系列(i=1,,...,k−1)のデータがお互いに作用するような変換処理を行いk個のデータW,W,...,Wを出力するステップと、前記コンピュータが、前記データW,W,...,Wを、予め定めた規則に基づいて転置するステップと、を1ラウンドとするk系列データ攪拌処理を所定回数実行し、前記n×kビットのデータの暗号文を出力するステップとを含む暗号化方法が提供される。本方法は、データの通信や蓄積の際にデータを秘匿するための暗号化処理を行う暗号化装置という、特定の機械に結びつけられている。
本発明の第2の視点によれば、n×kビット(kは6以上の偶数)のブロックデータを分割して得られたk個のnビットのデータについて、第i系列と第i+1系列(i=1,2,...,k−1)のデータがお互いに作用するような変換処理を行いk個のデータW,W,...,Wを出力する変換手段と、前記データW,W,...,Wを、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成したk系列データ攪拌手段を、所定ラウンド数分有する暗号化装置が提供される。
本発明の第3の視点によれば、n×kビット(kは6以上の偶数)のブロックデータを分割して得られたk個のnビットのデータが入力されるコンピュータに、前記コンピュータのプロセッサを用いて、前記コンピュータのメモリ上で、第i系列と第i+1系列(i=1,,...,k−1)のデータがお互いに作用するような変換処理を行いk個のデータW,W,...,Wを出力する処理と、前記データW,W,...,Wを、予め定めた規則に基づいて転置する処理と、を1ラウンドとして構成したk系列データ攪拌処理を、所定ラウンド数分実行し、前記n×kビットのデータの暗号文を出力させる暗号化プログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
本発明によれば、より少ないラウンド数で、不能差分攻撃や飽和攻撃に対する耐性を確保する構成を得ることが可能となる。
本発明の概要を説明するための図である。 図1の非線形変換部の詳細構成を示す図である。 図1の非線形変換部の別の一例を示す図である。 図1の非線形変換部の別の一例を示す図である。 8系列の場合の本発明のデータの拡散の様子を示す図である。 8系列一般化Feistel構造のデータの拡散の様子を示す図である。 本発明の第1の実施形態の通信装置の構成を示す図である。 本発明の第1の実施形態の通信装置の暗号化手段、復号化手段の詳細構成を示す図である。 本発明の第1の実施形態の通信装置の暗号化手段のk系列データ攪拌手段の詳細構成を示す図である。 本発明の第1の実施形態の通信装置の復号化手段のk系列データ攪拌手段の詳細構成を示す図である。 Feistel構造の構成を示す図である。 一般化Feistel構造の構成を示す図である。
はじめに、本発明の概要について図面を参照して説明する。以下、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
本発明は、図1に示すように、n×kビット(kは6以上の偶数)のブロックデータを分割して得られたk個のnビット系列データB〜Bについて、第i系列Bと第i+1系列Bi+1のデータがお互いに作用するような変換処理を行いk個のデータW,W,...,Wを出力する非線形変換手段11と、データW,W,...,Wを、予め定めた規則に基づいて転置する転置処理手段12とを1ラウンドとして構成したk系列データ攪拌手段13を備える構成にて実現できる。
具体的には、k個のnビット系列データB〜Bについて、第i系列Bと第i+1系列Bi+1のデータがお互いに作用するような変換処理を行いk個のデータW,W,...,Wを出力するステップと、データW,W,...,Wを、予め定めた規則に基づいて転置するステップとを1ラウンドとするk系列データ攪拌処理が所定回数実行される(但し、最終ラウンドの転置処理は省略される。)。
図2は、図1の非線形変換手段11の詳細構成を示す図である。図2の例では、Bと第i+1系列Bi+1のデータの一方Bを、所定の鍵データ(図示省略)と攪拌を行う非線形関数Fに入力して得たデータと他方のデータBi+1との排他的論理和をデータWとし、データWと前記一方のデータBとの排他的論理和をデータWi+1とする変換処理が行われている。k系列の場合、図2の構造がk/2個並列に並んだ構造となる。
なお、図1の非線形変換手段11は、図3に示すように、非線形関数Fからの出力と系列データBi+1との排他的論理和したデータWをBへ作用させるときにも非線形関数Fによる攪拌を行う構成とすることもできる。具体的には、図3の例では、データWと系列データBとの排他的論理和を取る前に、データWを、所定の鍵データ(図示省略)と攪拌を行う非線形関数Fに入力し、非線形関数Fからの出力と一方のデータBとの排他的論理和をデータWi+1としている。
さらに、図1の非線形変換手段11は、図4に示すように、Lai−Massey構造(Lai−Massey Scheme)を採用した構成とすることもできる。図4の例では、第i系列と第i+1系列のデータB、Bi+1の排他的論理和を非線形関数Fに入力して得たデータと一方のデータBとの排他的論理和をデータWi+1とし、第i系列と第i+1系列のデータの排他的論理和を非線形関数に入力して得たデータと前記他方のデータとの排他的論理和をデータWとしている。
上記のような双方向に作用する非線形変換処理に加えて、巡回シフトでなく、系列数に応じて予め定められた転置処理を組み合わせることで、拡散性をさらに向上させることができる。
図5は、系列数k=8として、非線形変換処理に上記図4のLai−Massey構造を適用し、データW,W,...,Wを、W,W,W,W,W,W,W,Wとなる転置処理を行った場合のデータ波及の様子を表した図である。図5の太い破線で表わされたように、系列8のデータは、3ラウンドで全系列に波及していることがわかる。なお、図5の例では、図4のLai−Massey構造を用いているが、図2〜図4を対比すれば明らかなとおり、図2、図3の非線形変換手段11を用いた場合も同様の結果を得ることができる。
図6は、8系列一般化Feistel構造の拡散の様子を表した図である。系列1のデータが全系列に波及するまでのラウンド数は7ラウンドである。従って、本発明は、必要ラウンド数を1/2以下に削減できている。
なお、本発明によれば、上記のような転置処理はビットデータの入れ替えだけなのでハードウェア実装/ソフトウェア実装のいずれの方式であっても転置パターンが変わることによる実装コストの増加はないという利点も得られている。
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図7は、本発明の第1の実施形態の通信装置の構成を示す図である。図7を参照すると、データの圧縮を行うデータ圧縮手段100と、圧縮されたデータを暗号化する暗号化手段71と、符号化処理を行う符号化手段102と、符号化手段102から出力されたデータを復号する復号化手段72と、データの伸長処理を行うデータ復元手段104とを備えた通信装置10が示されている。
このような通信装置10は、データを送信する場合、データ圧縮手段100にてデータの圧縮を行った後、暗号化手段71にて暗号化し、符号化手段102にてエラー訂正用の符号化を行ってから、暗号化送信データを送信する。
また、データを受信する場合、上記通信装置10は、符号化手段102にてエラー訂正を行った後、復号化手段72にて復号し、データ復元手段104にて圧縮を解き復元データを得る。
上記のような通信装置10の具体例としては、音声通信端末やデータ通信装置などの通信データを秘匿する必要のある種々の機器を挙げることができる。また、図7の例では、暗号化手段71と復号化手段72の双方を備える構成を示しているが、送信、受信のいずれか一方だけを行うのであれば、暗号化手段71と復号化手段72とのを少なくとも一方を備えていれば良い。
図8は、上記した暗号化手段および復号化手段の詳細構成を示す図である。拡大鍵生成手段70は、鍵データKから複数の拡大鍵K、K、…、Kを生成し、該拡大鍵K、K、…、Kを暗号化手段71と復号化手段72とに供給する。
暗号化手段71は、所定ラウンド数R個分のk系列データ攪拌手段710(kは6以上の偶数)によって構成され、1ブロック分の平文データPと該拡大鍵K、K、…、Kの入力に対し、1ブロック分の暗号文データCを出力する。より具体的には、暗号化手段71は、まずknビットの平文データPをk個のnビットデータに分割し、鍵データKと共にk系列データ攪拌手段710に入力しデータの攪拌を行う。以降、r(2≦r≦R)ラウンド目は(r−1)ラウンドのk系列データ攪拌手段710からの出力と鍵データKを入力としてデータと拡大鍵との攪拌が繰り返される。そして、Rラウンド目のk系列データ攪拌手段710からのk個の出力を連結したknビットのデータが暗号文データCとして出力される。
復号化手段72は、所定ラウンド数分のk系列データ攪拌手段720によって構成され、1ブロック分の暗号文データCと該拡大鍵K、K、…、Kの入力に対し、1ブロック分の平文データPを出力する。復号化手段72も同様に、まずknビットの暗号文データPをk個のnビットデータに分割し、鍵データKと共にk系列データ攪拌手段710に入力しデータの攪拌を行う。以降、r(2≦r≦R)ラウンド目は(r−1)ラウンドのk系列データ攪拌手段720からの出力と鍵データKを入力としてデータと拡大鍵との攪拌が繰り返される。そして、Rラウンド目のk系列データ攪拌手段720からのk個の出力を連結したknビットのデータが平文データPとして出力される。なお、復号化手段72では、拡大鍵の使用順序は暗号化手段71の逆順になる(図8の鍵データの添え字参照)。
図9は、暗号化手段71のk系列データ攪拌手段710の詳細構成を示す図である。図9を参照すると、k系列データ攪拌手段710は、非線形変換手段711と転置処理手段712とで構成される。但し、第Rラウンド目のk系列データ攪拌手段710は、非線形変換手段711のみで構成される。
非線形変換手段711は、図2〜図4に示したような双方向へデータが作用する構造をk/2個並べた構成となっている。また、図9の例では、拡大鍵データKはk/2個に均等に分割され、各々がF関数へ入力される構成となっている。但し、図3の構造の場合、F関数が2つ必要となるため、拡大鍵データKはk/4個に均等分割される。
転置処理手段712は、系列数kに応じて、k個の中間データを決められた転置パターンに従って転置を行う。
ここで、転置パターンについて詳細に説明する。データWをWj[i]に転置するとき、この転置を{j[1],j[2],...,j[k]}と表現する。転置パターンとしては、系列数k毎に、以下のような転置パターンを採用することができる。
6系列のとき(k=6)
{4,1,2,5,6,3}
8系列のとき(k=8)
{6,1,8,3,4,7,2,5}
{4,1,8,5,6,7,2,3}
10系列のとき(k=10)
{4,1,8,3,10,5,6,9,2,7}
{4,1,6,3,10,7,2,9,8,5}
{4,1,6,3,10,7,8,9,2,5}
{6,1,8,3,4,7,2,9,10,5}
{6,1,8,3,10,7,2,9,4,5}
{6,1,8,3,10,7,4,9,2,5}
{4,1,8,5,2,3,6,9,10,7}
{4,1,8,5,2,7,6,9,10,3}
{4,1,8,5,10,7,6,9,2,3}
12系列のとき(k=12)
{8,1,10,3,12,5,4,9,6,11,2,7}
{6,1,10,3,12,7,2,5,8,11,4,9}
{6,1,10,3,12,7,4,5,8,11,2,9}
{6,1,8,3,4,7,12,9,10,11,2,5}
{6,1,10,3,4,7,12,9,2,11,8,5}
{6,1,10,3,12,7,2,9,8,11,4,5}
{6,1,10,3,12,7,4,9,8,11,2,5}
{4,1,8,5,2,3,12,9,6,11,10,7}
{4,1,8,5,2,3,12,9,10,11,6,7}
{4,1,12,5,10,7,6,9,8,11,2,3}
{6,3,10,1,4,7,12,5,8,11,2,9}
{6,3,10,1,12,7,4,5,8,11,2,9}
{6,3,10,1,12,7,2,9,8,11,4,5}
{6,3,10,1,12,7,4,9,8,11,2,5}
{6,3,2,5,8,1,12,9,4,11,10,7}
14系列のとき(k=14)
{4,1,10,5,14,7,6,3,2,11,12,13,8,9}
{4,1,10,5,6,7,2,9,14,11,8,13,12,3}
16系列のとき(k=16)
{10,1,14,3,12,7,16,5,8,11,4,13,6,15,2,9}
{6,1,8,3,12,7,16,9,2,5,4,13,10,15,14,11}
{6,1,12,3,16,7,4,9,2,5,10,13,8,15,14,11}
{6,1,12,3,16,7,14,9,2,5,10,13,8,15,4,11}
{6,1,8,3,12,7,16,9,14,11,4,13,10,15,2,5}
{6,1,10,3,14,7,4,9,16,11,8,13,12,15,2,5}
{6,1,10,3,14,7,12,9,16,11,8,13,4,15,2,5}
{8,1,10,5,14,3,6,9,16,11,12,13,4,15,2,7}
{8,1,10,5,16,3,6,9,14,11,12,13,4,15,2,7}
{8,1,10,5,16,3,14,9,6,11,12,13,4,15,2,7}
{4,1,10,5,16,7,6,3,14,11,12,13,8,15,2,9}
{10,1,2,5,12,7,6,3,8,11,16,13,14,15,4,9}
{4,1,10,5,16,7,6,9,14,11,12,13,8,15,2,3}
図10は、復号化手段72のk系列データ攪拌手段720の詳細構成を示す図である。図10を参照すると、k系列データ攪拌手段720は、非線形変換手段711と逆転置処理手段713とで構成される。但し、第Rラウンド目のk系列データ攪拌手段710は、非線形変換手段711のみで構成される。
非線形変換手段711は、暗号化手段71と同様に図2〜図4に示したような双方向へデータが作用する構造をk/2個並べた構成となっている。
逆転置処理手段713は、暗号化手段71の転置処理手段712の逆転置を行う。例えば、暗号化手段71の転置処理手段712が系列iのデータを系列jに転置するならば、逆転置処理手段713は、系列jのデータを系列iに転置する。
なお、図8〜10に示した拡大鍵生成手段70、暗号化手段71、復号化手段72、およびその内部の処理手段は、通信装置10を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することができる。もちろん、通信装置10に搭載されたLSI(Large Scale Integration)などのハードウェアなどで実現することも可能である。
以上のように、第i系列と第i+1系列のデータがお互いに作用するような変換処理を行った後、データW,W,...,Wを置換することにより、図5に示したように、短ラウンドで優れた拡散性を発揮する暗復号手段を得ることが可能となる。
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点による暗号化方法参照)
[第2の形態]
第1の形態において、
前記変換処理は、第i系列と第i+1系列のデータの一方を非線形関数に入力して得たデータと他方のデータとの排他的論理和をデータWとし、前記データWと前記一方のデータとの排他的論理和をデータWi+1とする変換処理である暗号化方法。
[第3の形態]
第2の形態において、
前記データWと前記一方のデータとの排他的論理和を取る前に、前記データWを非線形関数に入力し、前記非線形関数からの出力と前記一方のデータとの排他的論理和をデータWi+1とする暗号化方法。
[第4の形態]
第1の形態において、
前記変換処理は、第i系列と第i+1系列のデータの排他的論理和を非線形関数に入力して得たデータと前記一方のデータとの排他的論理和をデータWi+1とし、第i系列と第i+1系列のデータの排他的論理和を非線形関数に入力して得たデータと前記他方のデータとの排他的論理和をデータWとする変換処理である暗号化方法。
[第5の形態]
第1から第4いずれか一の形態において、
前記データW,W,...,W(但し、k≦16)を、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、k=6のとき{4,1,2,5,6,3}で表わされる転置を行う暗号化方法。
[第6の形態]
第1から第5いずれか一の形態において、
前記データW,W,...,W(但し、k≦16)を、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、k=8のとき{6,1,8,3,4,7,2,5}または{4,1,8,5,6,7,2,3}で表わされる転置を行う暗号化方法。
[第7の形態]
第1から第6いずれか一の形態において、
前記データW,W,...,W(但し、k≦16)を、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、k=10のとき次式(1)のいずれかで表わされる転置を行う暗号化方法。
{4,1,8,3,10,5,6,9,2,7}
{4,1,6,3,10,7,2,9,8,5}
{4,1,6,3,10,7,8,9,2,5}
{6,1,8,3,4,7,2,9,10,5}
{6,1,8,3,10,7,2,9,4,5}
{6,1,8,3,10,7,4,9,2,5}
{4,1,8,5,2,3,6,9,10,7}
{4,1,8,5,2,7,6,9,10,3}
{4,1,8,5,10,7,6,9,2,3}・・・(1)
[第8の形態]
第1から第7いずれか一の形態において、
前記データW,W,...,W(但し、k≦16)を、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、k=12のとき次式(2)のいずれかで表わされる転置を行う暗号化方法。
{8,1,10,3,12,5,4,9,6,11,2,7}
{6,1,10,3,12,7,2,5,8,11,4,9}
{6,1,10,3,12,7,4,5,8,11,2,9}
{6,1,8,3,4,7,12,9,10,11,2,5}
{6,1,10,3,4,7,12,9,2,11,8,5}
{6,1,10,3,12,7,2,9,8,11,4,5}
{6,1,10,3,12,7,4,9,8,11,2,5}
{4,1,8,5,2,3,12,9,6,11,10,7}
{4,1,8,5,2,3,12,9,10,11,6,7}
{4,1,12,5,10,7,6,9,8,11,2,3}
{6,3,10,1,4,7,12,5,8,11,2,9}
{6,3,10,1,12,7,4,5,8,11,2,9}
{6,3,10,1,12,7,2,9,8,11,4,5}
{6,3,10,1,12,7,4,9,8,11,2,5}
{6,3,2,5,8,1,12,9,4,11,10,7}・・・(2)
[第9の形態]
第1から第8いずれか一の形態において、
前記データW,W,...,W(但し、k≦16)を、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、k=14のとき{4,1,10,5,14,7,6,3,2,11,12,13,8,9}または{4,1,10,5,6,7,2,9,14,11,8,13,12,3}のいずれかで表わされる転置を行う暗号化方法。
[第10の形態]
第1から第9いずれか一の形態において、
前記データW,W,...,W(但し、k≦16)を、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、k=16のとき次式(3)のいずれかで表わされる転置を行う暗号化方法。
{10,1,14,3,12,7,16,5,8,11,4,13,6,15,2,9}
{6,1,8,3,12,7,16,9,2,5,4,13,10,15,14,11}
{6,1,12,3,16,7,4,9,2,5,10,13,8,15,14,11}
{6,1,12,3,16,7,14,9,2,5,10,13,8,15,4,11}
{6,1,8,3,12,7,16,9,14,11,4,13,10,15,2,5}
{6,1,10,3,14,7,4,9,16,11,8,13,12,15,2,5}
{6,1,10,3,14,7,12,9,16,11,8,13,4,15,2,5}
{8,1,10,5,14,3,6,9,16,11,12,13,4,15,2,7}
{8,1,10,5,16,3,6,9,14,11,12,13,4,15,2,7}
{8,1,10,5,16,3,14,9,6,11,12,13,4,15,2,7}
{4,1,10,5,16,7,6,3,14,11,12,13,8,15,2,9}
{10,1,2,5,12,7,6,3,8,11,16,13,14,15,4,9}
{4,1,10,5,16,7,6,9,14,11,12,13,8,15,2,3}・・・(3)
[第11の形態]
第1から第10いずれか一の形態において、
前記データW,W,...,W(但し、k≦16)を、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、系列数kの値に応じて次式(4)で表わされる転置を行う暗号化方法。
k=6のとき
{4,1,2,5,6,3}
k=8のとき
{6,1,8,3,4,7,2,5}
{4,1,8,5,6,7,2,3}
k=10のとき
{4,1,8,3,10,5,6,9,2,7}
{4,1,6,3,10,7,2,9,8,5}
{4,1,6,3,10,7,8,9,2,5}
{6,1,8,3,4,7,2,9,10,5}
{6,1,8,3,10,7,2,9,4,5}
{6,1,8,3,10,7,4,9,2,5}
{4,1,8,5,2,3,6,9,10,7}
{4,1,8,5,2,7,6,9,10,3}
{4,1,8,5,10,7,6,9,2,3}
k=12のとき
{8,1,10,3,12,5,4,9,6,11,2,7}
{6,1,10,3,12,7,2,5,8,11,4,9}
{6,1,10,3,12,7,4,5,8,11,2,9}
{6,1,8,3,4,7,12,9,10,11,2,5}
{6,1,10,3,4,7,12,9,2,11,8,5}
{6,1,10,3,12,7,2,9,8,11,4,5}
{6,1,10,3,12,7,4,9,8,11,2,5}
{4,1,8,5,2,3,12,9,6,11,10,7}
{4,1,8,5,2,3,12,9,10,11,6,7}
{4,1,12,5,10,7,6,9,8,11,2,3}
{6,3,10,1,4,7,12,5,8,11,2,9}
{6,3,10,1,12,7,4,5,8,11,2,9}
{6,3,10,1,12,7,2,9,8,11,4,5}
{6,3,10,1,12,7,4,9,8,11,2,5}
{6,3,2,5,8,1,12,9,4,11,10,7}
k=14のとき
{4,1,10,5,14,7,6,3,2,11,12,13,8,9}
{4,1,10,5,6,7,2,9,14,11,8,13,12,3}
k=16のとき
{10,1,14,3,12,7,16,5,8,11,4,13,6,15,2,9}
{6,1,8,3,12,7,16,9,2,5,4,13,10,15,14,11}
{6,1,12,3,16,7,4,9,2,5,10,13,8,15,14,11}
{6,1,12,3,16,7,14,9,2,5,10,13,8,15,4,11}
{6,1,8,3,12,7,16,9,14,11,4,13,10,15,2,5}
{6,1,10,3,14,7,4,9,16,11,8,13,12,15,2,5}
{6,1,10,3,14,7,12,9,16,11,8,13,4,15,2,5}
{8,1,10,5,14,3,6,9,16,11,12,13,4,15,2,7}
{8,1,10,5,16,3,6,9,14,11,12,13,4,15,2,7}
{8,1,10,5,16,3,14,9,6,11,12,13,4,15,2,7}
{4,1,10,5,16,7,6,3,14,11,12,13,8,15,2,9}
{10,1,2,5,12,7,6,3,8,11,16,13,14,15,4,9}
{4,1,10,5,16,7,6,9,14,11,12,13,8,15,2,3}
・・・(4)
[第12の形態]
(上記第2の視点による暗号化装置参照)
[第13の形態]
(上記第3の視点によるプログラム参照)
なお、上記した第12、第13の形態は、上記した第1の形態と同様に、第2〜第11の形態に展開することができる。
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態では、図5を示して系列数k=8である場合のデータ波及の様子を説明したが、上記例示した転置パターンを用いることにより、系列数k=6〜16の範囲で最適な拡散性を得ることが可能となっている。
また、実行するラウンド数、データの分割数、関数F、非線形変換の方式等は、本発明を適用する機器の性能、暗号に求められるセキュリティ強度等の種々の要素に基づいて変更することが可能である。
なお、前述の非特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲および図面を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲および図面の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
10 通信装置
11 非線形変換手段
12 転置処理手段
13 k系列データ攪拌手段
20 非線形変換部
21 転置処理部
70 拡大鍵生成手段
71 暗号化手段
72 復号化手段
100 データ圧縮手段
102 符号化手段
104 データ復元手段
710、720 k系列データ攪拌手段
711 非線形変換手段
712 転置処理手段
713 逆転置処理手段

Claims (9)

  1. n×ビットのブロックデータを分割して得られた個のnビットのデータについて、
    第i系列と第i+1系列(i=1,3,)のデータがお互いに作用するような変換処理を行い個のデータW,W,..., を出力する変換手段と、
    前記データW,W,..., を、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成した系列データ攪拌手段を、所定ラウンド数分有する暗号化装置であって、
    前記転置手段は、
    前記データW ,W ,...,W を、データW j[1] ,W j[2] ,...,W j[6] に置き換える転置を、{j[1],j[2],...,j[6]}と表わした場合に、{4,1,2,5,6,3}で表わされる転置を行う暗号化装置。
  2. n×8ビットのブロックデータを分割して得られた8個のnビットのデータについて、
    第i系列と第i+1系列(i=1,3,...,7)のデータがお互いに作用するような変換処理を行い8個のデータW ,W ,...,W を出力する変換手段と、
    前記データW ,W ,...,W を、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成した8系列データ攪拌手段を、所定ラウンド数分有する暗号化装置であって、
    前記転置手段は、
    前記データW,W,..., 、データWj[1],Wj[2],...,Wj[に置き換える転置を、{j[1],j[2],...,j[]}と表わした場合に、{6,1,8,3,4,7,2,5}または{4,1,8,5,6,7,2,3}で表わされる転置を行う暗号化装置。
  3. n×10ビットのブロックデータを分割して得られた10個のnビットのデータについて、
    第i系列と第i+1系列(i=1,3,...,9)のデータがお互いに作用するような変換処理を行い10個のデータW ,W ,...,W 10 を出力する変換手段と、
    前記データW ,W ,...,W 10 を、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成した10系列データ攪拌手段を、所定ラウンド数分有する暗号化装置であって、
    前記転置手段は、
    前記データW,W,..., 10 、データWj[1],Wj[2],...,Wj[10に置き換える転置を、{j[1],j[2],...,j[10]}と表わした場合に、次式(1)のいずれかで表わされる転置を行う暗号化装置。
    {4,1,8,3,10,5,6,9,2,7}
    {4,1,6,3,10,7,2,9,8,5}
    {4,1,6,3,10,7,8,9,2,5}
    {6,1,8,3,4,7,2,9,10,5}
    {6,1,8,3,10,7,2,9,4,5}
    {6,1,8,3,10,7,4,9,2,5}
    {4,1,8,5,2,3,6,9,10,7}
    {4,1,8,5,2,7,6,9,10,3}
    {4,1,8,5,10,7,6,9,2,3}・・・(1)
  4. n×12ビットのブロックデータを分割して得られた12個のnビットのデータについて、
    第i系列と第i+1系列(i=1,3,...,11)のデータがお互いに作用するような変換処理を行い12個のデータW ,W ,...,W 12 を出力する変換手段と、
    前記データW ,W ,...,W 10 を、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成した12系列データ攪拌手段を、所定ラウンド数分有する暗号化装置であって、
    前記転置手段は、
    前記データW,W,..., 12 、データWj[1],Wj[2],...,Wj[12に置き換える転置を、{j[1],j[2],...,j[12]}と表わした場合に、次式(2)のいずれかで表わされる転置を行う暗号化装置。
    {8,1,10,3,12,5,4,9,6,11,2,7}
    {6,1,10,3,12,7,2,5,8,11,4,9}
    {6,1,10,3,12,7,4,5,8,11,2,9}
    {6,1,8,3,4,7,12,9,10,11,2,5}
    {6,1,10,3,4,7,12,9,2,11,8,5}
    {6,1,10,3,12,7,2,9,8,11,4,5}
    {6,1,10,3,12,7,4,9,8,11,2,5}
    {4,1,8,5,2,3,12,9,6,11,10,7}
    {4,1,8,5,2,3,12,9,10,11,6,7}
    {4,1,12,5,10,7,6,9,8,11,2,3}
    {6,3,10,1,4,7,12,5,8,11,2,9}
    {6,3,10,1,12,7,4,5,8,11,2,9}
    {6,3,10,1,12,7,2,9,8,11,4,5}
    {6,3,10,1,12,7,4,9,8,11,2,5}
    {6,3,2,5,8,1,12,9,4,11,10,7}・・・(2)
  5. n×14ビットのブロックデータを分割して得られた14個のnビットのデータについて、
    第i系列と第i+1系列(i=1,3,...,13)のデータがお互いに作用するような変換処理を行い14個のデータW ,W ,...,W 14 を出力する変換手段と、
    前記データW ,W ,...,W 14 を、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成した14系列データ攪拌手段を、所定ラウンド数分有する暗号化装置であって、
    前記転置手段は、
    前記データW,W,..., 14 、データWj[1],Wj[2],...,Wj[14に置き換える転置を、{j[1],j[2],...,j[14]}と表わした場合に、{4,1,10,5,14,7,6,3,2,11,12,13,8,9}または{4,1,10,5,6,7,2,9,14,11,8,13,12,3}のいずれかで表わされる転置を行う暗号化装置。
  6. n×16ビットのブロックデータを分割して得られた16個のnビットのデータについて、
    第i系列と第i+1系列(i=1,3,...,15)のデータがお互いに作用するような変換処理を行い16個のデータW ,W ,...,W 16 を出力する変換手段と、
    前記データW ,W ,...,W 16 を、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成した16系列データ攪拌手段を、所定ラウンド数分有する暗号化装置であって、
    前記転置手段は、
    前記データW,W,...,W16を、データWj[1],Wj[2],...,Wj[16]に置き換える転置を、{j[1],j[2],...,j[16]}と表わした場合に、次式(3)のいずれかで表わされる転置を行う暗号化装置。
    {10,1,14,3,12,7,16,5,8,11,4,13,6,15,2,9}
    {6,1,8,3,12,7,16,9,2,5,4,13,10,15,14,11}
    {6,1,12,3,16,7,4,9,2,5,10,13,8,15,14,11}
    {6,1,12,3,16,7,14,9,2,5,10,13,8,15,4,11}
    {6,1,8,3,12,7,16,9,14,11,4,13,10,15,2,5}
    {6,1,10,3,14,7,4,9,16,11,8,13,12,15,2,5}
    {6,1,10,3,14,7,12,9,16,11,8,13,4,15,2,5}
    {8,1,10,5,14,3,6,9,16,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,6,9,14,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,14,9,6,11,12,13,4,15,2,7}
    {4,1,10,5,16,7,6,3,14,11,12,13,8,15,2,9}
    {10,1,2,5,12,7,6,3,8,11,16,13,14,15,4,9}
    {4,1,10,5,16,7,6,9,14,11,12,13,8,15,2,3}・・・(3)
  7. n×kビット(kは6以上16以下の偶数)のブロックデータを分割して得られたk個のnビットのデータについて、
    第i系列と第i+1系列(i=1,3,...,k−1)のデータがお互いに作用するような変換処理を行いk個のデータW ,W ,...,W を出力する変換手段と、
    前記データW ,W ,...,W を、予め定めた規則に基づいて転置する転置手段と、を1ラウンドとして構成したk系列データ攪拌手段を、所定ラウンド数分有する暗号化装置であって、
    前記転置手段は、
    前記データW,W,...,W 、データWj[1],Wj[2],...,Wj[k]に置き換える転置を、{j[1],j[2],...,j[k]}と表わした場合に、系列数kの値に応じて次式(4)で表わされる転置を行う暗号化装置。
    k=6のとき
    {4,1,2,5,6,3}
    k=8のとき
    {6,1,8,3,4,7,2,5}
    {4,1,8,5,6,7,2,3}
    k=10のとき
    {4,1,8,3,10,5,6,9,2,7}
    {4,1,6,3,10,7,2,9,8,5}
    {4,1,6,3,10,7,8,9,2,5}
    {6,1,8,3,4,7,2,9,10,5}
    {6,1,8,3,10,7,2,9,4,5}
    {6,1,8,3,10,7,4,9,2,5}
    {4,1,8,5,2,3,6,9,10,7}
    {4,1,8,5,2,7,6,9,10,3}
    {4,1,8,5,10,7,6,9,2,3}
    k=12のとき
    {8,1,10,3,12,5,4,9,6,11,2,7}
    {6,1,10,3,12,7,2,5,8,11,4,9}
    {6,1,10,3,12,7,4,5,8,11,2,9}
    {6,1,8,3,4,7,12,9,10,11,2,5}
    {6,1,10,3,4,7,12,9,2,11,8,5}
    {6,1,10,3,12,7,2,9,8,11,4,5}
    {6,1,10,3,12,7,4,9,8,11,2,5}
    {4,1,8,5,2,3,12,9,6,11,10,7}
    {4,1,8,5,2,3,12,9,10,11,6,7}
    {4,1,12,5,10,7,6,9,8,11,2,3}
    {6,3,10,1,4,7,12,5,8,11,2,9}
    {6,3,10,1,12,7,4,5,8,11,2,9}
    {6,3,10,1,12,7,2,9,8,11,4,5}
    {6,3,10,1,12,7,4,9,8,11,2,5}
    {6,3,2,5,8,1,12,9,4,11,10,7}
    k=14のとき
    {4,1,10,5,14,7,6,3,2,11,12,13,8,9}
    {4,1,10,5,6,7,2,9,14,11,8,13,12,3}
    k=16のとき
    {10,1,14,3,12,7,16,5,8,11,4,13,6,15,2,9}
    {6,1,8,3,12,7,16,9,2,5,4,13,10,15,14,11}
    {6,1,12,3,16,7,4,9,2,5,10,13,8,15,14,11}
    {6,1,12,3,16,7,14,9,2,5,10,13,8,15,4,11}
    {6,1,8,3,12,7,16,9,14,11,4,13,10,15,2,5}
    {6,1,10,3,14,7,4,9,16,11,8,13,12,15,2,5}
    {6,1,10,3,14,7,12,9,16,11,8,13,4,15,2,5}
    {8,1,10,5,14,3,6,9,16,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,6,9,14,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,14,9,6,11,12,13,4,15,2,7}
    {4,1,10,5,16,7,6,3,14,11,12,13,8,15,2,9}
    {10,1,2,5,12,7,6,3,8,11,16,13,14,15,4,9}
    {4,1,10,5,16,7,6,9,14,11,12,13,8,15,2,3}
    ・・・(4)
  8. コンピュータが、n×kビット(kは6以上16以下の偶数)のブロックデータを分割して得られたk個のnビット系列データについて、第i系列と第i+1系列(i=1,3,...,k−1)のデータがお互いに作用するような変換処理を行いk個のデータW ,W ,...,W を出力するステップと、
    前記コンピュータが、前記データW ,W ,...,W を、予め定めた規則に基づいて転置するステップと、を1ラウンドとするk系列データ攪拌処理を所定回数実行し、前記n×kビットのデータの暗号文を出力するステップとを含み、
    前記コンピュータは、系列数kの値に応じて次式(4)で表わされる転置を行う暗号化方法。
    k=6のとき
    {4,1,2,5,6,3}
    k=8のとき
    {6,1,8,3,4,7,2,5}
    {4,1,8,5,6,7,2,3}
    k=10のとき
    {4,1,8,3,10,5,6,9,2,7}
    {4,1,6,3,10,7,2,9,8,5}
    {4,1,6,3,10,7,8,9,2,5}
    {6,1,8,3,4,7,2,9,10,5}
    {6,1,8,3,10,7,2,9,4,5}
    {6,1,8,3,10,7,4,9,2,5}
    {4,1,8,5,2,3,6,9,10,7}
    {4,1,8,5,2,7,6,9,10,3}
    {4,1,8,5,10,7,6,9,2,3}
    k=12のとき
    {8,1,10,3,12,5,4,9,6,11,2,7}
    {6,1,10,3,12,7,2,5,8,11,4,9}
    {6,1,10,3,12,7,4,5,8,11,2,9}
    {6,1,8,3,4,7,12,9,10,11,2,5}
    {6,1,10,3,4,7,12,9,2,11,8,5}
    {6,1,10,3,12,7,2,9,8,11,4,5}
    {6,1,10,3,12,7,4,9,8,11,2,5}
    {4,1,8,5,2,3,12,9,6,11,10,7}
    {4,1,8,5,2,3,12,9,10,11,6,7}
    {4,1,12,5,10,7,6,9,8,11,2,3}
    {6,3,10,1,4,7,12,5,8,11,2,9}
    {6,3,10,1,12,7,4,5,8,11,2,9}
    {6,3,10,1,12,7,2,9,8,11,4,5}
    {6,3,10,1,12,7,4,9,8,11,2,5}
    {6,3,2,5,8,1,12,9,4,11,10,7}
    k=14のとき
    {4,1,10,5,14,7,6,3,2,11,12,13,8,9}
    {4,1,10,5,6,7,2,9,14,11,8,13,12,3}
    k=16のとき
    {10,1,14,3,12,7,16,5,8,11,4,13,6,15,2,9}
    {6,1,8,3,12,7,16,9,2,5,4,13,10,15,14,11}
    {6,1,12,3,16,7,4,9,2,5,10,13,8,15,14,11}
    {6,1,12,3,16,7,14,9,2,5,10,13,8,15,4,11}
    {6,1,8,3,12,7,16,9,14,11,4,13,10,15,2,5}
    {6,1,10,3,14,7,4,9,16,11,8,13,12,15,2,5}
    {6,1,10,3,14,7,12,9,16,11,8,13,4,15,2,5}
    {8,1,10,5,14,3,6,9,16,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,6,9,14,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,14,9,6,11,12,13,4,15,2,7}
    {4,1,10,5,16,7,6,3,14,11,12,13,8,15,2,9}
    {10,1,2,5,12,7,6,3,8,11,16,13,14,15,4,9}
    {4,1,10,5,16,7,6,9,14,11,12,13,8,15,2,3}
    ・・・(4)
  9. n×kビット(kは6以上16以下の偶数)のブロックデータを分割して得られたk個のnビットのデータが入力されるコンピュータに、
    前記コンピュータのプロセッサを用いて、前記コンピュータのメモリ上で、
    第i系列と第i+1系列(i=1,3,...,k−1)のデータがお互いに作用するような変換処理を行いk個のデータW,W,...,Wを出力する処理と、
    前記データW,W,...,Wを、予め定めた規則に基づいて転置する処理と、を1ラウンドとして構成したk系列データ攪拌処理を、所定ラウンド数分実行し、前記n×kビットのデータの暗号文を出力させる暗号化プログラムであって、
    前記コンピュータに、系列数kの値に応じて次式(4)で表わされる転置を実行させるプログラム。
    k=6のとき
    {4,1,2,5,6,3}
    k=8のとき
    {6,1,8,3,4,7,2,5}
    {4,1,8,5,6,7,2,3}
    k=10のとき
    {4,1,8,3,10,5,6,9,2,7}
    {4,1,6,3,10,7,2,9,8,5}
    {4,1,6,3,10,7,8,9,2,5}
    {6,1,8,3,4,7,2,9,10,5}
    {6,1,8,3,10,7,2,9,4,5}
    {6,1,8,3,10,7,4,9,2,5}
    {4,1,8,5,2,3,6,9,10,7}
    {4,1,8,5,2,7,6,9,10,3}
    {4,1,8,5,10,7,6,9,2,3}
    k=12のとき
    {8,1,10,3,12,5,4,9,6,11,2,7}
    {6,1,10,3,12,7,2,5,8,11,4,9}
    {6,1,10,3,12,7,4,5,8,11,2,9}
    {6,1,8,3,4,7,12,9,10,11,2,5}
    {6,1,10,3,4,7,12,9,2,11,8,5}
    {6,1,10,3,12,7,2,9,8,11,4,5}
    {6,1,10,3,12,7,4,9,8,11,2,5}
    {4,1,8,5,2,3,12,9,6,11,10,7}
    {4,1,8,5,2,3,12,9,10,11,6,7}
    {4,1,12,5,10,7,6,9,8,11,2,3}
    {6,3,10,1,4,7,12,5,8,11,2,9}
    {6,3,10,1,12,7,4,5,8,11,2,9}
    {6,3,10,1,12,7,2,9,8,11,4,5}
    {6,3,10,1,12,7,4,9,8,11,2,5}
    {6,3,2,5,8,1,12,9,4,11,10,7}
    k=14のとき
    {4,1,10,5,14,7,6,3,2,11,12,13,8,9}
    {4,1,10,5,6,7,2,9,14,11,8,13,12,3}
    k=16のとき
    {10,1,14,3,12,7,16,5,8,11,4,13,6,15,2,9}
    {6,1,8,3,12,7,16,9,2,5,4,13,10,15,14,11}
    {6,1,12,3,16,7,4,9,2,5,10,13,8,15,14,11}
    {6,1,12,3,16,7,14,9,2,5,10,13,8,15,4,11}
    {6,1,8,3,12,7,16,9,14,11,4,13,10,15,2,5}
    {6,1,10,3,14,7,4,9,16,11,8,13,12,15,2,5}
    {6,1,10,3,14,7,12,9,16,11,8,13,4,15,2,5}
    {8,1,10,5,14,3,6,9,16,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,6,9,14,11,12,13,4,15,2,7}
    {8,1,10,5,16,3,14,9,6,11,12,13,4,15,2,7}
    {4,1,10,5,16,7,6,3,14,11,12,13,8,15,2,9}
    {10,1,2,5,12,7,6,3,8,11,16,13,14,15,4,9}
    {4,1,10,5,16,7,6,9,14,11,12,13,8,15,2,3}
    ・・・(4)
JP2013509934A 2011-04-11 2012-04-11 暗号化方法、暗号化装置および暗号化プログラム Active JP6052166B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011087088 2011-04-11
JP2011087088 2011-04-11
PCT/JP2012/059853 WO2012141189A1 (ja) 2011-04-11 2012-04-11 暗号化方法、暗号化装置および暗号化プログラム

Publications (2)

Publication Number Publication Date
JPWO2012141189A1 JPWO2012141189A1 (ja) 2014-07-28
JP6052166B2 true JP6052166B2 (ja) 2016-12-27

Family

ID=47009360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013509934A Active JP6052166B2 (ja) 2011-04-11 2012-04-11 暗号化方法、暗号化装置および暗号化プログラム

Country Status (3)

Country Link
US (1) US20140037088A1 (ja)
JP (1) JP6052166B2 (ja)
WO (1) WO2012141189A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005098351A1 (ja) * 2004-03-31 2005-10-20 Iai Corporation 変位測定装置
US8830480B2 (en) 2010-11-10 2014-09-09 Canon Kabushiki Kaisha Measurement apparatus

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2720636B8 (en) 2011-06-17 2020-04-08 Koninklijke Philips N.V. System for guided injection during endoscopic surgery
CN109831294B (zh) * 2019-01-02 2020-11-27 北京邮电大学 Spn型分组密码抗故障攻击能力评估方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003241656A (ja) * 2002-02-19 2003-08-29 Sony Corp 暗号化装置および暗号化方法
JP2004511812A (ja) * 2000-05-02 2004-04-15 クゥアルコム・インコーポレイテッド メッセージ認証コードのためのキーの整数の置換の生成
WO2009075337A1 (ja) * 2007-12-13 2009-06-18 Nec Corporation 暗号化方法及び復号化方法、装置並びにプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2658065A1 (de) * 1976-12-22 1978-07-06 Ibm Deutschland Maschinelles chiffrieren und dechiffrieren
US6185304B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages
JP4128395B2 (ja) * 2002-05-23 2008-07-30 三菱電機株式会社 データ変換装置
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8416947B2 (en) * 2008-02-21 2013-04-09 Red Hat, Inc. Block cipher using multiplication over a finite field of even characteristic
US8731189B2 (en) * 2009-10-27 2014-05-20 Nec Corporation Information processing device, information processing method
JP5488608B2 (ja) * 2009-10-27 2014-05-14 日本電気株式会社 ブロック暗号装置、ブロック暗号化方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004511812A (ja) * 2000-05-02 2004-04-15 クゥアルコム・インコーポレイテッド メッセージ認証コードのためのキーの整数の置換の生成
JP2003241656A (ja) * 2002-02-19 2003-08-29 Sony Corp 暗号化装置および暗号化方法
WO2009075337A1 (ja) * 2007-12-13 2009-06-18 Nec Corporation 暗号化方法及び復号化方法、装置並びにプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6011066154; Zheng, Y., et al.: 'On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses' Lecture Notes in Computer Science Vol.435, 1990, p.461-480, Springer-Verlag *
JPN6016004622; 宇根正志,太田和夫: '共通鍵暗号を取り巻く現状と課題' 日本銀行金融研究所ディスカッション・ペーパー・シリーズ(1998年収録分) [online] , 19981224, 日本銀行 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005098351A1 (ja) * 2004-03-31 2005-10-20 Iai Corporation 変位測定装置
US8830480B2 (en) 2010-11-10 2014-09-09 Canon Kabushiki Kaisha Measurement apparatus

Also Published As

Publication number Publication date
WO2012141189A1 (ja) 2012-10-18
JPWO2012141189A1 (ja) 2014-07-28
US20140037088A1 (en) 2014-02-06

Similar Documents

Publication Publication Date Title
KR100435052B1 (ko) 암호화장치
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
KR100296958B1 (ko) 블록 데이터 암호화 장치
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
US6751319B2 (en) Block cipher method
KR100415410B1 (ko) 암호화 장치 및 방법과, 연산장치 및, 복호화 장치 및 방법
JP6519473B2 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP5000365B2 (ja) ハッシュ値生成装置、プログラム及びハッシュ値生成方法
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
WO2003100751A1 (fr) Dispositif et procede de conversion de donnees
JP6052166B2 (ja) 暗号化方法、暗号化装置および暗号化プログラム
CN111245598B (zh) 一种轻量级aerogel分组密码的实现方法
JP5617845B2 (ja) 暗号化装置、暗号化方法及びプログラム
WO2012060685A1 (en) A method for linear transformation in substitution-permutation network symmetric-key block cipher
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
JP5578422B2 (ja) 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
Hallappanavar et al. Efficient implementation of AES by modifying S-Box
JPH09269727A (ja) 暗号化方法および暗号化装置
JP5929757B2 (ja) 暗号処理装置および暗号処理方法
Hassan New Approach for Modifying DES Algorithm Using 4-States Multi-keys
JP3748184B2 (ja) 秘話通信装置
JPH0736673A (ja) 乱数発生器、及びそれを用いた通信システム及びその方法
Usman et al. A data specific comparative study for choosing best cryptographic technique
JP3371981B2 (ja) ブロック暗号作成装置
Shukla et al. Enyo: A Multistage Partition and Transposition Based Cipher

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160411

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161003

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161012

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: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161114

R150 Certificate of patent or registration of utility model

Ref document number: 6052166

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150