JP2008109190A - 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム - Google Patents

自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム Download PDF

Info

Publication number
JP2008109190A
JP2008109190A JP2006287481A JP2006287481A JP2008109190A JP 2008109190 A JP2008109190 A JP 2008109190A JP 2006287481 A JP2006287481 A JP 2006287481A JP 2006287481 A JP2006287481 A JP 2006287481A JP 2008109190 A JP2008109190 A JP 2008109190A
Authority
JP
Japan
Prior art keywords
random number
number sequence
function
input
self
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006287481A
Other languages
English (en)
Other versions
JP5084224B2 (ja
Inventor
Shinsaku Kiyomoto
晋作 清本
Toshiaki Tanaka
俊昭 田中
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
Priority to JP2006287481A priority Critical patent/JP5084224B2/ja
Publication of JP2008109190A publication Critical patent/JP2008109190A/ja
Application granted granted Critical
Publication of JP5084224B2 publication Critical patent/JP5084224B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】自動的な同期回復処理を高速に実行することができる自己同期型ストリーム暗号の暗号化装置等を提供することを目的とする。
【解決手段】暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数からなる第1の非線形置換関数と、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数と、複数個の第2の非線形置換関数を介して接続され、圧縮関数の出力を格納する複数のレジスタと、複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数と、入力した平文と乱数列生成関数が生成した乱数列との排他的論理和演算を行って暗号文を生成する排他的論理和演算器とを備える。
【選択図】図1

Description

本発明は、自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、MAC生成装置、暗号化方法、復号化方法、MAC生成方法およびプログラムに関する。
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、1つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
ストリーム暗号方式は、ブロック暗号方式よりも高速な処理が期待できるため、例えば、映画等の大容量データを伝送するための方式として、近年、注目を浴びているが、ストリーム暗号方式の場合には、暗号処理と復号処理との同期をとらなければならないという問題があった。そのため、一定サイズ以上の誤りなく受信した暗号文を利用して、同期を自動的に回復する自己同期型のストリーム暗号装置が提案されている(例えば、特許文献1参照。)。
特開2001−16197号公報
しかし、従来の方法では、自動的に同期を回復できるものの、処理単位が1ビットずつであったために、処理に時間がかかるといった問題があった。そこで、本発明は、上述の課題に鑑みてなされたものであり、自動的な同期回復処理を高速に実行することができる自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、MAC生成装置、暗号化方法、復号化方法、MAC生成方法およびプログラムを提供することを目的とする。
本発明は、上記の課題を解決するために、以下の事項を提案している。
(1)本発明は、平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックする自己同期型ストリーム暗号の暗号化装置であって、前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数(例えば、図1のS関数1aから1hに相当)と、該複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数(例えば、図1のF関数2に相当)と、複数個の第2の非線形置換関数(例えば、図1のS関数4a、4b・・・に相当)を介して接続され、前記圧縮関数の出力を格納する複数のレジスタ(例えば、図1のレジスタR1、R2、・・・、R16に相当)と、該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数(例えば、図1のG関数5に相当)と、入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って暗号文を生成する排他的論理和演算手段(例えば、図1のXOR6に相当)と、を備えたことを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。
この発明によれば、複数個からなる第1の非線形置換関数が暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う。圧縮関数は、複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する。複数のレジスタは、複数個の第2の非線形置換関数を介して接続され、圧縮関数の出力を格納する。そして、乱数列生成関数は、複数のレジスタからの出力値を入力し、乱数列を生成し、排他的論理和演算手段が、入力した平文と乱数列生成関数が生成した乱数列との排他的論理和演算を行って暗号文を生成する。
したがって、生成した暗号文を入力側にフィードバックする構成となっているため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。
(2)本発明は、(1)の自己同期型ストリーム暗号の暗号化装置について、前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うことにより、圧縮処理を行うことを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。
この発明によれば、圧縮関数が、複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うことから、その後の演算を効率化して、計算負荷を低減することができる。
(3)本発明は、(1)または(2)の自己同期型ストリーム暗号の暗号化装置について、前記乱数列生成関数が、前記複数のレジスタからの出力値のビット数を拡大関数により拡大した後、該拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。
この発明によれば、乱数列生成関数が、複数のレジスタからの出力値のビット数を拡大関数により拡大した後、拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することから、各入力要素が出力に対して均等に影響を及ぼすようになるため、安全性の向上を図ることができる。
(4)本発明は、暗号文を入力し、平文を出力する自己同期型ストリーム暗号の復号化装置であって、前記平文を入力し、入力した平文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数(例えば、図4のS関数7aから7hに相当)と、該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数(例えば、図4のF関数2に相当)と、複数個の第2の非線形置換関数(例えば、図4のS関数4a、4b・・・に相当)を介して接続され、前記圧縮関数の出力を格納する複数のレジスタ(例えば、図4のレジスタR1、R2、・・・、R16に相当)と、該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数(例えば、図1のG関数5に相当)と、入力した前記暗号文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って平文を生成する排他的論理和演算手段(例えば、図1のXOR6に相当)と、を備えたことを特徴とする自己同期型ストリーム暗号の復号化装置を提案している。
この発明によれば、複数個からなる第1の非線形置換関数が暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う。圧縮関数は、複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する。複数のレジスタは、複数個の第2の非線形置換関数を介して接続され、圧縮関数の出力を格納する。そして、乱数列生成関数は、複数のレジスタからの出力値を入力し、乱数列を生成し、排他的論理和演算手段が、入力した暗号文と乱数列生成関数が生成した乱数列との排他的論理和演算を行って平文を生成する。
したがって、仮に同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。
(5)本発明は、(4)の自己同期型ストリーム暗号の復号化装置について、前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うことを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。
この発明によれば、圧縮関数が、複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うことから、その後の演算を効率化して、計算負荷を低減することができる。
(6)本発明は、(4)または(5)の自己同期型ストリーム暗号の暗号化装置について、前記乱数列生成関数が、前記複数のレジスタからの出力値のビット数を拡大関数により拡大した後、該拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。
この発明によれば、乱数列生成関数が、複数のレジスタからの出力値のビット数を拡大関数により拡大した後、拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することから、各入力要素が出力に対して均等に影響を及ぼすようになるため、安全性の向上を図ることができる。
(7)本発明は、前記(1)から(3)のいずれかに記載の自己同期型ストリーム暗号の暗号化装置と前記(4)から(6)のいずれかに記載の自己同期型ストリーム暗号の復号化装置とを備えて構成されることを特徴とする自己同期型ストリーム暗号システムを提案している。
この発明によれば、(1)から(3)のいずれかに記載の自己同期型ストリーム暗号の暗号化装置と(4)から(6)のいずれかに記載の自己同期型ストリーム暗号の復号化装置とを組み合わせることにより、同期を自動的に回復することができる自己同期型ストリーム暗号システムを構築することができる。
(8)本発明は、平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックして最終的な暗号文をメッセージ認証子として出力するMAC生成装置であって、前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数(例えば、図7のS関数1aから1hに相当)と、該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数(例えば、図7のF関数2に相当)と、複数個の第2の非線形置換関数(例えば、図7のS関数4a、4b・・・に相当)を介して接続され、前記圧縮関数の出力を格納する複数のレジスタ(例えば、図7のレジスタR1、R2、・・・、R16に相当)と、該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数(例えば、図1のG関数5に相当)と、入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って最終的な暗号文をメッセージ認証子として生成する排他的論理和演算手段(例えば、図7のXOR6に相当)と、を備えたことを特徴とするMAC生成装置を提案している。
この発明によれば、複数個からなる第1の非線形置換関数が暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う。圧縮関数は、複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する。複数のレジスタは、複数個の第2の非線形置換関数を介して接続され、圧縮関数の出力を格納する。そして、乱数列生成関数は、複数のレジスタからの出力値を入力し、乱数列を生成し、排他的論理和演算手段が、入力した平文と乱数列生成関数が生成した乱数列との排他的論理和演算を行って最終的な暗号文をメッセージ認証子として生成する。
したがって、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。
(9)本発明は、(1)から(3)のいずれかに記載の自己同期型ストリーム暗号の暗号化装置を用いた自己同期型ストリーム暗号の暗号化方法であって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図4のステップS101に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図4のステップS102に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図4のステップS103に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図4のステップS104に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図4のステップS105に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(例えば、図4のステップS106に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図4のステップS107に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図4のステップS108に相当)と、を備えたことを特徴とする自己同期型ストリーム暗号の暗号化方法を提案している。
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、生成した暗号文を入力側にフィードバックするため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。
(10)本発明は、(4)から(6)のいずれかに記載の自己同期型ストリーム暗号の復号化装置を用いた自己同期型ストリーム暗号の復号化方法であって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図6のステップS201に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図6のステップS202に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図6のステップS203に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図6のステップS204に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図6のステップS205に相当)と、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップ(例えば、図6のステップS206に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図6のステップS207に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図6のステップS208に相当)と、を備えたことを特徴とする自己同期型ストリーム暗号の復号化方法を提案している。
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、仮に、同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。
(11)本発明は、(8)に記載のMAC生成装置を用いたMAC生成方法であって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(図8のステップS301に相当)と、すべての前記レジスタに0を代入する第2のステップ(図8のステップS302に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(図8のステップS303に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(図8のステップS304に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(図8のステップS305に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(図8のステップS306に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(図8のステップS307に相当)と、空になったレジスタに暗号文を入力する第8のステップ(図8のステップS308に相当)と、すべての平文を入力したか否かを判断する第9のステップ(図8のステップS309に相当)と、前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップ(図8のステップS310に相当)と、を備えたことを特徴とするMAC生成方法を提案している。
本発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行する。そして、すべての平文を入力したか否かを判断し、すべての平文を入力したと判断したときに、メッセージ認証子を出力する。
(12)本発明は、(1)から(3)のいずれかに記載の自己同期型ストリーム暗号の暗号化装置を用いた自己同期型ストリーム暗号の暗号化方法をコンピュータに実行させるプログラムであって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図4のステップS101に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図4のステップS102に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図4のステップS103に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図4のステップS104に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図4のステップS105に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(例えば、図4のステップS106に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図4のステップS107に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図4のステップS108に相当)と、をコンピュータに実行させるプログラムを提案している。
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、生成した暗号文を入力側にフィードバックするため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。
(13)本発明は、(4)から(6)のいずれかに記載の自己同期型ストリーム暗号の復号化装置を用いた自己同期型ストリーム暗号の復号化方法をコンピュータに実行させるプログラムであって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(例えば、図6のステップS201に相当)と、すべての前記レジスタに0を代入する第2のステップ(例えば、図6のステップS202に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(例えば、図6のステップS203に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(例えば、図6のステップS204に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(例えば、図6のステップS205に相当)と、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップ(例えば、図6のステップS206に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(例えば、図6のステップS207に相当)と、空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップ(例えば、図6のステップS208に相当)と、をコンピュータに実行させるプログラムを提案している。
この発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行して、キーストリーム処理に戻る動作を繰り返し行う。したがって、仮に、同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。
(14)本発明は、(8)に記載のMAC生成装置を用いたMAC生成方法をコンピュータに実行させるプログラムであって、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップ(図8のステップS301に相当)と、すべての前記レジスタに0を代入する第2のステップ(図8のステップS302に相当)と、初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップ(図8のステップS303に相当)と、すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップ(図8のステップS304に相当)と、前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップ(図8のステップS305に相当)と、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップ(図8のステップS306に相当)と、前記レジスタの値を出力側のレジスタに1つシフトする第7のステップ(図8のステップS307に相当)と、空になったレジスタに暗号文を入力する第8のステップ(図8のステップS308に相当)と、すべての平文を入力したか否かを判断する第9のステップ(図8のステップS309に相当)と、前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップ(図8のステップS310に相当)と、をコンピュータに実行させるプログラム。
本発明によれば、鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、第1の非線形置換関数それぞれにセットし、すべてのレジスタに0を代入する。そして、初期値を平文として入力し、暗号化処理を1回行って、レジスタの値を更新し、さらに、すべて0からなる平文を入力して、暗号化処理を32回実行する初期化処理を行う。次に、レジスタそれぞれの値を乱数列生成関数に入力して乱数列を生成するキーストリーム処理を行い、入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する。そして、レジスタの値を出力側のレジスタに1つシフトし、空になったレジスタに暗号文を入力する内部状態更新処理を実行する。そして、すべての平文を入力したか否かを判断し、すべての平文を入力したと判断したときに、メッセージ認証子を出力する。
本発明によれば、高速かつ安全で、自動的に同期回復を行うことができるストリーム暗号を実現することができるという効果がある。
以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
<自己同期型ストリーム暗号の暗号化装置の構成>
本実施形態に係る自己同期型ストリーム暗号の暗号化装置は、図1に示すように、S関数(非線形置換関数、図中、「S」と表記)1a、1b、1c、1d、1e、1f、1g、1h、4a、4bと、F関数(圧縮関数、図中、「F」と表記)2と、レジスタ3a、3b、・・・、3p(図中、「R1、R2、・・・、R16」と表記)と、G関数(非線形関数、図中、「G」と表記)5と、排他的論理和演算器6とから構成されている。
S関数1a、1b、1c、1d、1e、1f、1g、1h、4a、4bは、CPUのワード長をWビットとしたときに、入出力長が一致した全単射関数であり、入力する暗号文に対して、拡大鍵を排他的論理和演算した後に、非線形処理を実行する。
F関数2は、nWビットの暗号文をWビットの暗号文に圧縮する圧縮関数である。なお、具体的な構成については、後述する。レジスタ3a、3b、・・・、3pは、F関数2からの出力を一時的に保持する記憶手段である。G関数5は、nWビットのデータをmWビットのデータに変換する非線形関数である。このとき、nとmには、n>mの関係がある。なお、具体的な構成については、後述する。また、排他的論理和演算器6は、G関数5から出力されるmWビットの乱数列と入力した平文との排他的論理和演算を実行し、mWビットの暗号文を出力する。
<F関数(圧縮関数)の構成>
F関数(圧縮関数)2は、図2に示すように、排他的論理和演算器20a、20b、20c、20d、20e、20f、20gから構成されている。すなわち、F関数(圧縮関数)2は、S関数(非線形置換関数)1a、1b、1c、1d、1e、1f、1g、1hからの出力に対して、排他的論理和演算器20a、20b、20c、20d、20e、20f、20gを用いて、排他的論理和演算を行って、圧縮処理を実行する。これにより、その後の演算を効率化して、計算負荷を低減することができる。
<G関数(非線形関数)の構成>
G関数(非線形関数)5は、図3に示すように、T関数(拡大関数、図中、「T」と示す)51a、51b、・・・、51o、51pと、排他的論理和演算器52a、52b、・・・、52o、52pとから構成されている。
すなわち、G関数(非線形関数)5は、T関数(拡大関数)により、入力データのワード長WビットをmWビットとし、各レジスタの値を変換した後、変換したすべての値に対して、排他的論理和演算器52a、52b、・・・、52o、52pを用いて、排他的論理和演算を実行することにより、乱数列を生成する。これにより、各入力要素が出力に対して均等に影響を及ぼすようになるため、安全性の向上を図ることができる。
<自己同期型ストリーム暗号の暗号化装置の処理動作>
次に、図4を用いて、自己同期型ストリーム暗号の暗号化装置の処理動作について説明する。
まず、初期処理を行って、ストリーム暗号の内部状態をセットする。具体的には、鍵を拡大鍵関数に入力して、拡大鍵を生成し、各S関数1a、1b、1c、1d、1e、1f、1g、1hの鍵としてセットする(ステップS101)。次に、すべてのレジスタ3a、3b、・・・、3pに「0」を代入し(ステップS102)、初期値を平文として入力して、暗号化処理を1回行い(ステップS103)、レジスタ3a、3b、・・・、3pの値を更新する。そして、オール「0」の平文を入力して、暗号化処理を32回実行する(ステップS104)。
次に、キ−ストリームの生成処理として、各レジスタ3a、3b、・・・、3pの値をG関数5に入力して、乱数列を得る(ステップS105)。さらに、暗号化処理として、入力された平文とG関数5から出力された乱数列とを排他的論理和演算器6に入力して、排他的論理和をとって、暗号化を実行する(ステップS106)。
そして、内部状態更新処理として、以下の手順で、各レジスタ3a、3b、・・・、3pの内部状態を更新する。具体的には、各レジスタ3a、3b、・・・、3pに一時格納されていた値を、出力方向(図1の左方向)に1つずつシフトする(ステップS107)。なお、シフトの際には、S関数4a、4b・・・による非線形処理を実行する。また、最左行に配置されたレジスタ3pからシフトにより、はみ出した値は消去される。さらに、暗号文を最右行に配置されたレジスタ3aに入力する(ステップS108)。ここで、レジスタ3aに入力される暗号文は、F関数2で計算された値である。そして、この一連の処理を終了すると、ステップS105に戻って、処理が続行される。
以上説明したように、本実施形態に係る自己同期型ストリーム暗号の暗号化装置によれば、生成した暗号文を入力側にフィードバックする構成となっているため、仮に、同期が乱れた場合であっても、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。
<自己同期型ストリーム暗号の復号化装置の構成>
本実施形態に係る自己同期型ストリーム暗号の復号化装置は、図5に示すように、S関数(非線形置換関数、図中、「S」と表記)7a、7b、7c、7d、7e、7f、7g、7h、4a、4bと、F関数(圧縮関数、図中、「F」と表記)2と、レジスタ3a、3b、・・・、3p(図中、「R1、R2、・・・、R16」と表記)と、G関数(非線形関数、図中、「G」と表記)5と、排他的論理和演算器8とから構成されている。なお、図1と同一の符号を付した構成要素については、同様の機能を有するものであることから、その詳細な説明は省略する。
S関数7a、7b、7c、7d、7e、7f、7g、7hは、CPUのワード長をWビットとしたときに、入出力長が一致した全単射関数であり、入力する暗号文に対して、拡大鍵を排他的論理和演算した後に、非線形処理を実行する。また、排他的論理和演算器8は、G関数5から出力されるmWビットの乱数列と入力した暗号文との排他的論理和演算を実行し、mWビットの平文を出力する。
<自己同期型ストリーム暗号の復号化装置の処理動作>
次に、図6を用いて、自己同期型ストリーム暗号の復号化装置の処理動作について説明する。
まず、初期処理を行って、ストリーム暗号の内部状態をセットする。具体的には、鍵を拡大鍵関数に入力して、拡大鍵を生成し、各S関数7a、7b、7c、7d、7e、7f、7g、7hの鍵としてセットする(ステップS201)。次に、すべてのレジスタ3a、3b、・・・、3pに「0」を代入し(ステップS202)、初期値を平文として入力して、暗号化処理を1回行い(ステップS203)、レジスタ3a、3b、・・・、3pの値を更新する。そして、オール「0」の平文を入力して、暗号化処理を32回実行する(ステップS204)。
次に、キ−ストリームの生成処理として、各レジスタ3a、3b、・・・、3pの値をG関数5に入力して、乱数列を得る(ステップS205)。さらに、復号化処理として、入力された暗号文とG関数5から出力された乱数列とを排他的論理和演算器6に入力して、排他的論理和をとって、復号を実行する(ステップS206)。
そして、内部状態更新処理として、以下の手順で、各レジスタ3a、3b、・・・、3pの内部状態を更新する。具体的には、各レジスタ3a、3b、・・・、3pに一時格納されていた値を、出力方向(図5の左方向)に1つずつシフトする(ステップS207)。なお、シフトの際には、S関数4a、4b・・・による非線形処理を実行する。また、最左行に配置されたレジスタ3pからシフトにより、はみ出した値は消去される。さらに、暗号文を最右行に配置されたレジスタ3aに入力する(ステップS208)。ここで、レジスタ3aに入力される暗号文は、F関数2で計算された値である。そして、この一連の処理を終了すると、ステップS205に戻って、処理が続行される。
以上説明したように、本実施形態に係る自己同期型ストリーム暗号の復号化装置によれば、仮に、同期が乱れた場合であっても、暗号化装置から入力した暗号文により、すべての第1の非線形置換関数が満たされれば、以降、自動的に、同期を回復することができる。また、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。また、すでに説明した自己同期型ストリーム暗号の暗号化装置と自己同期型ストリーム暗号の復号化装置とを組み合わせることにより、同期を自動的に回復することができる自己同期型ストリーム暗号システムを構築することができる。
<MAC生成装置の構成>
MAC生成装置の構成は、図7に示したように、基本的に、すでに説明した図1に示される自己同期型ストリーム暗号の暗号化装置と同様の構成であり、平文を入力し、出力されたmWビットの暗号文から連続するSビットのメッセージ認証子を出力する。
<MAC生成装置の処理動作>
次に、図7を用いて、MAC生成装置の処理動作について説明する。
まず、初期処理を行って、ストリーム暗号の内部状態をセットする。具体的には、鍵を拡大鍵関数に入力して、拡大鍵を生成し、各S関数1a、1b、1c、1d、1e、1f、1g、1hの鍵としてセットする(ステップS301)。次に、すべてのレジスタ3a、3b、・・・、3pに「0」を代入し(ステップS302)、初期値を平文として入力して、暗号化処理を1回行い(ステップS303)、レジスタ3a、3b、・・・、3pの値を更新する。そして、オール「0」の平文を入力して、暗号化処理を32回実行する(ステップS304)。
次に、キ−ストリームの生成処理として、各レジスタ3a、3b、・・・、3pの値をG関数5に入力して、乱数列を得る(ステップS305)。さらに、暗号化処理として、入力された平文とG関数5から出力された乱数列とを排他的論理和演算器6に入力して、排他的論理和をとって、暗号化を実行する(ステップS306)。
そして、内部状態更新処理として、以下の手順で、各レジスタ3a、3b、・・・、3pの内部状態を更新する。具体的には、各レジスタ3a、3b、・・・、3pに一時格納されていた値を、出力方向(図1の左方向)に1つずつシフトする(ステップS307)。なお、シフトの際には、S関数4a、4b・・・による非線形処理を実行する。また、最左行に配置されたレジスタ3pからシフトすることにより、はみ出した値は消去される。さらに、暗号文を最右行に配置されたレジスタ3aに入力する(ステップS308)。ここで、レジスタ3aに入力される暗号文は、F関数2で計算された値である。そして、すべての平文が入力されていない場合(ステップS309の「No」)には、ステップS305に戻って、処理が続行される。一方、すべての平文が入力された場合(ステップS309の「YES」)には、Sビットのメッセージ認証子を出力し(ステップS310)、すべての処理を終了する。
以上説明したように、本実施形態に係るMAC生成装置によれば、装置構成を簡略化したことから、処理の高速化を図ることができる。さらに、非線形置換関数を入力側に複数配置するとともに、圧縮関数が、複数の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力することから、特に、処理負荷の重い非線形関数処理を最小限に抑えることにより、処理の高速化を図ることができる。
なお、上述の一連の処理をプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、自己同期型ストリーム暗号システム、MAC生成装置に読み込ませ、実行することによって本発明の自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、自己同期型ストリーム暗号システム、MAC生成装置を実現することができる。
また、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明の自己同期型ストリーム暗号の暗号化装置の構成図である。 F関数の構成図である。 G関数の構成図である。 本発明の自己同期型ストリーム暗号の暗号化装置の処理フロー図である。 本発明の自己同期型ストリーム暗号の復号化装置の構成図である。 本発明の自己同期型ストリーム暗号の復号化装置の処理フロー図である。 本発明のMAC生成装置の構成図である。 本発明のMAC生成装置の処理フロー図である。
符号の説明
1a、1b、1c、1d、1e、1f、1g、1h、4a、4b、7a、7b、7c、7d、7e、7f、7g、7h・・・S関数、2・・・F関数、3a、3b、・・・、3p・・・レジスタ、5・・・G関数、6、8・・・排他的論理和演算器

Claims (14)

  1. 平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックする自己同期型ストリーム暗号の暗号化装置であって、
    前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数と、
    該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数と、
    複数個の第2の非線形置換関数を介して接続され、前記圧縮関数の出力を格納する複数のレジスタと、
    該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数と、
    入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って暗号文を生成する排他的論理和演算手段と、
    を備えたことを特徴とする自己同期型ストリーム暗号の暗号化装置。
  2. 前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うことを特徴とする請求項1に記載の自己同期型ストリーム暗号の暗号化装置。
  3. 前記乱数列生成関数が、前記複数のレジスタからの出力値のビット数を拡大関数により拡大した後、該拡大したすべての値に対して、排他的論理和演算を行って、乱数列を生成することを特徴とする請求項1または請求項2に記載の自己同期型ストリーム暗号の暗号化装置。
  4. 暗号文を入力し、平文を出力する自己同期型ストリーム暗号の復号化装置であって、
    前記平文を入力し、入力した平文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数と、
    該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数と、
    複数個の第2の非線形置換関数を介して接続され、前記圧縮関数の出力を格納する複数のレジスタと、
    該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数と、
    入力した前記暗号文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って平文を生成する排他的論理和演算手段と、
    を備えたことを特徴とする自己同期型ストリーム暗号の復号化装置。
  5. 前記圧縮関数が、前記複数個からなる第1の非線形置換関数から入力した値の排他的論理和演算を行うことにより、圧縮処理を行うことを特徴とする請求項4に記載の自己同期型ストリーム暗号の復号化装置。
  6. 前記乱数列生成関数が、前記複数のレジスタからの出力値のビット数を拡大関数により拡大した後、該拡大したすべての値に対して、排他的論理和演算を行うことにより、乱数列を生成することを特徴とする請求項4または請求項5に記載の自己同期型ストリーム暗号の復号化装置。
  7. 前記請求項1から請求項3に記載の自己同期型ストリーム暗号の暗号化装置と前記請求項4から請求項6に記載の自己同期型ストリーム暗号の復号化装置とを備えて構成されることを特徴とする自己同期型ストリーム暗号システム。
  8. 平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックして最終的な暗号文をメッセージ認証子として出力するMAC生成装置であって、
    前記暗号文を入力し、入力した暗号文に対して排他的論理和演算を行うとともに、非線形変換の処理を行う複数個からなる第1の非線形置換関数と、
    該複数個からなる第1の非線形置換関数の出力を入力し、圧縮処理を行い、1の圧縮結果を出力する圧縮関数と、
    複数個の第2の非線形置換関数を介して接続され、前記圧縮関数の出力を格納する複数のレジスタと、
    該複数のレジスタからの出力値を入力し、乱数列を生成する乱数列生成関数と、
    入力した前記平文と前記乱数列生成関数が生成した乱数列との排他的論理和演算を行って最終的な暗号文をメッセージ認証子として生成する排他的論理和演算手段と、
    を備えたことを特徴とするMAC生成装置。
  9. 請求項1から請求項3のいずれかに記載の自己同期型ストリーム暗号の暗号化装置を用いた自己同期型ストリーム暗号の暗号化方法であって、
    鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
    すべての前記レジスタに0を代入する第2のステップと、
    初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
    すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
    前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
    入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
    前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
    空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
    を備えたことを特徴とする自己同期型ストリーム暗号の暗号化方法。
  10. 請求項4から請求項6のいずれかに記載の自己同期型ストリーム暗号の復号化装置を用いた自己同期型ストリーム暗号の復号化方法であって、
    鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
    すべての前記レジスタに0を代入する第2のステップと、
    初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
    すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
    前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
    入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップと、
    前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
    空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
    を備えたことを特徴とする自己同期型ストリーム暗号の復号化方法。
  11. 請求項8に記載のMAC生成装置を用いたMAC生成方法であって、
    鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
    すべての前記レジスタに0を代入する第2のステップと、
    初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
    すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
    前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
    入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
    前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
    空になったレジスタに暗号文を入力する第8のステップと、
    すべての平文を入力したか否かを判断する第9のステップと、
    前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップと、
    を備えたことを特徴とするMAC生成方法。
  12. 請求項1から請求項3のいずれかに記載の自己同期型ストリーム暗号の暗号化装置を用いた自己同期型ストリーム暗号の暗号化方法をコンピュータに実行させるプログラムであって、
    鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
    すべての前記レジスタに0を代入する第2のステップと、
    初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
    すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
    前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
    入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
    前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
    空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
    をコンピュータに実行させるプログラム。
  13. 請求項4から請求項6のいずれかに記載の自己同期型ストリーム暗号の復号化装置を用いた自己同期型ストリーム暗号の復号化方法をコンピュータに実行させるプログラムであって、
    鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
    すべての前記レジスタに0を代入する第2のステップと、
    初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
    すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
    前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
    入力した暗号文と生成した乱数列との排他的論理和演算を行って、復号処理を実行する第6のステップと、
    前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
    空になったレジスタに暗号文を入力して、第5のステップに戻る第8のステップと、
    をコンピュータに実行させるプログラム。
  14. 請求項8に記載のMAC生成装置を用いたMAC生成方法をコンピュータに実行させるプログラムであって、
    鍵を拡大鍵生成関数に入力し、拡大鍵を生成して、前記第1の非線形置換関数それぞれにセットする第1のステップと、
    すべての前記レジスタに0を代入する第2のステップと、
    初期値を平文として入力し、暗号化処理を1回行って、前記レジスタの値を更新する第3のステップと、
    すべて0からなる平文を入力して、暗号化処理を32回実行する第4のステップと、
    前記レジスタそれぞれの値を前記乱数列生成関数に入力して乱数列を生成する第5のステップと、
    入力した平文と生成した乱数列との排他的論理和演算を行って、暗号化処理を実行する第6のステップと、
    前記レジスタの値を出力側のレジスタに1つシフトする第7のステップと、
    空になったレジスタに暗号文を入力する第8のステップと、
    すべての平文を入力したか否かを判断する第9のステップと、
    前記第9のステップにおいて、すべての平文を入力したと判断したときに、メッセージ認証子を出力する第10のステップと、
    をコンピュータに実行させるプログラム。
JP2006287481A 2006-10-23 2006-10-23 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム Active JP5084224B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006287481A JP5084224B2 (ja) 2006-10-23 2006-10-23 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006287481A JP5084224B2 (ja) 2006-10-23 2006-10-23 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2008109190A true JP2008109190A (ja) 2008-05-08
JP5084224B2 JP5084224B2 (ja) 2012-11-28

Family

ID=39442226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006287481A Active JP5084224B2 (ja) 2006-10-23 2006-10-23 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5084224B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009288339A (ja) * 2008-05-27 2009-12-10 Kddi Corp ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム
KR101076747B1 (ko) 2009-09-21 2011-10-26 한국과학기술원 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6259437A (ja) * 1985-09-10 1987-03-16 Oki Electric Ind Co Ltd 暗号化方式
JPS63198090A (ja) * 1987-02-13 1988-08-16 沖電気工業株式会社 暗号化装置
JPH06342257A (ja) * 1993-06-02 1994-12-13 Matsushita Electric Ind Co Ltd 逐次暗号方式
JPH10341435A (ja) * 1997-04-07 1998-12-22 Mitsubishi Electric Corp 画像符号化装置、画像符号化方法および画像蓄積/伝送装置
JPH11208471A (ja) * 1998-01-22 1999-08-03 Kn Lab Analysis:Kk 軌条検査測定装置
JP2000101567A (ja) * 1998-09-17 2000-04-07 Toyo Commun Equip Co Ltd 暗号化及び復号化装置とその方法
JP2001016197A (ja) * 1999-07-01 2001-01-19 Toyo Commun Equip Co Ltd 自己同期型ストリーム暗号システム及びこれを用いたmac生成方法
JP2003199019A (ja) * 2001-12-26 2003-07-11 Sony Corp 撮像装置および方法、記録媒体、並びにプログラム
JP2007318547A (ja) * 2006-05-26 2007-12-06 Kddi Corp 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6259437A (ja) * 1985-09-10 1987-03-16 Oki Electric Ind Co Ltd 暗号化方式
JPS63198090A (ja) * 1987-02-13 1988-08-16 沖電気工業株式会社 暗号化装置
JPH06342257A (ja) * 1993-06-02 1994-12-13 Matsushita Electric Ind Co Ltd 逐次暗号方式
JPH10341435A (ja) * 1997-04-07 1998-12-22 Mitsubishi Electric Corp 画像符号化装置、画像符号化方法および画像蓄積/伝送装置
JPH11208471A (ja) * 1998-01-22 1999-08-03 Kn Lab Analysis:Kk 軌条検査測定装置
JP2000101567A (ja) * 1998-09-17 2000-04-07 Toyo Commun Equip Co Ltd 暗号化及び復号化装置とその方法
JP2001016197A (ja) * 1999-07-01 2001-01-19 Toyo Commun Equip Co Ltd 自己同期型ストリーム暗号システム及びこれを用いたmac生成方法
JP2003199019A (ja) * 2001-12-26 2003-07-11 Sony Corp 撮像装置および方法、記録媒体、並びにプログラム
JP2007318547A (ja) * 2006-05-26 2007-12-06 Kddi Corp 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009288339A (ja) * 2008-05-27 2009-12-10 Kddi Corp ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム
KR101076747B1 (ko) 2009-09-21 2011-10-26 한국과학기술원 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
JP5084224B2 (ja) 2012-11-28

Similar Documents

Publication Publication Date Title
JP5055993B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4905000B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4735644B2 (ja) メッセージ認証装置、メッセージ認証方法、メッセージ認証プログラムとその記録媒体
JP4486680B2 (ja) Rc4暗号化を実行するための装置および方法
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
JP2010140026A (ja) 連鎖暗号モードのための方法および装置
CN109981249B (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
WO2008053650A1 (en) Common key block encrypting device, its method, its program, and recording medium
KR100922728B1 (ko) Aes 암복호화 장치 및 암복호화 방법
JP5084224B2 (ja) 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム
JP4938430B2 (ja) 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム
JP4819576B2 (ja) 自己同期型ストリーム暗号の暗号化装置、復号化装置、自己同期型ストリーム暗号システム、mac生成装置、暗号化方法、復号化方法、mac生成方法およびプログラム
JP5415020B2 (ja) ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム
JP5431191B2 (ja) 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム
JP5102536B2 (ja) ストリーム暗号の暗号化装置、復号化装置、暗号化方法、復号化方法およびプログラム
CN110071927B (zh) 一种信息加密方法、系统及相关组件
JP5489696B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP2011119985A (ja) 暗号復号方法
JP2006270343A (ja) 部分暗号化装置および方法ならびにプログラム
JP3473171B2 (ja) 逐次暗号方式
JP4842694B2 (ja) ハッシュ関数処理装置、同装置におけるハッシュ関数生成方法およびプログラム
JP5096794B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、自己同期型ストリーム暗号の暗号化方法およびプログラム
JP3748184B2 (ja) 秘話通信装置
JP5706751B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP5559011B2 (ja) ストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120621

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120730

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5084224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3