JP4608319B2 - 複数鍵を用いたストリーム暗号の生成方法 - Google Patents

複数鍵を用いたストリーム暗号の生成方法 Download PDF

Info

Publication number
JP4608319B2
JP4608319B2 JP2004552295A JP2004552295A JP4608319B2 JP 4608319 B2 JP4608319 B2 JP 4608319B2 JP 2004552295 A JP2004552295 A JP 2004552295A JP 2004552295 A JP2004552295 A JP 2004552295A JP 4608319 B2 JP4608319 B2 JP 4608319B2
Authority
JP
Japan
Prior art keywords
random number
function
computer
bytes
byte
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 - Fee Related
Application number
JP2004552295A
Other languages
English (en)
Other versions
JP2006506668A (ja
Inventor
スティーブン, ローレンス ボーン,
アンドレ, ジャック ブリソン,
Original Assignee
スティーブン, ローレンス ボーン,
アンドレ, ジャック ブリソン,
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 スティーブン, ローレンス ボーン,, アンドレ, ジャック ブリソン, filed Critical スティーブン, ローレンス ボーン,
Publication of JP2006506668A publication Critical patent/JP2006506668A/ja
Application granted granted Critical
Publication of JP4608319B2 publication Critical patent/JP4608319B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Saccharide Compounds (AREA)

Description

本出願は、現在係属中であり、2002年11月20日に出願された米国特許出願番号10/299847の一部継続出願である。
本発明は、暗号化方法の分野に関する。より詳細には、極端に長いこともある電子通信を暗号化するためにストリーム暗号を生成する方法に関する。
安全な電子通信を提供するさまざまな暗号化方法がよく知られている。対称鍵暗号方法においては、送信者と受信者が同一のコードまたは鍵を利用して通信文を暗号化し復号する。とても解読することや復号することのできない、完全に安全な唯一の暗号化は使い捨て乱数方式(One−Time Pad:OTP)である。OTPでは、平文通信文を含むビットストリームと、平文と同じ長さの秘密ランダムビットストリーム(鍵)を用いる。平文を鍵により暗号化するには、鍵と平文からのビットの各組を連続的に排他的論理和関数で処理し、暗号文ビットを得る。鍵が真にランダムであり、鍵が認定されていない第三者から秘密に保たれる限り、暗号文は復号できない。この方法の問題点は、鍵が少なくても通信文と同一の長さを持つ必要があることである。それよりも短い鍵が使用され繰り返されると、暗号は解読することが可能である。暗号化すべきデータが極端に長い場合もある。
したがって、可変長であり、膨大な量のデータの暗号を考慮した、ランダムな鍵、つまりOTPの生成方法が要求されている。
本発明は、長さxバイトのストリーム暗号の生成方法であって、
i)繰り返しのない長さmの固有のバイトをそれぞれが有するサブ鍵の数nを選択し、
ii)各サブ鍵に一つが対応し、それぞれが長さmバイトのn個の乱数を発生し、
iii)n+1番目の乱数Rを発生し、
iv)p=Modm(R)と設定し、
v)前記n番目の乱数における位置がpである各バイトに対して、nバイトすべてに関数を適用して値を生成し、
vi)前記値を前記ストリーム暗号の最後に連接し、
vii)p=p+1と設定し、
viii)前記ストリーム暗号がxバイトの長さになるまで、ステップv)、vi)、vii)を繰り返すこと
を含む、前記方法を提供する。好ましくは、各サブ鍵の選択された長さmは素数である。本方法は、さらにストリーム暗号に非線形化関数を適用するステップを含んでもよい。
本発明の特徴のひとつは、前記n個の乱数の各々は
i)完全平方ではない、n+2番目の乱数を発生し、
ii)前記n+2番目の乱数の平方根を計算し、
iii)n+3番目の乱数を発生し、
iv)前記n+2番目の乱数の中での位置か前記n+3番目の乱数にしたがって計算される数から始めて、数の有限列を連続して取得し、前記有限列の各々をバイトに変換し、
v)前記n個の乱数の前記各々の選択した長さmに達するまで、各バイトを連続して連接することにより生成される。
さらに、本発明はコンピュータ・プログラム製品、前記方法を実行する物品、そして前記方法を実行するデータ処理システムを提供する。
図2では、本発明による、暗号化鍵の生成方法をフローチャートの形で示している。特に、暗号化鍵、つまり、ここでスーパー鍵と呼ぶ、無限の長さを持ち、繰り返しのないストリーム暗号は、サブ鍵を組み合わせて形成する。用途に応じて、任意の数n個のサブ鍵K、K、...、Kを指定することができる。サブ鍵の数が大きいほど、繰り返しのないスーパー鍵の長さは長くなる。各サブ鍵の長さは、素数長のバイトである(10を超える素数が好ましい)。
プロセスの最初のステップは、展開するスーパー鍵、つまりストリーム暗号の大きさを決定することである。サブ鍵の数nと各サブ鍵の繰り返しのない長さmをバイト単位で選択する。サブ鍵はそれぞれ繰り返しのない固有の長さをもっている。つまり、繰り返しのない長さが同一であるサブ鍵はふたつない。好ましくは、サブ鍵の繰り返しのない長さは素数長のバイトである。サブ鍵の長さは好ましくはバイト単位で、2、3、5、...、1021の範囲の素数である。この範囲には172の異なる素数がある。サブ鍵の数と素数での繰り返しのない長さを手入力することで選択してもよい。または、サブ鍵の数と素数での繰り返しのない長さを用途に組み込む、つまり、プログラムによりサブ鍵の数と素数での繰り返しのない長さをランダムに選択する。n個のサブ鍵Kにおいて、スーパー鍵の繰り返しのない長さは、(Kの大きさ)x(Kの大きさ)x(Kの大きさ)x...x(Kの大きさ)となる。たとえば、次の素数での繰り返しのない長さを持つ10個のサブ鍵を使用すると仮定する。
サブ鍵1=13バイト=K
サブ鍵2=17バイト=K
サブ鍵3=19バイト=K
サブ鍵4=23バイト=K
サブ鍵5=29バイト=K
サブ鍵6=31バイト=K
サブ鍵7=37バイト=K
サブ鍵8=41バイト=K
サブ鍵9=43バイト=K
サブ鍵10=47バイト=K10
繰り返しのないスーパー鍵の長さは結果として、13x17x19x23x29x31x37x41x43x47=266186053068611バイトになる。このように、少ない個数のサブ鍵を用いて、小さい素数での繰り返しのない長さにより、非常に長い、繰り返しのないスーパー鍵が得られる。上記のスーパー鍵の大きさの全体の定義は300バイト(繰り返しのないサブ鍵の長さの合計)とヘッダー(サブ鍵の数と長さ)に含まれる。このように、スーパー鍵の全体の定義は、スーパー鍵の大きさの一部である。
各サブ鍵の繰り返しのない長さは好ましくは素数長のバイトであるが、結果として得られる暗号のランダム状態を改善するには、その暗号が非常に大きい限りは、素数ではない長さを用いても本方法は機能する。
サブ鍵の数を選択するには、ランダムストリームにより生成される最初の二桁を取得し、50を法として演算し(MODed by 50、50で割った剰余を求め)、50を加算して、50から99までの間で鍵の個数を提供する。
マルチ鍵プロセスの各サブ鍵は次のように生成してもよい。まず初めに、完全平方ではない乱数を生成する。好ましくは非常にランダムなソースによってである。500から700桁の範囲の整数であることが好ましい。これは「第一の元値」Oとして作用する。選択値Oが完全平方数ではないことを確認する。完全平方数である場合は、この基準を満たす数が見つかるまでほかのランダム値を生成する。第二の元値は、コンピュータのrand関数の因子として使用される32ビット値である。ほとんどのコンピュータのオペレーティングシステムに含まれる乱数発生器は疑似ランダムであり、非常に強固であるわけではない。しかし、これらの値は出発点として十分である。第二の乱数Pもコンピュータのrand関数により生成する。そして、100を法として演算し出発点を設定する。第一の元値Oの平方根Qを計算し、無理数Qを得る(小数点以下無限に続き、繰り返しはない数)。結果として得られる、小数点以下の数字列は潜在的に長さが無限で非常にランダムである。コンピュータにより、小数点より前の数字を捨て、小数点以下のP桁まで数値Qを計算する。そして、コンピュータにより、小数点以下のQのP桁めから始めて、一度に4桁を連続的に選択し、4桁の数値の256を法とする値(MOD 256 value、256で割った剰余値)を計算する。これにより8ビット値を得る。この値をサブ鍵の最初のバイトとする。一度に4桁としてこのプロセスを繰り返し、生成しているサブ鍵の素数での繰り返しのない長さに等しいランダムデータ列が完成するまで、次々と次の4桁の数値で継続する。すべてのサブ鍵に対する繰り返しのない長さが生成されるまで、このプロセスをすべてのサブ鍵に対して繰り返す。そして各サブ鍵を形成する。このように生成した繰り返しのないバイト列を取得し、他のサブ鍵との組合せでスーパー鍵を生成するために十分な長さのサブ鍵を形成するために必要なだけ、取得作業を繰り返すことで形成する。
サブ鍵の生成アルゴリズムは次のように記述することができる。
Figure 0004608319
1.500から700桁の範囲の整数の十進数表記としてSeed1を扱う。
2.X:=seed1とする。
3.Y:=√Xとする。これはXの平方根を求めると得られる無理数である。
4.Yの十進数表記において小数点のあとの数字をZ、Z、Z、Z .. とする。各Zは0から9の範囲にある。
5.Call srand(seed2)//最初だけ。
6.無理数の出発点startを得るためにrand()を呼び出す。
7.start:=rand()mod100とする。startは0から99の範囲内である。
8.ZstartまでZとZを捨てる。
9.tmp:=10*Z(start+1)+Z(start+2)とする。使用した値は捨てる。
10.n:=50+(tmp mod50)とする。nは50から99の範囲内である。
11.i:= 1、2、...、nについて、以下を行う。
12.j=3*(i−1)とする。
13.tmpをZstreamの次のバイトとする。
14.tmp:=100*Zj+1+10*Zj+2+Zj+3とする。
15.t:=172−(tmp mod172)とする。tは1、2、...、172の範囲内である。
16.uを2、3、5、...、1021の列の中のt番目の素数とする。
17.uがl、l、...、l{i−1}のいずれかに等しい場合、tを(t+1)mod172に設定し、16行めに進む。
18.lをuと設定する。
19.次のIについて、すべてのサブ鍵の大きさが設定されるまで、11行めに進む。
20.i:=1、2、...、nについて、以下を行う。
21.j:=0、1、2、...、lについて以下を行う。
22.k:=4*jとする。
23.tmpをZstreamの次のバイトとする。
24.tmp:=(1000*Z+100Zk+1+10*Zk+2+Zk+3)mod256とする。
25.s :=tmpとする。
26.次のj:次のサブ鍵バイト
27.次のI:次のサブ鍵
28.i:=0、1、2、...、255について以下を行う。
29.j:=4*iとする。
30.tmp:=(1000*Z+100*Zj+1+10*Zj+2+Zj+3)mod256とする。
31.tmpがS[0]、S[1]、...、S[i−1]のいずれかに等しい場合、(tmp+1)mod256に設定し、31行めに進む。
32.S[i]:=tmpに設定する。
33.次のi
34.offset:=Zi+1...Zi+9とする。
35.n、(l、l、...、l)、(s、s、...、s)、S[256]、offsetを戻す。
36.鍵ファイルに保存し、seed1とstart値をDBに追加する。
37.seed1をインクリメントし、2行めに進む。//十分な鍵が生成されるまで繰り返す。
上記のようにすべてのサブ鍵を生成したら、必要な長さまでスーパー鍵(暗号)を生成する。この意味は、暗号化することになっている関連データを暗号化するためにスーパー鍵は生成され続け、すべてのデータが暗号化されるまで生成されるということである。まず、乱数R(「第三の元値」、つまり、数Qについての出発点Pに対照するように、スーパー鍵についての開始オフセット)を生成する。長さmを持つn個のサブ鍵のいずれかひとつで始め、Rのmodmを計算し、各サブ鍵の第Modm(R)番目のバイトとほかのサブ鍵のおのおのの対応する第Modm(R)番目のバイトとの排他的論理和を連続して取る。たとえば、Rが100、最初のサブ鍵の長さが97バイト、2番目のサブ鍵の長さが43バイトだとすると、サブ鍵1の第3番目のバイトを選択し、サブ鍵2の第14番目のバイトや、Rに基づいて同様に選択した、ほかの残ったサブ鍵の対応するバイトとの排他的論理和を取る。各サブ鍵からの選択したバイトのすべてに対して排他的論理和を取るまで、このプロセスを繰り返す。以下にさらに述べるように、結果として得られた値を、換字式暗号化またはほかの非線形化関数で処理しスーパー鍵ストリームを非線形化してもよい。結果として得られた二進数値を連接によりスーパー鍵に加える。サブ鍵1の次に続くバイトを、サブ鍵2などの次のバイトと排他的論理和を求める。各サブ鍵から選択したバイトすべてに対して排他的論理和が求められ非線形化されるまで、このプロセスを再度繰り返す。各関数の結果の二進数値は再度、連接によりスーパー鍵に加える。排他的論理和関数が好ましいが、他の関数も適用できることは明らかであろう。たとえば、数学的関数の加法、または減法を使用することができる。スーパー鍵の各バイトが生成されるにつれて、平文通信文の対応するバイトは、スーパー鍵の対応するバイトで排他的論理和関数またはほかの数学関数により暗号化される。平文通信文のすべてのバイトが暗号化されると、スーパー鍵の生成が終了する。暗号化された通信文は、その通信文とスーパー鍵に、暗号化関数の逆関数を適用することで復号可能である。
サブ鍵からのスーパー鍵の生成をさらに述べるために、S{i} で、i番目のサブ鍵のj番目のバイトを表すことにする。l{i}でi番目のサブ鍵の長さを示す。たとえば、l{1}は13、l{2}は17などである。サブ鍵iから終わりのないバイト列を生成する。
Figure 0004608319
上記列のj番目のバイトをS{i} で表す。jは0から無限大までの自然数だとすると、S{i} の下付文字でのjの最小値はl{i}を法とするR(Rmodulol{i})であり、ここでRは乱数である。すると、スーパー鍵のj番目のバイトは、それをZと呼ぶと、次のように定義される。
Figure 0004608319
Figure 0004608319
ここで、l{i}を法とするR(Rmodulol{i})は0、1、2、...、(l{i}−1)の範囲で整数を返す。スーパー鍵は0から
Figure 0004608319
までの範囲でj値を持つ。
順番に、平文のバイトをP、P、P、P、...とし、暗号文のバイトをC、C、...とする。また、スーパー鍵(すでに上記のように計算されている)のバイトをz、z、...で表す。暗号文をC:=PxorS[z]で定義する。暗号文Cは、バイトC、C、...を連接して形成し、Cは暗号化プロセスの結果として返ってくる。明らかに、復号はこの逆に機能する。
Lバイトの平文を暗号化するために、Lバイトのスーパー鍵を生成し、平文のバイト数を数えるために大きな数値カウンタTを用いる。出力はLバイトの暗号文である。暗号文を復号するために、同一の大きな数値カウンタTを使用し、出力はLバイトの平文である。
本方法を用いて暗号文の線形性を減少させるために、平文通信文を暗号化する前に、スーパー鍵にさらに処理を適用してもよい。好適な実施例では、換字式暗号法をスーパー鍵に適用し、結果として得られる記号列を使用して平文通信文を暗号化する。たとえば、1から256までランダムに並べられた、固有の値を持つ、256バイトのアレイを生成する。xを256バイトアレイの最初の値として、スーパー鍵のx+1バイトめの値によりスーパー鍵の最初のバイトを置き換える。次に、yを256バイトアレイの2番目の値として、スーパー鍵のy+2バイトめの値によりスーパー鍵の2番目のバイトを置き換える。これを続ける。サブ鍵からのバイトがアレイ中の以前の入力の繰り返しとならない限りアレイに加えられ、256バイトアレイはサブ鍵の一つから形成することができる。
換字式暗号法を暗号化された通信文(暗号文)に適用することで、暗号文の線形性を減少させることができるが、暗号化の前にスーパー鍵に換字式暗号法を適用するとより効果的である。換字式暗号法以外にも、SANDIA研究所から入手できる可逆非線形関数(INLF)ユーティリティなどの他のユーティリティを使用して線形性をなくすことも可能である。バールカンプ・マッセイ(Berlekamp−Massey)攻撃に対する保護を行うためにこれらは役に立つ。
上述のように、好ましくは各サブ鍵を構成するランダムな繰り返しのない記号列が生成されるが、乱数発生器によって単に各サブ鍵の繰り返しのない記号列が生成されて各サブ鍵を形成するときにも、結果として得られるスーパー鍵が暗号化されるデータの大きさの少なくとも2倍以上であるように、スーパー鍵の結果として得られる全体長が十分に大きい限り、本方法は機能する。
上記の方法を利用して、個人のセキュリティシステムを作成することも可能である。そのシステムでは、鍵を利用して、ユーザが安全にしたいと考えている個人ファイルを暗号化する。この場合、鍵の配送方法は必要ない。各ファイルが暗号化されると、{OLDFILENAME}.{OFFSET}.wnという名称の新ファイルが作成される。機能性の点で同一ファイル形式を維持し、復号を簡易にすることを考慮して、OLDFILENAMEには拡張子が含まれる。各ファイルが暗号化されると、それはすぐに復号され、元のファイルと比較され、検査コピーと元のファイルが完全一掃削除プロセスにより削除される(ファイル全体に0が上書きされ、次に1が上書きされ、そして削除される。)
好ましい鍵ファイル形式は次のように定義される。
Figure 0004608319
上記の鍵ファイル形式は標準である。唯一異なる値は、引用符号で囲まれた十進数の列に記憶されるオフセットである。例としては987654321がある。これは1000桁までの範囲の値を考慮しているが、オフセットが適切に実現されれば、鍵ストリームが部分的に再使用されることはない。
本発明は、たとえば、ネットワーク12上でコンピュータ14と16の間での通信を暗号化し復号する、コンピュータで実現する方法として上述している。コンピュータのハードウェア装置として、コンピュータのソフトウェアプログラムとして、または、それらの組合せとしても実施化してよい。本発明を実現するプログラムを実施化するコンピュータで読み取り可能な記憶媒体として本発明を実施化してもよい。そのような記憶媒体としては、磁気的または光学的、ハードディスクまたはフロッピィディスク、CD−ROM、ファームウェア、またはほかの記憶媒体であってもよい。本発明は、コンピュータで読み取り可能な、変調キャリア信号上に実施化してもよい。
上記の開示に鑑みて当業者には明白であろうが、本発明を実施する場合に、本発明の趣旨または範囲から離れることなく、多くの変更と変形例が可能である。したがって、本発明の範囲は、以下に記載のクレームで定義される内容に従って解釈されるべきである。
本発明の方法を実行するコンピュータシステムの概略図である。 本発明の方法を示すフローチャートである。

Claims (18)

  1. 電気通信データを暗号化及び復号化するためのコンピュータで実行される方法であって、前記電気通信データはビットストリームを有し、前記方法は、
    a)コンピュータで長さxバイトのストリーム暗号を生成することであって、コンピュータが、
    i)サブ鍵の個数を示す数nと、サブ鍵の繰り返しのない固有の長さ バイト(iは1〜nの整数)をそれぞれが示すn個の固有の素数 を選択し、
    ii)それぞれが繰り返しのない長さ バイトを有するn個の固有の乱数を発生して該乱数に基づくn個の前記サブ鍵を生成し
    iii)n+1番目の乱数Rを発生し、
    iv−1 =Mod (R)とし、
    iv−2)i番目の乱数における位置が である各バイトに対して、前記n個の乱数のそれぞれの各 番目のバイトに排他的論理和関数又は加法若しくは減法である数学的関数を連続して適用して値を生成し、
    v) の値をそれぞれ1だけインクリメントし、
    vi)xバイトの前記ストリーム暗号が生成されるまで、ステップiv−2)とv)を繰り返し、ステップiv−2)で生成した前記各値をステップiv−2)で生成した以前の値に連接して前記ストリーム暗号を生成することと、
    b)コンピュータが、前記電気通信データの連続したバイトと生成されたストリーム暗号の対応するバイトとに、排他的論理和関数又は他の数学的関数である暗号化のための関数を適用して該電気通信データを暗号化することと、
    c)コンピュータが、暗号化された前記電気通信データの連続したバイトと生成されたストリーム暗号の対応するバイトとに、前記暗号化のための関数の逆関数を適用して該電気通信データを復号化すること
    を含む前記方法。
  2. 各々の前記サブ鍵の前記選択された長さ は10を超える素数である、請求項1に記載の方法。
  3. 前記n個の乱数の前記各 番目のバイトに連続して適用する前記関数は排他的論理和関数であり、コンピュータは、を1として番目の乱数のp 番目のバイトとi+1番目乱数のp i+1 番目のバイトの組に対して初めに、排他的論理和関数を適用して結果を得て、連続してを1だけインクリメントし、次の乱数のp i+1 番目のバイトとi番目の乱数までの結果との組に排他的論理和関数を適用して新たな結果を得る、請求項1に記載の方法。
  4. さらに前記ストリーム暗号に非線形化関数を適用することを含む、請求項1に記載の方法。
  5. 前記非線形化関数は換字式暗号法である、請求項4に記載の方法。
  6. コンピュータは、前記n個の乱数の各々を、
    i)完全平方ではない、n+2番目の乱数を発生し、
    ii)前記n+2番目の乱数の平方根を計算し、
    iii)n+3番目の乱数を発生し、
    iv)前記n+2番目の乱数の平方根の中での位置が前記n+3番目の乱数にしたがって計算されるから始めての有限列を前記n+2番目の乱数の平方根から連続して取得し、前記有限列の各々をバイトに変換し、
    v)前記n個の乱数の前記各々の選択した長さ に達するまで、各バイトを連続して連接すること
    により、前記n個の乱数の各々を生成する、請求項1に記載の方法。
  7. 前記数の有限列は10進法で少なくとも4桁の長さである、請求項6に記載の方法。
  8. 法(mod)関数を適用することで前記有限列をバイトに変換する、請求項7に記載の方法。
  9. 256を法とする(mod256)関数を適用することで前記有限列をバイトに変換する、請求項8に記載の方法。
  10. ビットストリームを有する電気通信データを暗号化及び復号化するためのコンピュータプログラムであって、前記コンピュータプログラムは、
    i)コンピュータが、サブ鍵の個数を示す数nとサブ鍵の繰り返しのない固有の長さm i (iは1〜nの整数)バイトをそれぞれが示すn個の固有の素数m i とに基づき、それぞれが繰り返しのない長さ i バイトを有するn個の固有の乱数を発生して該乱数に基づくn個の前記サブ鍵を生成するステップと
    ii)コンピュータが、n+1番目の乱数Rを発生するステップと
    iii−1)コンピュータが、p =Mod (R)とし、
    iii−2)コンピュータが、i番目の乱数における位置が である各バイトに対して、前記n個の乱数のそれぞれの各 番目のバイトに排他的論理和関数又は加法若しくは減法である数学的関数を連続して適用して値を生成するステップと
    iv)コンピュータが、p の値をそれぞれ1だけインクリメントするステップと
    v)コンピュータが、xバイトの前記ストリーム暗号が生成されるまで、ステップiii−2)とiv)を繰り返し、ステップiii−2)で生成した前記各値をステップiii−2)で生成した以前の値に連接して前記ストリーム暗号が生成するステップと、
    vi)コンピュータが、前記電気通信データの連続したバイトと生成されたストリーム暗号の対応するバイトに、排他的論理和関数又は他の数学的関数である暗号化のための関数を適用して電気通信データを暗号化するステップと
    をコンピュータに実行させるための前記コンピュータプログラム
  11. 各々の前記サブ鍵の前記選択された長さ は10を超える素数である、請求項10に記載のコンピュータプログラム
  12. 前記n個の乱数の前記各 番目のバイトに連続して適用する前記関数は排他的論理和関数であり、コンピュータは、を1として番目の乱数のp 番目のバイトi+1番目乱数のp i+1 番目のバイトの組に対して初めに、排他的論理和関数を適用して結果を得て、連続してを1だけインクリメントし、次の乱数のp i+1 番目のバイトとi番目の乱数までの結果との組に排他的論理和関数を適用して新たな結果を得る、請求項10に記載のコンピュータプログラム
  13. 前記コンピュータプログラムは、コンピュータにさらに非線形化関数を前記ストリーム暗号に適用するステップを実行させる請求項10に記載のコンピュータプログラム
  14. 前記非線形化関数は換字式暗号法である、請求項13に記載のコンピュータプログラム
  15. 前記サブ鍵とするステップにおいて、
    コンピュータが、
    i)完全平方ではない、n+2番目の乱数を発生し、
    ii)前記n+2番目の乱数の平方根を計算し、
    iii)n+3番目の乱数を発生し、
    iv)前記n+2番目の乱数の平方根の中での位置が前記n+3番目の乱数にしたがって計算されるから始めての有限列を前記n+2番目の乱数の平方根から連続して取得し、前記有限列の各々を生成されたバイトに変換し、
    v)前記n個の乱数の前記各々の選択した長さ に達するまで、各生成されたバイトを連続して連接することにより、前記n個の乱数の各々を生成するステップをコンピュータに実行させる、請求項10に記載のコンピュータプログラム
  16. 前記数の有限列は10進数で少なくとも4桁の長さである、請求項15に記載のコンピュータプログラム
  17. 法(mod)関数を適用することで前記有限列をバイトに変換する、請求項15に記載のコンピュータプログラム
  18. 256を法とする(mod256)関数を適用することで前記有限列をバイトに変換する、請求項17に記載のコンピュータプログラム
