(57)【要約】【課題】  本発明は、移動通信システムに関し、特に、ハードウェア具現のための最適の暗号化関数を設計するための方法及び最適の暗号化装置に関する。【解決手段】  暗号化装置において、第１入力ビット列を入力してキースケジューラーから提供される長さが４ｎである暗号化コードによって暗号化することにより、長さが２ｎである第１暗号化ビット列を出力する暗号化部と、制御信号に従ってメモリから長さがｍである第２入力ビット列を出力して第１暗号化ビット列と暗号化演算を遂行して長さがｍである第２暗号化ビット列を出力し、制御信号に従ってメモリに第２暗号化ビット列をさらに貯蔵するように制御する制御器と、から構成される。【選択図】  図７
2004240427.tif 000002
【特許請求の範囲】
【請求項１】
長さが２ｎである入力ビット列を長さがｎである第１及び第２サブビット列に分割して暗号化手順によって暗号化演算を遂行して、最終的に長さが２ｎである暗号化ビット列を出力する暗号化装置において、
制御信号に従って前記第１サブビット列を入力して第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第１暗号化ビット列を出力するか、第２暗号化ビット列を入力して前記第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第３暗号化ビット列を出力する第１暗号化部と、
前記制御信号に従って前記第１暗号化ビット列を入力して第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び第３暗号化コードＫＬ１，１、ＫＬ１，２、ＫＬ１，３により暗号化することによって長さがｎである前記第４暗号化ビット列を出力するか、前記第１サブビット列を入力して前記第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び前記第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３により暗号化することによって長さがｎである前記第２暗号化ビット列を出力する第２暗号化部と、
前記第１サブビット列、前記第１暗号化ビット列、及び前記第２暗号化ビット列に同一のサイズの長さがｎである所定の第１暗号化コードＫＬ１，１、ＫＬ１，２と第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３と第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３とを提供するキースケジューラーと、
前記制御信号に従って複数の多重化器が前記第１サブビット列を出力して前記第１暗号化部に入力されるか、前記第２暗号化部に入力されて前記キースケジューラーから提供される前記第１暗号化コードＫＬ１，１、ＫＬ１，２、第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３、及び第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３によって暗号化演算を遂行するように制御する制御器と、から構成されることを特徴とする暗号化装置。
【請求項２】
前記制御器は、前記制御信号に従って前記第１サブビット列を出力して第１暗号化部で第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第１暗号化ビット列を出力し、前記第１暗号化ビット列を入力して第２暗号化部で第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３により暗号化することによって長さがｎである第４暗号化ビット列を出力し、前記第２サブビット列を出力するように制御した後に、前記第４暗号化ビット列と前記第２サブビット列との排他的論理和の演算を遂行して第５暗号化ビット列を出力するように制御する請求項１記載の暗号化装置。
【請求項３】
前記制御器は、前記制御信号に従って前記第１サブビット列を出力して第２暗号化部で第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３により暗号化することによって長さがｎである第２暗号化ビット列を出力し、前記第２暗号化ビット列を入力して第１暗号化部を通じて第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第３暗号化ビット列を出力し、前記第２サブビット列を出力するように制御した後に、前記第３暗号化ビット列と前記第２サブビット列との排他的論理和の演算を遂行して第６暗号化ビット列を出力するように制御する請求項１記載の暗号化装置。
【請求項４】
前記第１サブビット列と前記第２サブビット列を臨時に貯蔵し、前記制御器から印加される制御信号に従って前記第１サブビット列と前記第２サブビット列を出力する少なくとも２個以上のレジスタをさらに備える請求項１記載の暗号化装置。
【請求項５】
前記制御器は、複数の多重化器に第１制御信号を印加して前記第１暗号化部が前記第１サブビット列を入力して第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって前記第１暗号化ビット列を出力した後に、第２暗号化部が前記第１暗号化ビット列を第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３により暗号化することによって長さがｎである第４暗号化ビット列を出力するように制御する請求項２記載の暗号化装置。
【請求項６】
前記制御器は、複数の多重化器に第２制御信号を印加して前記第２暗号化部が前記第１サブビット列を入力して第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３により暗号化することによって前記第２暗号化ビット列を出力した後に、前記第１暗号化部で前記第２暗号化ビット列を第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって前記第３暗号化ビット列を出力するように制御する請求項３記載の暗号化装置。
【請求項７】
長さが２ｎである第１入力ビット列を長さがｎである第１及び第２サブビット列に分割して暗号化手順によって暗号化演算を遂行して、最終的に長さが２ｎである暗号化ビット列を出力する暗号化方法において、
制御器から印加される制御信号に従って第１暗号化部が前記長さがｎである第１サブビット列を入力してキースケジューラーから提供される第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第１暗号化ビット列を出力するか、第２暗号化部から出力される長さがｎである第２暗号化ビット列を入力して前記第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第３暗号化ビット列を出力するステップと、
前記制御器から印加される制御信号によって第２暗号化部が前記長さｎである前記第１暗号化ビット列を入力して前記キースケジューラーから提供される第２暗号化コードＫＯ１,１、ＫＯ１,２、ＫＯ１,３及び第３暗号化コードＫＩ１,１、ＫＩ１,２、ＫＩ１,３により暗号化することによって長さがｎである前記第４暗号化ビット列を出力するか、前記長さがｎである前記第１サブビット列を入力して前記第２暗号化コードＫＯ１,１、ＫＯ１,２、ＫＯ１,３及び第３暗号化コードＫＩ１,１、ＫＩ１,２、ＫＩ１,３により暗号化することによって長さがｎである前記第２暗号化ビット列を出力するステップと、から構成されることを特徴とする暗号化方法。
【請求項８】
制御信号に従って前記第１暗号化部が前記第１サブビット列を入力してキースケジューラーから提供される第１暗号化コードＫＬ１,１、ＫＬ１,２により暗号化することによって長さがｎである第１暗号化ビット列を出力するステップと、
前記第２暗号化部が前記第１暗号化ビット列を入力してキースケジューラーから提供される第２暗号化コードＫＯ１,１、ＫＯ１,２、ＫＯ１,３及び第３暗号化コードＫＩ１,１、ＫＩ１,２、ＫＩ１,３により暗号化することによって長さがｎである第４暗号化ビット列を出力するステップと、
前記第４暗号化ビット列と前記第２サブビット列との排他的論理和の演算を遂行して長さがｎである第５暗号化ビット列を出力するステップと、から構成される請求項７記載の暗号化方法。
【請求項９】
制御信号に従って前記第２暗号化部が前記第１サブビット列を入力してキースケジューラーから提供される第２暗号化コードＫＯ１,１、ＫＯ１,２、ＫＯ１,３及び第３暗号化コードＫＩ１,１、ＫＩ１,２、ＫＩ１,３により暗号化することによって前記第２暗号化ビット列を出力するステップと、
前記第１暗号化部が前記第２暗号化ビット列を入力してキースケジューラーから提供される第１暗号化コードＫＬ１,１、ＫＬ１,２により暗号化することによって長さがｎである第３暗号化ビット列を出力するステップと、
前記第３暗号化ビット列と前記第２サブビット列を排他的論理和の演算を遂行して長さがｎである第６暗号化ビット列を出力するステップと、から構成される請求項７記載の暗号化方法。
【請求項１０】
少なくとも２個以上のレジスタが前記制御器から印加される制御信号に従って、前記第１サブビット列と前記第２サブビット列を臨時に貯蔵して出力するステップをさらに備える請求項７記載の暗号化方法。
【請求項１１】
前記制御器が複数の多重化器に第１制御信号を印加して前記第１暗号化部が長さがｎである第１サブビット列を入力して前記第１暗号化コードＫＬ１,１、ＫＬ１,２により暗号化することによって長さがｎである第１暗号化ビット列を出力し、前記第２暗号化部が前記第１暗号化ビット列を入力して第２暗号化コードＫＯ１,１、ＫＯ１,２、ＫＯ１,３及び第３暗号化コードＫＩ１,１、ＫＩ１,２、ＫＩ１,３により暗号化することによって長さがｎである第４暗号化ビット列を出力するように制御するステップである請求項８記載の暗号化方法。
【請求項１２】
前記制御器が複数の多重化器に第２制御信号を印加して第２暗号化部が前記第１サブビット列を入力して第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３により暗号化することによって長さがｎである前記第２暗号化ビット列を出力し、第１暗号化部が前記第２暗号化ビット列を入力して第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第３暗号化ビット列を出力するように制御するステップである請求項９記載の暗号化方法。
【請求項１３】
長さが２ｎである第１入力ビット列を入力して第１暗号化演算を遂行して長さが２ｎである第１暗号化ビット列を出力して長さがｍである第２入力ビット列と第２暗号化演算を遂行して、最終的に長さがｍである第２暗号化ビット列を出力する暗号化装置において、
前記第１入力ビット列を入力してキースケジューラーから提供される長さが４ｎである暗号化コードによって暗号化することにより、長さが２ｎである第１暗号化ビット列を出力する暗号化部と、
制御信号に従ってメモリから前記長さがｍである第２入力ビット列を出力して前記第１暗号化ビット列と暗号化演算を遂行して長さがｍである第２暗号化ビット列を出力し、前記制御信号に従って前記メモリに前記第２暗号化ビット列をさらに貯蔵するように制御する制御器と、から構成されることを特徴とする暗号化装置。
【請求項１４】
前記制御器は、メモリに制御信号を印加して前記長さがｍである第２入力ビット列のうち、任意のアドレスに割り当てられている単位大きさの第１サブビット列を出力して前記第１暗号化ビット列と暗号化演算を遂行した後に、単位大きさを有する第２サブ暗号化ビット列を出力し、前記メモリに制御信号を印加して前記アドレスに前記第２サブ暗号化ビット列をさらに貯蔵するように制御する請求項１３記載の暗号化装置。
【請求項１５】
前記第１入力ビット列を入力してキースケジューラーから提供される長さが４ｎである暗号化コードによって暗号化することにより、長さが２ｎである第１暗号化ビット列を出力する暗号化部は、前記メモリに貯蔵されている前記第２入力ビット列の長さに従って前記第１暗号化演算を反復的に遂行する請求項１３記載の暗号化装置。
【請求項１６】
前記制御器は、前記メモリに読出し制御信号を印加して前記長さがｍである第２入力ビット列のうち、任意のアドレスに割り当てられている単位大きさの第１サブビット列を出力して前記第１暗号化ビット列と暗号化演算を遂行した後に、単位大きさを有する第２サブ暗号化ビット列を出力し、前記メモリに書込み制御信号を印加して前記アドレスに前記第２サブ暗号化ビット列をさらに貯蔵するように制御する請求項１４記載の暗号化装置。
【請求項１７】
前記メモリは、前記制御器の制御信号に従って読出し動作及び書込み動作を遂行するバッファメモリである請求項１６記載の暗号化装置。
【請求項１８】
長さが２ｎである第１入力ビット列を入力して第１暗号化演算を遂行して長さが２ｎである第１暗号化ビット列を出力して長さがｍである第２入力ビット列と第２暗号化演算を遂行して、最終的に長さがｍである第２暗号化ビット列を出力する暗号化方法において、
暗号化部が前記第１入力ビット列を入力してキースケジューラーから提供される長さが４ｎである暗号化コードによって第１暗号化することにより、長さが２ｎである第１暗号化ビット列を出力するステップと、
制御器がメモリに制御信号を印加して前記長さがｍである第２入力ビット列を出力し、前記第１暗号化ビット列と暗号化演算を遂行した後に、長さがｍである第２暗号化ビット列を出力して前記メモリに制御信号を印加して前記第２暗号化ビット列をさらに貯蔵するステップと、から構成されることを特徴とする暗号化方法。
【請求項１９】
前記制御器がメモリに制御信号を印加して前記長さがｍである第２入力ビット列を出力し、前記第１暗号化ビット列と暗号化演算を遂行した後に、長さがｍである第２暗号化ビット列を出力して前記メモリに制御信号を印加して前記第２暗号化ビット列をさらに貯蔵するステップは、
前記制御器が前記メモリに制御信号を印加して前記長さがｍである第２入力ビット列のうち、任意のアドレスに割り当てられている単位大きさの第１サブビット列を出力し、前記第１暗号化ビット列と第２暗号化演算を遂行した後に、単位大きさを有する第２サブ暗号化ビット列を出力し、前記制御信号に従って前記メモリの同一のアドレスに前記第２サブ暗号化ビット列をさらに貯蔵するように制御するステップである請求項１８記載の暗号化方法。
【請求項２０】
前記暗号化部が前記第１入力ビット列を入力してキースケジューラーから提供される長さが４ｎである暗号化コードによって第１暗号化することにより、長さが２ｎである第１暗号化ビット列を出力するステップは、
前記暗号化部が前記メモリに貯蔵されている前記第２入力ビットの長さに従って前記第１暗号化演算を反復的に遂行して前記第１暗号化ビット列を出力するステップである請求項１８記載の暗号化方法。
【請求項２１】
前記制御器は、前記メモリに読出し制御信号を印加して前記長さがｍである第２入力ビット列のうち、任意のアドレスに割り当てられている単位大きさの第１サブビット列を出力して前記第１暗号化ビット列と暗号化演算を遂行した後、単位大きさを有する第２サブ暗号化ビット列を出力し、前記メモリに書込み制御信号を印加して前記アドレスに前記第２サブ暗号化ビット列をさらに貯蔵するステップである請求項１９記載の暗号化方法。
【請求項２２】
前記メモリは、制御器の制御信号に従って読出し動作及び書込み動作を遂行するバッファメモリである請求項２１記載の暗号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動通信システムに関し、特に、ハードウェア具現のための最適の暗号化関数を設計するための方法及び最適の暗号化装置に関する。
【背景技術】
【０００２】
アナログ第１世代通信システムからディジタル第２世代通信システムへ変化していきつつ、移動通信サービス加入者は、さらに多い容量のデータを高速に安定して送受信しようとする。従って、サービス提供者は、より安定し、進歩した暗号化方法を使用して前記加入者の要求を満足させようと努力している。このように、高度の情報化社会で要求している音声信号及び映像信号などのマルチメディアサービスを提供する第３世代システムでは、使用者に関する情報はもちろん、音声信号及びマルチメディアサービスの提供に従う信号の機密性、安定性、及び信頼性を検証するための暗号化アルゴリズムの開発と標準化が要求されている。従って、ＧＳＭ(Global System For Mobile Communication)核心網に基づいた３ＧＰＰ(The 3rd Generation Project Partnership)の第３世代システム(Universal Mobile Telecommunication System；ＵＭＴＳ)において、保安構造は、ｆ０〜ｆ１０と呼ばれる１１個の暗号化アルゴリズムの使用に関する論議が進行中にある。そのうち、国際的なローミングに必要な暗号化アルゴリズムｆ８及びインテグリティ(integrity)アルゴリズムｆ９は、すでに標準化されている。このような暗号化アルゴリズムｆ８及びインテグリティアルゴリズムｆ９は、日本の三菱電機会社(MITSUBISHI ELECTRONIC CORPORATION)の暗号アルゴリズムＭＩＳＴＹに基づいてＫＡＳＵＭＩ(ＭＩＳＴＹの日本語)という新たなブロック暗号化システムの核心アルゴリズムとして定義されている。 
【０００３】
このようなＫＡＳＵＭＩアルゴリズムは、８−ラウンドFeistel構造を有するブロック暗号化システムであって、６４ビットの平文信号(plaintext)を入力して８回の暗号化ステップを経て６４ビットの暗号化信号(ciphertext)を出力する。ここで、平文信号とは、送信側から受信側に伝送しようとする普通の通信文を意味し、暗号化信号とは、普通の通信文を暗号化キーの値によって暗号化演算を遂行して一般的に確認できない機密性が保証された通信文を意味する。
【０００４】
図１は、従来技術によるＫＡＳＵＭＩ暗号化ブロックのハードウェア構成を示す。図１を参照すると、ＫＡＳＵＭＩ暗号化ブロックは、複数の多重化器(multiplexer；ＭＵＸ)(ＭＵＸ１ １０１、ＭＵＸ２ １０２、ＭＵＸ３ １０７)、逆多重化器(demultiplexer；ＤＥＭＵＸ)(ＤＥＭＵＸ １０９)、複数のレジスタ(レジスタＡ１ １０２、レジスタＡ２ １０４)及び暗号化キー値によって暗号化演算を遂行する暗号化ブロック(ＦＬ１暗号化部１０６、ＦＬ２暗号化部１１０、ＦＯ暗号化部１０８)と、前記ＫＡＳＵＭＩ暗号化ブロックの構成要素を制御するための制御器１００と、前記暗号化キー値を提供するキースケジューラー１０５とから構成される。
【０００５】
入力された６４ビットの平文信号は、３２ビットの信号Ｌ０と３２ビットの信号Ｒ０に分割されてＭＵＸ１ １０１及びＭＵＸ２ １０３にそれぞれ入力される。前記ＭＵＸ１ １０１に入力された前記３２ビットの信号Ｌ０は、制御器１００から印加された制御信号によってレジスタＡ１ １０２に出力される。また、前記ＭＵＸ２ １０３に入力された前記３２ビットの信号Ｒ０は、制御器１００から印加された制御信号によってレジスタＡ２ １０４に出力される。レジスタＡ１ １０２で前記ＭＵＸ１ １０１から伝送された前記３２ビットの信号Ｌ０は、臨時に貯蔵される。レジスタＡ２ １０４で前記ＭＵＸ２ １０３から伝送された前記３２ビットの信号Ｒ０は、臨時に貯蔵される。このとき、制御器１００がレジスタＡ１ １０２とレジスタＡ２ １０４に制御信号を印加すると、前記レジスタＡ１ １０２とレジスタＡ２ １０４に臨時に貯蔵されているそれぞれの３２ビットの信号Ｌ０及び信号Ｒ０は次のステップに進行する。
【０００６】
このとき、前記ＫＡＳＵＭＩ暗号化ブロックは、奇数ラウンドである場合と偶数ラウンドである場合に、暗号化ブロックに従う暗号化演算順序が異なる。まず、奇数ラウンドの演算を説明すれば、下記のようである。前記レジスタＡ１ １０２から信号Ｌ０を受信したＦＬ１暗号化部１０６は、キースケジューラー１０５から提供される第１暗号化キーＫＬｉ、ｌ及びＫＬｉ、２によって信号Ｌ０の暗号化演算を遂行して暗号化信号Ｌ０１をＭＵＸ３ １０７に出力する。ＭＵＸ３ １０７は、前記３２ビットの暗号化信号Ｌ０１を入力する。前記ＭＵＸ３ １０７は、前記制御器１００から印加される制御信号によって前記暗号化信号Ｌ０１をＦＯ暗号化部１０８に出力する。前記３２ビットの暗号化信号Ｌ０１を受信した前記ＦＯ暗号化部１０８は、キースケジューラー１０５から提供される第２暗号化キーＫＩｉ、ｊ及び第３暗号化キーＫＯｉ、ｊによって前記３２ビットの信号Ｌ０１の暗号化演算を遂行して暗号化信号Ｌ０２をＤＥＭＵＸ１０９に出力する。ＤＥＭＵＸ１０９は、前記３２ビットの暗号化信号Ｌ０２を受信して前記制御器１００から印加される制御信号に従って暗号化信号Ｌ０２を出力する。前記信号Ｌ０２は、前記レジスタＡ２ １０４から出力された信号Ｒ０と排他的論理和の演算を遂行した後に、最終的に、暗号化信号Ｒ１を出力する。前記信号Ｒ１は、ＭＵＸ２ １０３にフィードバックされて入力される。
【０００７】
一方、偶数ラウンドの演算を説明すれば、下記のようである。前記レジスタＡ２ １０４から出力された信号Ｒ０は、ＭＵＸ３ １０７に入力される。前記ＭＵＸ３ １０７は、前記制御器から印加される制御信号に従って前記信号Ｒ０をまずＦＯ暗号化部１０８に出力する。前記３２ビットの信号Ｒ０を受信したＦＯ暗号化部１０８は、キースケジューラー１０５から提供される第２暗号化キーＫＩｉ、ｊ及び第３暗号化キーＫＯｉ、ｊによって３２ビットの信号Ｒ０の暗号化演算を遂行して暗号化信号Ｒ０１をＤＥＭＵＸ１０９に出力する。ＤＥＭＵＸ１０９は、前記３２ビットの暗号化信号Ｒ０１を入力する。前記逆多重化器１０９は、前記制御器１００から印加される制御信号に従って前記暗号化信号Ｒ０１をＦＬ２暗号化部１１０に出力する。前記３２ビットの暗号化信号Ｒ０１を受信したＦＬ２暗号化部１１０は、前記キースケジューラー１０５から受信された第１暗号化キーＫＬｉ、ｊによって暗号化演算を遂行して暗号化信号Ｒ０２を出力する。前記暗号化信号Ｒ０２は、前記レジスタＡ１ １０２から出力された信号Ｌ０と排他的論理和の演算を遂行した後に、最終的に、暗号化信号Ｌ１を出力する。前記信号Ｌ１は、ＭＵＸ１ １０１にフィードバックされて入力される。ここで、第１暗号化キーＫＬｉ、ｊ、第２暗号化キーＫＩｉ、ｊ、及び第３暗号化キーＫＯｉ、ｊは、暗号化演算に従うラウンドが増加するほど前記ｉ及びｊも増加するようになる。
【０００８】
前述したように、従来のＫＡＳＵＭＩ暗号化ブロックは、２個のＦＬ暗号化部１０６及び１１０を備えて同一の暗号化演算を遂行する。従って、前記ＫＡＳＵＭＩ暗号化ブロックをハードウェアで具現するにおいて、複数の同一の素子を使用することによって素子使用の効率性が減少し、また、付加的な素子使用による消費電力が増加する問題点がある。
【０００９】
図２は、従来技術によるＫＡＳＵＭＩ暗号化ブロック及びメモリ構造に従って暗号化関数を示す。
図２を参照すると、複数のＫＡＳＵＭＩ暗号化ブロックで暗号化演算を遂行する暗号化関数ｆ８を示すもので、前記暗号化関数ｆ８は、受信側から伝送しようとする平文信号を受信して入力メモリ２７０に貯蔵し、ＫＡＳＵＭＩ暗号化ブロックを通じて暗号化演算を遂行した後に、出力された暗号化信号をさらに出力メモリ２８０に貯蔵する。ここで、前記複数のＫＡＳＵＭＩ暗号化ブロックを示すことは、前記ＫＡＳＵＭＩ暗号化ブロックを通じて暗号化演算が反復して行われることを示すためである。また、前記暗号化関数ｆ８で、レジスタＣ ２２０は、入力されたデータを臨時に貯蔵する６４ビットのレジスタとして制御器２００の制御信号に従って動作する。また、ＢＬＫＣＮＴ(以下、“ブロックカウンタ”と称する。)は、６４ビットの入力されたデータを処理するブロックカウンタを示し、ＣＫ(Confidentiality Key；以下、“暗号化キー値”と称する。)は１２８ビットの暗号化キー値を示し、ＫＭ(Key Modifier；以下、“キー変更子”であると称する。)は１２８ビットの常数であるキー変更子を示す。このとき、前記ＫＡＳＵＭＩ暗号化ブロックは、最大５１１４ビットのデータを処理する暗号化ブロックシステムである。従って、最大８０回のＫＡＳＵＭＩ暗号化演算を遂行する。ここで、制御器２００は、前記入力メモリ２６０及び出力メモリ２８０のそれぞれに制御信号を印加して前記入力メモリ２６０及び前記出力メモリ２８０の動作を制御する。前記制御信号は、前記入力メモリ２６０及び出力メモリ２８０にアドレスを割り当てるアドレス信号と、前記入力メモリ２６０及び出力メモリ２８０の動作を制御するイネーブル／ディスエーブル信号と、前記メモリ２６０及び２８０のそれぞれに貯蔵されているデータを読み出すか、暗号化されたデータを貯蔵する読出し／書込み(WRITE/READ)信号と、割り当てられたアドレスに単位大きさのデータを貯蔵するデータ信号と、を含む。従って、前記メモリ２６０、２８０のそれぞれは、割り当てられたアドレスに単位データを貯蔵するかまたは出力する。
【００１０】
ＫＡＳＵＭＩ暗号化ブロック２３０は、６４ビットの初期入力値を受信して１２８ビットの暗号化キー値と１２８ビットのキー変更子の値である常数を排他的論理和の演算を遂行した式(1)の値によって暗号化演算が遂行されて出力される。このとき、前記暗号化演算を遂行した値は初期暗号化信号Ｋ００であり、前記信号Ｋ００は、レジスタＣ ２２０に臨時に貯蔵される。前記レジスタＣ ２２０は、暗号化ブロック制御器(図示せず)から印加される制御信号に従って前記信号Ｋ００を次のステップに出力する。前記信号Ｋ００は、ブロックカウンタを通じて出力されたブロックカウント値０(ＢＬＫＣＮＴ０)と排他的論理和の演算が遂行されて次回のＫＡＳＵＭＩ暗号化ブロック２３０に入力される。ＫＡＳＵＭＩ暗号化ブロック２３０で前記初期値信号Ｋ００は、キースケジューラーから提供される暗号化キー値(ＣＫ)によって暗号化演算を遂行して６４ビットの暗号化信号Ｋ０１を出力する。このとき、制御器２００は、前記入力メモリ２７０に制御信号を印加して第１アドレスに貯蔵されている平文信号Ｄ１を読み出す。前記信号Ｄ１は、前記信号Ｋ０１と排他的論理和の演算を遂行して暗号化信号Ｋ１を出力する。前記出力メモリ２８０は、前記制御器２００から印加される制御信号に従って、第１アドレスに前記最終的な暗号化信号Ｋ１を貯蔵する。前記暗号化関数ｆ８は、平文信号のデータの長さに従って前記暗号化過程を反復して遂行する。
【００１１】
【数１】
2004240427.tif 000003
【００１２】
前述したように、前記暗号化関数ｆ８で、制御器２００は、入力メモリ２７０に制御信号を印加してそれぞれのアドレスに割り当てられている平文信号を読み出し、前記平文信号にＫＡＳＵＭＩ暗号化ブロックを通じて出力された信号と暗号化演算を遂行する。このとき、前記出力メモリ２８０に制御信号を印加して、最終的に出力される暗号化信号をさらに貯蔵する。従って、入力メモリ及び出力メモリを別途に使用することは、ハードウェアの構成のときにメモリを非効率的に使用するようになり、非効率的なメモリの使用に従う消費電力も増加する短所がある。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上記背景に鑑みて、本発明の目的は、 長さが２ｎである入力ビット列を長さがｎである第１及び第２サブビット列に分割して暗号化手順によって暗号化演算を遂行して、最終的に長さが２ｎである暗号化ビット列を出力する暗号化装置を提供することにある。
【００１４】
本発明の他の目的は、長さが２ｎである第１入力ビット列を長さがｎである第１及び第２サブビット列に分割して暗号化手順によって暗号化演算を遂行して、最終的に、長さが２ｎである暗号化ビット列に出力する暗号化方法を提供することにある。
【００１５】
本発明のまた他の目的は、長さが２ｎである第１入力ビット列を入力して第１暗号化演算を遂行して長さが２ｎである第１暗号化ビット列を出力し、長さがｍである第２入力ビット列と第２暗号化演算を遂行して、最終的に長さがｍである第２暗号化ビット列を出力する装置を提供することにある。
【００１６】
本発明のさらに他の目的は、長さが２ｎである第１入力ビット列を入力して第１暗号化演算を遂行して長さが２ｎである第１暗号化ビット列を出力し、長さがｍである第２入力ビット列と第２暗号化演算を遂行して、最終的に長さがｍである第２暗号化ビット列を出力する方法を提供することにある。
【課題を解決するための手段】
【００１７】
このような目的を達成するために、本発明の第１実施例によれば、長さが２ｎである入力ビット列を長さがｎである第１及び第２サブビット列に分割して暗号化手順によって暗号化演算を遂行して、最終的に長さが２ｎである暗号化ビット列を出力する暗号化装置において、制御信号に従って前記第１サブビット列を入力して第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第１暗号化ビット列を出力するか、第２暗号化ビット列を入力して前記第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第３暗号化ビット列を出力する第１暗号化部と、前記制御信号に従って前記第１暗号化ビット列を入力して第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び第３暗号化コードＫＬ１，１、ＫＬ１，２、ＫＬ１，３により暗号化することによって長さがｎである前記第４暗号化ビット列を出力するか、前記第１サブビット列を入力して前記第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３及び前記第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３により暗号化することによって長さがｎである前記第２暗号化ビット列を出力する第２暗号化部と、前記第１サブビット列、前記第１暗号化ビット列、及び前記第２暗号化ビット列に同一のサイズの長さがｎである所定の第１暗号化コードＫＬ１，１、ＫＬ１，２と第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３と第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３とを提供するキースケジューラーと、前記制御信号に従って複数の多重化器が前記第１サブビット列を出力して前記第１暗号化部に入力されるか、前記第２暗号化部に入力されて前記キースケジューラーから提供される前記第１暗号化コードＫＬ１，１、ＫＬ１，２、第２暗号化コードＫＯ１，１、ＫＯ１，２、ＫＯ１，３、及び第３暗号化コードＫＩ１，１、ＫＩ１，２、ＫＩ１，３によって暗号化演算を遂行するように制御する制御器と、から構成されることを特徴とする。
【００１８】
また、本発明の第２実施例によれば、長さが２ｎである第１入力ビット列を長さがｎである第１及び第２サブビット列に分割して暗号化手順によって暗号化演算を遂行して、最終的に長さが２ｎである暗号化ビット列を出力する暗号化方法において、制御器から印加される制御信号に従って第１暗号化部が前記長さがｎである第１サブビット列を入力してキースケジューラーから提供される第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第１暗号化ビット列を出力するか、第２暗号化部から出力される長さがｎである第２暗号化ビット列を入力して前記第１暗号化コードＫＬ１，１、ＫＬ１，２により暗号化することによって長さがｎである第３暗号化ビット列を出力するステップと、前記制御器から印加される制御信号によって第２暗号化部が前記長さｎである前記第１暗号化ビット列を入力して前記キースケジューラーから提供される第２暗号化コードＫＯ１,１、ＫＯ１,２、ＫＯ１,３及び第３暗号化コードＫＩ１,１、ＫＩ１,２、ＫＩ１,３により暗号化することによって長さがｎである前記第４暗号化ビット列を出力するか、前記長さがｎである前記第１サブビット列を入力して前記第２暗号化コードＫＯ１,１、ＫＯ１,２、ＫＯ１,３及び第３暗号化コードＫＩ１,１、ＫＩ１,２、ＫＩ１,３により暗号化することによって長さがｎである前記第２暗号化ビット列を出力するステップと、から構成されることを特徴とする。
【００１９】
さらに、本発明の第３実施例によれば、長さが２ｎである第１入力ビット列を入力して第１暗号化演算を遂行して長さが２ｎである第１暗号化ビット列を出力して長さがｍである第２入力ビット列と第２暗号化演算を遂行して、最終的に長さがｍである第２暗号化ビット列を出力する暗号化装置において、前記第１入力ビット列を入力してキースケジューラーから提供される長さが４ｎである暗号化コードによって暗号化することにより、長さが２ｎである第１暗号化ビット列を出力する暗号化部と、制御信号に従ってメモリから前記長さがｍである第２入力ビット列を出力して前記第１暗号化ビット列と暗号化演算を遂行して長さがｍである第２暗号化ビット列を出力し、前記制御信号に従って前記メモリに前記第２暗号化ビット列をさらに貯蔵するように制御する制御器と、から構成されることを特徴とする。
【００２０】
なお、本発明の第４実施例によれば、長さが２ｎである第１入力ビット列を入力して第１暗号化演算を遂行して長さが２ｎである第１暗号化ビット列を出力して長さがｍである第２入力ビット列と第２暗号化演算を遂行して、最終的に長さがｍである第２暗号化ビット列を出力する暗号化方法において、暗号化部が前記第１入力ビット列を入力してキースケジューラーから提供される長さが４ｎである暗号化コードによって第１暗号化することにより、長さが２ｎである第１暗号化ビット列を出力するステップと、制御器がメモリに制御信号を印加して前記長さがｍである第２入力ビット列を出力し、前記第１暗号化ビット列と暗号化演算を遂行した後に、長さがｍである第２暗号化ビット列を出力して前記メモリに制御信号を印加して前記第２暗号化ビット列をさらに貯蔵するステップと、から構成されることを特徴とする。
【発明の効果】
【００２１】
本発明は、暗号化アルゴリズムのハードウェアの具現のときに同一の暗号化演算を遂行する素子の使用を簡略化し、入力メモリ及び出力メモリを共有することによってメモリの使用を最大化する。従って、暗号化システムの全体的な消費電力を減少させる長所がある。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好適な実施形態について添付図を参照しつつ詳細に説明する。下記説明において、本発明の要旨のみを明瞭するために公知の機能又は構成に対する詳細な説明は省略する。なお、図面中、同一な構成要素及び部分には、可能な限り同一な符号及び番号を共通使用するものとする。
図３は、本発明の実施例が適用されるＫＡＳＵＭＩ暗号化アルゴリズムを示す。
図３を参照すると、ＫＡＳＵＭＩ暗号化ブロックは、６４ビットの平文信号(plaintext)を入力して８回の暗号化ステップを経て６４ビットの暗号化信号(ciphertext)を出力する８−ラウンドFeistel構造を有する暗号化ブロックシステムである。ここで、Feistel構造とは、入力された２ｎビットの入力信号をそれぞれｎビットの信号Ｌ０及びＲ０に分割してそれぞれの暗号化ブロックを通じてｍ回のラウンド演算を通じて暗号化及び復号化を遂行するシステムであって、二回のラウンド演算を通じて完全拡散が行われる。従って、暗号化アルゴリズムの遂行速度が速い長所を有する。さらに詳細に説明すると、前記ＫＡＳＵＭＩ暗号化ブロックで前記６４ビットの入力信号は、それぞれ３２ビットの信号Ｌ０と３２ビットの信号Ｒ０とに分割されて暗号化演算が遂行される。前記３２ビットの信号Ｌ０と前記３２ビットの信号Ｒ０は、複数のＦＬｉ暗号化部(１≦ｉ≦８)３１０、３２０、３３０、３４０、３５０、３６０、３７０、３８０及び複数のＦ０ｉ暗号化部(１≦ｉ≦８)４１０、４２０、４３０、４４０、４５０、４６０、４７０、４８０でキースケジューラー(図示せず)を通じて提供される暗号化キーＫＩｉ(１≦ｉ≦８)、ＫＬｉ(１≦ｉ≦８)、及びＫＯｉ(１≦ｉ≦８)によって暗号化演算が遂行されて６４ビットの暗号化信号になる。
まず、一番目奇数ラウンド暗号化演算を例に挙げて説明する。入力された３２ビットの信号Ｌ０は、ＦＬ１暗号化部３１０でキースケジューラーを通じて提供される第１暗号化キーＫＬ１によって暗号化演算が遂行されて暗号化信号Ｌ０１になる。前記暗号化信号Ｌ０１は、Ｆ０１暗号化部４１０でキースケジューラーを通じて提供される第２暗号化キーＫＯ１と第３暗号化キーＫＩ１によって暗号化演算が遂行されて３２ビットの信号Ｌ０２になる。前記信号Ｌ０２は、前記３２ビットの信号Ｒ０と排他的論理和の演算が遂行されて暗号化信号Ｒ１になる。
【００２３】
一方、一番目偶数ラウンド暗号化演算(＝二番目のラウンド暗号化演算)で、前記入力された３２ビットの暗号化された信号Ｒ１(＝Ｌ１)は、ＦＯ２暗号化部４２０でキースケジューラーを通じて提供される第２暗号化キーＫＯ２と第３暗号化キーＫＩ２によって暗号化演算が遂行されて３２ビットの信号Ｌ１１になる。前記信号Ｌ１１は、ＦＬ２暗号化部３２０でキースケジューラーを通じて提供される第１暗号化キー値ＫＬ２によって暗号化演算が遂行されて暗号化信号Ｌ１２を出力する。前記暗号化信号Ｌ１２は、初期入力信号Ｌ０との排他的論理和の演算が遂行されて暗号化信号Ｒ２になる。残りのラウンド暗号化演算も、図３に示すように、適切な暗号化部及び暗号化キーを使用して同一の方式にて遂行される。従って、前記ＫＡＳＵＭＩ暗号化ブロックは、６４ビットの信号を入力して全体的に８ラウンド暗号化演算を反復的に遂行して、最終的に６４ビットの暗号化信号を出力する。
図４は、図３に示したＦＬ暗号化部の詳細な構成を示す。
【００２４】
図４を参照して、ＦＬ１暗号化部３１０を例にあげて説明する。ＦＬ１暗号化部３１０は、複数のＡＮＤゲート３０１と、シフトレジスタ３０２及び３０４と、ＯＲゲート３０３とから構成される。３２ビットの入力信号は、それぞれ１６ビットの信号Ｌ０と１６ビットの信号Ｒ０に分割されて伝送される。ＡＮＤゲート３０１は、前記１６ビットの信号Ｌ０を１６ビットのサブ暗号化キーＫＬ１、１をもって論理積演算を遂行して１６ビットの信号ＡＬ１を出力する。シフトレジスタ３０２は、信号ＡＬ１を１ビットずつ左側に遷移して信号ＳＡＬ１を出力する。このとき、前記１６ビットの信号ＳＡＬ１は、１６ビットの信号Ｒ０と排他的論理和の演算が遂行されてサブ暗号化信号Ｒ１になる。ＯＲゲート３０３は、前記信号Ｒ１を１６ビットのサブ暗号化キーＫＬ１、２をもって論理和演算を遂行して１６ビットの信号ＯＲ１を出力する。シフトレジスタ３０４は、信号ＯＲ１を１ビットずつ左側に遷移して信号ＳＯＲ１を出力する。前記信号ＳＯＲ１は、前記１６ビットの入力信号Ｌ０と排他的論理和の演算が遂行されてサブ暗号化信号Ｌ１になる。従って、前記ＦＬ１暗号化部３１０は、前記サブ暗号化信号Ｒ１と前記サブ暗号化信号Ｌ１を演算して３２ビットの暗号化信号Ｌ１‖Ｒ１(＝Ｌ０１(図３))を出力する。
【００２５】
図５は、図３に示したＦＯ暗号化部の詳細な構成を示す。
図５を参照して、ＦＯ１暗号化部４１０を例にあげて説明する。ＦＯ１暗号化部４１０は、複数のＦＩｉ、ｊサブ暗号化部(１≦ｉ≦３、１≦ｊ≦３)で構成されて暗号化過程が３つのステップでなされる。図３での３２ビットの入力信号Ｌ０１は、それぞれ１６ビットの信号Ｌ０と１６ビットの信号Ｒ０に分割されて伝送される。
【００２６】
第１ステップを説明すると、１６ビットの信号Ｌ０は、１６ビットのサブ暗号化キーＫＯ１、１と排他的論理和の演算が遂行されて信号Ｌ１になる。ＦＩ１、１サブ暗号化部４０１は、前記信号Ｌ１を１６ビットのサブ暗号化キーＫＩ１、１と暗号化して遅延信号Ｌ１Ｄを出力する。一方、１６ビットの信号Ｒ０(＝Ｒ１)は、遅延器(Ｄ１)４１１を通過しつつ遅延信号Ｒ１Ｄになる。すなわち、前記遅延器(Ｄ１)４１１は、前記信号Ｒ１Ｄを任意に遅延させることによって前記信号Ｌ１Ｄとの出力同期を合わせる機能を行う。第２ステップを説明すると、１６ビットの信号Ｒ１Ｄは、１６ビットのサブ暗号化キーＫＯ１、２と排他的論理和の演算が遂行されて信号Ｌ２になる。前記信号Ｌ２は、ＦＩ１、２サブ暗号化部４０３によって１６ビットのサブ暗号化キーＫＩ１、２と暗号化されて遅延信号Ｌ２Ｄになる。一方、１６ビットの信号Ｒ１Ｄは、前記信号Ｌ１Ｄと排他的論理和の演算が遂行されて信号Ｒ２になる。前記信号Ｒ２は、遅延器(Ｄ２)４１２を通過しつつ遅延信号Ｒ２Ｄになる。すなわち、前記遅延器(Ｄ２)４１２は、前記信号Ｒ２を任意に遅延させることによって前記信号Ｌ２Ｄとの出力同期を合わせる機能を行う。ステップ３を説明すると、１６ビットの信号Ｒ２Ｄは、１６ビットのサブ暗号化キーＫＯ１、３と排他的論理和の演算が遂行されて信号Ｌ３になる。前記信号Ｌ３は、ＦＩ１、３サブ暗号化部４０５によって１６ビットのサブ暗号化キーＫＩ１、３と暗号化されて遅延信号Ｌ３Ｄになる。一方、１６ビットの信号Ｒ２Ｄは、前記信号Ｌ２Ｄと排他的論理和の演算が遂行されて信号Ｒ３になる。前記信号Ｒ３は、遅延器(Ｄ３)４１３を通過しつつ遅延信号Ｒ３Ｄになる。すなわち、前記遅延器(Ｄ３)４１３は、前記信号Ｒ３を任意に遅延させることによって前記信号Ｌ２Ｄとの出力同期を合わせる機能を行う。前記信号Ｒ３Ｄは、前記信号Ｌ３Ｄと排他的論理和の演算が遂行されて信号Ｒ４になる。従って、１６ビットの信号Ｒ４と１６ビットのＲ３Ｄ(＝Ｌ４)が演算されて３２ビットの暗号化信号(Ｌ４‖Ｒ４(＝Ｌ０２(図３))が出力される。
【００２７】
図６は、図５に示したＦＩサブ暗号化部の詳細な構成例を示す。
図６を参照して、ＦＬ１、１サブ暗号化部を例にあげて説明する。１６ビットの入力信号(図５で信号Ｌ１)は、９ビットの信号ＲＬ０と７ビットの信号ＲＲ０に分割される。ＳＢｏｘ９１演算器(以下、‘Ｓ９１’と称する。)６１０は、９ビットの入力信号ＲＬ０を入力して下記式(2)に適用することによって９ビットの信号ｙ０、ｙ１、．．．、ｙ８を出力する。
【００２８】
【数２】
2004240427.tif 000004
【００２９】
ＺＥ１部６２０は、７ビットの信号ＲＲ０を受信して信号ＲＲ０の最上位ビット(Most Significant Bit；以下、‘ＭＳＢ’と称する。)に２個のＺＥＲＯ(０)ビットを追加して９ビットの信号を出力する。前記Ｓ９１演算器６１０の９ビットの出力信号と前記ＺＥ１部６２０の９ビットの出力信号は、排他的論理和の演算が遂行されて９ビットの信号ＲＬ１になる。前記信号ＲＬ１は、９ビットのサブ暗号化キーＫＩ１、１、２と排他的論理和の演算が遂行されて９ビットの信号ＲＬ２になる。
【００３０】
一方、ＴＲ１部６３０は、前記９ビットの信号ＲＬ１のＭＳＢビットのうち、ＺＥＲＯ(０)ビットに位置した２個の信号を除去して７ビットの信号を出力する。ＳＢｏｘ７１演算器(以下、‘Ｓ７１’と称する。)６４０は、７ビットの入力信号ＲＲ０(＝ＲＲ１)を入力して下記式(2)に適用することによって７ビットの信号ｙ０、ｙ１、，，，、ｙ６を出力する。
【００３１】
【数３】
2004240427.tif 000005
【００３２】
前記ＴＲ１部６３０の７ビットの出力信号及び前記Ｓ７１演算器６４０の７ビットの出力信号は、サブ暗号化キーＫＩ１、１、１と排他的論理和の演算が遂行されて７ビットの信号ＲＲ２になる。
【００３３】
ＳＢｏｘ９２演算器(以下、‘Ｓ９２’と称する。)６５０は、９ビットの入力信号ＲＬ２を入力して前記式(2)に適用することによって９ビットの信号ｙ０、ｙ１、．．．、ｙ８を出力する。ＺＥ２部６６０は、７ビットの信号ＲＲ１を受信してＭＳＢに２個のＺＥＲＯ(０)ビットを追加して９ビットの信号を出力する。前記Ｓ９２演算器６５０の９ビットの出力信号と前記ＺＥ２部６６０の９ビットの出力信号は、排他的論理和の演算が遂行されて９ビットの信号ＲＬ３になる。ＴＲ２部６７０は、前記９ビット信号ＲＬ３のＭＳＢビットのうち、ＺＥＲＯ(０)ビットに位置した２個の信号を除去して７ビットの信号を出力する。ＳＢｏｘ７２演算器(以下、‘Ｓ７２’と称する。)６８０は、７ビットの入力信号ＲＲ２(＝ＲＲ３)を入力して前記式２に適用することによって７ビットの信号ｙ０、ｙ１、，，，、ｙ６を出力する。前記ＴＲ２部６７０の７ビットの出力信号及び前記Ｓ７２演算器３８０の７ビットの出力信号は、排他的論理和の演算が遂行されて７ビットの信号ＲＲ４になる。
従って、１６ビットの暗号化された信号ＲＬ４‖ＲＲ４は、前記９ビットの信号ＲＬ３(＝ＲＬ４)と７ビットの信号ＲＲ４が演算されて生成される。
【００３４】
図７は、本発明の実施例によるＫＡＳＵＭＩハードウェアの構成を示す。
図７を参照すると、ＫＡＳＵＭＩ暗号化ブロックは、複数の多重化器(ＭＵＸ１ ７０１、ＭＵＸ２ ７０３、ＭＵＸ３ ７０６、ＭＵＸ４ ７０８、ＭＵＸ５ ７１０)と、複数のレジスタ(レジスタＢ１ ７０２、レジスタＢ２ ７０４)と、複数の暗号化部(ＦＬ暗号化部７０７、ＦＯ暗号化部７０９)と、ＫＡＳＵＭＩ暗号化ブロックの構成要素を制御する制御器７００と、暗号化キー値を提供するキースケジューラー７１１とから構成される。ここで、制御器７００は、前記複数のＭＵＸ７０１、７０３、７０６、７０８、及び７１０に制御信号を印加して奇数ラウンド暗号化演算及び偶数ラウンド暗号化演算が遂行されるときにＦＬ暗号化部７０７、ＦＯ暗号化部７０９の演算手順を異なるように制御する。これをさらに具体的に説明すると、下記のようである。
【００３５】
まず、奇数ラウンド暗号化演算において、６４ビットの平文信号は、３２ビットの信号Ｌ０と３２ビットの信号Ｒ０に分割されてＭＵＸ１ ７０１及びＭＵＸ２ ７０３のそれぞれに入力される。前記ＭＵＸ１ ７０１は、前記３２ビットの信号Ｌ０を制御器７００から印加された制御信号に従ってレジスタＢ１ ７０２に出力する。また、前記ＭＵＸ２ ７０３は、前記３２ビットの信号Ｒ０を制御器７００から印加された制御信号に従ってレジスタＢ２  ７０４に出力する。レジスタＢ１ ７０２は、ＭＵＸ１ ７０１から受信された前記３２ビットの信号Ｌ０を臨時に貯蔵する。レジスタＢ２ ７０４は、ＭＵＸ２ １０３から受信された前記３２ビットの信号Ｒ０を臨時に貯蔵する。このとき、制御器７００からレジスタＢ１ ７０２及びレジスタＢ２ ７０４に制御信号が印加されると、前記レジスタＢ１ ７０２及びレジスタＢ２ ７０４は、それぞれ臨時に貯蔵された３２ビットの信号Ｌ０と信号Ｒ０を出力する。制御器７００は、ＭＵＸ３ ７０６、ＭＵＸ４ ７０８、ＭＵＸ５ ７１０に制御信号を印加して、前記ＭＵＸ７０６、ＭＵＸ７０８、ＭＵＸ７１０が“０の経路”で動作するように制御する。従って、奇数ラウンド暗号化演算は、実線で示されたように暗号化演算を遂行する。ＭＵＸ３ ７０６は、前記信号Ｌ０を“０の経路”を通じてＦＬ暗号化部７０７に出力する。前記ＦＬ暗号化部７０７は、前記信号Ｌ０をキースケジューラー７１１から提供される奇数番目の第１暗号化キーＫＬｉ、ｊ(前記ｉ及びｊは、０＜ｉ≦８、０＜ｊ≦２の値を有する。)によって暗号化演算を遂行した後に、暗号化された信号Ｌ０１をＭＵＸ４ ７０８に出力する。ＭＵＸ４ ７０８は、信号Ｌ０１を“０の経路”を通じてＦＯ暗号化部７０９に出力する。Ｆ０暗号化部７０９は、前記暗号化信号Ｌ０１をキースケジューラー７１１から提供される奇数番目の第２暗号化キーＫＩｉ、ｊと奇数番目の第３暗号化キーＫＯｉ、ｊ(前記ｉ及びｊは、０＜ｉ≦８、０＜ｊ≦３の値を有する。)によって暗号化演算を遂行した後に、暗号化された信号Ｌ０２をＭＵＸ５ ７１０に出力する。ＭＵＸ５ ７１０は、前記信号Ｌ０２を“０の経路”を通じて出力する。前記信号Ｌ０２は、前記レジスタＢ２ ７０４から出力された信号Ｒ０と排他的論理和の演算が遂行されて暗号化信号Ｒ１になる。前記信号Ｒ１(＝信号Ｌ１)は、ＭＵＸ１ ７０１にフィードバックされる。
【００３６】
一方、偶数ラウンド暗号化演算でフィードバックされた３２ビットの信号Ｒ１は、ＭＵＸ１ ７０１に入力され、３２ビットの信号Ｌ０は、ＭＵＸ２ ７０３に入力される。前記ＭＵＸ１ ７０１に入力された前記３２ビットの信号Ｒ１は、制御器７００から印加された制御信号に従ってレジスタＢ１ ７０２に出力される。また、前記ＭＵＸ２ ７０３に入力された前記３２ビットの信号Ｌ０は、制御器７００から印加された制御信号に従ってレジスタＢ２ ７０４に出力される。レジスタＢ１ ７０２は、ＭＵＸ１ ７０１から受信された前記３２ビットの信号Ｒ１を臨時に貯蔵する。レジスタＢ２ ７０４は、ＭＵＸ２ １０３から受信された前記３２ビットの信号Ｌ０を臨時に貯蔵する。このとき、制御器７００からレジスタＢ１ ７０２とレジスタＢ２ ７０４に制御信号が印加されると、前記レジスタＢ１ ７０２及びレジスタＢ２ ７０４は、それぞれ臨時に貯蔵された３２ビットの信号Ｒ１及び信号Ｌ０を出力する。制御器７００は、複数のＭＵＸ７０６、ＭＵＸ７０８、ＭＵＸ７１０に制御信号を印加して入力された信号を“１の経路”にパスするように制御する。すなわち、偶数ラウンド暗号化演算は、点線で示されたように、暗号化演算を遂行する。ＭＵＸ４ ７０８は、前記信号Ｒ１を制御器７００から印加される制御信号に従って受信し、信号Ｒ１を１の経路を通じてＦＯ暗号化部７０９に出力する。Ｆ０暗号化部７０９は、前記入力された３２ビットの暗号化信号Ｒ１をキースケジューラー７１１から提供される偶数番目の第２暗号化キーＫＩｉ、ｊ及び偶数番目の第３暗号化キーＫＯｉ、ｊ(前記ｉ及びｊは、０＜ｉ≦８、０＜ｊ≦３を有する。)によって暗号化演算を遂行した後に、暗号化された信号Ｒ１１を出力する。前記信号Ｒ１１は、ＭＵＸ３ ７０６に入力される。前記ＭＵＸ３ ７０６は、前記信号Ｒ１１を“１の経路”を通じてＦＬ暗号化部７０７に出力する。前記ＦＬ暗号化部７０７は、前記信号Ｒ１１をキースケジューラー７１１から提供される偶数番目の第１暗号化キーＫＬｉ、ｊ(前記ｉ及びｊは、０＜ｉ≦８、０＜ｊ≦２の値を有する)によって暗号化演算を遂行した後に、暗号化された信号Ｒ１２をＭＵＸ５ ７１０に出力する。ＭＵＸ５ ７１０は、前記信号Ｒ１２を１の経路を通じて出力する。前記信号Ｒ１２は、前記レジスタＢ２ ７０４から出力された信号Ｌ０と排他的論理和の演算が遂行されて暗号化信号Ｒ２(＝Ｌ２)になる。前記暗号化信号Ｒ２(＝Ｌ２)は、ＭＵＸ１ ７０１にフィードバックされる。
【００３７】
前述したように、奇数ラウンド暗号化演算のときに、制御器７００は、ＭＵＸ７０６、ＭＵＸ７０８、ＭＵＸ７１０に制御信号を印加して前記ＭＵＸ７０６、ＭＵＸ７０８、ＭＵＸ７１０の動作を“０の経路”で制御する。すなわち、ＦＬ暗号化部７０７でまず暗号化演算を遂行した後に、ＦＯ暗号化部７０９で暗号化演算を遂行する。従って、偶数ラウンド暗号化演算のときに、前記制御器７００は、ＭＵＸ７０６、ＭＵＸ７０８、ＭＵＸ７１０に制御信号を印加して前記ＭＵＸ７０６、ＭＵＸ７０８、ＭＵＸ７１０の動作をすべて“１の経路”で制御する。従って、奇数ラウンド暗号化演算である場合に、入力された３２ビットの信号は、ＦＬ暗号化部７０７でキースケジューラー１０５から提供される奇数番目の第１暗号化キーＫＬｉ、ｊ及びＫＬｉ、ｊによって暗号化された後に、ＦＯ暗号化部７０９で奇数番目の第２暗号化キーＫＩｉ、ｊ及び奇数番目の第３暗号化キーＫＯｉ、ｊによって暗号化演算が遂行される。一方、偶数ラウンド暗号化演算である場合に、入力された３２ビットの信号は、ＦＯ暗号化部７０９で偶数番目の第２暗号化キーＫＩｉ、ｊ及び偶数番目の第３暗号化キーＫＯｉ、ｊによって暗号化演算が遂行された後に、ＦＬ暗号化部７０７で偶数番目の第１暗号化キーＫＬｉ、ｊによって暗号化演算が遂行される。
【００３８】
従って、前記ＫＡＳＵＭＩ暗号化ブロックは、１つのＦＬ暗号化部７０７及びＦＯ暗号化部７０９を備えて、従来と同一の暗号化演算を遂行する効果がある。また、ハードウェアの具現のときに、素子の使用を最小化して暗号化演算に従う消費電力を減少させる効果がある。
【００３９】
図８は、本発明の実施例によるＫＡＳＵＭＩ動作で従来の暗号化アルゴリズムを示す。
図８を参照すると、複数のＫＡＳＵＭＩアルゴリズムブロックで構成された暗号化アルゴリズムｆ８を具現するもので、受信側から伝送しようとする平文信号が入力されたメモリ８７０から前記平文信号をロードして暗号化演算を反復的に遂行した後に、最終的に、暗号化された信号を同一のメモリ８７０に貯蔵するステップを示す。
【００４０】
前記暗号化アルゴリズムｆ８は、最大５１１４ビットのデータの暗号化演算を遂行するブロック暗号化システムである。従って、前記暗号化アルゴリズムｆ８は、最大８０回のＫＡＳＵＭＩ暗号化演算を遂行できる。このとき、暗号化しようとするデータの長さ(平文信号)に従ってＫＡＳＵＭＩ暗号化ブロックの演算の数は可変され、前記暗号化アルゴリズムｆ８は、ブロックカウンタを備えてＫＡＳＵＭＩ暗号化演算の回数をカウントする。図８では、複数のＫＡＳＵＭＩ暗号化ブロックを示したが、これは、１つのＫＡＳＵＭＩ暗号化ブロックが入力された信号の暗号化演算を遂行して暗号化信号を出力し、前記出力された暗号化信号をフィードバックしてさらに暗号化演算を遂行することを示すためである。また、前記暗号化アルゴリズムｆ８において、ＣＫ及びＫＭは、キースケジューラー(図示せず)から提供されるもので、それぞれ１２８ビットを有する。また、前記制御器８００は、メモリ８７０に制御信号を印加して前記メモリ８７０の動作を制御する。前記制御信号は、前記メモリ８７０に入力された平文信号のアドレスを割り当てるアドレス信号と、前記メモリ８７０の動作を制御するイネーブル／ディスエーブル制御信号と、前記メモリ８７０に貯蔵されている平文信号を読み出す(READ)ための動作と前記平文信号の暗号化演算を遂行した後に、前記メモリ８７０に書き込む(WRITE)ための動作を制御する読出し／書込み信号と、割り当てられたアドレスに単位大きさの平文信号及び暗号化信号を示すデータ信号とを含む。
【００４１】
ＫＡＳＵＭＩ暗号化ブロック８１０で、６４ビットの暗号化初期値は、キースケジューラー(図示せず)から提供される１２８ビットの暗号化キー値と１２８ビットの常数との排他的論理和を行った値(式(4))によって暗号化演算を遂行して初期ＫＡＳＵＭＩ暗号化信号Ｋ００を出力する。前記出力された信号Ｋ００は、レジスタＤ ８２０に臨時に貯蔵される。前記レジスタ８２０は、暗号化ブロック制御器(図示せず)から印加される制御信号に従って信号Ｋ００を出力する。ここまでは、ＫＡＳＵＭＩ暗号化演算を遂行するための初期の演算ステップを説明したものである。
【００４２】
【数４】
2004240427.tif 000006
【００４３】
第１暗号化演算過程において、前記初期信号Ｋ００は、制御器８００の制御信号によってブロックカウントされたブロックカウンタ値０(ＢＬＫＣＮＴ０)と排他的論理和の演算が遂行された後にＫＡＳＵＭＩ暗号化ブロック８３０に入力される。ＫＡＳＵＭＩ暗号化ブロック８３０で、前記初期暗号化信号Ｋ００は、キースケジューラーから受信した暗号化キー値ＣＫによって暗号化演算が遂行されてビット０からビット６３までの大きさを有するキーストリームを有する６４ビットの暗号化信号Ｋ０１になる。制御器８００は、メモリ８７０に制御信号を印加して第１アドレスに割り当てられている平文信号Ｄ１を読み出す。前記信号Ｄ１は、前記信号Ｋ０１と排他的論理和の演算が遂行されて暗号化信号Ｋ１になる。前記制御器８００は、メモリ２７０に制御信号を印加して第１暗号化信号Ｋ１を第１アドレスに割り当てる。すなわち、平文信号Ｄ１の割り当てられたアドレスに前記暗号化された信号Ｋ１を貯蔵する。
【００４４】
第２暗号化演算過程において、前記初期暗号化信号Ｋ００は、制御器８００の制御信号によってブロックカウントされたブロックカウンタ１(ＢＬＫＣＮＴ１)と排他的論理和の演算が遂行されて信号Ｋ１０になる。前記信号Ｋ１０は、前記ＫＡＳＵＭＩ暗号化ブロック８３０から出力された信号Ｋ０１と排他的論理和の演算が遂行されて信号Ｋ１１になる。ＫＡＳＵＭＩ暗号化ブロック８４０で、前記初期ＫＡＳＵＭＩ暗号化信号Ｋ１１は、キースケジューラーから提供される暗号化キー値(ＣＫ)によって暗号化演算が遂行されてビット６４からビット１２７までの大きさを有するキーストリームを有する６４ビットの暗号化信号Ｋ０２になる。制御器８００は、メモリ８７０で第２アドレスに割り当てられている平文信号Ｄ２を読み出す。前記信号Ｄ２は、前記信号Ｋ０２と排他的論理和の演算が遂行されて暗号化信号Ｋ２になる。前記メモリ８７０は、第２暗号化信号Ｋ２を第２アドレスに貯蔵する。すなわち、平文信号Ｄ２に割り当てられているアドレスに暗号化信号Ｋ２を貯蔵する。
【００４５】
ｆ８関数において、入力される平文信号の大きさに従ってブロックカウンタの数が定められ、前記のようなＫＡＳＵＭＩ暗号化演算が遂行される。このとき、制御器８００は、メモリ８７０に制御信号を印加して任意のアドレスに割り当てられている平文信号をロードしてＫＡＳＵＭＩ暗号化演算を遂行した後に、暗号化された信号を前記アドレスと同一の位置にさらに貯蔵する。すなわち、入力メモリ及び出力メモリを共有してハードウェア構成を簡略にする。
【００４６】
以上、本発明の詳細について具体的な実施形態に基づき説明してきたが、本発明の範囲を逸脱しない限り、各種の変形が可能なのは明らかである。従って、本発明の範囲は、上記実施形態に限るものでなく、特許請求の範囲のみならず、その範囲と均等なものにより定められるべきである。
【図面の簡単な説明】
【００４７】
【図１】従来技術によるＫＡＳＵＭＩ暗号化ブロックのハードウェア構成を示す図。
【図２】従来技術によるＫＡＳＵＭＩ暗号化ブロック及びメモリ構造に従って暗号化アルゴリズムを示す図。
【図３】本発明の実施例が適用されるＫＡＳＵＭＩ暗号化アルゴリズムを示す図。
【図４】図３に示したＦＬ暗号化部の詳細な構造を示す図。
【図５】図３に示したＦＯ暗号化部の詳細な構造を示す図。
【図６】図５に示したＦＩ暗号化部の詳細な構造を示す図。
【図７】本発明の実施例によるＫＡＳＵＭＩハードウェアの構成を示す図。
【図８】本発明の実施例によるＫＡＳＵＭＩ動作で従来の暗号化アルゴリズムを示す図。
【符号の説明】
【００４８】
３０１        ＡＮＤゲート
３０２、３０４        シフトレジスタ
３０３        ＯＲゲート
３１０〜３８０        ＦＬｉ暗号化部（１≦ｉ≦８）
４１０〜４８０        Ｆ０ｉ暗号化部（１≦ｉ≦８）
【図１】
2004240427.tif 000007
【図２】
2004240427.tif 000008
【図３】
2004240427.tif 000009
【図４】
2004240427.tif 000010
【図５】
2004240427.tif 000011
【図６】
2004240427.tif 000012
【図７】
2004240427.tif 000013
【図８】
2004240427.tif 000014
【外国語明細書】
2004240427.tif 000015
2004240427.tif 000016
2004240427.tif 000017
2004240427.tif 000018
2004240427.tif 000019
2004240427.tif 000020
2004240427.tif 000021
2004240427.tif 000022
2004240427.tif 000023
2004240427.tif 000024
2004240427.tif 000025
2004240427.tif 000026
2004240427.tif 000027
2004240427.tif 000028
2004240427.tif 000029
2004240427.tif 000030
2004240427.tif 000031
2004240427.tif 000032
2004240427.tif 000033
2004240427.tif 000034
2004240427.tif 000035
2004240427.tif 000036
2004240427.tif 000037
2004240427.tif 000038
2004240427.tif 000039
2004240427.tif 000040
2004240427.tif 000041
2004240427.tif 000042
2004240427.tif 000043
2004240427.tif 000044
2004240427.tif 000045
2004240427.tif 000046
2004240427.tif 000047