JP6244429B2 - ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム - Google Patents

ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム Download PDF

Info

Publication number
JP6244429B2
JP6244429B2 JP2016186682A JP2016186682A JP6244429B2 JP 6244429 B2 JP6244429 B2 JP 6244429B2 JP 2016186682 A JP2016186682 A JP 2016186682A JP 2016186682 A JP2016186682 A JP 2016186682A JP 6244429 B2 JP6244429 B2 JP 6244429B2
Authority
JP
Japan
Prior art keywords
key
key sequence
initial
value
processing
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
JP2016186682A
Other languages
English (en)
Other versions
JP2016220256A (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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Publication of JP2016220256A publication Critical patent/JP2016220256A/ja
Application granted granted Critical
Publication of JP6244429B2 publication Critical patent/JP6244429B2/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • 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
    • H04L9/0668Pseudorandom 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

Description

本発明は、暗号化あるいは復号化の処理を高速に行うストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラムに関する。
情報化社会である現在ではデータの暗号化は必須であり、暗号技術はスマートカード等多くのデバイスに実装されている。暗号アルゴリズムは非常に強固になってきており、これを直接解読するとなると膨大な時間と労力を費やすことになるため、暗号化されていればデータは安全であるといえる。
ところが、近年、暗号に対するサイドチャネル攻撃が大きな問題となっている。サイドチャネル攻撃は、暗号アルゴリズムを直接解読するのではなく、暗号化または復号処理中にデバイスから生じる電圧波形や電磁波等の2次的な情報を攻撃者が入手し、それらを解析することで秘密鍵を復元する攻撃である。この攻撃は安全とされている暗号化アルゴリズムであっても、適切に実装されていない場合には攻撃可能であり、さらに痕跡が残らないこともあり大きな問題となっている。
サイドチャネル攻撃の1つである差分電力解析(Differential Power Analysis)は、攻撃者はまず、多数の入力データに対する電圧波形を取得する。次に、秘密鍵の値を推定し、同時に選択関数を定める。定めた選択関数を用いて取得した電圧波形を分類し、それぞれのグループの波形の和を取る。推測した秘密鍵の値が正しければ波形にピークが表れるため、正しい秘密鍵であるか否かの判別ができ、秘密鍵を復元することができる(例えば、非特許文献1参照。)。
このようなサイドチャネル攻撃を防ぐために、乱数で暗号化または復号処理中の値をマスクすることによって、暗号化または復号処理中の値と秘密鍵との相関を失くす方法が有効である。そこで、暗号アルゴリズムとは別に乱数生成のための回路を備え、備えられた回路により生成された乱数を用いてマスクを行うのが一般的である。
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスにおいては、通信の秘匿を実現するため、暗号が利用される。また、昨今、デジタルデータの量が急激に増えており、同時にネットワークを通じて送受信されるデータ量も急激に増えている。そのため、これらのデータの中には個人情報や企業の機密情報なども含まれており、暗号化して安全に送受信する必要がある。ここで、暗号方式として最も一般的なものは、1つの鍵で暗号化・復号化を行う共通鍵暗号方式であるが、共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式の2つに分けられる。
前者は、最も一般的に用いられている方式であるが、後者の方が処理速度に優れるため、近年注目を集めつつある。ここで、ストリーム暗号は、内部状態を更新しながら暗号化を行う、ステートフルな方式である(例えば、非特許文献2参照。)。
H.Henricksen et al.,"Side−Channel Analysis of the K2 Stream Cipher",ACISP2010,2010. Kiyomoto,Tanaka,Sakurai,"K2:A Stream Cipher Algorithm Using Dynamic Feedback Control," SECRYPT2007,2007.
しかしながら、この方式では別途回路が必要となるため、回路規模が増加し、ICカード等のデバイスでは実装できないといった問題があった。また、乱数生成処理は比較的重い処理であるため、処理速度や消費電力等への悪影響があるという問題点もあった。
また、暗号化するデータサイズが大きくなるに連れて暗号化および復号化にかかる時間も長くなるという問題があり、高速な暗号実装が必要となる。
そこで、本発明は、暗号化あるいは復号化の処理を高速に行うストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラムを提供することを目的とする。
(1)本発明は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、図7の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、図7のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する暗号文生成手段(例えば、図7の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
この発明によれば、鍵系列生成手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(2)本発明は、初期鍵を拡張する初期鍵拡張手段(例えば、図7の鍵拡張部1100に相当)と、初期化処理において、該拡張した初期鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、図7の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、図7のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する暗号文生成手段(例えば、図7の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
この発明によれば、初期鍵拡張手段は、初期鍵を拡張する。初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(3)本発明は、(1)または(2)のストリーム暗号の暗号化装置について、前記入力切替手段が、フリップフロップであることを特徴とするストリーム暗号の暗号化装置を提案している。
この発明によれば、入力切替手段が、フリップフロップである。したがって、「0」あるいは「1」を入力することにより、簡単に鍵系列生成手段への入力を切り替えることができる。
(4)本発明は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、図12の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、図12のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する平文生成手段(例えば、図12の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
この発明によれば、鍵系列生成手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(5)本発明は、初期鍵を拡張する初期鍵拡張手段(例えば、図12の鍵拡張部1100に相当)と、初期化処理において、該拡張した初期鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段(例えば、図12の非線形処理部1300に相当)と、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段(例えば、図12のフリップフロップ1200に相当)と、前記鍵系列生成手段が実行する非線形処理が並列に処理され、前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、前記生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する平文生成手段(例えば、図12の排他的論理和演算器1400に相当)と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
この発明によれば、初期鍵拡張手段は、初期鍵を拡張する。初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する。入力切替手段は、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力する。暗号文生成手段は、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(6)本発明は、(4)または(5)のストリーム暗号の復号化装置について、前記入力切替手段が、フリップフロップであることを特徴とするストリーム暗号の復号化装置を提案している。
この発明によれば、入力切替手段が、フリップフロップである。したがって、「0」あるいは「1」を入力することにより、簡単に鍵系列生成手段への入力を切り替えることができる。
(7)本発明は、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、図11のステップS1101に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、図11のステップS1102に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、図11のステップS1103に相当)と、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップ(例えば、図11のステップS1104に相当)と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(8)本発明は、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(9)本発明は、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、図15のステップS1201に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、図15のステップS1202に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、図15のステップS1203に相当)と、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップ(例えば、図15のステップS1204に相当)と、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(10)本発明は、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(11)本発明は、ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、図11のステップS1101に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、図11のステップS1102に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、図11のステップS1103に相当)と、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップ(例えば、図11のステップS1104に相当)と、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(12)本発明は、ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(13)本発明は、ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップ(例えば、図15のステップS1201に相当)と、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップ(例えば、図15のステップS1202に相当)と、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップ(例えば、図15のステップS1203に相当)と、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップ(例えば、図15のステップS1204に相当)と、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
(14)本発明は、ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、鍵拡張手段が、初期鍵を拡張して拡張鍵を生成し、初期化処理手段が、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う。そして、鍵系列生成手段が、初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し、暗号文生成手段が、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する。つまり、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができる。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができる。
本発明によれば、入力切替手段が、初期化処理において、初期鍵を拡張した拡張鍵と初期値とを鍵系列生成手段に入力し、初期化処理終了後においては、非線形部からのフィードバック値を鍵系列生成手段に入力するため、データの遅延量が、増大することを防止できるため、暗号化にかかる時間を短くすることができるという効果がある。また、鍵系列生成手段が実行する非線形処理が並列に処理され、鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持するため、多くの処理が多重化でき、さらに、非線形関数は、テーブルを1回だけ参照すれば、処理を行うことができるため、暗号化にかかる時間を短くすることができるという効果がある。
本発明の第1の実施形態に係る非線形処理器を含む擬似乱数生成器の構成を示す図である。 従来の非線形処理器の構成を示す図である。 本発明の第1の実施形態に係る非線形処理器の構成を示す図である。 本発明の第1の実施形態に係る非線形処理器における非線形処理器内部のデータをマスクするマスク処理フローを示す図である。 第1の応用例に係るストリーム暗号の暗号化装置の機能構成を示す図である。 第2の応用例に係るストリーム暗号の復号装置の機能構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の概略構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の非線形処理部の概略構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の非線形処理部の構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の非線形処理部の構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。 本発明の第3の実施形態に係るストリーム暗号の復号化装置の概略構成を示す図である。 本発明の第3の実施形態に係るストリーム暗号の復号化装置の非線形処理部の構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の復号化装置の非線形処理部の構成を示す図である。 本発明の第2の実施形態に係るストリーム暗号の復号化装置の処理を示す図である。
以下、図面を用いて、本発明の実施形態について詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含むさまざまなバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
<第1の実施形態>
図1から図4を用いて、本発明の第1の実施形態について説明する。
<擬似乱数生成器の構成>
図1は、本実施形態に係る非線形処理器300を含む擬似乱数生成器10の構成を示す図である。本実施形態において、ストリーム暗号の1つであるK2の擬似乱数生成器10および非線形処理器300を例に説明するが、他のストリーム暗号の擬似乱数生成器や非線形処理器にも本発明を適用することができる。
擬似乱数生成器10は、秘密鍵と初期ベクトルとに基づいて、平文を暗号化または暗号文を復号するのに用いるキーストリームを生成する。図1に示すように、擬似乱数生成器10は、2個のフィードバックシフトレジスタ、FSR−A100aおよびFSR−B100bと、非線形処理器300と、クロック制御装置200と、4つの排他的論理演算器400a〜dとから構成される。
FSR−A100aは、5段のレジスタを持ち、各レジスタをAからAt+4とする。FSR−A100aは、レジスタに格納されている値のうち必要な値を、後述するクロック制御装置200および非線形処理器300に出力する。また、FSR−A100aは、フィードバック関数により状態遷移する。具体的には、FSR−A100aは、AとAt+4に格納されている値を非線形処理器300に出力すると、1つ右隣のレジスタに値をシフトさせる。そして、FSR−A100aは、排他的論理演算器400aにより実行されたAとAt+3との排他的論理和演算の演算結果を、左端のAt+4に格納する。
FSR−B100bは、11段のレジスタを持ち、各レジスタをBからBt+10とする。FSR−B100bは、FSR−A100aの出力をうけるクロック制御装置200によりフィードバック関数が制御される。また、FSR−B100bもFSR−A100aと同様、B、Bt+4、Bt+9、およびBt+10に格納されている値を非線形処理器300に出力すると、1つ右隣のレジスタに値をシフトさせる。そして、FSR−B100bは、排他的論理演算器400b〜dにより実行されたB、Bt+1、Bt+6およびBt+8の排他的論理和演算の演算結果を、左端のBt+10に格納する。
クロック制御装置200は、FSR−A100aからの入力値に対して、FSR−B100bのフィードバック関数を決定する処理を行う。
非線形処理器300は、FSR−A100aから出力されたA、At+4と、FSR−B100bから出力されたB、Bt+4、Bt+9、Bt+10とに非線形処理を施して、キーストリームを出力する。従来の非線形処理器30の構成を示す図2と、本実施形態に係る非線形処理器300の構成を示す図3とを用いて、本実施形態に係る非線形処理器30について説明する。
<非線形処理器の構成>
まず、図2を用いて従来の非線形処理器30について説明する。従来の非線形処理器30は、図2に示すように、加算器301a、301b、301c、301dと、内部レジスタ(L1、L2、R1、R2)310、311、312、313と、Sub320a、320b、320c、320dと、排他的論理和演算器302a、302b、302c、302dとから構成されている。
加算器301aは、FSR−B100bと内部レジスタL2と排他的論理和演算器302aに接続されており、内部レジスタL2から出力された値とFSR−B100bのBt+10から出力された値とを加算して、排他的論理和演算器302aに出力する。
加算器301bは、FSR−B100bと内部レジスタL2とSub320bに接続されており、内部レジスタL2から出力された値とFSR−B100bのBt+9から出力された値とを加算して、Sub320bに出力する。
加算器301cは、FSR−B100bと内部レジスタR2とSub320cに接続されており、内部レジスタR2から出力された値とFSR−B100bのBt+5から出力された値とを加算して、Sub320cに出力する。
加算器301dは、FSR−B100bと内部レジスタR2と排他的論理和演算器302bに接続されており、内部レジスタR2から出力された値とFSR−B100bのBから出力された値とを加算して、排他的論理和演算器302cに出力する。
内部レジスタL1は、加算器301cから出力された値をSub320cで非線形置換した値を格納する。
内部レジスタL2は、内部レジスタL1から出力された値をSub320aで非線形置換した値を格納する。
内部レジスタR1は、加算器301bから出力された値をSub320bで非線形置換した値を格納する。
内部レジスタR2は、内部レジスタR1から出力された値をSub320dで非線形置換した値を格納する。
排他的論理和演算器302aは、加算器301aから出力された値と内部レジスタL1の値との排他的論理和演算を行って、演算結果を排他的論理和演算器302bに出力する。
排他的論理和演算器302bは、排他的論理和演算器302aの演算結果とFSR−A100aのAt+4から出力された値との排他的論理和演算を行って、演算結果をキーストリームとして出力する。
排他的論理和演算器302cは、加算器301dから出力された値と内部レジスタR1の値との排他的論理和演算を行って、演算結果を排他的論理和演算器302dに出力する。
排他的論理和演算器302dは、排他的論理和演算器302cの演算結果とFSR−A100aのAから出力された値との排他的論理和演算を行って、演算結果をキーストリームとして出力する。
次に、図3を用いて、本実施形態に係る非線形処理器300について説明する。なお、図2を用いて説明した従来の非線形処理器30と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
図3に示すように、本実施形態に係る非線形処理器300は、従来の非線形処理器30の構成要素に加え、新たに、排他的論理和演算器303a、303bを備える。
排他的論理和演算器303aは、加算器301cから出力された値をSub320cで非線形置換した値と、マスク用乱数との排他的論理和演算を行い、演算結果を内部レジスタL1に出力する。それにより、加算器301cから出力された値をSub320cで非線形置換した値、言い換えると内部レジスタL1に格納する値をマスク用乱数でマスクすることによって、内部レジスタL1に格納された値と秘密鍵との相関を失くし、サイドチャネル攻撃を防ぐことができる。
ここで、マスク用乱数は、FSR−A100aおよびFSR−B100bに格納されている値の一部から生成される。マスク用乱数の生成に用いる値は、FSR−A100aおよびFSR−B100bのレジスタのうち、非線形処理器300がキーストリームを出力する時に更新されることによって、値の乱数性が確保されるレジスタの値を用いる。また、FSR−A100aおよびFSR−B100bのレジスタから抽出した値を加算することによりマスク用乱数を生成する。例えば、FSR−A100aのAt+1、At+2、FSR−B100bのBt+3,Bt+9を加算することにより、マスク用乱数を生成する。
このように、FSR−A100aおよびFSR−B100bのレジスタに格納されている値から、マスク用乱数を生成することにより、別途、マスク用乱数を生成する回路が必要とならない。
本実施形態において、内部レジスタL1は、従来の非線形処理器30の内部レジスタL1と異なり、排他的論理和演算器303aによりマスクされた値を格納する。
排他的論理和演算器303bは、内部レジスタL1から出力された値と、マスク用乱数との排他的論理和演算を行い、演算結果をSub320aに出力する。それにより、排他的論理和演算器303aでマスクされて内部レジスタL1に格納されている値のマスクを外し、マスクを外した値、すなわち、Sub320cで非線形置換された値をSub320aに出力する。
本実施形態においては、内部レジスタL1に格納する値をマスクしたが、他の内部レジスタL2、R1、R2についても内部レジスタL1と同様に、入力端に内部レジスタL2、R1、R2それぞれに入力される値とマスク用乱数との排他的論理演算を行う排他的論理演算器を設け、出力端に内部レジスタL2、R1、R2それぞれから出力される値とマスク用乱数との排他的論理演算を行う排他的論理演算器を設けてもよい。それにより、内部レジスタL2、R1、R2それぞれに格納する値をマスクすることができ、サイドチャネル攻撃に対するより高い安全性を確保できる。
<非線形処理器におけるマスク処理フロー>
図4は、本実施形態に係る非線形処理器300における非線形処理器300内部のデータをマスクするマスク処理フローを示す図である。なお、本処理フローでは、内部レジスタL1の値をマスクする処理について説明するが、他の内部レジスタL2、R1、R2の値についても内部レジスタL1と同様の処理にて値をマスクすることができる。
まず、ステップS1において、排他的論理和演算器303aは、Sub320cの出力値、すなわち、加算器301cから出力された値をSub320cで非線形置換した値と、マスク用乱数との排他的論理和演算を行い、Sub320cの出力値をマスクする。
次に、ステップS2において、内部レジスタL1は、ステップS1でマスクされたSub320cの出力値を格納する。
次に、ステップS3において、排他的論理和演算器303bは、ステップS2で内部レジスタL1に格納された値とマスク用乱数と排他的論理和演算を行い、ステップS1でマスクされて内部レジスタL1に格納されている値のマスクを外す。その結果、マスクを外した値、すなわち、Sub320cで非線形置換された値をSub320aが得られる。
<第1の応用例>
本応用例に係るストリーム暗号の暗号化装置1は、図5に示すように、初期化処理部11と、非線形処理器300と、内部状態更新部12と、暗号化部13とから構成されている。なお、非線形処理器300については、上記にて説明したため、詳細な説明は省略する。
初期化処理部11は、秘密鍵と初期ベクトルとに基づいて、ストリーム暗号の内部状態を初期化し、フィードバックシフトレジスタ(FSR−A100aおよびFSR−B100b)は初期化された内部状態を保持する。具体的には、初期化処理部11は、内蔵のキースケジュールアルゴリズムによるストリーム暗号の内部状態(擬似乱数)を決定し、決定した内部状態をフィードバックレジスタに入力した後、複数回空廻しを行うことにより、初期化された内部状態を保持する。内部状態更新部12は、非線形処理器300がキーストリーム出力時に内部状態を一方向性関数等で更新し、フィードバックシフトレジスタは更新された内部状態を保持する。暗号化部13は、非線形処理器300で生成されたキーストリームと、外部から入力された平文とを排他的論理和演算することにより、暗号文を出力する。
したがって、本応用例のストリーム暗号化装置1は、非線形処理器300を用いて構築されたことから、暗号化処理中の値をマスクするための乱数を生成する回路を別途備えることなく、暗号を安全に実行することが可能な暗号化装置を構成することができる。また、処理速度や消費電力等への影響が少なく、ICカード等のデバイスへの実装が可能な暗号化装置を構成することができる。
<第2の応用例>
本応用例に係るストリーム暗号の復号装置2は、図6に示すように、初期化処理部11と、非線形処理器300と、内部状態更新部12と、復号部14とから構成されている。なお、非線形処理器300については、上記にて説明したため、詳細な説明は省略する。
初期化処理部11は、秘密鍵と初期ベクトルとに基づいて、ストリーム暗号の内部状態を初期化し、フィードバックシフトレジスタ(FSR−A100aおよびFSR−B100b)は初期化された内部状態を保持する。具体的には、初期化処理部11は、内蔵のキースケジュールアルゴリズムによるストリーム暗号の内部状態(擬似乱数)を決定し、決定した内部状態をフィードバックレジスタに入力した後、複数回空廻しを行うことにより、初期化された内部状態を保持する。内部状態更新部12は、非線形処理器300がキーストリーム出力時に内部状態を一方向性関数等で更新し、フィードバックシフトレジスタは更新された内部状態を保持する。復号部14は、非線形処理器300で生成されたキーストリームと、外部から入力された暗号文とを排他的論理和演算することにより、平文を出力する。
したがって、本応用例のストリーム復号装置2は、非線形処理器300を用いて構築されたことから、復号処理中の値をマスクするための乱数を生成する回路を別途備えることなく、暗号を安全に実行することが可能な復号装置を構成することができる。また、処理速度や消費電力等への影響が少なく、ICカード等のデバイスへの実装が可能な復号装置を構成することができる。
<第2の実施形態>
図7から図11を用いて、本発明の第2の実施形態について説明する。
<ストリーム暗号の暗号化装置の概略構成>
図7および図8を用いて、本実施形態に係るストリーム暗号の暗号化装置の概略構成について説明する。
本実施形態に係るストリーム暗号の暗号化装置は、図7に示すように、鍵拡張部1100と、フリップフロップ1200と、非線形処理部1300と、排他的論理和演算器1400とから構成されている。
鍵拡張部1100は、初期鍵を入力して拡張鍵を生成する。フリップフロップ1200は、切替素子であり、具体的には、初期処理状態においては、鍵拡張部1100において、生成された拡張鍵を非線形処理部1300に入力するように作用し、初期処理終了後には、非線形処理部1300からのフィードバック値を非線形処理部1300内の図示しないレジスタに入力するよう作用する。
非線形処理部1300は、図8に示すように、複数の非線形素子からなり、非線形処理を並列的に実行し、鍵系列を出力する。排他的論理和演算器1400は、非線形処理部1300から出力される鍵系列と入力される平文との排他的論理和演算を実行し、暗号文を生成する。なお、本実施形態では、鍵拡張部1100を備えた構成を説明したが、鍵拡張部1100を設けず、予め拡張鍵を用意しておいてもよい。
<非線形処理部の構成>
図9および図10を用いて、本実施形態に係るストリーム暗号の暗号化装置内の非線形処理部の構成について説明する。なお、図9は、加算処理を2重化した場合の構成図であり、図10は、加算処理を3重化した場合の構成図である。
図9に示すように、本実施形態に係るストリーム暗号の暗号化装置内の非線形処理部は、レジスタ310と、加算器1321、1327、1331、1341、1347、1351と、内部メモリ1322、1324、1326、1332、1342、1344、1346、1352と、非線形関数器1323、1325、1343、1345と、セレクタ1333、1353とから構成されている。
ここで、レジスタ1310は、フィードバックシフトレジスタが好ましい。加算器1321は、レジスタ1310と内部メモリ1324に接続され、この加算値を内部メモリ1322に格納する。加算器1331は、レジスタ1310と非線形関数器1325の出力に接続され、この加算値を内部メモリ1332に格納する。セレクタ1333は、内部メモリ1322と内部メモリ1332に接続され、いずれかの値を選択する。そして選択した値を非線形関数器1323に出力する。
非線形関数器1323は、演算結果を内部メモリ1346に格納し、格納した値は、排他的論理和演算器1348および非線形関数器1345に出力される。非線形関数器1345は、演算結果を内部メモリ1344および加算器1351に出力する。内部メモリ1344に格納した値は、加算器1347に出力される。加算器1347は、レジスタ1310からの値と内部メモリ1344に格納した値とを加算し、その演算結果を排他的論理和演算器1348に出力する。排他的論理和演算器1348は、その演算結果である鍵系列を排他的論理和演算器1349に出力し、排他的論理和演算器1349は、この鍵系列と入力される平文の排他的論理和演算を行って暗号文を出力する。
一方、非線形関数器1345の演算結果は、加算器1351に供給される。加算器1351は、レジスタ1310からの値と非線形関数器1345からの演算結果とを加算して内部メモリ1352に格納する。また、内部メモリ1344に格納された値は、加算器1341に供給され、加算器1341は、レジスタ1310からの値とを加算して、その値を内部メモリ1342に格納する。セレクタ1353は、内部メモリ1352および1342から値を読み出して、いずれかの値を選択して、非線形関数器1343に出力する。
非線形関数器1343は、演算結果を内部メモリ1326に格納する。内部メモリ1326に格納された値は、排他的論理和演算器1328および非線形関数器1325に供給される。非線形関数器1325は、演算結果を内部メモリ1324に格納するとともに、加算器1331に出力する。
内部メモリ1324に格納された値は、加算器1321および加算器1327に供給される。加算器1327は、内部メモリ1324に格納された値とレジスタ1310からの値とを加算して、排他的論理和演算器1328に、その値を出力する。排他的論理和演算器1328は、加算器1327からの値と、内部メモリ1326の値との排他的論理和演算を行い、鍵系列を生成して、排他的論理和演算器1329に出力する。排他的論理和演算器1329は、鍵系列と平文を入力し、これらの排他的論理和演算を行うことにより暗号文を出力する。
なお、図中、一点鎖線で囲んだブロックが多重化のために新たに設けられたブロックであり、多重化に伴い、1クロック後と2クロック後のレジスタの値が必要となるため、それぞれ該当する部分からレジスタの値を取得している。
図10に示すように、本実施形態に係るストリーム暗号の暗号化装置内の非線形処理部は、レジスタ1510、1511と、加算器1521、1527、1531、1534、1541、1547、1551、1554と、内部メモリ1522、1524、1526、1532、1535、1542、1544、1546、1552、1555と、非線形関数器1523、1525、1536、1543、1545、1556と、セレクタ1533、1553とから構成されている。
ここで、レジスタ1510は、フィードバックシフトレジスタが好ましい。加算器1521は、レジスタ1510と内部メモリ1524に接続され、この加算値を内部メモリ1522に格納する。加算器1531は、レジスタ1510と非線形関数器1525の出力に接続され、この加算値を内部メモリ1532に格納する。また、加算器1534は、レジスタ1511と非線形関数器1536とに接続され、この加算値を内部メモリ1535に格納する。セレクタ1533は、内部メモリ1522、1532、1535に接続され、いずれかの値を選択する。そして選択した値を非線形関数器1523に出力する。
非線形関数器1523は、演算結果を内部メモリ1546に格納するとともに、非線形関数器1556に出力する。格納した値は、排他的論理和演算器1548および非線形関数器1545に出力される。非線形関数器1545は、演算結果を内部メモリ1544および加算器1551に出力する。内部メモリ1544に格納した値は、加算器1547に出力される。加算器1547は、レジスタ1510からの値と内部メモリ1544に格納した値とを加算し、その演算結果を排他的論理和演算器1548に出力する。排他的論理和演算器1548は、その演算結果である鍵系列を排他的論理和演算器1549に出力し、排他的論理和演算器1549は、この鍵系列と入力される平文の排他的論理和演算を行って暗号文を出力する。
一方、非線形関数器1545の演算結果は、加算器1551に供給される。加算器1551は、レジスタ1510からの値と非線形関数器1545からの演算結果とを加算して内部メモリ1552に格納する。また、内部メモリ1544に格納された値は、加算器1541に供給され、加算器1541は、レジスタ1510からの値とを加算して、その値を内部メモリ1542に格納する。さらに、加算器1554は、非線形関数器1556の演算結果とレジスタ1510からの値を加算して、内部メモリ1555に格納する。セレクタ1553は、内部メモリ1552、1542、1555から値を読み出して、いずれかの値を選択して、非線形関数器1543に出力する。
非線形関数器1543は、演算結果を内部メモリ1526に格納するとともに、非線形関数器1536に出力する。内部メモリ1526に格納された値は、排他的論理和演算器1528および非線形関数器1525に供給される。非線形関数器1525は、演算結果を内部メモリ1524に格納するとともに、加算器1531に出力する。
内部メモリ1524に格納された値は、加算器1521および加算器1527に供給される。加算器1527は、内部メモリ1524に格納された値とレジスタ1510からの値とを加算して、排他的論理和演算器1528に、その値を出力する。排他的論理和演算器1528は、加算器1527からの値と、内部メモリ1526の値との排他的論理和演算を行い、鍵系列を生成して、排他的論理和演算器1529に出力する。排他的論理和演算器1529は、鍵系列と平文を入力し、これらの排他的論理和演算を行うことにより暗号文を出力する。
なお、図中、一点鎖線で囲んだブロックが多重化のために新たに設けられたブロックであり、多重化に伴い、1クロック後と2クロック後のレジスタの値が必要となるため、それぞれ該当する部分からレジスタの値を取得している。また、図10に示す3重化では、1クロック後のレジスタ510のフィードバック値が必要になるためこれを格納するレジスタ1511を用意する。なお、加算処理を多重化した非線形部を更に多重化することで、さらなる高速化も可能である。
<ストリーム暗号の暗号化装置の処理>
図11を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
まず、鍵拡張部1100が、初期鍵を拡張して拡張鍵を生成し(ステップS1101)、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う(ステップS1102)。
そして、初期化処理終了後に、非線形処理部1300からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し(ステップS1103)、生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する(ステップS1104)。
以上、説明したように、本実施形態によれば、データ遅延量が最大となっているパスにフリップフロップを追加し、そのパスを分割すれば動作クロックが向上し、高速化が可能である。非線形部の一部の処理を多重化することで高速化が可能である。また、多重化した非線形部全体を更に多重化による高速化も可能である。また、従来は、同一の回路で実行されていた初期化処理と鍵ストリーム生成処理をそれぞれ別の回路で実行することによって、鍵系列生成時に鍵拡張処理を行う必要がなくなり、高速化を実現できる。
<第3の実施形態>
図12から図15を用いて、本発明の第3の実施形態について説明する。
<ストリーム暗号の復号化装置の概略構成>
本実施形態に係るストリーム暗号の復号化装置は、図12に示すように、鍵拡張部1100と、フリップフロップ1200と、非線形処理部1300と、排他的論理和演算器1400とから構成されている。なお、第2の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は、省略する。つまり、本実施形態に係るストリーム暗号の復号化装置の構成は、第2の実施形態に係るストリーム暗号の暗号化装置の構成と同様であり、排他的論理和演算器1400に、暗号文を入力して、平文を得る点のみが異なる。
<非線形処理部の構成>
図13および図14を用いて、本実施形態に係るストリーム暗号の復号化装置内の非線形処理部の構成について説明する。なお、図13は、加算処理を2重化した場合の構成図であり、図14は、加算処理を3重化した場合の構成図である。
図13に示すように、本実施形態に係るストリーム暗号の復号化装置内の非線形処理部は、レジスタ1310と、加算器1321、1327、1331、1341、1347、1351と、内部メモリ1322、1324、1326、1332、1342、1344、1346、1352と、非線形関数器1323、1325、1343、1345と、セレクタ1333、1353とから構成されている。
また、図14に示すように、本実施形態に係るストリーム暗号の復号化装置内の非線形処理部は、レジスタ1510、1511と、加算器1521、1527、1531、1534、1541、1547、1551、1554と、内部メモリ1522、1524、1526、1532、1535、1542、1544、1546、1552、1555と、非線形関数器1523、1525、1536、1543、1545、1556と、セレクタ1533、1553とから構成されている。
ここで、第2の実施形態と同一の符号を付す構成要素については、同様の機能を有することから、その詳細な説明は、省略する。つまり、本実施形態に係るストリーム暗号の復号化装置の構成は、第2の実施形態に係るストリーム暗号の暗号化装置の構成と同様であり、排他的論理和演算器1329、1349、1529、1549に、暗号文を入力して、平文を得る点のみが異なる。
<ストリーム暗号の復号化装置の処理>
図15を用いて、本実施形態に係るストリーム暗号の復号化装置の処理について説明する。
まず、鍵拡張部1100が、初期鍵を拡張して拡張鍵を生成し(ステップS1201)、初期化処理において、生成した拡張鍵と初期値とを入力し、初期化処理を行う(ステップS1202)。
そして、初期化処理終了後に、非線形処理部1300からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成し(ステップS1203)、生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する(ステップS1204)。
以上、説明したように、本実施形態によれば、データ遅延量が最大となっているパスにフリップフロップを追加し、そのパスを分割すれば動作クロックが向上し、高速化が可能である。非線形部の一部の処理を多重化することで高速化が可能である。また、多重化した非線形部全体を更に多重化による高速化も可能である。また、従来は、同一の回路で実行されていた初期化処理と鍵ストリーム生成処理をそれぞれ別の回路で実行することによって、鍵系列生成時に鍵拡張処理を行う必要がなくなり、高速化を実現できる。
なお、ストリーム暗号の暗号化装置およびストリーム暗号の復号化装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号化装置およびストリーム暗号の復号化装置に読み込ませ、実行することによって本発明のストリーム暗号の暗号化装置およびストリーム暗号の復号化装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1 暗号化装置
2 復号装置
10 擬似乱数生成器
11 初期化処理部
12 内部状態更新部
13 暗号化部
14 復号部
100a、100b フィードバックシフトレジスタ
200 クロック制御装置
300 非線形処理器
301a、301b、301c、301d 加算器
302a、302b、302c、302d、303a、303b 排他的論理演算器
310、311、312、313 内部レジスタ(L1、L2、R1、R2)
320a、320b、320c、320d 非線形置換器(Sub)
1100;鍵拡張部
1200;フリップフロップ
1300;非線形処理部
1310;レジスタ
1321;加算器
1327;加算器
1331;加算器
1341:加算器
1347;加算器
1351;加算器
1322;内部メモリ
1324;内部メモリ
1326;内部メモリ
1332;内部メモリ
1342;内部メモリ
1344;内部メモリ
1346;内部メモリ
1352;内部メモリ
1323;非線形関数器
1325;非線形関数器
1343;非線形関数器
1345;非線形関数器
1333;セレクタ
1353;セレクタ
1400;排他的論理和演算器
1521;加算器
1527;加算器
1531;加算器
1534;加算器
1541:加算器
1547;加算器
1551;加算器
1554;加算器
1522;内部メモリ
1524;内部メモリ
1526;内部メモリ
1532;内部メモリ
1535;内部メモリ
1542;内部メモリ
1544;内部メモリ
1546;内部メモリ
1552;内部メモリ
1555;内部メモリ
1523;非線形関数器
1525;非線形関数器
1536;非線形関数器
1543;非線形関数器
1545;非線形関数器
1556;非線形関数器
1533;セレクタ
1553;セレクタ

Claims (14)

  1. 初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段と、
    初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段と、
    前記鍵系列生成手段が実行する非線形処理が並列に処理され、
    前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、
    前記生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する暗号文生成手段と、
    を備えたことを特徴とするストリーム暗号の暗号化装置。
  2. 初期鍵を拡張する初期鍵拡張手段と、
    初期化処理において、該拡張した初期鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段と、
    初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段と、
    前記鍵系列生成手段が実行する非線形処理が並列に処理され、
    前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、
    前記生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する暗号文生成手段と、
    を備えたことを特徴とするストリーム暗号の暗号化装置。
  3. 前記入力切替手段が、フリップフロップであることを特徴とする請求項1または請求項2に記載のストリーム暗号の暗号化装置。
  4. 初期化処理において、初期鍵を拡張した拡張鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段と、
    初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段と、
    前記鍵系列生成手段が実行する非線形処理が並列に処理され、
    前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、
    前記生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する平文生成手段と、
    を備えたことを特徴とするストリーム暗号の復号化装置。
  5. 初期鍵を拡張する初期鍵拡張手段と、
    初期化処理において、該拡張した初期鍵と初期値とを入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を入力し、鍵系列を生成する鍵系列生成手段と、
    初期化処理において、初期鍵を拡張した拡張鍵と初期値とを前記鍵系列生成手段に入力し、前記初期化処理終了後においては、非線形部からのフィードバック値を前記鍵系列生成手段に入力する入力切替手段と、
    前記鍵系列生成手段が実行する非線形処理が並列に処理され、
    前記鍵系列生成手段内に設けられた非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持し、
    前記生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する平文生成手段と、
    を備えたことを特徴とするストリーム暗号の復号化装置。
  6. 前記入力切替手段が、フリップフロップであることを特徴とする請求項4または請求項5に記載のストリーム暗号の復号化装置。
  7. 鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、
    を備えたことを特徴とするストリーム暗号の暗号化方法。
  8. 鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、
    を備えたことを特徴とするストリーム暗号の暗号化方法。
  9. 鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、
    を備えたことを特徴とするストリーム暗号の復号化方法。
  10. 鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、
    を備えたことを特徴とするストリーム暗号の復号化方法。
  11. ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
    鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、
    をコンピュータに実行させるためのプログラム。
  12. ストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
    鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    暗号文生成手段が、該生成された鍵系列と平文の排他的論理和演算を行い暗号文を生成する第4のステップと、
    をコンピュータに実行させるためのプログラム。
  13. ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、
    鍵拡張手段が、事前に初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、
    をコンピュータに実行させるためのプログラム。
  14. ストリーム暗号の復号化方法をコンピュータに実行させるためのプログラムであって、
    鍵拡張手段が、初期鍵を拡張して拡張鍵を生成する第1のステップと、
    初期化処理手段が、初期化処理において、該生成した拡張鍵と初期値とを入力し、初期化処理を行う第2のステップと、
    鍵系列生成手段が、前記初期化処理終了後に、非線形部からのフィードバック値を入力し、非線形処理を並列に処理するとともに、非線形関数が、並べ替え処理およびフィードバック値を得るための乗算結果をデータテーブルとして保持して処理し、鍵系列を生成する第3のステップと、
    平文生成手段が、該生成された鍵系列と暗号文の排他的論理和演算を行い平文を生成する第4のステップと、
    をコンピュータに実行させるためのプログラム。
JP2016186682A 2011-11-09 2016-09-26 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム Active JP6244429B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011245613 2011-11-09
JP2011245613 2011-11-09
JP2012012014 2012-01-24
JP2012012014 2012-01-24

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013542895A Division JP6042820B2 (ja) 2011-11-09 2012-10-03 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2016220256A JP2016220256A (ja) 2016-12-22
JP6244429B2 true JP6244429B2 (ja) 2017-12-06

Family

ID=48289777

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013542895A Active JP6042820B2 (ja) 2011-11-09 2012-10-03 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP2016186682A Active JP6244429B2 (ja) 2011-11-09 2016-09-26 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013542895A Active JP6042820B2 (ja) 2011-11-09 2012-10-03 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム

Country Status (3)

Country Link
US (2) US9559844B2 (ja)
JP (2) JP6042820B2 (ja)
WO (1) WO2013069392A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
KR101480904B1 (ko) * 2013-09-25 2015-01-13 한국전자통신연구원 부채널 분석을 위한 파형 선택 장치 및 방법
JP2015102639A (ja) * 2013-11-22 2015-06-04 Kddi株式会社 演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置
TWI712915B (zh) 2014-06-12 2020-12-11 美商密碼研究公司 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
US20170085371A1 (en) * 2015-04-07 2017-03-23 Secure Channels Sa System and method for an enhanced xor cipher through extensions
US10892889B2 (en) * 2015-04-07 2021-01-12 Coleridge Enterprises Llc Systems and methods for an enhanced XOR cipher through extensions
JP6697307B2 (ja) * 2016-03-31 2020-05-20 株式会社メガチップス 暗号化装置、プログラム、及び暗号化方法
US11163895B2 (en) * 2016-12-19 2021-11-02 Mitsubishi Electric Corporation Concealment device, data analysis device, and computer readable medium
US11061997B2 (en) * 2017-08-03 2021-07-13 Regents Of The University Of Minnesota Dynamic functional obfuscation
US11190498B1 (en) 2018-01-11 2021-11-30 Secure Channels, Inc. System and method for use of filters within a cryptographic process
US11804955B1 (en) 2019-09-13 2023-10-31 Chol, Inc. Method and system for modulated waveform encryption
CN114553424B (zh) * 2022-02-21 2024-03-15 南京航空航天大学 Zuc-256流密码轻量级硬件系统
CN115208553B (zh) * 2022-07-15 2024-02-27 山东大学 Triad轻量级流密码加密算法的芯片实现装置及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994016509A1 (en) * 1992-12-30 1994-07-21 Telstra Corporation Limited A method and apparatus for generating a cipher stream
JP2940517B2 (ja) * 1997-05-21 1999-08-25 日本電気株式会社 非線形フィードバック・シフトレジスタ回路
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US6490357B1 (en) * 1998-08-28 2002-12-03 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US7623656B2 (en) * 2004-02-17 2009-11-24 Qualcomm Incorporated Stream cipher encryption and message authentication
US8150900B2 (en) * 2004-08-09 2012-04-03 Telecom Italia S.P.A. Random number generation based on logic circuits with feedback
US8019802B2 (en) * 2005-08-24 2011-09-13 Qualcomm Incorporated Cryptographically secure pseudo-random number generator
US20100002876A1 (en) * 2006-05-16 2010-01-07 Kyocera Corporation Encryption apparatus, decryption apparatus, licensing apparatus and content data generation method
JP4917453B2 (ja) * 2007-02-22 2012-04-18 Kddi株式会社 閾値秘密分散装置、閾値秘密分散方法、秘密情報復元方法およびプログラム
WO2008117804A1 (ja) * 2007-03-27 2008-10-02 Nec Corporation ストリーム暗号向け擬似乱数生成装置とプログラムと方法
US20090204656A1 (en) * 2008-02-13 2009-08-13 Infineon Technologies Ag Pseudo random number generator and method for generating a pseudo random number bit sequence
JP2010245881A (ja) * 2009-04-07 2010-10-28 Toshiba Corp 暗号処理装置
JP5431191B2 (ja) * 2010-02-01 2014-03-05 Kddi株式会社 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Also Published As

Publication number Publication date
JPWO2013069392A1 (ja) 2015-04-02
US9559844B2 (en) 2017-01-31
JP2016220256A (ja) 2016-12-22
WO2013069392A1 (ja) 2013-05-16
JP6042820B2 (ja) 2016-12-14
US20150304102A1 (en) 2015-10-22
US20160164674A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
JP6244429B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP5551065B2 (ja) 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化方法およびデバイス
Rahimunnisa et al. FPGA implementation of AES algorithm for high throughput using folded parallel architecture
EP3371928B1 (en) Key sequence generation for cryptographic operations
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
Singh et al. An efficient hardware design and implementation of advanced encryption standard (AES) algorithm
US11824969B2 (en) Method and circuit for performing a substitution operation
Buell Modern symmetric ciphers—Des and Aes
Subramanian et al. Adaptive counter clock gated S-Box transformation based AES algorithm of low power consumption and dissipation in VLSI system design
JP5102536B2 (ja) ストリーム暗号の暗号化装置、復号化装置、暗号化方法、復号化方法およびプログラム
Daoud et al. High-level synthesis optimization of aes-128/192/256 encryption algorithms
Gupta et al. Correlation power analysis on KASUMI: attack and countermeasure
Chaves et al. SCA-Resistance for AES: How Cheap Can We Go?
Naidu et al. Design of high throughput and area efficient advanced encryption system core
Yli-Mäyry et al. Chosen-input side-channel analysis on unrolled light-weight cryptographic hardware
Trivedi et al. Development of platform using nios ii soft core processor for image encryption and decryption using aes algorithm
CN111740818A (zh) 一种数据处理方法、装置、设备及存储介质
Ramesh et al. Side channel analysis of sparx-64/128: Cryptanalysis and countermeasures
Li et al. A new compact architecture for AES with optimized ShiftRows operation
JPWO2019003321A1 (ja) 符号生成装置、符号生成方法および符号生成プログラム
JP2009037095A (ja) データスクランブル装置、データデスクランブル装置、データスクランブル方法、データデスクランブル方法およびプログラム
Hulle et al. High Performance Architecture for LILI-II Stream Cipher
JP2004153460A (ja) セキュア装置及びセキュア方法及びセキュアプログラム
Portella do Canto et al. Buying AES Design Resistance with Speed and Energy
JP2013167729A (ja) 暗号化装置、暗号化回路、暗号化方法、及び、暗号化プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160926

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171113

R150 Certificate of patent or registration of utility model

Ref document number: 6244429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150