JP2004552295A 2002-11-20 2003-10-06 複数鍵を用いたストリーム暗号の生成方法 Expired - Fee Related JP4608319B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/299,847 US7190791B2 (en) 2002-11-20 2002-11-20 Method of encryption using multi-key process to create a variable-length key
PCT/CA2003/001538 WO2004047361A1 (en) 2002-11-20 2003-10-06 Method of generating a stream cipher using multiple keys

Publications (2)

Publication Number Publication Date
JP2006506668A JP2006506668A (ja) 2006-02-23
JP4608319B2 true JP4608319B2 (ja) 2011-01-12

Family

ID=32297785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004552295A Expired - Fee Related JP4608319B2 (ja) 2002-11-20 2003-10-06 複数鍵を用いたストリーム暗号の生成方法

Country Status (13)

Country Link
US (1) US7190791B2 (ja)
EP (1) EP1566009B1 (ja)
JP (1) JP4608319B2 (ja)
KR (1) KR100994841B1 (ja)
CN (1) CN100568802C (ja)
AT (1) ATE370569T1 (ja)
AU (1) AU2003273688B2 (ja)
BR (2) BRPI0316473B1 (ja)
CA (2) CA2414261A1 (ja)
DE (1) DE60315700T2 (ja)
ES (1) ES2291675T3 (ja)
MX (1) MXPA05005358A (ja)
WO (1) WO2004047361A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006629B2 (en) * 2000-12-19 2006-02-28 International Business Machines Corporation Method and system for processing a data set
FR2838262B1 (fr) * 2002-04-08 2004-07-30 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte
CA2570340A1 (en) * 2004-06-14 2005-12-29 The University Of North Carolina At Greensboro Systems and methods for digital content security
CN101479984B (zh) * 2006-04-25 2011-06-08 斯蒂芬·L.·博伦 用于身份管理、验证服务器、数据安全和防止中间人攻击的动态分发密钥系统和方法
US20080304664A1 (en) * 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
US20100235689A1 (en) * 2009-03-16 2010-09-16 Qualcomm Incorporated Apparatus and method for employing codes for telecommunications
WO2012025988A1 (ja) * 2010-08-24 2012-03-01 三菱電機株式会社 暗号化装置、暗号化システム、暗号化方法及び暗号化プログラム
CN102647393B (zh) * 2011-02-21 2017-02-22 鸿合科技有限公司 一种数字标牌的内容防盗播方法
US8767954B2 (en) * 2011-12-01 2014-07-01 Colloid, Llc Methods and systems for deriving a cryptographic framework
US9497185B2 (en) * 2013-12-30 2016-11-15 Google Inc. Systems, methods, and computer program products for providing application validation
CN106209736B (zh) * 2015-05-04 2020-01-17 腾讯科技(深圳)有限公司 流媒体数据播放方法、终端及流媒体服务器
CN105406960B (zh) * 2015-12-20 2019-02-22 河南思维自动化设备股份有限公司 一种信息加密和解密的方法
WO2017132693A2 (en) * 2016-01-28 2017-08-03 Tfor Llc Removing information from data
FI20165911L (fi) * 2016-11-30 2018-05-31 Sam Widlund Menetelmä ja järjestelmä tiedon salaukseen
CN106953875A (zh) * 2017-04-26 2017-07-14 吉林大学珠海学院 基于多密钥流密码的顺序加密方法
ZA202004225B (en) 2019-07-11 2023-07-26 Entersekt International Ltd System and method for secure input at a remote service
US11621837B2 (en) 2020-09-03 2023-04-04 Theon Technology Llc Secure encryption of data using partial-key cryptography
US11310042B2 (en) 2020-09-11 2022-04-19 Crown Sterling Limited, LLC Methods of storing and distributing large keys
US11552780B2 (en) * 2020-12-23 2023-01-10 Theon Technologies, Inc. Homomorphic one-time pad encryption
US11755772B2 (en) * 2021-09-20 2023-09-12 Crown Sterling Limited, LLC Securing data in a blockchain with a one-time pad
US11943336B2 (en) 2021-11-22 2024-03-26 Theon Technology Llc Use of gradient decent function in cryptography
US11791988B2 (en) 2021-11-22 2023-10-17 Theon Technology Llc Use of random entropy in cryptography
US11902420B2 (en) * 2021-11-23 2024-02-13 Theon Technology Llc Partial cryptographic key transport using one-time pad encryption
US20240069889A1 (en) * 2022-08-25 2024-02-29 National Technology & Engineering Solutions Of Sandia, Llc Systems and methods for automatically updating system firmware

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3706941A (en) 1970-10-28 1972-12-19 Atomic Energy Commission Random number generator
US4058573A (en) * 1971-07-02 1977-11-15 Ciba-Geigy Corporation Process for the addition of gaseous non-halogenated olefins and acetylenes to perfluoroalkyl iodides
SE385644B (sv) 1974-10-17 1976-07-12 Ericsson Telefon Ab L M Anordning vid kryptering och dekryptering av meddelanden
US4375579A (en) * 1980-01-30 1983-03-01 Wisconsin Alumni Research Foundation Database encryption and decryption circuit and method using subkeys
US4791594A (en) 1986-03-28 1988-12-13 Technology Inc. 64 Random-access psuedo random number generator
JPH0769662B2 (ja) * 1988-08-03 1995-07-31 松下電器産業株式会社 二元擬似乱数発生器
US5414771A (en) * 1993-07-13 1995-05-09 Mrj, Inc. System and method for the creation of random sequences and for the cryptographic protection of communications
US5454039A (en) 1993-12-06 1995-09-26 International Business Machines Corporation Software-efficient pseudorandom function and the use thereof for encryption
JPH08181679A (ja) 1994-12-26 1996-07-12 Nec Corp 疑似乱数雑音発生装置
US5533128A (en) 1995-01-18 1996-07-02 Vobach; Arnold Pseudo-random transposition cipher system and method
JP3557037B2 (ja) * 1996-04-22 2004-08-25 株式会社東芝 乱数生成装置及び方法、鍵系列生成装置及び方法、暗号化装置及び方法、並びに復号装置及び方法
AU1732597A (en) * 1996-02-21 1997-09-10 Card Call Service Co., Ltd. Communication method using common cryptographic key
US5666414A (en) * 1996-03-21 1997-09-09 Micali; Silvio Guaranteed partial key-escrow
CA2262551C (en) 1996-08-16 2002-09-17 Bell Communications Research, Inc. Improved cryptographically secure pseudo-random bit generator for fast and secure encryption
US6307940B1 (en) * 1997-06-25 2001-10-23 Canon Kabushiki Kaisha Communication network for encrypting/deciphering communication text while updating encryption key, a communication terminal thereof, and a communication method thereof
US6307936B1 (en) * 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US6345359B1 (en) 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6151676A (en) * 1997-12-24 2000-11-21 Philips Electronics North America Corporation Administration and utilization of secret fresh random numbers in a networked environment
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
CN1240318A (zh) * 1998-03-04 2000-01-05 朗迅科技公司 产生伪随机数的方法
US6490353B1 (en) * 1998-11-23 2002-12-03 Tan Daniel Tiong Hok Data encrypting and decrypting apparatus and method
US6415032B1 (en) 1998-12-01 2002-07-02 Xilinx, Inc. Encryption technique using stream cipher and block cipher
US20030210783A1 (en) 2000-07-27 2003-11-13 Ross Filippi Method and system of encryption
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US20030016823A1 (en) 2001-07-05 2003-01-23 Shine Chung Method and apparatus of using irrational numbers in random number generators for cryptography
US7197142B2 (en) 2001-08-24 2007-03-27 Alten Alexander I System and methods for a vernam stream cipher
ES2296862T3 (es) * 2001-10-19 2008-05-01 Matsushita Electric Industrial Co., Ltd Dispositivo de salida de matriz numerica, procedimiento de salida de matriz numerica, dispositivo de encriptacion y dispositivo de desencriptacion.

