JP2005292412A - ストリーム暗号のための乱数かき混ぜ方法およびプログラム - Google Patents

ストリーム暗号のための乱数かき混ぜ方法およびプログラム Download PDF

Info

Publication number
JP2005292412A
JP2005292412A JP2004106329A JP2004106329A JP2005292412A JP 2005292412 A JP2005292412 A JP 2005292412A JP 2004106329 A JP2004106329 A JP 2004106329A JP 2004106329 A JP2004106329 A JP 2004106329A JP 2005292412 A JP2005292412 A JP 2005292412A
Authority
JP
Japan
Prior art keywords
random number
row
numerical value
putting
dimensional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004106329A
Other languages
English (en)
Other versions
JP4468726B2 (ja
Inventor
Kunio Yamagishi
国夫 山岸
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.)
Fujitsu FIP Corp
Original Assignee
Fujitsu FIP 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 Fujitsu FIP Corp filed Critical Fujitsu FIP Corp
Priority to JP2004106329A priority Critical patent/JP4468726B2/ja
Publication of JP2005292412A publication Critical patent/JP2005292412A/ja
Application granted granted Critical
Publication of JP4468726B2 publication Critical patent/JP4468726B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】
乱数発生アルゴリズムにおいて、16〜64Kバイト程度のバッファ容量および演算で十分ランダムな乱数列を発生させる。
【解決手段】
ストリーム暗号における乱数かき混ぜ方法であって、(1)2次元マトリクステーブルの各行の1列目に第1の乱数列を入れる初期値生成段階と、(2)該2次元マトリクステーブルの各行に、各行の1列目を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、(3)該2次元マトリクステーブルから第1の数値を取り出す乱数取出し段階と、(4)第1の数値から次に取り出すべき第2の数値のアドレスを生成するアドレス生成段階と、(5)取り出した第1の数値が入っている場所に新たな乱数を入れる段階と、を有する乱数かき混ぜ方法およびプログラムを提供する。
【選択図】 図1

Description

本発明は暗号のための乱数発生方法であり、特に乱数かき混ぜ法に関する。
ストリーム暗号などでは一般に乱数を用いて暗号化が行われている。しかしながら現実の乱数は疑似乱数であり、またその発生方法のため、例えば周期性を有するなどの特定の性質を持っていることが多い。よってこのような特定の性質を有していると、その性質を手がかりに乱数自体が解読されることになり、ストリーム暗号においては暗号化した文を解読される危険性を有している。
特定の性質を持たない乱数の発生方法としては非線形演算やハッシュ化などを行う方法が知られている。また一連の乱数を記憶装置に格納し、自身か他の乱数によって読み出し順序を決定する方法も知られている。
しかしながら非線形演算やハッシュ化などを行なう方法は処理に時間がかかり、この処理が乱数の性質を変化させる可能性がある。
特許第295048号 特開平11−338347号 共立出版 アルゴリズム辞典 P103〜104 かき混ぜ法
したがって解読されにくく、また比較的少ない演算処理で乱数を発生させる方法が望まれていた。
上述の問題に鑑み本発明は、ストリーム暗号における乱数かき混ぜ方法であって、(1)2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、(2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、(3)該2次元マトリクステーブルから第1の数値を取り出す乱数取出し段階と、(4)第1の数値から次に取り出すべき第2の数値のアドレスを生成するアドレス生成段階と、(5)取り出した第1の数値が入っている場所に新たな乱数を入れる段階と、を有する乱数かき混ぜ方法を提供する。これらの段階を経ることによって元の乱数の性質を保ち十分ランダムな乱数列を生成することが出来る。また(5)の段階において新たに入れる乱数は、2次元マトリクスに入っていない乱数である。これによって、解読の危険性を大幅に減少させることができる。また、連続する乱数をバッファに入れて利用することは、乱数の狭域的な利用法であり、初期値を複数生成する方法は、乱数の周期上に大域的に分散させることである。このことから、十分なランダム性を有することが出来る。図1に示したように乱数の周期6上に初期値1、初期値2・・・初期値5を分散して配置しバッファを作成する。
またストリーム暗号における乱数かき混ぜ方法であって、(1)2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、(2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、(3)該2次元マトリクステーブルから第1の数値を取り出す乱数取出し段階と、(4)取り出した第1の数値の入っている場所に新たな乱数を入れる段階と、(5)該新たな乱数から次に取り出すべき第2の数値のアドレスを生成する段階と、を有する乱数かき混ぜ方法を提供する。つまり、2次元マトリクスから数値を取り出した後に、新たな乱数を入れ、この乱数から次に取り出す数値のアドレスを得るものである。これによって、前記の取り出した数値からアドレスを生成する方法と比べて、アドレスが判り難くなり、解読困難性が増すという利点がある。
さらに別の方法として、ストリーム暗号における乱数かき混ぜ方法であって、(1)2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、(2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、(3)(1)、(2)の段階を複数の2次元マトリクスについて行う段階と、(5)これらのマトリクスから第1の数値を取り出す段階と、(6)取り出した第1の数値の入っている場所に新たな乱数を入れる段階と、(7)所定の乱数列と演算により第2の数値のアドレスを生成する段階と、を有する乱数かき混ぜ法を提供する。これは複数の2次元マトリクスは3次元マトリクスと同じであり、3次元のマトリクスを使用することによりランダムネスの高い乱数列を生成することが出来る。
このような方法はコンピュータプログラムとして実現することにより、例えばストリーム暗号で使用する乱数として解読されにくい乱数列を生成することが出来る。
以下に本発明の実施例を説明する。まず本実施例では2次元マトリクスとして3行4列を用いる。また行列のインデックスは0から始めるものとする。つまり各セルのインデックスは表1のようになり、最初の行、最初の列はそれぞれインデックスは0から始まる。また各行には初期値に続く単調数列を用いる。また取り出した数値から次の位置を決定するには、以下の演算を行う。
十の位を列:mod(行,3)=0〜2・・・(1)
一の位を行:mod(列,4)=0〜3・・・(2)
Figure 2005292412
まず初期値として数列11、83、65を各行の最初の列に入れ、行方向には各数値を初期値として単調数列を入れる。よって最初のマトリクスは表2のようになる。
Figure 2005292412
この状態で最初に(0,0)=11を取り出す。11を取り出したため、(0,0)は行方向の数列において次の数値、つまり15が入る。よって表3のようになる。このとき入れた数値15を用いて次に取り出す位置を計算する。(1)の式により、mod(1,3)=1、(2)の式によりmod(5,4)=1となり、(1,1)が次に取り出すべき場所である。
Figure 2005292412
従って次に(1,1)=84を取り出し、(1,1)には同じ行の次の数値、すなわち87を入れて表4のようになる。同様にして、新たに入れた数値87から次の取り出し位置を入れる。(1)式よりmod(8,3)=2、(2)式よりmod(7,4)=3よって(2,3)が次の取り出し位置である。ここまでで取り出された数列は、11、84である。
Figure 2005292412
(2,3)に入っている数値68を取り出し、ここに新たに同じ行の次の数値、すなわち69を入れる。同様にmod(6,3)=0、mod(9,4)=1、(0,1)=12が次の数値である。取り出された数列は、11、84、68となる。
Figure 2005292412
(0,1)=12を取り出し、ここに同じ行の次の数値を入れる。このとき15はすでに1回目の取り出しで使用しているので、次の16を入れ表6のようになる。次に取り出す位置は、mod(1,3)=1、mod(6,4)=2、であり数値は(1,2)=85である。
Figure 2005292412
85を取り出した後、この場所に88を入れる。次に取り出す位置はmod(8,3)=2、mod(8,4)=0、であり数値は(2,0)=65である。
Figure 2005292412
65を取り出した後、次に入れる数値は70である。次の取り出し位置は、mod(7,3)=1、mod(0,4)=0、であり数値は(1,0)=83である。
Figure 2005292412
83を取り出した後次に入れる数値は89であり、取り出し位置は、mod(8,3)=2、mod(9,4)=1となり、数値は(2,1)=66である。
Figure 2005292412
66を取り出した後に71を入れ、次の取り出し位置、および数値は、mod(7,3)=1、mod(1,4)=1、(1,1)=87である。ここまでで取り出された数列は、11、84、68、12、85、65、83、66となる。
Figure 2005292412
87を取り出した後に90を入れ、次に取り出す位置、数値は、mod(9,3)=0,mod(0,4)=0、(0,0)=15である。
Figure 2005292412
15を取り出した後に17を入れ、次に取り出す位置、数値は、mod(1,3)=1、mod(7,4)=3、(1,3)=86である。
Figure 2005292412
86を取り出し、91を入れ、次に取り出す位置、数値は、mod(9,3)=0、mod(1,4)=1、(0,1)=16である。
Figure 2005292412
16を取り出し、18を入れ、次に取り出す位置、数値は、mod(1,3)=1、mod(8,4)=0、(1,0)=89である。
Figure 2005292412
このようにして取り出された数列は、11、84、68、12、85、65、83、66、87、15、86、16、89となり各行に入れた元の数列は単調数列にもかかわらず、十分ランダムな数列となる。本実施例では取り出しがランダムに行われることを示すために各行に入れる数値は単調数列にしたが、これを乱数列にしても十分ランダムな数列を作ることが出来る。乱数を用いる場合は最初の段階でマトリクスの最初の列には第1の乱数列を入れ、この各乱数を初期値として行方向に第2の乱数列を設定することが好ましい。
以上のように 本実施例による取り出し順序を表15に示した。表の各要素の数字は取り出した順序を示している。各行方向の数値並び方はランダムであり、不連続である。よって取り出し方が十分ランダムであることがわかる。
Figure 2005292412
また、上記実施例では新たに入れた数値で次の取り出し位置を求めたが、取り出した数値を用いて次の取り出し位置を計算しても同様な乱数列を生成することが出来る。本発明の方法はバッファサイズが例えば64K、16Kバイトのように小さなサイズで乱数を発生させることが出来、さらに非線形演算やハッシュ化などの処理が不要であるため高速に乱数を発生させることが出来ることが特徴である。またこのような2次元マトリクスを複数個用いて、3次元マトリクスとして同様な方法で乱数を発生させることが出来る。この場合でも各要素に対応できるように取り出し位置を計算できる。また各行に入れる乱数列の生成アルゴリズムがわかっていても、数値の取り出しは各行からランダムに行われるため最終的に生成された乱数は解読困難である。
ここで本発明の技術的利点を説明すると、例えば岩手大学、小島宏美著、「計算機による乱数の発生とその応用」によれば、従来の乱数かき混ぜ法では、1、2次元マトリクスでは乱数の一様性は保たれるが、アルゴリズムによっては2次元、3次元マトリクスで乱数の一様性が無くなることが指摘されている。しかしながら本発明の乱数かき混ぜ法をストリーム暗号に応用する場合、1次元のバッファサイズ、2次元のバッファサイズを十分大きく取れば一様性は上がり、乱数列のなかで次の乱数を予測するのが困難になる。さらに別系列の乱数アルゴリズムを3次元として設定することにより、暗号利用における予測困難性、解読困難性が強化される。
ここで本発明の乱数列を入れるバッファサイズについて説明する。本発明において1次元のバッファサイズは大きい方がよい。2次元マトリクスは初期値設定は大きい方がよく、3次元の乱数アルゴリズムは、M系列の次数の異なる原始多項式を採用すればよい。例えば4バイトの乱数を得るとすると、バッファサイズは大きい程よいが、64〜1024Kバイトでも十分効果を期待できる。1次元を64バイト、2次元を64バイト、3次元を4バイトとすると、4*64*64*4となり、64Kバイトとなる。また、3次元的に4バイトの乱数を生成するには32次以上のM系列原始多項式を採用すればよい。これは例えば、
f(x)=X+X+1,(p、q)=(33,13)(35,2)(41,3)(47,5)などである。
図1は本発明の乱数かき混ぜ法およびプログラムの、バッファを作成する図である。。
符号の説明
1〜5 2次元マトリクスの初期値
6 周期的乱数列

Claims (8)

  1. ストリーム暗号における乱数かき混ぜ方法であって、
    (1)2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、
    (2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、
    (3)該2次元マトリクステーブルから第1の数値を取り出す乱数取出し段階と、
    (4)第1の数値から次に取り出すべき第2の数値のアドレスを生成するアドレス生成段階と、
    (5)取り出した第1の数値が入っている場所に新たな乱数を入れる段階と、を有する乱数かき混ぜ方法。
  2. 前記(5)の段階の新たな乱数は第1の数値が入っている行の第2の乱数列のうち、2次元マトリクスに入っていない乱数列である請求項1に記載の方法。
  3. ストリーム暗号における乱数かき混ぜ方法であって、
    (1)2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、
    (2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、
    (3)該2次元マトリクステーブルから第1の数値を取り出す乱数取出し段階と、
    (4)取り出した第1の数値の入っている場所に新たな乱数を入れる段階と、
    (5)該新たな乱数から次に取り出すべき第2の数値のアドレスを生成する段階と、を有する乱数かき混ぜ方法。
  4. コンピュータ上のバッファを2次元マトリクスとして使用する請求項1ないし3に記載の方法。
  5. 新たな乱数およびアドレスを生成する段階は、所定の乱数列と演算により行う請求項1または2に記載の方法。
  6. ストリーム暗号における乱数かき混ぜ方法であって、
    (1)2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、
    (2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、
    (3)(1)、(2)の段階を複数の2次元マトリクスについて行う段階と、
    (5)これらのマトリクスから第1の数値を取り出す段階と、
    (6)取り出した第1の数値の入っている場所に新たな乱数を入れる段階と、
    (7)所定の乱数列と演算により第2の数値のアドレスを生成する段階と、を有する乱数かき混ぜ法。
  7. ストリーム暗号における乱数かき混ぜプログラムであって、
    (1)バッファに設定された2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、
    (2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、
    (3)該2次元マトリクステーブルから第1の数値を取り出す乱数取出し段階と、
    (4)第1の数値から次に取り出すべき第2の数値のアドレスを生成するアドレス生成段階と、
    (5)取り出した第1の数値が入っている場所に新たな乱数を入れる段階と、を有する乱数かき混ぜプログラム。
  8. ストリーム暗号における乱数かき混ぜプログラムであって、
    (1)バッファ上に設定された2次元マトリクステーブルの各行の最初の列に第1の乱数列を入れる初期値生成段階と、
    (2)該2次元マトリクステーブルの各行に、各行の最初の列を初期値とする第2の乱数列を入れる2次元乱数マトリクス設定段階と、
    (3)該2次元マトリクステーブルから第1の数値を取り出す乱数取出し段階と、
    (4)取り出した第1の数値の入っている場所に新たな乱数を入れる段階と、
    (5)該新たな乱数から次に取り出すべき第2の数値のアドレスを生成する段階と、を有する乱数かき混ぜプログラム。
JP2004106329A 2004-03-31 2004-03-31 コンピュータによるストリーム暗号のための乱数かき混ぜ方法およびその方法を実行させるためのプログラム Expired - Fee Related JP4468726B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004106329A JP4468726B2 (ja) 2004-03-31 2004-03-31 コンピュータによるストリーム暗号のための乱数かき混ぜ方法およびその方法を実行させるためのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004106329A JP4468726B2 (ja) 2004-03-31 2004-03-31 コンピュータによるストリーム暗号のための乱数かき混ぜ方法およびその方法を実行させるためのプログラム

Publications (2)

Publication Number Publication Date
JP2005292412A true JP2005292412A (ja) 2005-10-20
JP4468726B2 JP4468726B2 (ja) 2010-05-26

Family

ID=35325406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004106329A Expired - Fee Related JP4468726B2 (ja) 2004-03-31 2004-03-31 コンピュータによるストリーム暗号のための乱数かき混ぜ方法およびその方法を実行させるためのプログラム

Country Status (1)

Country Link
JP (1) JP4468726B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177654A (ja) * 2007-01-16 2008-07-31 Sony Corp データ処理装置、およびデータ処理方法、並びにコンピュータ・プログラム
US11521705B2 (en) * 2018-09-18 2022-12-06 International Business Machines Corporation Random sequence generation for gene simulations

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177654A (ja) * 2007-01-16 2008-07-31 Sony Corp データ処理装置、およびデータ処理方法、並びにコンピュータ・プログラム
US11521705B2 (en) * 2018-09-18 2022-12-06 International Business Machines Corporation Random sequence generation for gene simulations

Also Published As

Publication number Publication date
JP4468726B2 (ja) 2010-05-26

Similar Documents

Publication Publication Date Title
TW202101432A (zh) 實現隱私保護的數據同態加解密方法及裝置
JP5167348B2 (ja) ソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置
US20020131590A1 (en) Key matrix methodology
JP2007299088A (ja) データ保護システム、方法及びプログラム
CN110912674B (zh) 图像加密方法、装置、电子设备及可读存储介质
JP5929905B2 (ja) 順序保存暗号化システム、装置、方法及びプログラム
CN101604369A (zh) 信息隐藏方法以及信息隐藏装置
US20020150240A1 (en) Key matrix system
CN114547645A (zh) 浮点数处理方法、装置、终端以及存储介质
JP4468726B2 (ja) コンピュータによるストリーム暗号のための乱数かき混ぜ方法およびその方法を実行させるためのプログラム
CN110245501B (zh) 一种基于无穷维超混沌的图像加密方法
CN110969564B (zh) 图像加密方法、装置、电子设备及可读存储介质
US9058507B2 (en) Signal processor with an encrypting or decrypting device in a memory system
JPH0675524A (ja) ストリーム暗号処理装置
CN116484443B (zh) 一种基于鸿蒙系统的可信安全存储方法及装置
JP4619045B2 (ja) データ秘匿装置、データ秘匿方法、及びデータ秘匿プログラム
CN110034918A (zh) 一种sm4加速方法和装置
CN112910626B (zh) 一种基于幂次运算的数据加密及解密方法
CN115277266A (zh) 一种实验室数据加密方法、装置、终端及介质
KR20090004625A (ko) 공개 키 암호화 연산의 순서 변경 방법
JP4287397B2 (ja) 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
JP6360440B2 (ja) 復号装置、方法及びプログラム
JP4796658B1 (ja) 暗号化装置
TW201605218A (zh) 金鑰更換方法、加密方法、解密方法及電腦程式產品
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081216

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100225

R150 Certificate of patent or registration of utility model

Ref document number: 4468726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees