(57)【特許請求の範囲】
【請求項１】
暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、
送信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信し、
受信機が、同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行う
ことを特徴とする共通鍵暗号通信システム。
【請求項２】
受信機は、部分ＰＯＮクロックカウンタを読み出したときにＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じでないときは、当該ＰＯＮクロックカウンタを最大ジッタ量の２倍の値で割ったときの余りを求め、余りが当該最大ジッタ量以上であるときは、当該部分ＰＯＮクロックカウンタを１回インクリメントしたものを含む入力ブロックカウンタによる復号化を行う一方、余りが当該最大ジッタ量未満であるときは、当該部分ＰＯＮクロックカウンタを１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うことを特徴とする請求項１記載の共通鍵暗号通信システム。
【請求項３】
暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、
受信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うときの送信機であって、
同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信する
ことを特徴とする送信機。
【請求項４】
暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、
送信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信するときの受信機であって、
同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行う
ことを特徴とする受信機。
【請求項５】
暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、
送信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信し、
受信機が、同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行う
ことを特徴とする共通鍵暗号通信方法。
【請求項６】
請求項３記載の送信機または請求項４記載の受信機をコンピュータで実現するためのコンピュータプログラム。
【請求項７】
請求項６記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通鍵暗号通信システムに関するものである。
【背景技術】
【０００２】
これまで、ＰＯＮ(Passive Optical Network System)における双方向通信データの暗号化方式として、ＩＴＵ−Ｔ  Ｇ．９８３．１（非特許文献１）に規定されるＣｈｕｒｎ方式が広く用いられてきた。この方式は、センタ装置からユーザ側装置への下り通信のみに用いられる。また、暗号化の鍵長が２４ビットと短いので、今後の高速通信方式へ採用する暗号方式としては貧弱であるとされる。
【０００３】
対し、今後の高速通信方式として期待されるのが、ＩＥＥＥ８０２．３ａｈ（非特許文献２）で規格化されたポイント・マルチポイント通信方式（Ethernet（登録商標：以下、Ethernetおよびイーサネットについて同じ）Passive Optical Network:EPON）である。
【０００４】
この方式では、イーサネットフレームのような可変長データの暗号化方式を規定していないので、特許文献１では、非同期の可変長データをパディング処理により整数倍し、同期固定長のデータとしてブロック暗号化することが提案されているのだが、これを、６４バイトから１５２２バイトの間の任意のデータ長をとるイーサネットの通信に適用した場合、パディングされる無効な領域が増加し、伝送効率の極端な低下が予想される。
【０００５】
また、EPONのおいて伝送される可変長のイーサネットフレームを十分強固に暗号化できる方式としては、非特許文献３に開示されたAES128bitCTR方式がある。非特許文献４では、この方式の適用が提案されている。
【０００６】
AES128bitCTR方式は、暗号化を行う送信機と、復号化を行う受信機とで、同じ鍵を用いる、ブロック暗号モードの共通鍵暗号化方式である。
【０００７】
この方式は、イーサネットフレームのような可変長データをパディング等で固定長に揃えることなくブロック暗号化する方式である。
【０００８】
この方式では、例えばイーサネットフレームを４つにブロック化した内の１ブロックを入力ブロックカウンタで暗号化（ブロック暗号化）し、その暗号を同じ内容の入力ブロックカウンタで復号する。また、他の３つについても、入力ブロックカウンタと同じ内容の入力ブロックカウンタで復号を行う。
【０００９】
非特許文献４では、EPONにAES128bitCTR方式を適用するに当たり、入力ブロックカウンタと入力ブロックカウンタとを同期させるため、EPON内部の３２ビットカウンタであって、１６ｎＳ（ナノ秒）ごとに１ビットずつインクリメントされる、ＰＯＮクロックカウンタの利用が提案されている。
【００１０】
これによると送信機ではＰＯＮクロックカウンタを読み出し、それを含む入力ブロックカウンタで平文を暗号化し、その暗号を受信機に送信する。
【００１１】
受信機でもＰＯＮクロックカウンタを読み出し、それを含む入力ブロックカウンタで暗号を復号化し、平文を再生する。
【非特許文献１】ITU-T G.983.1:SERIES G:TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS Digital transmission systems - Digital sections and digital line system - Optical line systems for local and access networks
【非特許文献２】IEEE Std 802.3ah:IEEE Standard for Information technology. Telecommunications and information exchange between systems. Local and metropolitan area networks. Specific requirements Part 3: Carrier Sense Multiple Access with Collision Detection(CSMA/CD) Access Method and Physical Layer Specifications
【非特許文献３】NIST Special Publication 800-38A: Recommendation for Block Cipher Modes of Operation Methods and Techniques
【非特許文献４】CTR Mode of Encryption:Onn Haran, Passave, Olli-Pekka Hiironen, Nokia,［online］,［平成１７年７月３０日検索］,インターネット＜URL：http://www.ieee802.orn/1/linksec/meetings/PrevSep02/haran_p2mp_2_0702.pdf＞
【特許文献１】特開２００４−１５８９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、実際には、ＰＯＮクロックカウンタ同士が同じにならないことがある。つまり、ＰＯＮクロックカウンタ間でジッタ（誤差）が生じることがある。これに鑑み、ＩＥＥＥ８０２．３ａｈでは、センタ装置側１２８ｎＳ、ユーザ側装置側１９２ｎＳのジッタを許容している。ジッタがある場合、ＰＯＮクロックカウンタ同士が同じにならないため、平文が再生できないという不都合が生じる。
【００１３】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、ジッタがあった場合でも平文を再生できる共通鍵暗号通信システムを提供することにある。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、請求項１の本発明は、暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、送信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信し、受信機が、同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うことを特徴とする共通鍵暗号通信システムをもって解決手段とする。
【００１５】
請求項２の本発明は、受信機は、部分ＰＯＮクロックカウンタを読み出したときにＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じでないときは、当該ＰＯＮクロックカウンタを最大ジッタ量の２倍の値で割ったときの余りを求め、余りが当該最大ジッタ量以上であるときは、当該部分ＰＯＮクロックカウンタを１回インクリメントしたものを含む入力ブロックカウンタによる復号化を行う一方、余りが当該最大ジッタ量未満であるときは、当該部分ＰＯＮクロックカウンタを１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うことを特徴とする請求項１記載の共通鍵暗号通信システムをもって解決手段とする。
【００１６】
請求項３の本発明は、暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、受信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うときの送信機であって、同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信することを特徴とする送信機をもって解決手段とする。
【００１７】
請求項４の本発明は、暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、送信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信するときの受信機であって、同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うことを特徴とする受信機をもって解決手段とする。
【００１８】
請求項５の本発明は、暗号化を行う送信機ではＰＯＮクロックカウンタが定期的にインクリメントされ、復号化を行う受信機では、同一長のＰＯＮクロックカウンタが、送信機のＰＯＮクロックカウンタと同じ周期でインクリメントされ、送信機が、ＰＯＮクロックカウンタ間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタを含む入力ブロックカウンタにより生成した暗号とともに、当該部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信し、受信機が、同位置の部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じであるときは、当該部分ＰＯＮクロックカウンタを含む入力ブロックカウンタによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うことを特徴とする共通鍵暗号通信方法をもって解決手段とする。
【００１９】
請求項６の本発明は、請求項３記載の送信機または請求項４記載の受信機をコンピュータで実現するためのコンピュータプログラムをもって解決手段とする。
【００２０】
請求項７の本発明は、請求項６記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体をもって解決手段とする。
【発明の効果】
【００２１】
本発明によれば、送信機が、最大ジッタ量の２倍以上の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットを受信機に送信し、受信機が、最下位ビット同士が同じでないときは、部分ＰＯＮクロックカウンタを１回インクリメントまたは１回デクリメントすることで、ジッタがあった場合でも、入力ブロックカウンタ同士が同じになるので、平文を再生することができる。
【００２２】
また、最大ジッタ量の４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタを読み出すことで、入力ブロックカウンタの多様性が増し、よって、暗号解読の困難性を向上させることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面を参照して説明する。
【００２４】
図１は、本実施の形態に係る共通鍵暗号通信システムの構成図である。
【００２５】
共通鍵暗号通信システム１Ａは、AES128bitCTR方式の通信システムであり、送信機１と受信機２とを備える。送信機１および受信機２は、EPONのセンタ装置とユーザ側装置（共に図示せず）の間での双方向通信が行われるときの各装置内に構成される。このセンタ装置とユーザ側装置の間には、光スプリッタ等の受動素子（図示せず）が設けられ、この受動素子、センタ装置受動素子間を接続する光ファイバならびにユーザ側装置受動素子間を接続する光ファイバが、送信機受信機間の伝送路を構成している。
【００２６】
送信機１は、ビット列であって最下位ビットが定期的にインクリメントされるＰＯＮクロックカウンタ１１と、このＰＯＮクロックカウンタ１１と後述するＰＯＮクロックカウンタ２１との間で許容される最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされるビット列である部分ＰＯＮクロックカウンタ１１１を暗号化の際にＰＯＮクロックカウンタ１１から読み出す部分ＰＯＮクロックカウンタ読み出し部１２と、この読み出した部分ＰＯＮクロックカウンタ１１１を含むビット列である入力ブロックカウンタＩＢｅｎｃにより、平文から暗号を生成する暗号生成部１３とを備え、暗号とともに、当該部分ＰＯＮクロックカウンタ１１１の最下位ビット１１１ＬＳＢを受信機２に送信するようになっている。
【００２７】
また、送信機１は、ＰＯＮクロックカウンタ１１が１周するごとにインクリメントされるビット列であるラウンドアップカウンタ１４と、暗号化されたビット数が所定数となるごとにインクリメントされるビット列であるシリアル番号１５とを備える。
【００２８】
本実施の形態では、ＰＯＮクロックカウンタ１１といったビット列のインクリメントあるいはデクリメントは最下位ビットで（１ビットごとに）行われる。以下、最下位ビットでということについては、説明冗長化の防止のため、言及しないこととする。
【００２９】
また、本実施の形態では、ＬＳＢ（Least Significant Bit)が「０」で、以下、「１」、「０」、「０」、「０」、「０」と続き、ＭＳＢ(Most Significant Bit)が「０」である、このようなビット列を、「［６：０］＝０００００１０」のように示す。
【００３０】
また、ＬＳＢが「０」で、以下、「１」、「０」、「０」、「０」、「０」、「０」、「１」と続き、ＭＳＢが「０」である、このようなビット列を、「［８：７］＝０１｜［６：０］＝０００００１０」のように、連結記号「｜」を用いて示す。
【００３１】
また、ビット列「［８：７］＝０１｜［６：０］＝０００００１０」の中の、「［８：７］＝０１」の部分を、ビット列［ＭＳＢ：７］のように示す。
【００３２】
また、総ビット数が１１９であり、しかも全てのビットが「０」である、このようなビット列を、「［１１８：０］＝０」のように示す。
【００３３】
受信機２は、ＰＯＮクロックカウンタ１１と同一長のビット列であって、復号化の際に暗号化の際のＰＯＮクロックカウンタ１１と同じになるようにインクリメントされるビット列であるＰＯＮクロックカウンタ２１と、復号化の際に、同位置のビット列である部分ＰＯＮクロックカウンタ２１１を読み出す部分ＰＯＮクロックカウンタ読み出し部２２と、読み出された部分ＰＯＮクロックカウンタ２１１の最下位ビット２１１ＬＳＢと、送信された最下位ビット１１１ＬＳＢとが同じであるときは、当該部分ＰＯＮクロックカウンタ２１１を含むビット列である入力ブロックカウンタＩＢｄｅｃによる復号化を行う一方、同じでないときは、読み出した部分ＰＯＮクロックカウンタ２１１を１回インクリメントまたは１回デクリメントしたものを含むビット列である入力ブロックカウンタＩＢｄｅｃによる復号化を行う復号部２３と、このように同じでないときに、読み出した部分ＰＯＮクロックカウンタ２１１を１回インクリメントまたは１回デクリメントする部分ＰＯＮクロックカウンタ補正部２４とを備える。
【００３４】
また、受信機２は、ＰＯＮクロックカウンタ２１が１周するごとにインクリメントされるビット列であるラウンドアップカウンタ２５と、復号されたビット数が所定数となるごとにインクリメントされるビット列であるシリアル番号２６とを備える。
【００３５】
本実施の形態では、送信機１と受信機２の間の伝送速度を１Ｇｂｐｓ（giga bit per second）とする。
【００３６】
また、シリアル番号１５とシリアル番号２６は、１２８ビットの平文を暗号化するごとにインクリメントされることとする。
【００３７】
また、ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１のそれぞれの総ビット数（長さ）は５とし、ここでは、これらが６４ｎＳ（ユニットという）ごとにインクリメントされることとする。ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１との間で許容される最大ジッタ量は、ここでは４ユニット（２５６ｎＳ）とする。つまり、ジッタがある場合、復号化の際のＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１に対して、最大で４ユニット（２５６ｎＳ）遅れる、あるいは進むことになる。
【００３８】
このように、最大ジッタ量が４ユニットなので、部分ＰＯＮクロックカウンタ読み出し部１２は、この最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタ１１１である、ＰＯＮクロックカウンタ１１［ＭＳＢ：３］を読み出し、部分ＰＯＮクロックカウンタ読み出し部２２は、同位置の部分ＰＯＮクロックカウンタ２１１（ＰＯＮクロックカウンタ２１［ＭＳＢ：３］）を読み出すようになっている。
【００３９】
ＰＯＮクロックカウンタ１１［ＭＳＢ：３］およびＰＯＮクロックカウンタ２１［ＭＳＢ：３］は、ＰＯＮクロックカウンタ１１およびＰＯＮクロックカウンタ２１の８インクリメント（８ユニット）ごとにインクリメントされる。つまり、これらは、６４ｎＳ×８＝５１２ｎＳごとにインクリメントされる。
【００４０】
（本実施の形態の動作）
次に、図２および図３を参照して、本実施の形態の動作を説明する。
【００４１】
図２に示すように、暗号生成部１３に、例えば、長さが６４バイト（５１２ビット）のイーサネットフレームが到着すると、部分ＰＯＮクロックカウンタ読み出し部１２は、ＰＯＮクロックカウンタ１１から部分ＰＯＮクロックカウンタ１１１を読み出す。
【００４２】
具体的には、そのときのＰＯＮクロックカウンタ１１が「［４：０］＝０１０００」つまり「［４：３］＝０１｜［２：０］＝０００」である場合、部分ＰＯＮクロックカウンタ読み出し部１２は、ＰＯＮクロックカウンタ１１［４：３］を読み出す。このＰＯＮクロックカウンタ１１［４：３］（部分ＰＯＮクロックカウンタ１１１という）は、同一のイーサネットフレーム内の平文暗号化で共通に使用されるものである。
【００４３】
部分ＰＯＮクロックカウンタ読み出し部１２は、予め最大ジッタ量を２倍した数Ｒを記憶しており、ここでの読み出しでは、式（１）を実行することで、ＣＣｅｎｃ（部分ＰＯＮクロックカウンタ１１１）を求める。
【００４４】
ＣＣｅｎｃ＝（ＰＣｅｎｃ−ＭＯＤ（ＰＣｅｎｃ，Ｒ））／Ｒ        （１）
なお、式（１）のＰＣｅｎｃは、読み出したＰＯＮクロックカウンタ１１であり、ＭＯＤ（ＰＣｅｎｃ，Ｒ）は、ＰＣｅｎｃをＲで割ったときの余りである。
【００４５】
次に、暗号生成部１３は、この読み出した部分ＰＯＮクロックカウンタ１１１を含むビット列であるクロックカウンタ１６を生成する。
【００４６】
具体的には、そのときのラウンドアップカウンタ１４が「［１１８：０］＝０」である場合、部分ＰＯＮクロックカウンタ読み出し部１２は、クロックカウンタ１６「［１２０：２］＝０｜［１：０」＝０１」を生成する。
【００４７】
つまり、暗号生成部１３は、図３に示すように、ＰＯＮクロックカウンタ１１内の部分ＰＯＮクロックカウンタ１１１およびラウンドアップカウンタ１４を読み出し、読み出した部分ＰＯＮクロックカウンタ１１１の上位側に、ラウンドアップカウンタ１４から読み出したビット列「［１１８：０］＝０」を連結することでクロックカウンタ１６を生成する。なお、ラウンドアップカウンタ１４を用いず、クロックカウンタ１６の上位１１８ビットを全て「０」としてもよい。また、ラウンドアップカウンタ１４の下位Ｎ（＜１１９）ビットを読み出し、これを部分ＰＯＮクロックカウンタ１１１の上位側に連結することでクロックカウンタ１６を生成してもよい。
【００４８】
次に、暗号生成部１３は、図３に示すように、シリアル番号１５を読み出し、これをクロックカウンタ１６の下位側に連結することで、入力ブロックカウンタＩＢｅｎｃを生成する。シリアル番号１５が「［６：０］＝０００００００」ならば、入力ブロックカウンタＩＢｅｎｃは「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００００」となる。なお、ラウンドアップカウンタ１４の下位Ｎ（＜１１９）ビットを部分ＰＯＮクロックカウンタ１１１の上位側に連結してクロックカウンタ１６を生成した場合は、この上位側にビット数が（１１９−Ｎ）であるビット列を連結してもよい。
【００４９】
そして、イーサネットフレームを４つにブロック化した内の第１ブロック（１２８ビットの平文）を、暗号生成部１３が、その入力ブロックカウンタＩＢｅｎｃ「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００００」で暗号化（ブロック暗号化）する。
【００５０】
次に、暗号生成部１３は、同様に、第２ブロック（２つ目の１２８ビットの平文）を暗号化するための入力ブロックカウンタＩＢｅｎｃを生成する。第２番目のブロックであるので、シリアル番号１５を１つインクリメントし、入力ブロックカウンタＩＢｅｎｃは「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝００００００１」となる。
【００５１】
以下、同様にして、長さが６４バイトのイーサネットフレームについては、入力ブロックカウンタＩＢｅｎｃが以下の如く、４回生成され、それぞれ１ブロックを暗号化することにより、合計４つの暗号（ブロック暗号）が生成される。
【００５２】
第１番目の入力ブロックカウンタＩＢｅｎｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００００」
第２番目の入力ブロックカウンタＩＢｅｎｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝００００００１」
第３番目の入力ブロックカウンタＩＢｅｎｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００１０」
第４番目の入力ブロックカウンタＩＢｅｎｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００１１」
送信機１は、図２に示すように、各暗号をイーサネットフレームに格納するとともに、そのプリアンブル領域に、部分ＰＯＮクロックカウンタ１１１の最下位ビット１１１ＬＳＢ（この場合、「１」）を付与し、このフレームを受信機２に送信する。
【００５３】
なお、ＰＯＮクロックカウンタ１１［ＭＳＢ：３］およびＰＯＮクロックカウンタ２１［ＭＳＢ：３］は、６４ｎＳ×８＝５１２ｎＳごとにインクリメントされるので、インクリメントされた後に到着するイーサネットフレームについての暗号化の際は、部分ＰＯＮクロックカウンタ１１１「［１：０］＝１０」が読み出され、よって、イーサネットフレームごとに異なる入力ブロックカウンタＩＢｅｎｃで暗号化を行うことができる。つまり、最大ジッタ量の４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタ１１１を読み出すことで、入力ブロックカウンタＩＢｅｎｃの多様性が増し、よって、暗号解読の困難性を向上させることができる。
【００５４】
また、最下位ビット１１１ＬＳＢをイーサネットフレームのプリアンブル領域に付与するので、余分なイーサネットフレームの送受信が不要となる。
【００５５】
さて、復号部２３に、イーサネットフレームが到着すると、部分ＰＯＮクロックカウンタ読み出し部２２は、部分ＰＯＮクロックカウンタ２１１を読み出し、部分ＰＯＮクロックカウンタ補正部２４は、ＰＯＮクロックカウンタ２１を読み出す。
【００５６】
具体的には、そのときのＰＯＮクロックカウンタ２１は、ジッタがない場合、暗号化の際のＰＯＮクロックカウンタ１１と同じになるので、「［４：０］＝０１０００」つまり「［４：３］＝０１｜［２：０］＝０００」であり、部分ＰＯＮクロックカウンタ読み出し部２２は、そのときのＰＯＮクロックカウンタ２１［４：３］（部分ＰＯＮクロックカウンタ２１１という）を読み出し、部分ＰＯＮクロックカウンタ補正部２４は、そのときのＰＯＮクロックカウンタ２１を読み出す。この部分ＰＯＮクロックカウンタ２１１（ＰＯＮクロックカウンタ２１［４：３］）は、同一のイーサネットフレーム内の暗号の復号で共通に使用されるものである。
【００５７】
部分ＰＯＮクロックカウンタ読み出し部２２は、部分ＰＯＮクロックカウンタ読み出し部１２が記憶したものと同じ数Ｒを記憶しており、ここでの読み出しでは、式（２）を実行することで、ＣＣｄｅｃ（部分ＰＯＮクロックカウンタ２１１）を求める。
【００５８】
ＣＣｄｅｃ＝（ＰＣｄｅｃ−ＭＯＤ（ＰＣｄｅｃ，Ｒ））／Ｒ        （２）
なお、式（２）のＰＣｄｅｃは、読み出したＰＯＮクロックカウンタ２１であり、ＭＯＤ（ＰＣｄｅｃ，Ｒ）は、ＰＣｄｅｃをＲで割ったときの余りである。
【００５９】
次に、部分ＰＯＮクロックカウンタ補正部２４が、読み出された部分ＰＯＮクロックカウンタ２１１の最下位ビット２１１ＬＳＢと、プリアンブル領域に付与された最下位ビット１１１ＬＳＢとが同じか否かを判定する。前述のように、ＰＯＮクロックカウンタ２１は、ジッタがない場合、暗号化の際のＰＯＮクロックカウンタ１１と同じになるようにインクリメントされるので、最下位ビット２１１ＬＳＢは「１」であり、最下位ビット１１１ＬＳＢも「１」であるので、ここでの判定では、同じであると判定される。
【００６０】
同じと判定された場合、復号部２３が、イーサネットフレーム内の４つの暗号を復号化する。
【００６１】
ここでは、まず、復号部２３は、この読み出した部分ＰＯＮクロックカウンタ２１１を含むビット列であるクロックカウンタ２７を生成する。
【００６２】
具体的には、そのときのラウンドアップカウンタ２５が「［１１８：０］＝０」であるので、復号部２３は、クロックカウンタ２７「［１２０：２］＝０｜［１：０」＝０１」を生成する。
【００６３】
つまり、復号部２３は、部分ＰＯＮクロックカウンタ２１１およびラウンドアップカウンタ２５を読み出し、読み出した部分ＰＯＮクロックカウンタ２１１の上位側に、ラウンドアップカウンタ２５から読み出したビット列「［１１８：０］＝０」を連結することでクロックカウンタ２７を生成する。なお、ラウンドアップカウンタ２５を用いず、クロックカウンタ２７の上位１１８ビットを全て「０」としてもよい。また、ラウンドアップカウンタ２５の下位Ｎ（＜１１９）ビットを読み出し、これを部分ＰＯＮクロックカウンタ２１１の上位側に連結することでクロックカウンタ２７を生成してもよい。
【００６４】
次に、復号部２３が、シリアル番号２６を読み出し、これをクロックカウンタ２７の下位側に連結することで、入力ブロックカウンタＩＢｄｅｃを生成する。クロックカウンタ２７は「［６：０］＝０００００００」なので、入力ブロックカウンタＩＢｄｅｃは「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００００」となる。なお、ラウンドアップカウンタ２５の下位Ｎ（＜１１９）ビットを部分ＰＯＮクロックカウンタ２１１の上位側に連結してクロックカウンタ２７を生成した場合は、この上位側に、部分ＰＯＮクロックカウンタ１１１に連結されたものと同じビット列（ビット数が１１９−Ｎのビット列）を連結してもよい。
【００６５】
そして、復号部２３が、この入力ブロックカウンタＩＢｄｅｃ「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００００」で、１つ目の暗号（ブロック暗号）、例えば第１番目の入力ブロックカウンタＩＢｅｎｃで暗号化された暗号を復号化する。
【００６６】
次に、復号部２３は、同様に、２つ目の暗号を復号するための入力ブロックカウンタＩＢｄｅｃを生成する。第２番目のブロックであるので、シリアル番号２６を１つインクリメントし、入力ブロックカウンタＩＢｄｅｃは「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝００００００１」となる。
【００６７】
以下、同様にして、送信されたイーサネットフレームについては、入力ブロックカウンタＩＢｄｅｃが以下の如く、４回生成され、それぞれ１回づつ暗号を復号化することにより、合計４つの平文が生成される。
【００６８】
第１番目の入力ブロックカウンタＩＢｄｅｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００００」
第２番目の入力ブロックカウンタＩＢｄｅｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝００００００１」
第３番目の入力ブロックカウンタＩＢｄｅｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００１０」
第４番目の入力ブロックカウンタＩＢｄｅｃ
「［１２７：９］＝０｜［８：７］＝０１｜［６：０］＝０００００１１」
そして、受信機２は、図２に示すように、各平文をイーサネットフレームに格納する。  次に、ジッタがある場合について説明する。
【００６９】
復号部２３に、図２のイーサネットフレームが到着し、部分ＰＯＮクロックカウンタ読み出し部２２が、ＰＯＮクロックカウンタ２１から部分ＰＯＮクロックカウンタ２１１を読み出したときの、ＰＯＮクロックカウンタ２１は、ジッタがある場合、暗号化の際のＰＯＮクロックカウンタ１１と同じにならない。
【００７０】
具体的には、復号化の際のＰＯＮクロックカウンタ２１は、暗号化の際のＰＯＮクロックカウンタ１１に対して１ユニット（つまり最小ジッタ量分）遅れていた場合には、「［４：０］＝００１１１」つまり「［４：３］＝００｜［２：０］＝１１１」であり、部分ＰＯＮクロックカウンタ読み出し部２２は、式（２）を実行することで、このＰＯＮクロックカウンタ２１からＰＯＮクロックカウンタ２１［４：３］を読み出す。
【００７１】
あるいは、復号化の際のＰＯＮクロックカウンタ２１は、暗号化の際のＰＯＮクロックカウンタ１１に対して４ユニット（つまり最大ジッタ量分）遅れていた場合には、「［４：０］＝００１００」つまり「［４：３］＝００｜［２：０］＝１００」であり、部分ＰＯＮクロックカウンタ読み出し部２２は、式（２）を実行することで、このＰＯＮクロックカウンタ２１からＰＯＮクロックカウンタ２１［４：３］を読み出す。
【００７２】
いずれにしても、暗号化の際のＰＯＮクロックカウンタ１１「［４：０］＝０１０００」に対して遅れていた場合には、部分ＰＯＮクロックカウンタ読み出し部２２は、ＰＯＮクロックカウンタ２１からＰＯＮクロックカウンタ２１［４：３］（部分ＰＯＮクロックカウンタ２１１「［１：０］＝００」）を読み出すこととなる。
【００７３】
次に、部分ＰＯＮクロックカウンタ補正部２４が、読み出された部分ＰＯＮクロックカウンタ２１１の最下位ビット２１１ＬＳＢと、プリアンブル領域に付与された最下位ビット１１１ＬＳＢとが同じか否かを判定すると、最下位ビット２１１ＬＳＢは「０」であり、最下位ビット１１１ＬＳＢは「１」であるので、ここでの判定では、同じでないと判定される。
【００７４】
同じでないと判定された場合、部分ＰＯＮクロックカウンタ補正部２４は、部分ＰＯＮクロックカウンタ２１１とともに読み出されたＰＯＮクロックカウンタ２１を最大ジッタ量の２倍の値（数Ｒ）で割ったときの余りを求め、余りが最大ジッタ量（＝Ｒ／２）以上であるときは、部分ＰＯＮクロックカウンタ２１１を１回インクリメントする一方、余りが最大ジッタ量（＝Ｒ／２）未満であるときは、部分ＰＯＮクロックカウンタ２１１を１回デクリメントする。
【００７５】
つまり、部分ＰＯＮクロックカウンタ補正部２４は、部分ＰＯＮクロックカウンタ読み出し部２２が記憶したものと同じ数Ｒを設定した最大尤度関数（式（３）に示すもの）を備え、その最大尤度関数に、部分ＰＯＮクロックカウンタ２１１（ＣＣｄｅｃ）並びに当該ＰＯＮクロックカウンタ２１（ＰＣｄｅｃ）を与えることで、ＣＣｄｅｃをＣＣｄｅｃ’へと補正する。
【数１】
0004785471.tif 000002
【００７６】
ここでは、ＭＯＤ（ＰＣｄｅｃ，Ｒ）は、ＰＣｄｅｃをＲで割ったときの余りである。また、（ＭＯＤ（ＰＣｄｅｃ，Ｒ）＜Ｒ／２）が成立したときに（３ａ）が実行され、一方、成立しないとき、つまり、（ＭＯＤ（ＰＣｄｅｃ，Ｒ）≧Ｒ／２）が成立したときに（３ｂ）が実行される。
【００７７】
具体的に説明する。
【００７８】
例えば、復号化の際のＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１に対して１ユニット（つまり最小ジッタ量分）遅れていて、「［４：０］＝００１１１」であった場合、ＰＣｄｅｃ＝７となる。よって、ＭＯＤ（ＰＣｄｅｃ，Ｒ）＝ＭＯＤ（７，８）＝７となる。一方、Ｒ／２＝８／２＝４となる。よって、（ＭＯＤ（ＰＣｄｅｃ，Ｒ）≧（Ｒ／２）が成立し、（３ｂ）が実行される。その結果、ＣＣｄｅｃ’＝０＋１＝１が得られる。
【００７９】
あるいは、復号化の際のＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１に対して４ユニット（つまり最大ジッタ量分）遅れていて、「［４：０］＝００１００」であった場合、ＰＣｄｅｃ＝４となる。よって、ＭＯＤ（ＰＣｄｅｃ，Ｒ）＝ＭＯＤ（４，８）＝４となる。一方、Ｒ／２＝８／２＝４となる。よって、（ＭＯＤ（ＰＣｄｅｃ，Ｒ）≧（Ｒ／２）が成立し、（３ｂ）が実行される。その結果、ＣＣｄｅｃ’＝０＋１＝１が得られる。
【００８０】
つまり、復号化の際のＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１に対して遅れていてた場合であってもそれが最大ジッタ量分以下であれば、ＣＣｄｅｃ’＝０＋１＝１が得られる。そして、部分ＰＯＮクロックカウンタ補正部２４は、ＣＣｄｅｃ’、つまり補正後の部分ＰＯＮクロックカウンタ２１１を復号部２３へ与える。
【００８１】
次に、復号部２３が、イーサネットフレーム内の４つの暗号を復号化する。
【００８２】
ここでは、まず、復号部２３は、部分ＰＯＮクロックカウンタ補正部２４から与えられた部分ＰＯＮクロックカウンタ２１１を含む入力ブロックカウンタＩＢｄｅｃを生成する。
【００８３】
以下については、最下位ビット２１１ＬＳＢと、最下位ビット１１１ＬＳＢとが同じであると判定されたときと同様であり、すなわち、最下位ビット２１１ＬＳＢと、最下位ビット１１１ＬＳＢとが同じであると判定されたときに生成された入力ブロックカウンタＩＢｄｅｃが、ここでも生成され、その結果、最下位ビット２１１ＬＳＢと、最下位ビット１１１ＬＳＢとが同じであると判定されたときに生成された平文が、ここでも生成される。
【００８４】
一方、復号部２３に、イーサネットフレームが到着し、部分ＰＯＮクロックカウンタ読み出し部２２が、ＰＯＮクロックカウンタ２１から部分ＰＯＮクロックカウンタ２１１を読み出したときの、ＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１と同じになるようにインクリメントされないで、進んでいた場合には以下のようになる。
【００８５】
具体的には、復号化の際のＰＯＮクロックカウンタ２１は、暗号化の際のＰＯＮクロックカウンタ１１「［４：０］＝０１１１１」に対して１ユニット（つまり最小ジッタ量分）進んでていた場合には、「［４：０］＝１００００」つまり「［４：３］＝１０｜［２：０］＝０００」であり、部分ＰＯＮクロックカウンタ読み出し部２２は、式（２）を実行することで、このＰＯＮクロックカウンタ２１からＰＯＮクロックカウンタ２１［４：３］を読み出す。
【００８６】
あるいは、復号化の際のＰＯＮクロックカウンタ２１は、暗号化の際のＰＯＮクロックカウンタ１１「［４：０］＝０１１１１」に対して４ユニット（つまり最大ジッタ量分）進んでいた場合には、「［４：０］＝１００１１」つまり「［４：３］＝１０｜［２：０］＝０１１」であり、部分ＰＯＮクロックカウンタ読み出し部２２は、式（２）を実行することで、このＰＯＮクロックカウンタ２１からＰＯＮクロックカウンタ２１［４：３］を読み出す。
【００８７】
いずれにしても、暗号化の際のＰＯＮクロックカウンタ１１「［４：０］＝０１１１１」に対して進んでていた場合には、部分ＰＯＮクロックカウンタ読み出し部２２は、ＰＯＮクロックカウンタ２１からＰＯＮクロックカウンタ２１［４：３］（部分ＰＯＮクロックカウンタ２１１「［１：０］＝１０」）を読み出すこととなる。
【００８８】
次に、部分ＰＯＮクロックカウンタ補正部２４が、読み出された部分ＰＯＮクロックカウンタ２１１の最下位ビット２１１ＬＳＢと、プリアンブル領域に付与された最下位ビット１１１ＬＳＢとが同じか否かを判定すると、最下位ビット２１１ＬＳＢは「０」であり、最下位ビット１１１ＬＳＢは「１」であるので、ここでの判定では、同じでないと判定される。
【００８９】
同じでないと判定された場合、部分ＰＯＮクロックカウンタ補正部２４は、部分ＰＯＮクロックカウンタ２１１とともに読み出したＰＯＮクロックカウンタ２１を最大ジッタ量の２倍の値で割ったときの余りを求め、余りが最大ジッタ量（＝Ｒ／２）以上であるときは、部分ＰＯＮクロックカウンタ２１１を１回インクリメントする一方、余りが最大ジッタ量（＝Ｒ／２）未満であるときは、部分ＰＯＮクロックカウンタ２１１を１回デクリメントする。
【００９０】
つまり、部分ＰＯＮクロックカウンタ補正部２４は、部分ＰＯＮクロックカウンタ読み出し部２２が記憶したものと同じ数Ｒを設定した最大尤度関数（式（３）に示すもの）を備え、その最大尤度関数に、部分ＰＯＮクロックカウンタ２１１（ＣＣｄｅｃ）並びに当該ＰＯＮクロックカウンタ２１（ＰＣｄｅｃ）を与えることで、ＣＣｄｅｃを補正したものであるＣＣｄｅｃ’を求める。
【００９１】
具体的に説明する。
【００９２】
例えば、復号化の際のＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１に対して１ユニット（つまり最小ジッタ量分）進んでいて、「［４：０］＝１００００」であった場合、ＰＣｄｅｃ＝１６となる。よって、ＭＯＤ（ＰＣｄｅｃ，Ｒ）＝ＭＯＤ（１６，８）＝０となる。一方、Ｒ／２＝８／２＝４となる。よって、（ＭＯＤ（ＰＣｄｅｃ，Ｒ）＜（Ｒ／２）が成立し、（３ａ）が実行される。その結果、ＣＣｄｅｃ’＝２−１＝１が得られる。
【００９３】
あるいは、復号化の際のＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１に対して４ユニット（つまり最大ジッタ量分）進んでいて、「［４：０］＝１００１１」であった場合、ＰＣｄｅｃ＝１９となる。よって、ＭＯＤ（ＰＣｄｅｃ，Ｒ）＝ＭＯＤ（１９，８）＝３となる。一方、Ｒ／２＝８／２＝４となる。よって、（ＭＯＤ（ＰＣｄｅｃ，Ｒ）＜（Ｒ／２）が成立し、（３ａ）が実行される。その結果、ＣＣｄｅｃ’＝２−１＝１が得られる。
【００９４】
つまり、復号化の際のＰＯＮクロックカウンタ２１が、暗号化の際のＰＯＮクロックカウンタ１１に対して進んでいた場合であってもそれが最大ジッタ量分以下であれば、ＣＣｄｅｃ’＝２−１＝１が得られる。そして、部分ＰＯＮクロックカウンタ補正部２４は、ＣＣｄｅｃ’、つまり補正後の部分ＰＯＮクロックカウンタ２１１を復号部２３へ与える。
【００９５】
次に、復号部２３が、イーサネットフレーム内の４つの暗号を復号化する。
【００９６】
ここでは、まず、復号部２３は、部分ＰＯＮクロックカウンタ補正部２４から与えられた部分ＰＯＮクロックカウンタ２１１を含む入力ブロックカウンタＩＢｄｅｃを生成する。以下については、最下位ビット２１１ＬＳＢと、最下位ビット１１１ＬＳＢとが同じであると判定されたときと同様であり、すなわち、最下位ビット２１１ＬＳＢと、最下位ビット１１１ＬＳＢとが同じであると判定されたときに生成された入力ブロックカウンタＩＢｄｅｃが、ここでも生成され、その結果、最下位ビット２１１ＬＳＢと、最下位ビット１１１ＬＳＢとが同じであると判定されたときに生成された平文が、ここでも生成される。
【００９７】
（応用例１）
次に、上記実施の形態を基本とした応用例１を説明する。
【００９８】
応用例１では、ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１との間で許容される最大ジッタ量が、３ユニットであり、部分ＰＯＮクロックカウンタ読み出し部１２は、この最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタ１１１であるＰＯＮクロックカウンタ１１［ＭＳＢ：３］を読み出し、部分ＰＯＮクロックカウンタ読み出し部２２は、同位置の部分ＰＯＮクロックカウンタ２１１（ＰＯＮクロックカウンタ２１［ＭＳＢ：３］）を読み出すようになっている。これにより、上記実施の形態と同様の作用効果が得られる。
【００９９】
（応用例２）
次に、上記実施の形態を基本とした応用例２を説明する。
【０１００】
応用例２では、ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１との間で許容される最大ジッタ量が、２ユニットであり、部分ＰＯＮクロックカウンタ読み出し部１２は、この最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタ１１１であるＰＯＮクロックカウンタ１１［ＭＳＢ：２］を読み出し、部分ＰＯＮクロックカウンタ読み出し部２２は、同位置の部分ＰＯＮクロックカウンタ２１１（ＰＯＮクロックカウンタ２１［ＭＳＢ：２］）を読み出すようになっている。これにより、上記実施の形態と同様の作用効果が得られる。さらには、部分ＰＯＮクロックカウンタ１１１がインクリメントされる周期が短くなり、暗号解読が困難となる。
【０１０１】
（応用例３）
次に、上記実施の形態を基本とした応用例３を説明する。
【０１０２】
応用例３では、ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１との間で許容される最大ジッタ量が、５ユニットであり、部分ＰＯＮクロックカウンタ読み出し部１２は、この最大ジッタ量の２倍以上かつ４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタ１１１であるＰＯＮクロックカウンタ１１［ＭＳＢ：５］を読み出し、部分ＰＯＮクロックカウンタ読み出し部２２は、同位置の部分ＰＯＮクロックカウンタ２１１（ＰＯＮクロックカウンタ２１［ＭＳＢ：５］）を読み出すようになっている。これにより、上記実施の形態と同様の作用効果が得られる。この場合、部分ＰＯＮクロックカウンタ１１１がインクリメントされる周期が長くなり、暗号解読の困難性が低下するが、最大ジッタ量の大きい場合であっても、平文を再生することができる。
【０１０３】
以上説明したように、本実施の形態では、送信機１が、ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１との間で許容される最大ジッタ量の２倍以上の周期でインクリメントされる部分ＰＯＮクロックカウンタ（１１１）を読み出し、読み出した部分ＰＯＮクロックカウンタ１１１を含む入力ブロックカウンタＩＢｅｎｃにより生成した暗号とともに、読み出した部分ＰＯＮクロックカウンタの最下位ビット１１１ＬＳＢを受信機２に送信し、受信機２が、同位置の部分ＰＯＮクロックカウンタ（２１１）を読み出し、読み出した部分ＰＯＮクロックカウンタ２１１の最下位ビット２１１ＬＳＢと、送信された最下位ビット１１１ＬＳＢとが同じであるときは、当該部分ＰＯＮクロックカウンタ２１１を含む入力ブロックカウンタＩＢｄｅｃによる復号化を行う一方、同じでないときは、当該部分ＰＯＮクロックカウンタ２１１を１回インクリメントまたは１回デクリメントしたものを含む入力ブロックカウンタＩＢｄｅｃによる復号化を行う。
【０１０４】
本実施の形態では、送信機１が、最大ジッタ量の２倍以上の周期でインクリメントされる部分ＰＯＮクロックカウンタ（１１１）を読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビット１１１ＬＳＢを受信機２に送信し、受信機２が、最下位ビット２１１ＬＳＢと最下位ビット１１１ＬＳＢとが同じでないときは、部分ＰＯＮクロックカウンタ２１１を１回インクリメントまたは１回デクリメントすることで、ジッタがあった場合でも、入力ブロックカウンタＩＢｅｎｃと入力ブロックカウンタＩＢｄｅｃとが同じになるので、平文を再生することができる。
【０１０５】
また、最大ジッタ量の４倍未満の周期でインクリメントされる部分ＰＯＮクロックカウンタ１１１を読み出すことで、入力ブロックカウンタＩＢｅｎｃの多様性が増し、よって、暗号解読の困難性を向上させることができる。
【０１０６】
また、受信機２は、部分ＰＯＮクロックカウンタ２１１を読み出したときにＰＯＮクロックカウンタ２１を読み出し、読み出した部分ＰＯＮクロックカウンタの最下位ビットと、送信された最下位ビットとが同じでないときは、読み出したＰＯＮクロックカウンタを最大ジッタ量の２倍の値（数Ｒ）で割ったときの余りを求め、余りが当該最大ジッタ量（＝Ｒ／２）以上であるときは、当該部分ＰＯＮクロックカウンタを１回インクリメントしたものを含む入力ブロックカウンタによる復号化を行う一方、余りが当該最大ジッタ量（＝Ｒ／２）未満であるときは、当該部分ＰＯＮクロックカウンタを１回デクリメントしたものを含む入力ブロックカウンタによる復号化を行うことが特徴となっている。
【０１０７】
なお、各ビット列の長さを、本実施の形態での長さとは異なるものとして実施してもよい。上記実施の形態では、ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１のそれぞれの総ビット数（長さ）を５としたが、ＩＥＥＥ８０２．３ａｈで規定されているように、例えば、これを３２（ビット）としてもよい。
【０１０８】
また、各ビット列がインクリメントされる周期を、本実施の形態での周期とは異なるものとして実施してもよい。
【０１０９】
例えば、ＰＯＮクロックカウンタ１１とＰＯＮクロックカウンタ２１のそれぞれの総ビット数（長さ）を３２（ビット）とした場合に、ユニットを１６ｎＳとしてもよい。この場合、最大ジッタ量が２５６ユニットであるならば、ＰＯＮクロックカウンタ１１［ＭＳＢ：５］（部分ＰＯＮクロックカウンタ１１１）を読み出し、ＰＯＮクロックカウンタ２１［ＭＳＢ：５］（部分ＰＯＮクロックカウンタ２１１）を読み出せばよい。
【０１１０】
また、部分ＰＯＮクロックカウンタ１１１はＰＯＮクロックカウンタ１１のＭＳＢを含まなくてもよい。同様に、部分ＰＯＮクロックカウンタ２１１はＰＯＮクロックカウンタ２１のＭＳＢを含まなくてもよい。
【０１１１】
また、本実施の形態は、AES128bitCTR方式以外の通信に適用してもよい。また、本実施の形態は、１Ｇｂｐｓ以外の伝送速度の通信に適用してもよい。
【０１１２】
また、本実施の形態の送信機または受信機を、コンピュータプログラムで動作するコンピュータ（演算装置を用いたもの）で構成（実現）し、このコンピュータが本実施の形態の方法（本方法）を実行するようにしてもよい。つまり、コンピュータが、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどの記録媒体に記録されたコンピュータプログラムを読み取り、あるいは、通信回線（場合によってはインターネットに使用されるもの）を介して送信されたコンピュータプログラムを受信し、こうして取得したコンピュータプログラムを、このコンピュータが主記憶装置に記憶させ演算装置が実行することで、このコンピュータが本装置の機能を具備し、本方法が（場合によっては操作により）実行されるようにしてもよい。また、このコンピュータプログラムが記録された記録媒体を配送および陳列などして流通させてもよい。
【図面の簡単な説明】
【０１１３】
【図１】本実施の形態に係る共通鍵暗号通信システムの構成図である。
【図２】本実施の形態の動作説明図である。
【図３】入力ブロックカウンタＩＢｅｎｃの構成を示す図である。
【符号の説明】
【０１１４】
１…送信機
１Ａ…共通鍵暗号通信システム
２…受信機
１１、１２…ＰＯＮクロックカウンタ
１２、２２…部分ＰＯＮクロックカウンタ読み出し部
１３…暗号生成部
１４、２５…ラウンドアップカウンタ
１５、２６…シリアル番号
２３…復号部
２４…クロックカウンタ補正部
１１１、２１１…部分ＰＯＮクロックカウンタ
１１１ＬＳＢ、２１１ＬＳＢ…部分ＰＯＮクロックカウンタの最下位ビット
【図１】
0004785471.tif 000003
【図２】
0004785471.tif 000004
【図３】
0004785471.tif 000005