Also Published As

Publication number Publication date
AU2003273688B2 (en) 2009-06-25
ES2291675T3 (es) 2008-03-01
DE60315700D1 (de) 2007-09-27
EP1566009A1 (en) 2005-08-24
KR100994841B1 (ko) 2010-11-16
CN100568802C (zh) 2009-12-09
ATE370569T1 (de) 2007-09-15
BR0316473A (pt) 2005-10-11
CA2505338A1 (en) 2004-06-03
CA2505338C (en) 2012-09-04
EP1566009B1 (en) 2007-08-15
BRPI0316473B1 (pt) 2018-03-13
KR20050086746A (ko) 2005-08-30
MXPA05005358A (es) 2005-08-03
DE60315700T2 (de) 2008-06-05
CN1714531A (zh) 2005-12-28
WO2004047361A1 (en) 2004-06-03
US20040096056A1 (en) 2004-05-20
US7190791B2 (en) 2007-03-13
AU2003273688A1 (en) 2004-06-15
CA2414261A1 (en) 2004-05-20
JP2006506668A (ja) 2006-02-23

Similar Documents

Publication Publication Date Title
JP4608319B2 (ja) 複数鍵を用いたストリーム暗号の生成方法
JP3339688B2 (ja) 非決定論的ミクスチャー発生器ストリーム暗号化システム
Gueron et al. AES-GCM-SIV: Nonce misuse-resistant authenticated encryption
KR101119933B1 (ko) 보안성을 향상시키는 순열 데이터 변환
US20070028088A1 (en) Polymorphic encryption method and system
JP2008513811A (ja) 計算変換の方法及びシステム
Singh Modified Vigenere encryption algorithm and its hybrid implementation with Base64 and AES
WO2005076521A1 (en) Method of generating a stream cipher using multiple keys
JP2004258667A (ja) N個のデジットを含むワードの擬似ランダム置換の生成方法
Asaad et al. Advanced Encryption Standard Enhancement with Output Feedback Block Mode Operation
Joshy et al. Text to image encryption technique using RGB substitution and AES
KR20030019365A (ko) 메시지 인증 코드에 대한 키 정수 치환 발생 방법 및 장치
JP2001503534A (ja) データの非相関化方法
JP2003304237A (ja) 共通鍵生成方法、その共通鍵を用いる暗号方法および共通鍵管理方法並びに端末の固体番号による固体認証方法、並びにそれらの方法を実行するプログラム、及びそのプログラムを含む応用ソフトウェア
AU750408B2 (en) A method of combining a serial keystream output with binary information
JP2001509608A (ja) デジタル・データのlビットの入力ブロックをlビットの出力ブロックに暗号変換するための方法
Abbas et al. Audio cryptosystem based on LFSH and Chaotic map with ECC key management
AU750323B2 (en) A method of generating a key for a public key encryption system
Gueron et al. RFC 8452: AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption
Lindell Internet Research Task Force (IRTF) S. Gueron Request for Comments: 8452 University of Haifa and Amazon Category: Informational A. Langley
JP2024053189A (ja) 暗号処理装置、暗号処理装置の暗号処理方法およびプログラム
Sadiq et al. Proposal for Scrambled Method based on NTRU
KR20030001888A (ko) 키를 사용하지 않고 블록 정보만을 이용하는 암호알고리즘 설계 방법
Chao et al. An Efficient Stream Cipher Using Variable Sizes of Key-Stream

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100511

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100527

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100603

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100630

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131015

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees