Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4906800B2 - 通信装置及び暗号通信システム及び通信方法及び通信プログラム - Google Patents
[go: Go Back, main page]

JP4906800B2 - 通信装置及び暗号通信システム及び通信方法及び通信プログラム - Google Patents

通信装置及び暗号通信システム及び通信方法及び通信プログラム Download PDF

Info

Publication number
JP4906800B2
JP4906800B2 JP2008173307A JP2008173307A JP4906800B2 JP 4906800 B2 JP4906800 B2 JP 4906800B2 JP 2008173307 A JP2008173307 A JP 2008173307A JP 2008173307 A JP2008173307 A JP 2008173307A JP 4906800 B2 JP4906800 B2 JP 4906800B2
Authority
JP
Japan
Prior art keywords
data
communication device
transmission
buffer
blocks
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
JP2008173307A
Other languages
English (en)
Other versions
JP2010016526A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008173307A priority Critical patent/JP4906800B2/ja
Publication of JP2010016526A publication Critical patent/JP2010016526A/ja
Application granted granted Critical
Publication of JP4906800B2 publication Critical patent/JP4906800B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Description

本発明は、通信装置及び暗号通信システム及び通信方法及び通信プログラムに関するものである。
従来の装置では、入力チャネルごとに設けられた入力バッファに入力されたデータを格納し、入力データセレクタを介して、入力バッファに格納されているデータを時分割に演算回路にブロック単位で入力する。演算回路はブロック単位で暗号化(又は復号化)を行う。従来の装置では、共通鍵暗号アルゴリズムを使用することを前提としている。共通鍵暗号アルゴリズムでは、上記のように、ブロックと呼ばれる所定のレングス(例えば、8バイト)のデータを1回の演算で暗号化する。長いデータの場合、データをブロック長ごとに分割して、演算回路を分割数分動作させることで、暗号演算が行われる(例えば、特許文献1参照)。
特開2007−114404号公報(図1)
従来の装置では、チャネルから入力される入力データは、ブロック長の整数倍に限定されている。そのため、入力バッファのレングスよりも長い平文データを暗号化する場合は、チャネルを切り替えて異なる入力バッファにデータを入力し、入力データセレクタで入力バッファを切り替えながら演算を行うことになる。この場合、入力バッファのレングスより入力データのレングスは短く、かつ、入力データのレングスはブロック長の整数倍となる。しかし、入力データのレングスで平文データが割り切れることは稀であり、大抵は端数のレングスのデータが入力データとして入力バッファに入力されることになる。つまり、端数のレングスのデータがある場合、そのレングスがどんなに短くても、ブロック長の整数倍のレングスをもつ入力データを入力バッファへ入力する処理と同じ処理が1回分必要となるという課題があった。
また、従来の装置では、入力バッファが複数存在するために、一時的に使用するメモリの容量が多くなるという課題もあった。メモリ量を減らすために、入力バッファを1本にすることも考えられるが、この場合、端数のレングスのデータを入力バッファへ入力する処理の影響が相対的に大きくなり、入力バッファの効率的な使用が難しいという課題が生じる。
本発明は、例えば、処理するデータのレングスが長く、複数回暗号演算を行わなければならない通信装置においても、送受信バッファの容量を抑え、かつ、通信回数の増大を抑えることを目的とする。
本発明の一の態様に係る通信装置は、
データを他の通信装置へ送信して、前記他の通信装置に対し、当該送信データを一定の大きさのブロックごとに分けて行う所定の処理をさせる通信装置であって、
送信バッファAと、
前記送信バッファAと前記他の通信装置が備える受信バッファBとのうち、容量の小さいバッファに格納できるブロックの数をNとし、前記送信データの先頭からN個のブロックごとに切り出したデータを前記送信バッファAへ順次入力し、前記送信データのうち、前記送信バッファAに未入力のデータがブロックN個分の大きさより大きくても前記容量の小さいバッファに格納できる大きさとなった場合、当該データを前記送信バッファAへ一度に入力する制御部と、
前記制御部から前記送信バッファAへデータが入力される度に、当該データを前記送信バッファAから前記他の通信装置へ送信する通信部とを備えることを特徴とする。
本発明の一の態様によれば、通信装置において、制御部が、送信バッファAと他の通信装置が備える受信バッファBとのうち、容量の小さいバッファに格納できるブロックの数をNとし、送信データの先頭からN個のブロックごとに切り出したデータを送信バッファAへ順次入力し、未入力のデータがブロックN個分の大きさより大きくても容量の小さいバッファに格納できる大きさとなった場合、当該データを送信バッファAへ一度に入力することにより、送受信バッファの容量を抑え、かつ、通信回数の増大を抑えることが可能となる。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
本実施の形態について図1を参照し説明する。図1は、本実施の形態における暗号通信システム100が備える通信装置200a,200bの構成図である。以下、通信装置200aを暗号通信装置A、通信装置200bを暗号通信装置Bという。
図1において、暗号通信装置A及び暗号通信装置Bは、共に、通信部201、制御部202、不揮発メモリ203を備えている。暗号通信装置Bは、さらに、乱数生成器204、暗号処理部205を備えている。暗号通信装置A及び暗号通信装置Bは、それぞれ1つもしくは複数のマイコン(マイクロコンピュータ)などで構成されている。
通信部201は、暗号通信装置Aでは送信バッファA及び受信バッファAを用いて、暗号通信装置Bでは送信バッファB及び受信バッファBを用いて、通信データ101の送受信を行う。通信部201は、例えば、スマートカード用の接触式インタフェースや非接触式インタフェース、パラレルインタフェース、シリアルインタフェース、IEEE(Institute・of・Electrical・and・Electronics・Engineers)1394やUSB(Universal・Serial・Bus)などの有線インタフェース、赤外線通信、Bluetooth(登録商標)、無線LAN(ローカルエリアネットワーク)、DSRC(Dedicated・Short・Range・Communication)、携帯電話などの無線インタフェースを実装したものである。制御部202は、通信部201で受信した通信データ101を解読し、又は、送信する通信データ101(送信データ)を生成し、装置全体を制御する。制御部202は、CPU(Central・Processing・Unit)やロジック回路、シーケンスROM(Read・Only・Memory)などで構成される。不揮発メモリ203は、暗号化処理時に使用する鍵などの秘密情報を記憶する。乱数生成器204は、暗号化処理で使用する乱数を生成する。暗号処理部205は、不揮発メモリ203に記憶された鍵などの秘密情報や乱数生成器204で生成された乱数を使用して通信データ101を暗号化又は復号化する。
以下では、暗号機能のない通信装置200aである暗号通信装置Aが、他の通信装置200bである暗号通信装置Bにブロック暗号によるデータの暗号化を依頼する場合を想定して説明を行う。つまり、以下では、暗号通信装置Aは、データを暗号通信装置Bへ送信して、暗号通信装置Bに対し、当該送信データのブロック暗号による暗号化処理をさせるものとする。ブロック暗号による暗号化処理は、送信データを一定の大きさのブロックごとに分けて行う所定の処理の一例である。
図2は、暗号通信装置Aが暗号通信装置Bにデータの暗号化を依頼して、暗号通信装置Bがデータの暗号化を行う際に、暗号通信装置A及び暗号通信装置Bにおいて、データの受け渡しを行う主なHW(ハードウェア)の構成要素を示すブロック図である。
図2において、送信データメモリ211、受信データメモリ212は、暗号通信装置Aの不揮発メモリ203又はその一部である。送信バッファA、受信バッファAは、前述したように、それぞれ暗号通信装置Aの通信部201の一部である。ブロック入力部213、暗号演算部214、ブロック出力部215は、それぞれ暗号通信装置Bの暗号処理部205の一部である。受信バッファB、送信バッファBは、前述したように、それぞれ暗号通信装置Bの通信部201の一部である。
暗号化(又は復号化)されるデータは、送信データメモリ211に格納されている。暗号化されるデータは大きいので、暗号通信装置Aの制御部202は、送信バッファAに全てのデータを移すことはできず、数回に分けてデータを移すことになる。つまり、暗号通信装置Aの制御部202は、分割したデータを送信バッファAに順番に入力していく。暗号通信装置Aの通信部201は、送信バッファAから受信バッファBにデータを送信する。暗号通信装置Bの暗号処理部205では、共通鍵暗号アルゴリズムを使用するので、ブロックという単位でしかデータを受け付けることができない。ブロック入力部213、ブロック出力部215はブロックのインタフェースである。ブロックのレングスは、受信バッファBのレングスより小さいので、暗号通信装置Bの暗号処理部205には何回かに分けてデータが送られることになる。ブロック入力部213に入力されたデータは、暗号演算部214で暗号化され、ブロック出力部215を介して、送信バッファBに格納される。受信バッファBにあるデータが全て暗号化されると、暗号通信装置Bの通信部201は、送信バッファBに格納されたデータを受信バッファAに送信する。暗号通信装置Aの制御部202は、受信バッファAのデータを受信データメモリ212に格納する。暗号通信装置Aが、データを送信バッファAに入力してから暗号化されたデータを受信バッファAで受け取るまでの処理を、データの分割数分繰り返すことで、全てのデータが暗号化されて、受信データメモリ212に格納されることになる。
図3は、通信装置200a,200b、即ち、暗号通信装置A、暗号通信装置Bそれぞれのハードウェア構成の一例を示す図である。
図3において、暗号通信装置A、暗号通信装置Bは、主にマイコンなどのコンピュータで構成されており、LCD(液晶ディスプレイ)などの表示画面を有する表示装置901、操作キー902、操作ボタン903などのハードウェアを備え、これらはケーブルや信号線で接続されている。
暗号通信装置A、暗号通信装置Bは、プログラムを実行するCPU911を備えている。CPU911は、プロセッサの一例である。CPU911は、バス912を介してROM913、RAM914(Random・Access・Memory)、通信ボード915、表示装置901、操作キー902、操作ボタン903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、フラッシュメモリ、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
RAM914は、揮発メモリの一例である。ROM913、磁気ディスク装置920の記憶媒体は、不揮発メモリ203の一例である。これらは、メモリの一例である。通信ボード915、操作キー902、操作ボタン903などは、入力装置の一例である。また、通信ボード915、表示装置901などは、出力装置の一例である。
通信ボード915は、有線又は無線LAN、移動通信ネットワーク、DSRCネットワークなどに接続される。通信ボード915は、インターネット、あるいは、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークなどのWAN(ワイドエリアネットワーク)などに接続されていても構わない。LAN、移動通信ネットワーク、DSRCネットワーク、インターネット、WANは、いずれもネットワークの一例である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。また、ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理(動作)に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、RAM914、フラッシュメモリなどのメモリ、磁気ディスク装置920の磁気ディスクなどの記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体により伝送される。
また、本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フラッシュメモリなどの記録媒体に記憶される。このプログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
次に、処理フローについて説明する。
図4は本実施の形態の処理フロー(本実施の形態に係る通信方法)を示すフローチャートである。
図4において、ステップS101では、後述する送受信パラメータ設定処理が行われる。この処理では、効率よく送受信を行うために、暗号通信装置Aと暗号通信装置Bの送受信パラメータが設定される。ついで、ステップS102では、後述するデータ暗号化処理が行われる。この処理では、送受信パラメータに基づく通信が繰り返され、長大なデータの暗号化が行われる。
次に、前述したステップS101の送受信パラメータ設定処理の詳細について、図5を参照して説明する。
ステップS111で暗号通信装置Aの制御部202は、暗号通信装置Aの通信部201を介して、暗号通信装置A自身の受信バッファAのレングスを暗号通信装置Bに送る。ステップS112で暗号通信装置Bの制御部202は、暗号通信装置Bの通信部201を介して、そのレングスを受け取る。一方、ステップS113で暗号通信装置Bの制御部202は、暗号通信装置Bの通信部201を介して、暗号通信装置B自身の受信バッファBのレングスを暗号通信装置Aに送る。ステップS114で暗号通信装置Aの制御部202は、暗号通信装置Aの通信部201を介して、そのレングスを受け取る。この処理により、暗号通信装置A、暗号通信装置Bは、相互の受信バッファのレングスを不揮発メモリ203にて共有することができる。なお、暗号通信装置A、暗号通信装置Bは、自身の送信バッファ及び受信バッファのレングスを予め不揮発メモリ203に記憶しているものとする。
このように、本実施の形態において、暗号通信装置Aの不揮発メモリ203は、送信バッファA及び受信バッファAの容量を予め記憶する。暗号通信装置Aの制御部202は、暗号通信装置Bから受信バッファBの容量を通知され、受信バッファBの容量も暗号通信装置Aの不揮発メモリ203に記憶される。また、暗号通信装置Bの不揮発メモリ203は、送信バッファB及び受信バッファBの容量を予め記憶する。暗号通信装置Bの制御部202は、暗号通信装置Aから受信バッファAの容量を通知され、受信バッファAの容量も暗号通信装置Bの不揮発メモリ203に記憶される。
ステップS115では、暗号通信装置Aの制御部202は、受信バッファBのレングス、送信バッファAのレングスのうち、最小のレングスを選択する。さらに、暗号通信装置Aの制御部202は、この最小のレングスを共通鍵アルゴリズムのブロックのレングスで割った整数部を送信ブロック数Aとする。ここで、最小のレングスは、ブロックのレングスより大きいと仮定する。同様にして、ステップS116でも、暗号通信装置Bの制御部202は、受信バッファAのレングス、送信バッファBのレングスのうち、最小のレングスを選択する。さらに、暗号通信装置Bの制御部202は、この最小のレングスを共通鍵アルゴリズムのブロックのレングスで割った整数部を送信ブロック数Bとする。ついで、ステップS117、S118において、各通信装置の制御部202は、通信部201を介して、送信ブロック数A、送信ブロック数Bを相互に送信して、そのうちの小さい方を送信ブロック数(共通)Nとして各々選択する。ステップS119では、暗号通信装置Aの制御部202は、送信ブロック数(共通)Nとブロックのレングスをかけたレングス値と、受信バッファBのレングス、送信バッファAのレングスのうち、最小のレングスとの差Saを求める。この差Saは、送信ブロック数(共通)Nのデータを暗号通信装置Bに送った際に、受信バッファB、送信バッファAのうち、小さい方で使用されないバッファのレングスに等しい。暗号通信装置Aの制御部202は、送信ブロック数(共通)Nと差Saを送受信パラメータとして設定する。ステップS120では、暗号通信装置Bの制御部202は、送信ブロック数(共通)Nとブロックのレングスをかけたレングス値と、受信バッファAのレングス、送信バッファBのレングスのうち、最小のレングスとの差Sbを求める。この差Sbは、送信ブロック数(共通)Nのデータを暗号通信装置Aに送った際に、受信バッファA、送信バッファBのうち、小さい方で使用されないバッファのレングスに等しい。暗号通信装置Bの制御部202は、送信ブロック数(共通)Nと差Sbを送受信パラメータとして設定する。
このように、本実施の形態において、暗号通信装置Aの制御部202、及び、暗号通信装置Bの制御部202は、送信バッファAと受信バッファAと受信バッファBと送信バッファBとのうち、容量の最も小さいバッファに格納できるブロックの最大数をNとする(格納できるブロックの最大数より小さい数をNとしても本実施の形態は適用可能であるが、格納できるブロックの最大数をNとすることが望ましい)。例えば、送信バッファA、受信バッファA、受信バッファB、送信バッファBの容量が、順番に20バイト、40バイト、30バイト、30バイトであるとき、ブロック1個分の大きさを8バイトとすると、N=2となる(N=1としても本実施の形態は適用可能であるが、N=2とすることが望ましい)。Nを求めるために、暗号通信装置Aの制御部202は、不揮発メモリ203に記憶された送信バッファAの容量と暗号通信装置Bから通知された受信バッファBの容量とのうち、最小値をブロック1個分の大きさで除算する。このとき、商は、送信バッファAと受信バッファBとのうち、容量の小さいバッファに格納できるブロックの最大数Aに相当する。上記の例では、A=2となる(このとき、Sa=4バイトとなる)。また、暗号通信装置Bの制御部202は、不揮発メモリ203に記憶された送信バッファBの容量と暗号通信装置Aから通知された受信バッファAの容量とのうち、最小値をブロック1個分の大きさで除算する。このとき、商は、送信バッファBと受信バッファAとのうち、容量の小さいバッファに格納できるブロックの最大数Bに相当する。上記の例では、B=3となる(このとき、Sb=6バイトとなる)。本実施の形態では、このような場合、AとBとの最小値をとって、N=2としている。つまり、暗号通信装置Aが暗号通信装置Bへデータを送信する場合と暗号通信装置Aが暗号通信装置Bからデータを受信する場合とで、Nは共通する。しかしながら、2つの場合でNを別々に設定してもよい。つまり、暗号通信装置Aが暗号通信装置Bへデータを送信する場合は、N=Aとし(NをAより小さい値にしてもよいが、N=Aとすることが望ましい)、暗号通信装置Aが暗号通信装置Bからデータを受信する場合は、N=Bとしてもよい(NをBより小さい値にしてもよいが、N=Bとすることが望ましい)。このようにすることで、例えば暗号通信装置Bの暗号処理部205に入力されるデータのブロック数と当該データが暗号化されたデータのブロック数とが異なる場合に、メモリ容量をより効率的に利用することが可能となる。
図5の送受信パラメータ設定処理を行うことにより、暗号通信装置Aには、送信ブロック数(共通)Nと差Saが設定され、暗号通信装置Bには、送信ブロック数(共通)Nと差Sbが設定されることになる。
次に、前述したステップS102のデータ暗号化処理の詳細について、図6を参照して説明する。データ暗号化処理は、主にデータの送受信と暗号演算(暗号化又は復号化)の処理からなるもので、前述した送受信パラメータ設定処理以後に行われる。
ステップS151で、暗号通信装置Aの制御部202は、暗号通信装置Aの通信部201を介して、暗号通信装置Bに向けて暗号演算コマンドを送信する。暗号演算コマンドは、暗号演算を開始する旨の通知で、その他、使用する鍵番号や暗号アルゴリズムを指定する番号、これから送るデータのレングスなどが必要に応じて付加されている。ステップS152で暗号演算コマンドは、暗号通信装置Bの通信部201を介して、暗号通信装置Bの制御部202によって受信され、暗号通信装置Bの制御部202では、そのコマンドが指示する設定が行われる。例えば、鍵番号に対応する鍵を設定する、使用する暗号アルゴリズムを選択するなどである。
ついで、暗号通信装置Aでは、ステップS153で制御部202がデータ送信を開始する。ステップS154で、暗号通信装置Aの制御部202は、図2で示した送信データメモリ211から送信バッファAにデータを分割して移す。このとき、暗号通信装置Aの制御部202は、設定されている送信ブロック数(共通)Nと差Saと未送信データレングスDの関係に従って下記(ア)〜(エ)のいずれかの手順を実行し、データを送信データメモリ211から送信バッファAに移す。なお、未送信データレングスとは、送るべきデータのレングスから、送信したデータのレングスを引いたものをいう。ステップS155では、暗号通信装置Aの通信部201は、送信バッファAの分割データを暗号通信装置Bに送る。
以下では、ブロック数をM、ブロックレングス(1ブロックのレングス)をL、端数をHとする。前述したように、Nは送信ブロック数(共通)、Saは差、Dは未送信データレングスである。
(ア)D≧N・L+Saの場合
M=N、H=0とする。即ち、暗号通信装置Aの制御部202は、送信ブロック数(共通)NだけデータをステップS154で分割し、送信バッファAに移す。そして、暗号通信装置Aの通信部201は、送信バッファAに移された分割データをステップS155で送信する。
(イ)N・L+Sa>D≧N・Lの場合
M=N+FLOOR(Sa/L)、H=D−M・Lとする。ここで、FLOOR(X)というとき、これはXを超えない最大の整数を示す。この場合は、送信バッファAと暗号通信装置Bの受信バッファBとのうち、レングスが短いバッファの余裕(N個のブロックを格納したときの空き容量、即ち、Sa)の範囲内の未送信データであれば、暗号通信装置Aの制御部202は、送信ブロック数(共通)Nを超えても、未送信データ全てをステップS154で分割し(取り出し)、送信バッファAに移す。そして、暗号通信装置Aの通信部201は、送信バッファAに移された分割データをステップS155で送信する。
(ウ)N・L>D>0の場合
M=FLOOR(D/L)、H=D−M・Lとする。この場合、暗号通信装置Aの制御部202は、未送信データ全てをステップS154で分割し(取り出し)、送信バッファAに移す。そして、暗号通信装置Aの通信部201は、送信バッファAに移された分割データをステップS155で送信する。
(エ)D=0の場合
暗号通信装置Aの制御部202は、送信をやめる。
暗号通信装置Bでは、通信部201がステップS156で分割データを受信すると、制御部202がステップS157で当該分割データ(受信データ)を1ブロックずつ分割する。そして、暗号処理部205がステップS158で暗号演算を行う。ステップS159の暗号演算結果は、ブロックのレングスの結果になる。即ち、1ブロックの暗号化データとなる。暗号通信装置Bの制御部202は、この暗号化データを受け取り、ステップS160で送信バッファBに格納する。暗号通信装置Bでは、ステップS157からステップS160の処理が、受信データが全て暗号演算されるまで繰り返される。図6では、この繰り返しの範囲を「繰り返し単位1」で示した。
ここで、「繰り返し単位1」の繰り返し数について述べる前に、図7に示す本実施の形態におけるデータ送信のフォーマットについて説明する。
図7において、ヘッダ301には、暗号演算用のデータであることを示す識別子、最初に送られるデータであることを示す識別子、最後のデータであることを示す識別子が含まれる。ブロック数302には、通常は、送信ブロック数(共通)Nが設定されるが、最後のデータでは、送信ブロック数(共通)Nより小さい値となる場合がある。端数303は、ブロックレングスに満たないデータのレングスを示す。データ304には、ブロック数302と端数303を合わせたレングスをもつデータが格納される。
このように、本実施の形態において、暗号通信装置Aの制御部202は、送信バッファAへ入力するデータ(図7のデータ304)のフォーマットに、当該データに含まれるブロックの数(図7のブロック数302)と当該データの大きさをブロック1個分の大きさで除算した場合の端数(図7の端数303)とを示す制御情報を含める。同様に、暗号通信装置Bの制御部202は、送信バッファBへ入力するデータ(図7のデータ304)のフォーマットに、当該データに含まれるブロックの数(図7のブロック数302)と当該データの大きさをブロック1個分の大きさで除算した場合の端数(図7の端数303)とを示す制御情報を含める。
上記のようなフォーマットをデータ送信用に決めているため、「繰り返し単位1」は、端数H=0の場合はブロック数M、H>0の場合はM+1となる。なお、端数Hが存在する場合、即ち、H>0の場合、「繰り返し単位1」の最後の1回は、暗号通信装置Bの暗号処理部205がブロックのレングスより小さいレングスのデータを暗号演算することになる。そのため、暗号通信装置Bの制御部202は、ブロックレングスに満たないビットにはパディング処理をステップS157で行う。
このように、本実施の形態において、暗号通信装置Aの制御部202は、送信データの先頭からN個のブロックごとに切り出したデータを送信バッファAへ順次入力する(図6のステップS154)。そして、送信データのうち、送信バッファAに未入力のデータがブロックN個分の大きさより大きくても上記容量の小さいバッファに格納できる大きさとなった場合、暗号通信装置Aの制御部202は、当該データを送信バッファAへ一度に入力する(図6のステップS154)。暗号通信装置Aの通信部201は、暗号通信装置Aの制御部202から送信バッファAへデータが入力される度に、当該データを送信バッファAから暗号通信装置Bへ送信する(図6のステップS155)。
「繰り返し単位1」が全て終了すれば、暗号通信装置Bの送信バッファBには暗号演算が終わったデータが格納されていることになる。暗号通信装置Bの通信部201は、この送信データをステップS161で暗号通信装置Aに送り、暗号通信装置Aの通信部201は、ステップS162でデータを受信する。暗号通信装置Aの制御部202は、受信したデータをステップS163で受信データメモリ212に格納する。
暗号通信システム100では、ステップS154からステップS163までの処理が、送信データメモリ211のデータがなくなるまで繰り返される。図6では、この繰り返しの範囲を「繰り返し単位2」で示した。
ステップS164で暗号通信装置Aの制御部202は、「繰り返し単位2」の終了を、データ送信のフォーマットのヘッダ301で知ることができる。
このように、本実施の形態において、暗号通信装置Bの通信部201は、暗号通信装置Aからデータが送信される度に、当該データを受信バッファBで受信する(図6のステップS156)。暗号通信装置Bの制御部202は、当該データを受信バッファBから出力する(図6のステップS157)。暗号通信装置Bの暗号処理部205は、暗号通信装置Bの制御部202により受信バッファBからデータが出力される度に、当該データをブロック暗号により順次暗号化する(図6のステップS158、S159)。暗号通信装置Bの制御部202は、暗号通信装置Bの暗号処理部205で暗号化されたデータを送信バッファBへ順次入力する(図6のステップS160)。暗号通信装置Bの通信部201は、暗号通信装置Bの制御部202から送信バッファBへデータが入力される度に、当該データを送信バッファBから暗号通信装置Aへ送信する(図6のステップS161)。暗号通信装置Aの通信部201は、暗号通信装置Bへ送信したデータが暗号通信装置Bで暗号化され、暗号通信装置Bから当該データが送信される度に、当該データを受信バッファAで受信する(図6のステップS162)。暗号通信装置Aの制御部202は、受信バッファAでデータが受信される度に、当該データを受信バッファAから出力し、当該データを連結して送信データの暗号化データを生成する(図6のステップS163)。
次に、本実施の形態の効果について説明をする。
本実施の形態では、暗号演算を行う前に、暗号通信装置A及びB双方の受信バッファの大きさを通知し、暗号演算の単位であるブロックが最も大きくとれるように、送信ブロック数(共通)Nを設定する。このことにより、受信バッファのうち通信に使用されない領域をシステムで最小にすることができるようになる。このことは、データのレングスが長く、複数回暗号演算を行わなければならない暗号通信装置であっても、通信回数を最も小さく設定できることを示している。
本実施の形態では、さらに、通信データのフォーマットをブロック数と端数を記述するようにし、かつ、未送信データのレングスと受信バッファ(又は送信バッファ)のうち通信に使用されない領域(前述した差Saや差Sbに相当)とを比較し、未送信データが全受信バッファを使用すれば送信可能である場合、未送信データを全て送信し、そのデータを受信先で暗号演算処理するようにしたので、通信回数をさらに1回減らすことができる。この効果を図で示したものが、図8である。図8では送信データを、送信ブロック数(共通)N=4で3回送信する例を示している。3回目のクロスハッチの送信データは、ブロック数が4でさらに端数のデータも合わせて送信しているものである。このように、受信バッファに余裕がある場合には、最後はその分データを多めに送信できるので、送信回数を1回減らすことができる。これに合わせて暗号演算の回数は、3回目のデータ送信時には、1回目、2回目と比べて、1回多くなっている。また、図8に示したように、端数のデータについてはパディングが行われる。これに対し、図9は従来の例を図8と同じデータで行った場合を示している。図9では、3回の送信では全ての送信データを送れないので、4回目の送信を行っており、本実施の形態と比べて、送信回数が増えてしまうことがわかる。
本実施の形態では、さらに、送受信パラメータ設定処理により最大の送受信パラメータが設定されるので、送受信バッファを各々1本としても、通信回数の増大を最小限に抑えることができる。
本実施の形態では、送受信パラメータ設定処理を行ってから、データ暗号化処理を行うとしたが、暗号通信装置の組み合わせが決まっている場合、両者の受信バッファの大きさは予めわかっているので、事前に送受信パラメータを決めておき、データ処理時は、送受信パラメータ設定処理は行わず、データ暗号化処理だけにしてもよい。
また、本実施の形態では、送信データ分割を未送信データのレングスと受信バッファのうち通信に使用されない領域とを逐次考慮して決めていたが、固定長のデータを扱う場合は、送信データの分割パターンは決まっているので、事前に分割パターンを決めておき、逐次判断を行わず分割パターンに従って、データ分割を行うようにしてもよい。
また、本実施の形態の説明では暗号通信装置という個別の装置を例にとったが、1チップマイコンチップと暗号演算が可能なセキュアなマイコンチップとの間の通信でも構わない。
以上のように、本実施の形態では、少なくとも一方の装置内で共通鍵暗号アルゴリズムを用いて暗号演算を行う暗号通信システム100が、
相互の受信バッファのレングスと送信バッファのレングスから、ブロック単位で最大の送信ブロック数(共通)と他方の受信バッファと送信ブロック数(共通)に対応するレングスとの差を送受信パラメータとして設定する送受信パラメータ設定処理と、
送信ブロック数(共通)、上記の差、未送信データのレングスから、受信先の全受信バッファを使用すれば送信できる場合は、送信ブロック数(共通)以上の未送信データを送信し、送信されたブロック数、端数に基づき暗号演算を行うデータ暗号化処理とを実行することを特徴とする。
また、本実施の形態の変形例では、少なくとも一方の装置内で共通鍵暗号アルゴリズムを用いて暗号演算を行う暗号通信システム100が、
相互の受信バッファのレングスと送信バッファのレングスから、ブロック単位で最大の送信ブロック数(共通)と他方の受信バッファと送信ブロック数(共通)に対応するレングスとの差を送受信パラメータとして事前に設定する送受信パラメータ設定処理と、
データ暗号化処理時は上記送受信パラメータ設定処理を行わず、送信ブロック数(共通)、上記の差、未送信データのレングスから、受信先の全受信バッファを使用すれば送信できる場合は、送信ブロック数(共通)以上の未送信データを送信し、送信されたブロック数、端数に基づき暗号演算を行うデータ暗号化処理とを実行することを特徴とする。
また、本実施の形態の変形例では、少なくとも一方の装置内で共通鍵暗号アルゴリズムを用いて暗号演算を行う暗号通信システム100が、
相互の受信バッファのレングスと送信バッファのレングスから、ブロック単位で最大の送信ブロック数(共通)と他方の受信バッファと送信ブロック数(共通)に対応するレングスとの差を送受信パラメータとして事前に設定する送受信パラメータ設定処理と、
データ暗号化処理時は上記送受信パラメータ設定処理を行わず、暗号化処理以前に上記送受信パラメータを考慮して送信パターンを設定し、暗号化処理時は前記送信パターンに基づいてデータを送信し、送信されたブロック数、端数に基づき暗号演算を行うデータ暗号化処理とを実行することを特徴とする。
また、本実施の形態では、暗号通信データフォーマットが、データのレングスを示す数値として、少なくともブロック数と端数を含んでいることを特徴とする。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
本実施の形態は、図1の暗号通信装置Aが、暗号通信装置Bに対して、送信データの真偽を判定させるケースを想定したものである。例えば、暗号通信装置Aに外部からある暗号データが送られてきて、そのデータの真偽の判定を暗号通信装置Bに依頼する場合である。暗号通信装置Bには暗号データの真偽を判定するための情報が予め格納されているものとする。以下では、暗号通信装置Aは、データを暗号通信装置Bへ送信して、暗号通信装置Bに対し、当該送信データのブロック暗号による暗号化処理(復号化処理)を伴うデータ真偽判定処理(例えば、データの復号化に成功した場合、あるいは、復号化したデータの値が所定の値であった場合に、そのデータが真正なものであると判定する処理)をさせる。データ真偽判定処理は、送信データを一定の大きさのブロックごとに分けて行う所定の処理の一例である。
図10は、暗号通信装置Aが暗号通信装置Bにデータの真偽判定を依頼して、暗号通信装置Bがデータの真偽判定を行う際に、暗号通信装置A及び暗号通信装置Bにおいて、データの受け渡しを行う主なHW(ハードウェア)の構成要素を示すブロック図である。
図10において、暗号通信装置Aの送信データメモリ211、送信バッファA、受信バッファAについては、実施の形態1と同様である。また、暗号通信装置Bのブロック入力部213、暗号演算部214、ブロック出力部215、受信バッファB、送信バッファBについては、実施の形態1と同様である。結果格納メモリ216、真偽レジスタ217、バッファ空レジスタ218は、それぞれ暗号通信装置Bの不揮発メモリ203又はその一部である。
真偽判定されるデータは、送信データメモリ211に格納されている。真偽判定されるデータは大きいので、暗号通信装置Aの制御部202は、送信バッファAに全てのデータを移すことはできず、数回に分けてデータを移すことになる。つまり、暗号通信装置Aの制御部202は、分割したデータを送信バッファAに順番に入力していく。暗号通信装置Aの通信部201は、送信バッファAから受信バッファBにデータを通信する。暗号通信装置Bの暗号処理部205では、共通鍵暗号アルゴリズムを使用するので、ブロックという単位でしかデータを受け付けることができない。ブロック入力部213、ブロック出力部215はブロックのインタフェースである。ブロックのレングスは、受信バッファBのレングスより小さいので、暗号通信装置Bの暗号処理部205には何回かに分けてデータが送られることになる。ブロック入力部213に入力されたデータは、暗号演算部214で暗号化され、ブロック出力部215を介して、結果格納メモリ216に格納される。受信バッファBにあるデータが全て暗号化(復号化)されると、バッファ空レジスタ218にフラグがたち、暗号通信装置Bの制御部202は、暗号通信装置Bの通信部201(送信バッファB)を介して、受信バッファBが空になったことを暗号通信装置Aに知らせる。暗号通信装置Aでは、未送信データがあれば、制御部202が再度送信データメモリ211からデータを送信バッファAに移し、通信部201を介してそのデータを送信して暗号通信装置Bに真偽判定を依頼する。送信データメモリ211の全てのデータが送信され、暗号演算が全て終われば、結果格納メモリ216には全ての結果が格納される。暗号通信装置Bの制御部202は、その内容を判定して、真偽レジスタ217に格納される真偽フラグを設定する。その真偽フラグは、通信部201(送信バッファB)を介して、暗号通信装置Aに送られる。
次に、処理フローについて説明する。
図11は本実施の形態の処理フロー(本実施の形態に係る通信方法)を示すフローチャートである。
図11において、ステップS201では、後述する送信パラメータ設定処理が行われる。この処理では、効率よく送信を行うために、暗号通信装置Aの送信パラメータが設定される。ついで、ステップS202では、後述するデータ真偽判定処理が行われる。この処理では、送信パラメータに基づく通信が繰り返され、長大なデータが暗号通信装置Bに送られ、暗号通信装置B内でその真偽判定が行われる。
次に、前述したステップS201の送信パラメータ設定処理の詳細について、図12を参照して説明する。
ステップS211で暗号通信装置Aの制御部202は、暗号通信装置Aの通信部201を介して、バッファ長送信依頼を暗号通信装置Bに送る。ステップS112で暗号通信装置Bの制御部202は、暗号通信装置Bの通信部201を介して、その依頼を受け取る。その後、ステップS213で暗号通信装置Bの制御部202は、暗号通信装置Bの通信部201を介して、暗号通信装置B自身の受信バッファBのレングスを暗号通信装置Aに送る。ステップS214で暗号通信装置Aの制御部202は、暗号通信装置Aの通信部201を介して、そのレングスを受け取る。
ステップS215では、暗号通信装置Aの制御部202は、受信バッファBのレングス、送信バッファAのレングスのうち、最小のレングスを選択する。さらに、暗号通信装置Aの制御部202は、この最小のレングスを共通鍵アルゴリズムのブロックのレングスで割った整数部を送信ブロック数Nとする。ここで、最小のレングスは、ブロックのレングスより大きいと仮定する。ステップS216では、暗号通信装置Aの制御部202は、送信ブロック数Nとブロックのレングスをかけたレングス値と、受信バッファBのレングス、送信バッファAのレングスのうち、最小のレングスとの差Sを求める。この差Sは、送信ブロック数Nのデータを暗号通信装置Bに送った際に、受信バッファB、送信バッファAのうち、小さい方で使用されないバッファのレングスに等しい。暗号通信装置Aの制御部202は、送信ブロック数Nと差Sを送信パラメータとして設定する。
次に、前述したステップS202のデータ真偽判定処理の詳細について、図13を参照して説明する。データ真偽判定処理は、前述した送信パラメータ設定処理以後に行われる。
ステップS251で、暗号通信装置Aの制御部202は、暗号通信装置Aの通信部201を介して、暗号通信装置Bに向けて真偽判定コマンドを送信する。真偽判定コマンドは、真偽判定を開始する旨の通知で、その他、使用する鍵番号や暗号アルゴリズムを指定する番号、これから送るデータのレングスなどが必要に応じて付加されている。ステップS252で真偽判定コマンドは、暗号通信装置Bの通信部201を介して、暗号通信装置Bの制御部202によって受信され、暗号通信装置Bの制御部202では、そのコマンドが指示する設定が行われる。例えば、鍵番号に対応する鍵を設定する、使用する暗号アルゴリズムを選択するなどである。
ついで、暗号通信装置Aでは、ステップS253で制御部202がデータ送信を開始する。ステップS254で、暗号通信装置Aの制御部202は、図10で示した送信データメモリ211から送信バッファAにデータを分割して移す。このとき、暗号通信装置Aの制御部202は、設定されている送信ブロック数Nと差Sと未送信データレングスDの関係に従って下記(カ)〜(ケ)のいずれかの手順を実行し、データを送信データメモリ211から送信バッファAに移す。ステップS255では、暗号通信装置Aの通信部201は、送信バッファAの分割データを暗号通信装置Bに送る。
以下では、ブロック数をM、ブロックレングス(1ブロックのレングス)をL、端数をHとする。前述したように、Nは送信ブロック数、Sは差、Dは未送信データレングスである。
(カ)D≧N・L+Saの場合
M=N、H=0とする。即ち、暗号通信装置Aの制御部202は、送信ブロック数NだけデータをステップS254で分割し、送信バッファAに移す。そして、暗号通信装置Aの通信部201は、送信バッファAに移された分割データをステップS255で送信する。
(キ)N・L+Sa>D≧N・Lの場合
M=N+FLOOR(S/L)、H=D−M・Lとする。この場合は、送信バッファAと暗号通信装置Bの受信バッファBとのうち、レングスが短いバッファの余裕(N個のブロックを格納したときの空き容量、即ち、Sa)の範囲内の未送信データであれば、暗号通信装置Aの制御部202は、送信ブロック数Nを超えても、未送信データ全てをステップS254で分割し(取り出し)、送信バッファAに移す。そして、暗号通信装置Aの通信部201は、送信バッファAに移された分割データをステップS255で送信する。
(ク)N・L>D>0の場合
M=FLOOR(D/L)、H=D−M・Lとする。この場合、暗号通信装置Aの制御部202は、未送信データ全てをステップS254で分割し(取り出し)、送信バッファAに移す。そして、暗号通信装置Aの通信部201は、送信バッファAに移された分割データをステップS255で送信する。
(ケ)D=0の場合
暗号通信装置Aの制御部202は、送信をやめる。
暗号通信装置Bでは、通信部201がステップS256で分割データを受信すると、制御部202がステップS257で受信データを1ブロックずつ分割する。そして、暗号処理部205がステップS258で暗号演算を行う。ステップS259の暗号演算結果は、ブロックのレングスの結果になる。即ち、1ブロックの暗号化(復号化)データとなる。暗号通信装置Bの制御部202は、この暗号化データを受け取り、ステップS260で結果格納メモリ216に格納する。暗号通信装置Bでは、ステップS257からステップS260の処理が、受信データが全て暗号演算されるまで繰り返される。図13では、この繰り返しの範囲を「繰り返し単位1」で示した。
ここで、「繰り返し単位1」の繰り返し数について述べる前に、本実施の形態におけるデータ送信のフォーマットについて説明する。本実施の形態におけるデータ送信のフォーマットは、図7に示した実施の形態1のものと同様である。
前述したようなフォーマットをデータ送信用に決めているため、「繰り返し単位1」は、端数H=0の場合はブロック数M、H>0の場合はM+1となる。なお、端数Hが存在する場合、即ち、H>0の場合、「繰り返し単位1」の最後の1回は、暗号通信装置Bの暗号処理部205がブロックのレングスより小さいレングスのデータを暗号演算することになる。そのため、暗号通信装置Bの制御部202は、実施の形態1と同様に、ブロックレングスに満たないビットにはパディング処理をステップS257で行う。
このように、本実施の形態において、暗号通信装置Aの制御部202は、送信データの先頭からN個のブロックごとに切り出したデータを送信バッファAへ順次入力する(図13のステップS254)。そして、送信データのうち、送信バッファAに未入力のデータがブロックN個分の大きさより大きくても上記容量の小さいバッファに格納できる大きさとなった場合、暗号通信装置Aの制御部202は、当該データを送信バッファAへ一度に入力する(図13のステップS254)。暗号通信装置Aの通信部201は、暗号通信装置Aの制御部202から送信バッファAへデータが入力される度に、当該データを送信バッファAから暗号通信装置Bへ送信する(図13のステップS255)。
「繰り返し単位1」が全て終了すれば、暗号通信装置Bの結果格納メモリ216には暗号演算が終わったデータが格納されていることになる。また、受信バッファBは空になったので、バッファ空レジスタ218のバッファ空フラグがたつ。暗号通信装置Bの通信部201は、このバッファ空フラグ(バッファ空通知)をステップS261で暗号通信装置Aに送り、暗号通信装置Aの通信部201は、ステップS262でバッファ空フラグを受信する。
暗号通信システム100では、ステップS254からステップS262までの処理が、送信データメモリ211のデータがなくなるまで繰り返される。図13では、この繰り返しの範囲を「繰り返し単位2」で示した。
「繰り返し単位2」が全て終了すれば、暗号通信装置Bの結果格納メモリ216には暗号演算が終わった全てのデータが格納されていることになる。暗号通信装置Bの制御部202は、ステップS263で、その内容が真正なものか否かを判定して、真偽レジスタ217の真偽フラグを設定する。暗号通信装置Bの通信部201は、この真偽フラグ(真偽判定通知)をステップS264で暗号通信装置Aに送り、暗号通信装置Aの通信部201は、ステップS265で真偽フラグを受信する。
このように、本実施の形態において、暗号通信装置Bの通信部201は、暗号通信装置Aからデータが送信される度に、当該データを受信バッファBで受信する(図13のステップS256)。暗号通信装置Bの制御部202は、当該データを受信バッファBから出力する(図13のステップS257)。暗号通信装置Bの暗号処理部205は、暗号通信装置Bの制御部202により受信バッファBからデータが出力される度に、当該データをブロック暗号により順次暗号化(復号化)する(図13のステップS258、S259)。暗号通信装置Bの制御部202は、暗号通信装置Bの暗号処理部205により暗号化されたデータを検証して、送信データの真偽を判定する(図13のステップS263)。そして、暗号通信装置Bの制御部202は、当該判定結果を、暗号通信装置Bの通信部201を介して暗号通信装置Aに通知する(図13のステップS264)。
次に、本実施の形態の効果について説明をする。
本実施の形態では、暗号演算を行う前に、データを受け取る側である暗号通信装置Bの受信バッファBの大きさを通知し、暗号演算の単位であるブロックが最も大きくとれるように、送信ブロック数Nを設定する。このことにより、受信バッファBのうち通信に使用されない領域をシステムで最小にすることができるようになる。このことは、データのレングスが長く、複数回暗号演算を行わなければならない暗号通信装置であっても、通信回数を最も小さく設定できることを示している。
本実施の形態では、さらに、通信データのフォーマットをブロック数と端数を記述するようにし、かつ、未送信データのレングスと受信バッファB(又は送信バッファA)のうち通信に使用されない領域(前述した差Sに相当)とを比較し、未送信データが全受信バッファBを使用すれば送信可能である場合、未送信データを全て送信し、そのデータを受信先で真偽判定処理するようにしたので、通信回数をさらに1回減らすことができる。
本実施の形態では、送信パラメータ設定処理を行ってから、データ真偽判定処理を行うとしたが、暗号通信装置の組み合わせが決まっている場合、受信バッファBの大きさは予めわかっているので、事前に送信パラメータを決めておき、データ処理時は、送信パラメータ設定処理は行わず、データ真偽判定処理だけにしてもよい。
また、本実施の形態では、送信データ分割を未送信データのレングスと受信バッファBのうち通信に使用されない領域とを逐次考慮して決めていたが、固定長のデータを扱う場合は、送信データの分割パターンは決まっているので、事前に分割パターンを決めておき、逐次判断を行わず分割パターンに従って、データ分割を行うようにしてもよい。
また、本実施の形態の説明では暗号通信装置という個別の装置を例にとったが、1チップマイコンチップと暗号演算が可能なセキュアなマイコンチップとの間の通信でも構わない。
以上のように、本実施の形態では、一方の装置内で共通鍵暗号アルゴリズムを用いて暗号演算を行う暗号通信システム100が、
暗号演算を行う暗号通信装置Bの受信バッファBのレングスから、ブロック単位で最大の送信ブロックと送信ブロック数に対応するレングスとの差を送信パラメータとして設定する送信パラメータ設定処理と、
送信ブロック数、上記の差、未送信データのレングスから、受信先の全受信バッファBを使用すれば送信できる場合は、送信ブロック数以上の未送信データを送信し、送信されたブロック数、端数に基づき暗号演算を行うデータ暗号化処理(データ真偽判定処理)とを実行することを特徴とする。
また、本実施の形態の変形例では、一方の装置内で共通鍵暗号アルゴリズムを用いて暗号演算を行う暗号通信システム100が、
暗号演算を行う暗号通信装置Bの受信バッファBのレングスから、ブロック単位で最大の送信ブロックと送信ブロック数に対応するレングスとの差を送信パラメータとして事前に設定する送信パラメータ設定処理と、
データ暗号化処理時は上記送受信パラメータ設定処理を行わず、送信ブロック数、上記の差、未送信データのレングスから、受信先の全受信バッファBを使用すれば送信できる場合は、送信ブロック数以上の未送信データを送信し、送信されたブロック数、端数に基づき暗号演算を行うデータ暗号化処理(データ真偽判定処理)とを実行することを特徴とする。
また、本実施の形態の変形例では、一方の装置内で共通鍵暗号アルゴリズムを用いて暗号演算を行う暗号通信システム100が、
暗号演算を行う暗号通信装置Bの受信バッファBのレングスから、ブロック単位で最大の送信ブロックと送信ブロック数に対応するレングスとの差を送信パラメータとして事前に設定する送信パラメータ設定処理と、
データ暗号化処理時は上記送受信パラメータ設定処理を行わず、暗号化処理以前に上記送受信パラメータを考慮して送信パターンを設定し、暗号化処理時は前記送信パターンに基づいてデータを送信し、送信されたブロック数、端数に基づき暗号演算を行うデータ暗号化処理(データ真偽判定処理)とを実行することを特徴とする。
また、本実施の形態では、暗号通信データフォーマットが、データのレングスを示す数値として、少なくともブロック数と端数を含んでいることを特徴とする。
以上、本発明の実施の形態について説明したが、これらのうち、2つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、2つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
実施の形態1に係る暗号通信システムの構成を示すブロック図である。 実施の形態1に係る通信装置が他の通信装置にデータの暗号化を行わせる際に、各通信装置においてデータの受け渡しを行う主な構成要素を示すブロック図である。 実施の形態1に係る通信装置のハードウェア構成の一例を示す図である。 実施の形態1に係る通信方法を示すフローチャートである。 実施の形態1に係る通信方法を示すフローチャートである。 実施の形態1に係る通信方法を示すフローチャートである。 実施の形態1に係る送信データのフォーマットを示す図である。 実施の形態1に係る通信方法を用いた例を示す図である。 従来例を示す図である。 実施の形態2に係る通信装置が他の通信装置にデータの暗号化を行わせる際に、各通信装置においてデータの受け渡しを行う主な構成要素を示すブロック図である。 実施の形態2に係る通信方法を示すフローチャートである。 実施の形態2に係る通信方法を示すフローチャートである。 実施の形態2に係る通信方法を示すフローチャートである。
符号の説明
100 暗号通信システム、101 通信データ、200a,200b 通信装置、201 通信部、202 制御部、203 不揮発メモリ、204 乱数生成器、205 暗号処理部、211 送信データメモリ、212 受信データメモリ、213 ブロック入力部、214 暗号演算部、215 ブロック出力部、216 結果格納メモリ、217 真偽レジスタ、218 バッファ空レジスタ、301 ヘッダ、302 ブロック数、303 端数、304 データ、901 表示装置、902 操作キー、903 操作ボタン、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (9)

  1. データを他の通信装置へ送信して、前記他の通信装置に対し、当該送信データを一定の大きさのブロックごとに分けて行う所定の処理をさせる通信装置であって、
    送信バッファAと、
    前記送信バッファAと前記他の通信装置が備える受信バッファBとのうち、容量の小さいバッファに格納できるブロックの数をNとし、前記送信データの先頭からN個のブロックごとに切り出したデータを前記送信バッファAへ順次入力し、前記送信データのうち、前記送信バッファAに未入力のデータがブロックN個分の大きさより大きくても前記容量の小さいバッファに格納できる大きさとなった場合、当該データを前記送信バッファAへ一度に入力する制御部と、
    前記制御部から前記送信バッファAへデータが入力される度に、当該データを前記送信バッファAから前記他の通信装置へ送信する通信部とを備えることを特徴とする通信装置。
  2. 前記制御部は、前記容量の小さいバッファに格納できるブロックの最大数をNとすることを特徴とする請求項1に記載の通信装置。
  3. 前記通信装置は、さらに、
    前記送信バッファAの容量を予め記憶するメモリを備え、
    前記制御部は、前記他の通信装置から前記受信バッファBの容量を通知され、前記メモリに記憶された送信バッファAの容量と前記他の通信装置から通知された受信バッファBの容量とのうち、最小値をブロック1個分の大きさで除算してNを求めることを特徴とする請求項1又は2に記載の通信装置。
  4. 前記制御部は、前記送信バッファAへ入力するデータのフォーマットに、当該データに含まれるブロックの数と当該データの大きさをブロック1個分の大きさで除算した場合の端数とを示す制御情報を含めることを特徴とする請求項1から3までのいずれかに記載の通信装置。
  5. 前記所定の処理は、ブロック暗号による暗号化処理であり、
    前記通信装置は、さらに、
    受信バッファAを備え、
    前記制御部は、前記送信バッファAと前記受信バッファAと前記受信バッファBと前記他の通信装置が備える送信バッファBとのうち、容量の最も小さいバッファに格納できるブロックの最大数をNとし、
    前記通信部は、前記他の通信装置へ送信したデータが前記他の通信装置で暗号化され、前記他の通信装置から当該データが送信される度に、当該データを前記受信バッファAで受信し、
    前記制御部は、前記受信バッファAでデータが受信される度に、当該データを前記受信バッファAから出力し、当該データを連結して前記送信データの暗号化データを生成することを特徴とする請求項1から4までのいずれかに記載の通信装置。
  6. 請求項1から5までのいずれかに記載の通信装置と前記他の通信装置とを有する暗号通信システムであって、
    前記他の通信装置は、前記通信装置からデータが送信される度に、当該データを前記受信バッファBで受信し、当該データを前記受信バッファBから出力し、当該データをブロック暗号により順次暗号化し、当該データを前記通信装置へ送信することを特徴とする暗号通信システム。
  7. 請求項1から4までのいずれかに記載の通信装置と前記他の通信装置とを有する暗号通信システムであって、
    前記他の通信装置は、前記通信装置からデータが送信される度に、当該データを前記受信バッファBで受信し、当該データを前記受信バッファBから出力し、当該データをブロック暗号により検証して、前記送信データの真偽を判定し、当該判定結果を前記通信装置へ通知することを特徴とする暗号通信システム。
  8. データを他の通信装置へ送信して、前記他の通信装置に対し、当該送信データを一定の大きさのブロックごとに分けて行う所定の処理をさせる通信装置を用いた通信方法であって、
    前記通信装置が備える制御部が、前記通信装置が備える送信バッファAと前記他の通信装置が備える受信バッファBとのうち、容量の小さいバッファに格納できるブロックの数をNとし、前記送信データの先頭からN個のブロックごとに切り出したデータを前記送信バッファAへ順次入力し、前記送信データのうち、前記送信バッファAに未入力のデータがブロックN個分の大きさより大きくても前記容量の小さいバッファに格納できる大きさとなった場合、当該データを前記送信バッファAへ一度に入力する第1ステップと、
    前記通信装置が備える通信部が、前記第1ステップで前記送信バッファAへデータが入力される度に、当該データを前記送信バッファAから前記他の通信装置へ送信する第2ステップとを備えることを特徴とする通信方法。
  9. データを他の通信装置へ送信して、前記他の通信装置に対し、当該送信データを一定の大きさのブロックごとに分けて行う所定の処理をさせる通信装置で実行される通信プログラムであって、
    前記通信装置が備える送信バッファAと前記他の通信装置が備える受信バッファBとのうち、容量の小さいバッファに格納できるブロックの数をNとし、前記送信データの先頭からN個のブロックごとに切り出したデータを前記送信バッファAへ順次入力し、前記送信データのうち、前記送信バッファAに未入力のデータがブロックN個分の大きさより大きくても前記容量の小さいバッファに格納できる大きさとなった場合、当該データを前記送信バッファAへ一度に入力する制御処理と、
    前記制御処理から前記送信バッファAへデータが入力される度に、当該データを前記送信バッファAから前記他の通信装置へ送信する通信処理とをコンピュータに実行させることを特徴とする通信プログラム。
JP2008173307A 2008-07-02 2008-07-02 通信装置及び暗号通信システム及び通信方法及び通信プログラム Expired - Fee Related JP4906800B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008173307A JP4906800B2 (ja) 2008-07-02 2008-07-02 通信装置及び暗号通信システム及び通信方法及び通信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008173307A JP4906800B2 (ja) 2008-07-02 2008-07-02 通信装置及び暗号通信システム及び通信方法及び通信プログラム

Publications (2)

Publication Number Publication Date
JP2010016526A JP2010016526A (ja) 2010-01-21
JP4906800B2 true JP4906800B2 (ja) 2012-03-28

Family

ID=41702228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008173307A Expired - Fee Related JP4906800B2 (ja) 2008-07-02 2008-07-02 通信装置及び暗号通信システム及び通信方法及び通信プログラム

Country Status (1)

Country Link
JP (1) JP4906800B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5779434B2 (ja) 2011-07-15 2015-09-16 株式会社ソシオネクスト セキュリティ装置及びセキュリティシステム
JP2013141137A (ja) * 2012-01-05 2013-07-18 Ricoh Co Ltd 複合システム
JP2013143653A (ja) * 2012-01-10 2013-07-22 Canon Inc 情報処理装置、情報処理方法
GB2512807B (en) * 2012-02-21 2014-11-19 Ibm Network node with network-attached stateless security offload device
JP2020009022A (ja) * 2018-07-04 2020-01-16 キヤノン株式会社 通信装置およびその制御方法、通信システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592624A (en) * 1990-09-28 1997-01-07 Fujitsu Limited Data communication for controlling message transmission and reception among processing modules using information stored in descriptor to form a loosely coupled multiprocessing system
JP2004126323A (ja) * 2002-10-04 2004-04-22 Sony Corp ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置
JP4346962B2 (ja) * 2003-06-05 2009-10-21 日本電気株式会社 暗号化通信制御装置
JP2006041684A (ja) * 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法

Also Published As

Publication number Publication date
JP2010016526A (ja) 2010-01-21

Similar Documents

Publication Publication Date Title
US20210377010A1 (en) Key management method and related device
EP2584732B1 (en) Secure data transfer using random ordering and random block sizing
US8077867B2 (en) Confidential information processing apparatus, confidential information processing device, and confidential information processing method
US9003202B2 (en) Memory control device, semiconductor memory device, memory system, and memory control method
EP0482371A2 (en) Method and apparatus for controlling the use of a public key, based on the level of integrity for the key
KR101305627B1 (ko) 암호 연산 장치 및 메모리 시스템
CN108959978A (zh) 设备中密钥的生成与获取方法及装置
JP4906800B2 (ja) 通信装置及び暗号通信システム及び通信方法及び通信プログラム
CN115208701B (zh) 数据包选择加密方法及装置
JP5080908B2 (ja) 機密情報処理機器、機密情報処理装置、及び機密情報処理方法
JP6834771B2 (ja) 通信装置および通信方法
US7167559B2 (en) Information security device, exponentiation device, modular exponentiation device, and elliptic curve exponentiation device
JP6162556B2 (ja) 記憶装置及び情報処理システム
Ferozpuri et al. Hardware api for post-quantum public key cryptosystems
US6501840B1 (en) Cryptographic processing apparatus cryptographic processing method and recording medium for recording a cryptographic processing program
CN119483954B (zh) 密码运算方法及密码芯片
JP2020020928A (ja) 通信装置および通信プログラム
US9979541B2 (en) Content management system, host device and content key access method
CN113076568A (zh) 一种总线保护装置、方法、芯片和存储介质
CN112035866A (zh) 一种数据加解密方法、装置、设备和计算机可读存储介质
CN116208322A (zh) 秘钥软硬切换实现的方法、装置、设备和存储介质
CN115208570A (zh) 基于对密钥进行动态更换的加密方法及装置
JP2021128375A (ja) 制御システムおよびサーバ装置
CN115208569B (zh) 密钥动态分配的加密解密方法及装置
JP2004184516A (ja) デジタルデータ送信端末

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111202

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

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

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4906800

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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