JP2004286788A - 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム - Google Patents
乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム Download PDFInfo
- Publication number
- JP2004286788A JP2004286788A JP2003075438A JP2003075438A JP2004286788A JP 2004286788 A JP2004286788 A JP 2004286788A JP 2003075438 A JP2003075438 A JP 2003075438A JP 2003075438 A JP2003075438 A JP 2003075438A JP 2004286788 A JP2004286788 A JP 2004286788A
- Authority
- JP
- Japan
- Prior art keywords
- integer
- random number
- bits
- bit
- rotation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】乱数列生成装置101の種受付部102は、wビットの整数の列を種として受け付け、初期化部103は、当該受け付けられた整数の列を、変換部104に与え、変換部104は、当該与えられた整数列のそれぞれに対して所定の変換を施してwビットの整数の列を得て、回転部105は、得られた整数の列の一部から回転ビット数を得て、当該得られた整数の列をビット列と見て、これ、もしくは、これの一部に対して当該得られた回転ビット数の回転演算を行って、wビットの整数の列を得て、更新部は、当該整数の列を変換部104に与え、出力部107は、変換部における変換ならびに回転部における回転が、所定の回数繰り返された場合、最後に得られた整数列の一部を乱数列として出力する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラムに関する。
【0002】
【従来の技術】
従来から、種々の乱数列生成のための技術が提案されている。これらの技術によって得られた乱数は、たとえば、モンテカルロ法による各種の物理現象、化学現象などの模擬実験や、秘密通信のブロック暗号システムにおいて用いられる。
【0003】
【発明が解決しようとする課題】
さて、このような乱数列の生成技術においては、得られた乱数列に含まれる数値の分布ができるだけ一様であることや、当該数値のコンピュータにおける数値表現の所定のビットのみを見た場合に、当該ビットの「0」と「1」の出現頻度にできるだけ偏りがないことや、乱数列の周期ができるだけ長いことなど、種々の性質を満たすことが望ましい。
【0004】
本発明は、生成される乱数列が乱数列として好ましい性質を有するような乱数列生成装置、乱数列生成方法、ならびに、これらを用いた暗号化復号化装置、暗号化復号化方法、ならびに、これらをコンピュータによって実現するためのプログラムを提供することを目的とする。
【0005】
【課題を解決するための手段】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0006】
本発明の第1の観点に係る乱数列生成装置は、wビットの乱数の列を生成し、種受付部と、初期化部と、変換部と、回転部と、更新部と、出力部と、を備え、整数n,m (1≦n≦m−1)に対して、以下のように構成する。
【0007】
すなわち、種受付部は、wビットの整数の列s1,s2,…,sn,…,smを種として受け付ける。
【0008】
一方、初期化部は、当該受け付けられた整数の列s1,s2,…,sn,…,smを、整数列x1,x2,…,xn,…,xmとして変換部に与える。
【0009】
さらに、変換部は、当該与えられた整数列x1,x2,…,xn,…,xmのそれぞれに対して所定の変換を施してwビットの整数の列y1,y2,…,yn,…,ymを得る。
【0010】
そして、回転部は、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,yn,…,ymをwmビットのビット列と見て、これ、もしくは、これの一部に対して当該得られた回転ビット数の回転演算を行って、得られたwmビットのビット列からwビットの整数の列z1,z2,…,zn,…,zmを得る。
【0011】
一方、更新部は、当該整数の列z1,z2,…,zn,…,zmを整数列x1,x2,…,xn,…,xmとして変換部に与える。
【0012】
さらに、出力部は、変換部における変換ならびに回転部における回転が、所定の回数繰り返された場合、最後に得られたz1,z2,…,znを、乱数列r1,r2,…,rnとして出力する。
【0013】
また、本発明の乱数列生成装置において、変換部は、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(xm,x1);
yi+1 = g(xi,xi+1)
により変換を行うように構成することができる。
【0014】
また、本発明の乱数列生成装置において、変換部は、所定の整数cと、写像g(・,・)と、を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(yi,xi+1)
により変換を行うように構成することができる。
【0015】
また、本発明の乱数列生成装置において、変換部は、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(xi,xi+1)
により変換を行うように構成することができる。
【0016】
また、本発明の乱数列生成装置において、当該写像g(・,・)は、所定の写像h(・)と所定の整数q (0≦q≦2w−1)により
g(a,b) = 2b2 + h(a)b + q (mod 2w)
と定義されるように構成することができる。
【0017】
また、本発明の乱数列生成装置において、当該写像h(・)は、
h(a) = a
と定義されるように構成することができる。
【0018】
また、本発明の乱数列生成装置において、当該写像h(・)は、与えられた値の数値表現の所定のビットをクリアする演算により定義されるように構成することができる。
【0019】
また、本発明の乱数列生成装置において、当該写像h(・)は、与えられた値の数値表現の所定のビットを反転する演算により定義されるように構成することができる。
【0020】
また、本発明の乱数列生成装置において、当該写像h(・)は、与えられた値の数値表現の最下位2ビットを01に置換する演算により定義されるように構成することができる。
【0021】
また、本発明の乱数列生成装置において、回転部は、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットを1個以上抽出して並べたビット列を整数と見たときの整数値を、回転ビット数として得るように構成することができる。
【0022】
また、本発明の乱数列生成装置において、回転部は、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットの値により、回転する方向を決めるように構成することができる。
【0023】
また、本発明の乱数列生成装置において、回転部は、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,ynをwnビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたwnビットのビット列からwビットの整数の列z1,z2,…,znを得て、整数の列yn+1,…,ymをw(m−n)ビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたw(m−n)ビットのビット列からwビットの整数の列zn+1,…,zmを得るように構成することができる。すなわち、ziは、uiを所定の回転ビット数だけ回転演算したものである。
【0024】
本発明の他の観点に係る暗号化復号化装置は、乱数生成部と、メッセージ受付部と、暗号化復号化部と、を備え、以下のように構成する。
【0025】
すなわち、乱数生成部は、上記の乱数生成装置により、乱数列r1,r2,…,rnを生成する。
【0026】
一方、メッセージ受付部は、wビットの整数の整数列p1,p2,…,をメッセージとして受け付ける。
【0027】
さらに、暗号化復号化部は、wビットの整数の列p1 xor r1,p2 xor r2,…,pi xor r((i+n−1) mod n) + 1,…を暗号化もしくは復号化の結果として出力する。
【0028】
本発明の他の観点に係る乱数列生成方法は、wビットの乱数の列を生成し、種受付工程と、初期化工程と、変換工程と、回転工程と、更新工程と、出力工程と、を備え、整数n,m (1≦n≦m−1)に対して、以下のように構成する。
【0029】
すなわち、種受付工程では、wビットの整数の列s1,s2,…,sn,…,smを種として受け付ける。
【0030】
一方、初期化工程では、当該受け付けられた整数の列s1,s2,…,sn,…,smを、整数列x1,x2,…,xn,…,xmとして変換工程に与える。
【0031】
さらに、変換工程では、当該与えられた整数列x1,x2,…,xn,…,xmのそれぞれに対して所定の変換を施してwビットの整数の列y1,y2,…,yn,…,ymを得る。
【0032】
そして、回転工程では、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,yn,…,ymをwmビットのビット列と見て、これ、もしくは、これの一部に対して当該得られた回転ビット数の回転演算を行って、得られたwmビットのビット列からwビットの整数の列z1,z2,…,zn,…,zmを得る。
【0033】
一方、更新工程では、当該整数の列z1,z2,…,zn,…,zmを整数列x1,x2,…,xn,…,xmとして変換工程に与える。
【0034】
さらに、出力工程では、変換工程における変換ならびに回転工程における回転が、所定の回数繰り返された場合、最後に得られたz1,z2,…,znを、乱数列r1,r2,…,rnとして出力する。
【0035】
また、本発明の乱数列生成方法において、変換工程では、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(xm,x1);
yi+1 = g(xi,xi+1)
により変換を行うように構成することができる。
【0036】
また、本発明の乱数列生成方法において、変換工程では、所定の整数cと、写像g(・,・)と、を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(yi,xi+1)
により変換を行うように構成することができる。
【0037】
また、本発明の乱数列生成方法において、変換工程では、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(xi,xi+1)
により変換を行うように構成することができる。
【0038】
また、本発明の乱数列生成方法において、当該写像g(・,・)は、所定の写像h(・)と所定の整数q (0≦q≦2w−1)により
g(a,b) = 2b2 + h(a)b + q (mod 2w)
と定義されるように構成することができる。
【0039】
また、本発明の乱数列生成方法において、当該写像h(・)は、
h(a) = a
と定義されるように構成することができる。
【0040】
また、本発明の乱数列生成方法において、当該写像h(・)は、与えられた値の数値表現の所定のビットをクリアする演算により定義されるように構成することができる。
【0041】
また、本発明の乱数列生成方法において、当該写像h(・)は、与えられた値の数値表現の所定のビットを反転する演算により定義されるように構成することができる。
【0042】
また、本発明の乱数列生成方法において、当該写像h(・)は、与えられた値の数値表現の最下位2ビットを01に置換する演算により定義されるように構成することができる。
【0043】
また、本発明の乱数列生成方法において、回転工程では、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットを1個以上抽出して並べたビット列を整数と見たときの整数値を、回転ビット数として得るように構成することができる。
【0044】
また、本発明の乱数列生成方法において、回転工程では、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットの値により、回転する方向を決めるように構成することができる。
【0045】
また、本発明の乱数列生成方法において、回転工程では、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,ynをwnビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたwnビットのビット列からwビットの整数の列z1,z2,…,znを得て、整数の列yn+1,…,ymをw(m−n)ビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたw(m−n)ビットのビット列からwビットの整数の列zn+1,…,zmを得るように構成することができる。すなわち、ziは、uiを所定の回転ビット数だけ回転演算したものである。
【0046】
本発明の他の観点に係る暗号化復号化方法は、乱数生成工程と、メッセージ受付工程と、暗号化復号化工程と、を備え、以下のように構成する。
【0047】
すなわち、乱数生成工程では、上記の乱数生成方法により、乱数列r1,r2,…,rnを生成する。
【0048】
一方、メッセージ受付工程では、wビットの整数の整数列p1,p2,…,をメッセージとして受け付ける。
【0049】
さらに、暗号化復号化工程では、wビットの整数の列p1 xor r1,p2 xor r2,…,pi xor r((i+n−1) mod n) + 1,…を暗号化もしくは復号化の結果として出力する。
【0050】
本発明の他の観点に係るプログラムは、コンピュータを、上記の乱数列生成装置もしくは暗号化復号化装置として機能させ、もしくは、コンピュータに、上記の乱数列生成方法もしくは暗号化復号化方法を実行させるように構成する。
【0051】
これらのプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
【0052】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【0053】
【発明の実施の形態】
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本願発明の範囲に含まれる。
【0054】
(発明の実施の形態)
以下で説明する本発明の実施形態においては、「wビットの数値表現による乱数」の列を生成するために、有限体上の非線型変換として、所定の写像h(・)と所定の整数q (0≦q≦2w−1)とを用いて
g(a,b) = 2b2 + h(a)b + q (mod 2w)
により定義される写像g(・,・)を用いる。
【0055】
写像h(・)としては、恒等写像
h(a) = a
を用いることができる。
【0056】
また、所定のマスク値MASKを利用することにより、与えられた値aの数値表現の所定のビットをクリアする演算
h(a) = a and MASK
や、所定のビットを反転する演算
h(a) = a xor MASK
を採用してもよい。
【0057】
さらに、最下位の2ビットを値01に変換する演算
h(a) = (a and (not 3)) or 1
などを採用することができる。
【0058】
ここで、各演算子は値aの数値表現(整数表現)に対するもので、andはビット積(ビットアンド)、xorはビット排他的和(ビットエクスクルーシブオア)、notはビット反転(ビットノット)、orはビット和(ビットオア)にそれぞれ相当するものである。
【0059】
したがって、これらの演算は、コンピュータにおいては桁上がりや桁下がりなどをとりたてて考慮せずに、wビットの整数演算として用意されているものをそのまま適用して実現することができる。
【0060】
またwの値は、当該コンピュータのCPU(Central Processing Unit)に用意されている機械語のビット幅、もしくは、これよりも小さい幅に対応させることが望ましい。
【0061】
現在のところ、世界最高速のブロック暗号技術といわれているRC6は、有限体上の非線型変換
f(x) = 2x2 + x (mod 2w)
を用いることによって実現されており、これによって、ある種から生成される乱数列は、これとは異なる種から生成される乱数列とは常に異なるものであり(1対1性)、生成される乱数列の最長周期が2w−1となっている。
【0062】
本実施形態において採用される写像g(・,・)は、RC6における有限体上の非線型変換をさらに一般化したものであり、
h(a) = 1;
q = 0
としたg(・,・)を採用した場合には、RC6と同等の乱数列の生成能力を有する。なお、本発明においては、上記のRC6同等の写像の以外の写像を選択できるため、さまざまなバリエーションの乱数を得ることができる。
【0063】
また、これ以外の演算や値を選択した場合にも、良好な乱数列が得られることが、実験により実証されている。
【0064】
図1は、本実施形態に係る乱数生成装置の概要構成を示す模式図である。図2は、本実施形態に係る乱数生成装置において実行させる処理の制御の流れを示すフローチャートである。以下、これらの図を参照して、本実施形態について、詳細に説明する。
【0065】
乱数列生成装置101は、wビットの乱数の列を生成し、種受付部102と、初期化部103と、変換部104と、回転部105と、更新部106と、出力部107と、を備える。
【0066】
まず、乱数列生成装置101の種受付部102は、wビットの整数の列s1,s2,…,sn,…,smを種として受け付ける(ステップS201)。ただし、1≦n≦m−1である。
【0067】
典型的には、s1,s2,…,sn,…,smは、乱数列生成装置が有するRAM(Random Access Memory)等のメモリに格納されるが、CPUが有するキャッシュに格納してもよいし、ハードディスク等の読み書き可能な外部記録媒体に一時的に記憶してもよい。
【0068】
ついで、初期化部103は、当該受け付けられたs1,s2,…,sn,…,smを、整数列x1,x2,…,xn,…,xmとして変換部104に与える(ステップS202)。
【0069】
ここで、x1,x2,…,xn,…,xmも同様に、RAM等のメモリに格納される。この場合、初期化部103が実行する処理は、s1,s2,…,sn,…,smに対応するメモリからx1,x2,…,xn,…,xmに対応するメモリへの値の転送によって実現することができる。
【0070】
さらに、変換部104は、当該与えられた整数列x1,x2,…,xn,…,xmのそれぞれに対して上記の非線型変換g(・,・)により定義される変換を施してwビットの整数の列y1,y2,…,yn,…,ymを得る(ステップS203)。
【0071】
当該変換としては以下のような漸化式により定義されるものを採用することができる。
【0072】
(1)整数i (1≦i≦m−1)についての漸化式
y1 = g(xm,x1);
yi+1 = g(xi,xi+1)
により変換を行う。
【0073】
(2)所定の整数cを用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(yi,xi+1)
により変換を行う。
【0074】
(3)整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(xi,xi+1)
により変換を行う。
【0075】
これらの計算は、CPUが有するALU(Arithmetic Logic Unit)を用いて実現することができる。y1,y2,…,yn,…,ymもまた、メモリ等に格納される。
【0076】
そして、回転部105は、当該整数の列yn+1,…,ymから回転ビット数を得る(ステップS204)。回転ビット数を得る手法としては、以下のようなものが考えられる。
【0077】
すなわち、yn+1,…,ymをビット列と見て、あらかじめ定めたビット位置のビットを順に並べ、再度これを整数値と見る。図3に、w=4,m−n=2の場合に、所定のビット位置の値から整数値を得る様子を示す。本図の例では、8ビットのビット列から3ビット分を抽出している。
【0078】
3ビットから得られる整数値は、符号無し整数と見れば、0〜7の8通りである。この場合は、回転方向として「あらかじめ定めた方向(右もしくは左)」を採用し、得られる整数値をそのまま回転ビット数とする。
【0079】
一方、1ビットを符号(正または負に対応付ける)とし、他の2ビットから回転量を得ることとして、この場合は、正の場合は左方向へ、負の場合は右方向へ、それぞれ絶対値分のビット数だけ回転するとしても良い。
【0080】
ついで、回転部105は、当該y1,y2,…,yn,…,ymをwmビットのビット列と見て、これ、もしくは、これの一部に対して所定の回転演算を行って、得られたwmビットのビット列からwビットの整数の列z1,z2,…,zn,…,zmを得る(ステップS205)。
【0081】
所定の回転演算としては、以下のようなものを採用することができる。
【0082】
(1)wnビットのビット列を、得られた回転ビット数だけ巡回シフトするもの。図4に、この巡回シフトとして、w=4,n=4であって、y1,y2,…,y4をビッグエンディアンに配列して、1ビット左にシフトする場合の概要構成を示した。これは、wmビットのビット列の一部を回転する回転演算である。
【0083】
(2)wmビットのビット列全体を、得られた回転ビット数だけ巡回シフトするもの。図4におけるwnビットのビット列の回転と同様に、wmビットのビット列全体を巡回させれば良い。
【0084】
(3)y1,…,ynのwnビットのビット列を、得られた回転ビット数だけ巡回シフトするほか、これとは別に、yn+1,…,ymのw(m−n)ビットのビット列を、得られた回転ビット数だけ巡回シフトするもの。
【0085】
これらの手法は、メモリ等に格納されたy1,y2,…,yn,…,ymの全体もしくは一部を、を、CPUにとって自然なビット幅単位で、桁上がり・桁下がりを考慮しつつ、順次巡回シフトすることによって実現することができる。この場合、得られるz1,z2,…,zn,…,zmは、y1,y2,…,yn,…,ymが格納されていたメモリ内の領域に新たな値として格納されることとなる。
【0086】
さらに、出力部107は、変換部104における変換ならびに回転部105における回転が、所定の回数繰り返されたか否かを判定する(ステップS206)。
【0087】
たとえば、ステップS201の前において、メモリ内に用意されたカウンタ変数に「所定の回数の値」を代入し、ステップS204とステップS206の間において当該カウンタ変数の値を1減じ、ステップS206においては、当該カウンタ変数の値が0になったか否かを判定することによって、実現することができる。
【0088】
所定の回数繰り返された場合(ステップS206;Yes)最後に得られたz1,z2,…,znを、乱数列r1,r2,…,rnとして出力して(ステップS207)、乱数列の生成を終了する。
【0089】
一方、所定の回数繰り返されていない場合(ステップS206;No)、更新部106は、当該z1,z2,…,zn,…,zmを整数列x1,x2,…,xn,…,xmとして変換部104に与えて(ステップS208)、ステップS203に戻り、変換(ステップS203)、回転(ステップS204、S205)の処理を繰り返す。
【0090】
これは、z1,z2,…,zn,…,zmが格納されているメモリ等内の値を、x1,x2,…,xn,…,xmが格納されているメモリ等へ転送することによって実現できる。
【0091】
乱数列生成装置101においては、図示しない記憶部が存在し、その記憶部は、s1,s2,…,sn,…,sm、x1,x2,…,xn,…,xm、y1,y2,…,yn,…,ym、z1,z2,…,zn,…,zm、r1,r2,…,rn,…,rmなどを異なる領域に、もしくは、値の利用の依存関係を分析することにより、同じ領域に記憶する(たとえば、y1,y2,…,yn,…,ymとz1,z2,…,zn,…,zm等。)ような構成をとることができる。また、各部は、上記の共有メモリを用いて互いに計算した値をやりとりするのである。
【0092】
図5は、本実施形態の乱数列生成装置101が実現されるコンピュータの典型的な概要構成を示す模式図である。以下、本図を参照して説明する。
【0093】
コンピュータ301は、CPU 302によって制御される。コンピュータ301に電源が投入されると、CPU 302は、ROM(Read Only Memory)303に用意されたIPL(Initial Program Loader)を実行する。
【0094】
そして、IPLの実行により、フレキシブルディスクドライブ304に装着されたフレキシブルディスクやハードディスク305等に記録されたOS(Operating System)がロードされ、ユーザからの各種の指示入力を受け付けることができるようになる。
【0095】
ユーザは、キーボード306やマウス307を操作して、コンピュータ301に対して各種の指示入力を与える。
【0096】
これに応じて、OSは、ハードディスク305やCD−ROM(Compact Disk ROM)ドライブ308に装着されたCD−ROMに記録されたプログラムや各種のデータをCPU 302に実行させ、実行の過程やその結果をディスプレイ309に表示する。
【0097】
また、CPU 302は、一時的な記憶域として、RAM 311を利用する。RAM 311は、上記のように、計算の途中で利用される各種の数列を記憶するために用いられる。
【0098】
さらに、CPU 302は、プログラムの実行の過程において、ハードディスク305に、生成された乱数列などの処理の結果や途中経過などの情報を保存することができる。
【0099】
なお、本実施形態における演算は、上記のように、きわめて単純なビット演算に還元することができる。したがって、専用の電子回路(加算器、減算器、シフタ、ラッチ等)を組み合わせて乱数列生成装置101を構成することができるほか、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)やFPGA(Field Programmable Gate Array)などのような電子回路の構成状態を可変に変更できる電子素子を利用して、乱数列生成装置101を構成することができ、これらの態様も本発明の範囲に含まれる。
【0100】
(実験の結果)
上記実施形態に係る乱数列生成装置101を用いて、以下の諸元で乱数列を生成させた。
W = 32,
n = 32,
g(a,b) = 2b2 + h(a)b
【0101】
ただし、写像h(・)は、与えられた値の数値表現の最下位2ビットを01に置換する演算により定義される。
【0102】
また、変換および回転は、それぞれ1ラウンドごとに1回とした。すなわち、「所定の回数の繰り返し」は1回である。
【0103】
出力されるのは、全部でwn = 1024ビットの乱数列r1,r2,…,r1024である。
【0104】
これに対して20000×89999種類の種を与え、20000×89999ラウンドだけ乱数列r1,r2,…,r1024を出力させた。
【0105】
そして、これに対して乱数列のランダム性を検査する標準的なテストであるFIPS 140−1ならびにFIPS 140−2のうち、標準セキュリティ規格にあるランダム性検査テストを、1024ビットの乱数列の中の各ビット位置毎に適用して、本実施形態の乱数列の性質を検査した。
【0106】
これらのテストにおいては、各ビット位置から20000ビットのビット列を取り出し、その20000ビットのビット列に対して、以下が行われる。
モノビットテスト(monobit test)。所定の位置のビットの値の出現頻度に偏りがないか否かを調べるもの。
ポーカーテスト(poker test)。20000ビットを5000個の4ビットパターンに分割し、その4ビットパターンの出現頻度に偏りがないか否かを調べるもの。
ランズテスト(runs test)。乱数列から所定の長さの連を切り出した場合に、当該長さの連の出現頻度に偏りがないか否かを調べるもの。長さとしては1〜6を用いる。
ロングランズテスト(long runs teset)。ランズテストと同様であるが、FIPS 140−1の場合は34以上の連が存在する場合ランダム性が否定され、FIPS 140−1の場合は26以上の連が存在する場合ランダム性が否定される。
【0107】
実験の結果、FIPS 140−1においては、生成された1024ビット×89999サンプルの20000ビット列は、すべて、定められた基準をクリアした。
【0108】
また、FIPS 140−2においては、生成された1024ビット×89999サンプルの20000ビット列の内、99.92パーセントのサンプルが、定められた基準をクリアした。
【0109】
さらに、上記の乱数テストよりも厳しい乱数テストであるNIST 800−22に本発明を適用して調べた結果、回転の手法(3)を利用すると、極めて良好な乱数を得られることが判明している。
【0110】
また、本技術をXILINX(登録商標)社のVertex xcv1000(システムゲート数は100万)のFPGAに実装したところ、本アルゴリズムの並列性から、25.62Gビット/secのスピードで乱数列を生成させることができた。すなわち、本技術をFPGA等のハードウェアに実装すると、高速性の上で多大なメリットを得ることができる。
【0111】
このようにして、本実施形態によって生成された乱数列は極めて性質が良いものであり、秘密通信の暗号化の分野や物理現象、化学現象などの模擬実験の分野で有用であり、ハードウェア上で高速に良好なランダム性を持つ乱数列を出力するのに極めて有用であることが示された。
【0112】
(暗号化復号化装置)
上記の乱数生成装置を利用すれば、暗号化や復号化を実現することができる。図6は、このような暗号化や復号化を行う暗号化装置および復号化装置の概要構成を示す模式図である。
【0113】
暗号化装置601と、復号化装置651と、は、s1,…,sn,…,smを共通鍵とする。そして、それぞれが備える生成部602、652は、いずれも、同じ構成(計算手法)による乱数発生装置201を有し、この共通鍵s1,…,sn,…,smを入力として受け付ける。すると、同じ乱数r1,…,rnが出力されることとなる。
【0114】
この乱数を用いて、暗号化装置601においては、メッセージ受付部603が受け付けた伝送メッセージの整数列p1,p2,…,pi,…を、XOR部604が、p1 xor r1,p2 xor r2,…,pi xor r((i+n−1) mod n) + 1,…のように変換して、これを暗号化済メッセージの整数列e1,e2,…,ei,…として出力する。
【0115】
ここで、xorは上述したように排他的論理和演算を意味し、a mod nはaをnで割った余りを意味する。
【0116】
一方、復号化装置651のメッセージ受付部653は、暗号化済メッセージの整数列e1,e2,…,ei,…を受け付け、XOR部654がe1 xor r1,e2 xor r2,…,ei xor r((i+n−1) mod n) + 1,…のように変換して、これを復号化済メッセージの整数列f1,f2,…,fi,…として出力する。
【0117】
ここで、
であるから、復号化済メッセージの整数列ともとの伝送メッセージの整数列とは同じものであり、暗号化ならびに復号化ができることが示された。
【0118】
なお、処理の対象となるメッセージの長さは、n以下とすることもできる。その場合には、上記の((i+n−1) mod n) + 1はiに置き換えることができる。このようにすれば、同じ乱数列を繰り返し利用するよりも、さらに秘匿性を高めることができる。
【0119】
上記のように、暗号化装置601と復号化装置651とは全く同じ構成であるので、1つの装置をある場合は暗号化装置601として、ある場合は復号化装置651として、それぞれ利用することができる。
【0120】
【発明の効果】
以上説明したように、本発明によれば、生成される乱数列が乱数列として好ましい性質を有するような乱数列生成装置、乱数列生成方法、これらを用いた暗号化復号化装置、暗号化復号化方法、ならびに、これらをコンピュータによって実現するためのプログラムを提供することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る乱数列生成装置の概要構成を示す模式図である。
【図2】本実施形態の乱数列生成装置において実行される乱数列生成処理の制御の流れを示すフローチャートである。
【図3】本実施形態の乱数列生成装置の回転部において実行される回転ビット数の取得の様子を示す説明図である。
【図4】本実施形態の乱数列生成装置の回転部において実行される回転演算の様子を示す説明図である。
【図5】本実施形態の乱数列生成装置が実現される典型的なコンピュータの概要構成を示す模式図である。
【図6】暗号化装置と復号化装置の実施形態の概要構成を示す模式図である。
【符号の説明】
101 乱数列生成装置
102 種受付部
103 初期化部
104 変換部
105 回転部
106 更新部
107 出力部
301 コンピュータ
302 CPU
303 ROM
304 フレキシブルディスクドライブ
305 ハードディスク
306 キーボード
307 マウス
308 CD−ROMドライブ
309 ディスプレイ
311 RAM
601 暗号化装置
602 乱数生成部
603 メッセージ受付部
604 XOR部
651 復号化装置
652 乱数生成部
653 メッセージ受付部
654 XOR部
Claims (28)
- wビットの乱数の列を生成する乱数列生成装置であって、種受付部と、初期化部と、変換部と、回転部と、更新部と、出力部と、を備え、整数n,m (1≦n≦m−1)に対して、
前記種受付部は、wビットの整数の列s1,s2,…,sn,…,smを種として受け付け、
前記初期化部は、当該受け付けられた整数の列s1,s2,…,sn,…,smを、整数列x1,x2,…,xn,…,xmとして前記変換部に与え、
前記変換部は、当該与えられた整数列x1,x2,…,xn,…,xmのそれぞれに対して所定の変換を施してwビットの整数の列y1,y2,…,yn,…,ymを得て、
前記回転部は、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,yn,…,ymをwmビットのビット列と見て、これ、もしくは、これの一部に対して当該得られた回転ビット数の回転演算を行って、得られたwmビットのビット列からwビットの整数の列z1,z2,…,zn,…,zmを得て、
前記更新部は、当該整数の列z1,z2,…,zn,…,zmを整数列x1,x2,…,xn,…,xmとして前記変換部に与え、
前記出力部は、前記変換部における変換ならびに前記回転部における回転が、所定の回数繰り返された場合、最後に得られたz1,z2,…,znを、乱数列r1,r2,…,rnとして出力する
ことを特徴とするもの。 - 請求項1に記載の乱数列生成装置であって、
前記変換部は、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(xm,x1);
yi+1 = g(xi,xi+1)
により変換を行う
ことを特徴とするもの。 - 請求項1に記載の乱数列生成装置であって、
前記変換部は、所定の整数cと、写像g(・,・)と、を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(yi,xi+1)
により変換を行う
ことを特徴とするもの。 - 請求項1に記載の乱数列生成装置であって、
前記変換部は、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(xi,xi+1)
により変換を行う
ことを特徴とするもの。 - 請求項2から4のいずれか1項に記載の乱数列生成装置であって、
当該写像g(・,・)は、所定の写像h(・)と所定の整数q (0≦q≦2w−1)により
g(a,b) = 2b2 + h(a)b + q (mod 2w)
と定義される
ことを特徴とするもの。 - 請求項5に記載の乱数列生成装置であって、
当該写像h(・)は、
h(a) = a
と定義される
ことを特徴とするもの。 - 請求項5に記載の乱数列生成装置であって、
当該写像h(・)は、与えられた値の数値表現の所定のビットをクリアする演算により定義される
ことを特徴とするもの。 - 請求項5に記載の乱数列生成装置であって、
当該写像h(・)は、与えられた値の数値表現の所定のビットを反転する演算により定義される
ことを特徴とするもの。 - 請求項5に記載の乱数列生成装置であって、
当該写像h(・)は、与えられた値の数値表現の最下位2ビットを01に置換する演算により定義される
ことを特徴とするもの。 - 請求項1から9のいずれか1項に記載の乱数列生成装置であって、
前記回転部は、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットを1個以上抽出して並べたビット列を整数と見たときの整数値を、回転ビット数として得る
ことを特徴とするもの。 - 請求項10に記載の乱数列生成装置であって、
前記回転部は、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットの値により、回転する方向を決める
ことを特徴とするもの。 - 請求項1から11のいずれか1項に記載の乱数生成装置であって、
前記回転部は、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,ynをwnビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたwnビットのビット列からwビットの整数の列z1,z2,…,znを得て、整数の列yn+1,…,ymをw(m−n)ビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたw(m−n)ビットのビット列からwビットの整数の列zn+1,…,zmを得る
ことを特徴とするもの。 - 乱数生成部と、メッセージ受付部と、暗号化復号化部と、を備える暗号化復号化装置であって、
前記乱数生成部は、請求項1から12のいずれか1項に記載の乱数生成装置により、乱数列r1,r2,…,rnを生成し、
前記メッセージ受付部は、wビットの整数の整数列p1,p2,…,をメッセージとして受け付け、
前記暗号化復号化部は、wビットの整数の列p1 xor r1,p2 xor r2,…,pi xor r((i+n−1) mod n) + 1,…を暗号化もしくは復号化の結果として出力する
ことを特徴とするもの。 - wビットの乱数の列を生成する乱数列生成方法であって、種受付工程と、初期化工程と、変換工程と、回転工程と、更新工程と、出力工程と、を備え、整数n,m (1≦n≦m−1)に対して、
前記種受付工程では、wビットの整数の列s1,s2,…,sn,…,smを種として受け付け、
前記初期化工程では、当該受け付けられた整数の列s1,s2,…,sn,…,smを、整数列x1,x2,…,xn,…,xmとして前記変換工程に与え、
前記変換工程では、当該与えられた整数列x1,x2,…,xn,…,xmのそれぞれに対して所定の変換を施してwビットの整数の列y1,y2,…,yn,…,ymを得て、
前記回転工程では、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,yn,…,ymをwmビットのビット列と見て、これ、もしくは、これの一部に対して当該得られた回転ビット数の回転演算を行って、得られたwmビットのビット列からwビットの整数の列z1,z2,…,zn,…,zmを得て、
前記更新工程では、当該整数の列z1,z2,…,zn,…,zmを整数列x1,x2,…,xn,…,xmとして前記変換工程に与え、
前記出力工程では、前記変換工程における変換ならびに前記回転工程における回転が、所定の回数繰り返された場合、最後に得られたz1,z2,…,znを、乱数列r1,r2,…,rnとして出力する
ことを特徴とする方法。 - 請求項14に記載の乱数列生成方法であって、
前記変換工程では、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(xm,x1);
yi+1 = g(xi,xi+1)
により変換を行う
ことを特徴とする方法。 - 請求項14に記載の乱数列生成方法であって、
前記変換工程では、所定の整数cと、写像g(・,・)と、を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(yi,xi+1)
により変換を行う
ことを特徴とする方法。 - 請求項14に記載の乱数列生成方法であって、
前記変換工程では、写像g(・,・)を用いて、整数i (1≦i≦m−1)についての漸化式
y1 = g(c,x1);
yi+1 = g(xi,xi+1)
により変換を行う
ことを特徴とする方法。 - 請求項15から17のいずれか1項に記載の乱数列生成方法であって、
当該写像g(・,・)は、所定の写像h(・)と所定の整数q (0≦q≦2w−1)により
g(a,b) = 2b2 + h(a)b + q (mod 2w)
と定義される
ことを特徴とする方法。 - 請求項18に記載の乱数列生成方法であって、
当該写像h(・)は、
h(a) = a
と定義される
ことを特徴とする方法。 - 請求項18に記載の乱数列生成方法であって、
当該写像h(・)は、与えられた値の数値表現の所定のビットをクリアする演算により定義される
ことを特徴とする方法。 - 請求項18に記載の乱数列生成方法であって、
当該写像h(・)は、与えられた値の数値表現の所定のビットを反転する演算により定義される
ことを特徴とする方法。 - 請求項18に記載の乱数列生成方法であって、
当該写像h(・)は、与えられた値の数値表現の最下位2ビットを01に置換する演算により定義される
ことを特徴とする方法。 - 請求項14から22のいずれか1項に記載の乱数列生成方法であって、
前記回転工程では、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットを1個以上抽出して並べたビット列を整数と見たときの整数値を、回転ビット数として得る
ことを特徴とする方法。 - 請求項23に記載の乱数列生成方法であって、
前記回転工程では、当該整数の列yn+1,…,ymをw(m−n+1)ビットのビット列と見て、これから所定の位置のビットの値により、回転する方向を決める
ことを特徴とする方法。 - 請求項14から24のいずれか1項に記載の乱数生成方法であって、
前記回転工程では、当該整数の列yn+1,…,ymから回転ビット数を得て、当該整数の列y1,y2,…,ynをwnビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたwnビットのビット列からwビットの整数の列z1,z2,…,znを得て、整数の列yn+1,…,ymをw(m−n)ビットのビット列と見て、これに対して当該得られた回転ビット数の回転演算を行って、得られたw(m−n)ビットのビット列からwビットの整数の列zn+1,…,zmを得る
ことを特徴とする方法。 - 乱数生成工程と、メッセージ受付工程と、暗号化復号化工程と、を備える暗号化復号化方法であって、
前記乱数生成工程では、請求項13から23のいずれか1項に記載の乱数生成方法により、乱数列r1,r2,…,rnを生成し、
前記メッセージ受付工程では、wビットの整数の整数列p1,p2,…,をメッセージとして受け付け、
前記暗号化復号化工程では、wビットの整数の列p1 xor r1,p2 xor r2,…,pi xor r((i+n−1) mod n) + 1,…を暗号化もしくは復号化の結果として出力する
ことを特徴とする方法。 - コンピュータを、請求項1から12のいずれか1項に記載の乱数列生成装置として機能させることを特徴とするプログラム。
- コンピュータを、請求項13に記載の暗号化復号化装置として機能させることを特徴とするプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003075438A JP3735670B2 (ja) | 2003-03-19 | 2003-03-19 | 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム |
US10/803,587 US7421463B2 (en) | 2003-03-19 | 2004-03-17 | Random sequence generating apparatus, encryption/decryption apparatus, random sequence generating method, encryption/decryption method and program |
CNA2004100451110A CN1536769A (zh) | 2003-03-19 | 2004-03-18 | 随机序列产生设备、加密/解密设备及其方法和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003075438A JP3735670B2 (ja) | 2003-03-19 | 2003-03-19 | 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004286788A true JP2004286788A (ja) | 2004-10-14 |
JP3735670B2 JP3735670B2 (ja) | 2006-01-18 |
Family
ID=32984778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003075438A Expired - Lifetime JP3735670B2 (ja) | 2003-03-19 | 2003-03-19 | 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US7421463B2 (ja) |
JP (1) | JP3735670B2 (ja) |
CN (1) | CN1536769A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016199812A1 (ja) * | 2015-06-08 | 2016-12-15 | 国立大学法人京都大学 | データ処理装置、データ送信方法、及びコンピュータプログラム |
JP2017005682A (ja) * | 2016-02-16 | 2017-01-05 | 国立大学法人京都大学 | データ処理装置、データ送信方法、コンピュータプログラム、及びデータサーバ |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512645B2 (en) * | 2004-03-19 | 2009-03-31 | Texas Instruments Incorporated | System and method for generating pseudorandom numbers |
US8036379B2 (en) * | 2006-03-15 | 2011-10-11 | Microsoft Corporation | Cryptographic processing |
US7953781B1 (en) * | 2007-05-29 | 2011-05-31 | L-3 Communications Corp. | System and method for memory-based parallel PN generation |
US20160105276A1 (en) * | 2014-10-10 | 2016-04-14 | Qualcomm Incorporated | Rotation-based cipher |
DE102015219999A1 (de) * | 2015-10-15 | 2017-04-20 | Robert Bosch Gmbh | Verfahren zur Generierung eines Geheimnisses in einem Netzwerk mit mindestens zwei an ein Übertragungsmedium angeschlossenen Teilnehmern |
CN107302659B (zh) * | 2017-06-19 | 2019-10-25 | 成都优孚达信息技术有限公司 | 一种用于网络传输的数据压缩方法 |
CN108776583B (zh) * | 2018-06-07 | 2022-10-18 | 福建江夏学院 | π小数点后面位数的随机数表建立方法 |
US11341064B2 (en) * | 2019-12-05 | 2022-05-24 | Realtek Singapore Private Limited | Method of protecting sensitive data in integrated circuit and integrated circuit utilizing same |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9407038D0 (en) * | 1994-04-08 | 1994-06-01 | Amstrad Plc | Method and apparatus for transmitting and receiving encrypted signals |
US6014446A (en) * | 1995-02-24 | 2000-01-11 | Motorola, Inc. | Apparatus for providing improved encryption protection in a communication system |
US6339645B2 (en) * | 1998-03-06 | 2002-01-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Pseudo-random sequence generator and associated method |
ATE364949T1 (de) * | 2000-04-26 | 2007-07-15 | Alcatel Lucent | Verfahren zur erzeugung einer pseudozufälligen sequenz von mehrträger-datensymbolen und sender und empfänger dafür |
JP4191915B2 (ja) | 2001-08-30 | 2008-12-03 | 独立行政法人情報通信研究機構 | 変換装置、暗号化復号化システム、多段変換装置、プログラム、ならびに、情報記録媒体 |
JP3525146B2 (ja) * | 2001-11-05 | 2004-05-10 | 独立行政法人 科学技術振興機構 | 乱数列出力装置、乱数列出力方法、プログラムならびに、情報記録媒体 |
JP3700002B2 (ja) | 2002-10-02 | 2005-09-28 | 独立行政法人情報通信研究機構 | 乱数列生成装置、乱数列生成方法、ならびに、プログラム |
US7194496B2 (en) * | 2003-05-02 | 2007-03-20 | Spirent Communications Of Rockville, Inc. | System and method for producing functions for generating pseudo-random bit sequences |
-
2003
- 2003-03-19 JP JP2003075438A patent/JP3735670B2/ja not_active Expired - Lifetime
-
2004
- 2004-03-17 US US10/803,587 patent/US7421463B2/en not_active Expired - Fee Related
- 2004-03-18 CN CNA2004100451110A patent/CN1536769A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016199812A1 (ja) * | 2015-06-08 | 2016-12-15 | 国立大学法人京都大学 | データ処理装置、データ送信方法、及びコンピュータプログラム |
JP2017005682A (ja) * | 2016-02-16 | 2017-01-05 | 国立大学法人京都大学 | データ処理装置、データ送信方法、コンピュータプログラム、及びデータサーバ |
Also Published As
Publication number | Publication date |
---|---|
US20040184609A1 (en) | 2004-09-23 |
JP3735670B2 (ja) | 2006-01-18 |
CN1536769A (zh) | 2004-10-13 |
US7421463B2 (en) | 2008-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3600454B2 (ja) | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 | |
CA2632857C (en) | Closed galois field combination | |
CA2497935C (en) | Stream cipher design with revolving buffers | |
EP2279579A2 (en) | A closed galois field cryptographic system | |
WO2008010441A1 (fr) | dispositif de cryptage, programme et procédé | |
JP3735670B2 (ja) | 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム | |
Fu et al. | A new chaos-based image cipher using a hash function | |
JP2004361969A (ja) | 暗号化方法 | |
JP5188414B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP4586163B2 (ja) | 暗号化システム | |
Gao et al. | New image encryption algorithm based on hyperchaotic 3D-IHAL and a hybrid cryptosystem | |
JP2004530919A5 (ja) | ||
JP2007287079A (ja) | 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置 | |
Qasim et al. | Encrypt medical image using Csalsa20 stream algorithm | |
Hafsa et al. | Hybrid encryption model based on advanced encryption standard and elliptic curve pseudo random | |
JP3700002B2 (ja) | 乱数列生成装置、乱数列生成方法、ならびに、プログラム | |
Zelenoritskaya et al. | Possible modifications of RC4 stream cipher | |
VG | FPGA implementation of a lightweight simple encryption scheme to secure IoT using novel key scheduling technique | |
Fu et al. | Medical image protection using hyperchaos-based encryption | |
Pal et al. | Secured Information Transfer Power by Modified and Optimized RSA Cryptosystem | |
CN111602367A (zh) | 用于保护在使白盒密码算法安全的对策中使用的熵源的方法 | |
KR100885994B1 (ko) | 비선형 필터링된 t함수에 기반한 스트림 암호화 장치 및방법 | |
Andreev et al. | Effective quaternion and octonion cryptosystems and their FPGA implementation | |
Abubaker | Probabilistic, lightweight cryptosystems based on finite automata | |
Hammoud | Multiple Image Encryption for Business Applications using DNA Coding, Jigsaw Transform, and Chaos Theory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050811 |
|
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: 20050920 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3735670 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |