特開2015-94944(P2015-94944A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 韓國電子通信研究院の特許一覧

特開2015-94944暗号化されたファイルを復号化する装置およびその方法
<>
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000004
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000005
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000006
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000007
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000008
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000009
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000010
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000011
  • 特開2015094944-暗号化されたファイルを復号化する装置およびその方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-94944(P2015-94944A)
(43)【公開日】2015年5月18日
(54)【発明の名称】暗号化されたファイルを復号化する装置およびその方法
(51)【国際特許分類】
   G09C 1/00 20060101AFI20150421BHJP
   G06F 21/73 20130101ALI20150421BHJP
   G06F 21/62 20130101ALI20150421BHJP
【FI】
   G09C1/00 610A
   G09C1/00 660D
   G06F21/02 173
   G06F21/24 166A
【審査請求】有
【請求項の数】14
【出願形態】OL
【全頁数】19
(21)【出願番号】特願2014-188784(P2014-188784)
(22)【出願日】2014年9月17日
(31)【優先権主張番号】10-2013-0135631
(32)【優先日】2013年11月8日
(33)【優先権主張国】KR
(71)【出願人】
【識別番号】596180076
【氏名又は名称】韓國電子通信研究院
【氏名又は名称原語表記】Electronics and Telecommunications Research Institute
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(72)【発明者】
【氏名】朴 正 烈
(72)【発明者】
【氏名】金 玄 軫
(72)【発明者】
【氏名】李 東 勳
【テーマコード(参考)】
5J104
【Fターム(参考)】
5J104AA16
5J104AA40
5J104NA02
5J104NA05
5J104PA14
(57)【要約】
【課題】 本発明は、時間−メモリトレードオフ方法を用いて、暗号化に使用されたパスワードでないキーを用いて暗号化されたMS−OFFICEファイルを復号化する装置およびその方法を提供する。
【解決手段】 前記暗号化されたファイルを復号化する装置は、暗号化されたファイルで使用された暗号アルゴリズムに対応するテーブルを生成するテーブル生成部と、暗号化されたファイルから暗号化ヘッダを抽出し、抽出した暗号化ヘッダに対応するブロックの暗号化された固定平文を抽出する資料抽出部と、暗号化された固定平文に基づいてキーチェーンを生成して、生成したキーチェーンに相応する最終キー候補群を生成し、最終キー候補群とテーブルを用いて開始キーを探索する資料探索部と、開始キーを用いて暗号化キーの有効性を検証するキー検証部と、暗号化キーを用いて暗号化されたファイルを再暗号化する再暗号化部とを含む。
【選択図】 図1
【特許請求の範囲】
【請求項1】
暗号化されたファイルで使用された暗号アルゴリズムに対応するテーブルを生成するテーブル生成部と、
前記暗号化されたファイルから暗号化ヘッダを抽出し、抽出した暗号化ヘッダに対応するブロックの暗号化された固定平文を抽出する資料抽出部と、
前記暗号化された固定平文に基づいてキーチェーンを生成して、生成したキーチェーンに相応する最終キー候補群を生成し、前記最終キー候補群と前記テーブルを用いて開始キーを探索する資料探索部と、
前記開始キーを用いて暗号化キーの有効性を検証するキー検証部と、
前記暗号化キーを用いて前記暗号化されたファイルを再暗号化する再暗号化部とを含むことを特徴とする、暗号化されたファイルを復号化する装置。
【請求項2】
前記暗号化されたファイルは、暗号化されたMS−OFFICEファイルに該当するもので、2000以下のバージョンで使用された40−bit RC4アルゴリズム、またはCryptoAPI RC4アルゴリズムを用いて暗号化されたことを特徴とする、請求項1に記載の暗号化されたファイルを復号化する装置。
【請求項3】
前記テーブル生成部は、
前記暗号化されたファイルに対応する暗号化アルゴリズムによってリダクション関数を選択する選択部と、
前記リダクション関数に基づいてキーチェーンを生成し、生成したキーチェーンに基づいて開始キーおよび最終キーを計算するキーチェーン生成部と、
前記開始キーおよび最終キーを用いて、暗号化アルゴリズムによってテーブルを生成する生成部とを含むことを特徴とする、請求項1に記載の暗号化されたファイルを復号化する装置。
【請求項4】
前記生成部は、
MS−WORD、MS−EXCELファイルに使用される40−bit RC4アルゴリズム用テーブル、MS−POWERPOINTファイルに使用されるCryptoAPI RC4アルゴリズム用テーブルであってBlockNum0を使用するブロックのためのテーブル、同アルゴリズム用テーブルであってBlockNum0でないブロックのためのテーブルのうちの少なくとも1つを生成することを特徴とする、請求項3に記載の暗号化されたファイルを復号化する装置。
【請求項5】
前記キーチェーン生成部は、虹キーチェーン形態であることを特徴とする、請求項3に記載の暗号化されたファイルを復号化する装置。
【請求項6】
前記資料抽出部は、
入力された暗号ファイルから、暗号化に使用されたパスワードを検証するための暗号化ヘッダを抽出する暗号化ヘッダ抽出部と、
前記暗号ファイルに対応する暗号化アルゴリズムによって前記暗号化された固定平文を抽出する複数の固定平文抽出部とを含むことを特徴とする、請求項1に記載の暗号化されたファイルを復号化する装置。
【請求項7】
前記キー検証部は、
前記資料探索部で探索した開始キーを用いてキーチェーンを再生成するキーチェーン生成部と、
前記キーチェーン生成部で再生成したキーチェーンが含むキー値の中から、前記暗号化された固定平文が存在するかを確認し、前記暗号化された固定平文が存在する場合に、時間−メモリトレードオフ手法の原理によって暗号化キーを再暗号化部に伝達する確認部とを含むことを特徴とする、請求項1に記載の暗号化されたファイルを復号化する装置。
【請求項8】
前記再暗号化部は、
前記暗号化されたファイルから抽出した暗号化ヘッダを再構成するヘッダ再暗号化部と、
前記キー検証部から伝達された暗号化キーを用いて各暗号化されたブロックを復号化するブロック復号化部と、
前記ブロック復号化部で復号化されたブロックを、再構成された暗号化ヘッダで使用された暗号化キーを用いて再暗号化するブロック再暗号化部とを含むことを特徴とする、請求項1に記載の暗号化されたファイルを復号化する装置。
【請求項9】
暗号化されたファイルで使用された暗号アルゴリズムに対応するテーブルを生成するステップと、
前記暗号化されたファイルから暗号化ヘッダを抽出し、抽出した暗号化ヘッダに対応するブロックの暗号化された固定平文を抽出するステップと、
前記暗号化された固定平文に基づいてキーチェーンを生成して、生成したキーチェーンに相応する最終キー候補群を生成し、前記最終キー候補群と前記テーブルを用いて開始キーを探索するステップと、
前記開始キーを用いて暗号化キーの有効性を検証するステップと、
前記暗号化キーを用いて前記暗号化されたファイルを再暗号化するステップとを含むことを特徴とする、暗号化されたファイルを復号化する方法。
【請求項10】
前記テーブルを生成するステップは、
暗号化されたMS−OFFICEファイルに該当するもので、2000以下のバージョンで使用された40−bit RC4アルゴリズム、またはCryptoAPI RC4アルゴリズムを用いて、暗号化されたファイルで使用された暗号アルゴリズムに対応するテーブルを生成することを特徴とする、請求項9に記載の暗号化されたファイルを復号化する方法。
【請求項11】
前記テーブルを生成するステップは、
前記暗号化されたファイルに対応する暗号化アルゴリズムによってリダクション関数を選択するステップと、
前記リダクション関数に基づいてキーチェーンを生成し、生成したキーチェーンに基づいて開始キーおよび最終キーを計算するステップと、
前記開始キーおよび最終キーを用いて、暗号化アルゴリズムによってテーブルを生成するステップとを含むことを特徴とする、請求項9に記載の暗号化されたファイルを復号化する方法。
【請求項12】
前記開始キーおよび最終キーを用いて、暗号化アルゴリズムによってテーブルを生成するステップは、
MS−WORD、MS−EXCELファイルに使用される40−bit RC4アルゴリズム用テーブル、MS−POWERPOINTファイルに使用されるCryptoAPI RC4アルゴリズム用テーブルであってBlockNum0を使用するブロックのためのテーブル、同アルゴリズム用テーブルであってBlockNum0でないブロックのためのテーブルのうちの少なくとも1つを生成することを特徴とする、請求項11に記載の暗号化されたファイルを復号化する方法。
【請求項13】
前記暗号化された固定平文を抽出するステップは、
入力された暗号ファイルから、暗号化に使用されたパスワードを検証するための暗号化ヘッダを抽出するステップと、
前記暗号ファイルに対応する暗号化アルゴリズムによって前記暗号化された固定平文を抽出するステップとを含むことを特徴とする、請求項9に記載の暗号化されたファイルを復号化する方法。
【請求項14】
前記再暗号化するステップは、
前記暗号化されたファイルから抽出した暗号化ヘッダを再構成するステップと、
有効性の検証された暗号化キーを用いて各暗号化されたブロックを復号化するステップと、
復号化されたブロックを、再構成された暗号化ヘッダで使用された暗号化キーを用いて再暗号化するステップとを含むことを特徴とする、請求項9に記載の暗号化されたファイルを復号化する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化されたファイルを復号化する装置およびその方法に関するものであって、特に、時間−メモリトレードオフ方法(Time−memory Trade−off、TMTO)を用いて、暗号化に使用されたパスワードでないキーを用いて暗号化されたMS−OFFICEファイルを復号化する装置およびその方法に関するものである。
【背景技術】
【0002】
文書を格納する多様な形式のファイルのうち、MS−OFFICEファイルは、非常に大きい部分を占めている。
【0003】
MS−OFFICEは、現在、2013バージョンまで発売されて使用されているが、過去のバージョンを使用する低仕様PC(personal computer)などとの業務の連続性のために引き続き2000以下のバージョンで使用される形式で格納されたファイルが相当数を占める。2000以下のバージョンのMS−OFFICEファイルは、固有の暗号アルゴリズムで暗号化して格納することができるが、この時使用される基本アルゴリズムは、設計上の脆弱点を見つけにくく、パスワードの探索による暗号文の解読が事実上最も効率的な攻撃方法として知られている。
【0004】
脆弱点が知られていない暗号アルゴリズムの暗号文からパスワードを探す方法としてよく知られているものとしては、すでに知られているパスワードの辞書、またはそれから誘導されるパスワードを調べる辞書式攻撃方法と、すべての可能なパスワードの組み合わせを調べる全数調査攻撃方法といった2つの攻撃方法が存在する。
【0005】
例えば、韓国公開特許第10−2010−0098094号公報の「グラフィックプロセッサを用いたMS−OFFICEファイルからの高速パスワード復旧システムおよび方法」では、パスワードが設定されて暗号化されたMS−OFFICEファイルに対して、候補パスワードが正しいパスワードであるか否かをグラフィックプロセッサを用いて並列的に迅速に検証することにより、パスワードを復旧する技術に関して記載している。
【0006】
このような辞書式攻撃方法は、暗号化に使用されたパスワードが辞書の単語の単純な変形でない場合、失敗する可能性が高く、全数調査攻撃方法は、計算量が多すぎる欠点がある。例えば、英語の大小文字、数字、特殊文字などの95の文字を使用し、かつ長さが9の場合に対して全数調査攻撃方法を用いるとすれば、可能なパスワードの組み合わせは、
【0007】
【数1】
【0008】
となって、現実的に探索が難しい。このため、複雑なパスワードを用いた場合には別の攻撃方法が必要になる。
【0009】
前記2つの攻撃方法とは異なる攻撃方法には、時間−メモリトレードオフ方法(Time−memory Trade−off、TMTO)を用いたパスワード探索攻撃がある。このようなパスワード探索攻撃方法は、時間を投資する攻撃方法(例えば、全数調査攻撃方法)と、メモリ(格納空間)に依存する攻撃方法(例えば、すべてのパスワードに対して暗号文のテーブルを作成した後、テーブルから暗号文を検索してパスワードを直ちに読み出す方法)との折衷点として提案された攻撃方法に該当する。
【0010】
時間−メモリトレードオフ方法(Time−memory Trade−off、TMTO)を用いたパスワード探索攻撃方法は、特別な規則によって選定された一部のパスワードに対する暗号文のみを特定の規則で変形してテーブルの形態で格納した後、暗号文またはその変形をテーブルから探して、元のパスワードを逆に計算する方法である。
【0011】
このような時間−メモリトレードオフ方法(Time−memory Trade−off、TMTO)は、効率が非常に高いと知られているが、暗号文の元の平文が特定の形態を呈していなければ適用できない欠点がある。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】韓国公開特許第10−2010−0098094号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
本発明の目的は、時間−メモリトレードオフ方法を用いて、暗号化に使用されたパスワードでないキーを用いて暗号化されたMS−OFFICEファイルを復号化する装置およびその方法を提供することである。
【課題を解決するための手段】
【0014】
上記の目的を達成するための、本発明にかかる暗号化されたファイルを復号化する装置は、暗号化されたファイルで使用された暗号アルゴリズムに対応するテーブルを生成するテーブル生成部と、前記暗号化されたファイルから暗号化ヘッダを抽出し、抽出した暗号化ヘッダに対応するブロックの暗号化された固定平文を抽出する資料抽出部と、前記暗号化された固定平文に基づいてキーチェーンを生成して、生成したキーチェーンに相応する最終キー候補群を生成し、前記最終キー候補群と前記テーブルを用いて開始キーを探索する資料探索部と、前記開始キーを用いて暗号化キーの有効性を検証するキー検証部と、前記暗号化キーを用いて前記暗号化されたファイルを再暗号化する再暗号化部とを含む。
【0015】
この時、前記暗号化されたファイルは、暗号化されたMS−OFFICEファイルに該当するもので、2000以下のバージョンで使用された40−bit RC4アルゴリズム、またはCryptoAPI RC4アルゴリズムを用いて暗号化されたことを特徴とする。
【0016】
この時、前記テーブル生成部は、前記暗号化されたファイルに対応する暗号化アルゴリズムによってリダクション関数を選択する選択部と、前記リダクション関数に基づいてキーチェーンを生成し、生成したキーチェーンに基づいて開始キーおよび最終キーを計算するキーチェーン生成部と、前記開始キーおよび最終キーを用いて、暗号化アルゴリズムによってテーブルを生成する生成部とを含むことを特徴とする。
【0017】
この時、前記生成部は、MS−WORD、MS−EXCELファイルに使用される40−bit RC4アルゴリズム用テーブル、MS−POWERPOINTファイルに使用されるCryptoAPI RC4アルゴリズム用テーブルであってBlockNum0を使用するブロックのためのテーブル、同アルゴリズム用テーブルであってBlockNum0でないブロックのためのテーブルのうちの少なくとも1つを生成することを特徴とする。
【0018】
この時、前記キーチェーン生成部は、虹キーチェーン形態であることを特徴とする。
【0019】
この時、前記資料抽出部は、入力された暗号ファイルから、暗号化に使用されたパスワードを検証するための暗号化ヘッダを抽出する暗号化ヘッダ抽出部と、前記暗号ファイルに対応する暗号化アルゴリズムによって前記暗号化された固定平文を抽出する複数の固定平文抽出部とを含むことを特徴とする。
【0020】
この時、前記キー検証部は、前記資料探索部で探索した開始キーを用いてキーチェーンを再生成するキーチェーン生成部と、前記キーチェーン生成部で再生成したキーチェーンが含むキー値の中から、前記暗号化された固定平文が存在するかを確認し、前記暗号化された固定平文が存在する場合に、時間−メモリトレードオフ手法の原理によって暗号化キーを再暗号化部に伝達する確認部とを含むことを特徴とする。
【0021】
この時、前記再暗号化部は、前記暗号化されたファイルから抽出した暗号化ヘッダを再構成するヘッダ再暗号化部と、前記キー検証部から伝達された暗号化キーを用いて各暗号化されたブロックを復号化するブロック復号化部と、前記ブロック復号化部で復号化されたブロックを、再構成された暗号化ヘッダで使用された暗号化キーを用いて再暗号化するブロック再暗号化部とを含むことを特徴とする。
【0022】
また、本発明の一実施形態にかかる暗号化されたファイルを復号化する方法は、暗号化されたファイルで使用された暗号アルゴリズムに対応するテーブルを生成するステップと、前記暗号化されたファイルから暗号化ヘッダを抽出し、抽出した暗号化ヘッダに対応するブロックの暗号化された固定平文を抽出するステップと、前記暗号化された固定平文に基づいてキーチェーンを生成して、生成したキーチェーンに相応する最終キー候補群を生成し、前記最終キー候補群と前記テーブルを用いて開始キーを探索するステップと、前記開始キーを用いて暗号化キーの有効性を検証するステップと、前記暗号化キーを用いて前記暗号化されたファイルを再暗号化するステップとを含む。
【0023】
この時、前記テーブルを生成するステップは、暗号化されたMS−OFFICEファイルに該当するもので、2000以下のバージョンで使用された40−bit RC4アルゴリズム、またはCryptoAPI RC4アルゴリズムを用いて、暗号化されたファイルで使用された暗号アルゴリズムに対応するテーブルを生成することを特徴とする。
【0024】
この時、前記テーブルを生成するステップは、前記暗号化されたファイルに対応する暗号化アルゴリズムによってリダクション関数を選択するステップと、前記リダクション関数に基づいてキーチェーンを生成し、生成したキーチェーンに基づいて開始キーおよび最終キーを計算するステップと、前記開始キーおよび最終キーを用いて、暗号化アルゴリズムによってテーブルを生成するステップとを含むことを特徴とする。
【0025】
この時、前記開始キーおよび最終キーを用いて、暗号化アルゴリズムによってテーブルを生成するステップは、MS−WORD、MS−EXCELファイルに使用される40−bit RC4アルゴリズム用テーブル、MS−POWERPOINTファイルに使用されるCryptoAPI RC4アルゴリズム用テーブルであってBlockNum0を使用するブロックのためのテーブル、同アルゴリズム用テーブルであってBlockNum0でないブロックのためのテーブルのうちの少なくとも1つを生成することを特徴とする。
【0026】
この時、前記暗号化された固定平文を抽出するステップは、入力された暗号ファイルから、暗号化に使用されたパスワードを検証するための暗号化ヘッダを抽出するステップと、前記暗号ファイルに対応する暗号化アルゴリズムによって前記暗号化された固定平文を抽出するステップとを含むことを特徴とする。
【0027】
この時、前記再暗号化するステップは、前記暗号化されたファイルから抽出した暗号化ヘッダを再構成するステップと、有効性の検証された暗号化キーを用いて各暗号化されたブロックを復号化するステップと、復号化されたブロックを、再構成された暗号化ヘッダで使用された暗号化キーを用いて再暗号化するステップとを含むことを特徴とする。
【発明の効果】
【0028】
本発明によれば、暗号化されたファイルを復号化する装置およびその方法は、2000以下のバージョンのMS−OFFICEファイルが使用する暗号化アルゴリズムで暗号化されたファイルのキーを探して、ファイルを予め約束した新たなパスワードで暗号化することにより、迂迴的に復号化する効果が得られる。また、この過程で、従来のパスワード探索方式を利用する時に発生する膨大な時間の所要と低い成功率という問題を解決することができる。
【0029】
すなわち、本発明は、高速で高い成功率を有してファイルを復号化することを可能にする。
【図面の簡単な説明】
【0030】
図1】本発明の実施形態にかかる暗号化されたファイルを復号化する装置を概略的に示す構成図である。
図2】本発明の実施形態にかかるテーブル生成部を示す構成図である。
図3】本発明の実施形態にかかるキーチェーン生成部を示す図である。
図4】本発明の実施形態にかかる生成部を示す図である。
図5】本発明の実施形態にかかる資料抽出部を示す構成図である。
図6】本発明の実施形態にかかる資料探索部を示す構成図である。
図7】本発明の実施形態にかかるキー検証部を示す構成図である。
図8】本発明の実施形態にかかる再暗号化部を示す構成図である。
図9】本発明の実施形態にかかる暗号化されたファイルを復号化する方法を示すフローチャートである。
【発明を実施するための形態】
【0031】
以下、本発明を添付した図面を参照して詳細に説明する。ここで、繰り返される説明、本発明の要旨を不明にする可能性がある公知の機能、および構成に関する詳細な説明は省略する。本発明の実施形態は、当業界における平均的な知識を有する者に本発明をより完全に説明するために提供されるものである。したがって、図面における要素の形状および大きさなどは、より明確な説明のために誇張されることがある。
【0032】
以下、本発明の好ましい実施形態にかかる時間−メモリトレードオフ方法(Time−memory Trade−off、TMTO)を用いて、暗号化に使用されたパスワードでないキーを用いて暗号化されたMS−OFFICEファイルを復号化する装置およびその方法について、添付した図面を参照して詳細に説明する。
【0033】
図1は、本発明の実施形態にかかる暗号化されたファイルを復号化する装置を概略的に示す構成図である。
【0034】
図1を参照すれば、暗号化されたファイルを復号化する装置は、テーブル生成部100と、資料抽出部200と、資料探索部300と、キー検証部400と、再暗号化部500とを含む。
【0035】
テーブル生成部100は、MS−OFFICEファイル(例えば、MS−WORD、MS−EXCEL、MS−POWERPOINT)に対して使用された暗号アルゴリズムに対応するTMTOテーブルを生成する。
【0036】
資料抽出部200は、暗号化されたファイルから暗号化ヘッダを抽出し、抽出した暗号化ヘッダに対応するブロックの暗号化された固定平文を抽出する。ここで、暗号化されたファイルは、暗号化されたMS−OFFICEファイルに該当する。
【0037】
資料探索部300は、暗号化された固定平文に基づいてキーチェーンを生成して、キーチェーンに相応する最終キー候補群を生成し、最終キー候補群とTMTOテーブルを用いて開始キーを探索する。
【0038】
キー検証部400は、資料探索部300で探索した結果に基づいて、暗号化ヘッダを用いてキーの有効性を検証する。
【0039】
具体的には、資料探索部300で見つかった開始キーからキーチェーンを生成し、生成したキーチェーンから暗号化された固定平文が存在するか否かを確認する。この時、キー検証部400は、キーチェーンから暗号化された固定平文が存在しない場合、資料探索部300の探索結果が誤ったものと判断する。反面、キー検証部400は、キーチェーンから暗号化された固定平文が存在する場合、時間−メモリトレードオフ方法の原理によって、見つかったキー値のすぐ前のキー値が暗号化キーとなるので、暗号化キーを再暗号化部500に伝達する。
【0040】
再暗号化部500は、キー検証部400で検証されたキー、すなわち、暗号化キーを用いて暗号化されたファイルを再暗号化する。
【0041】
次に、暗号化されたファイルを復号化する装置のテーブル生成部100を、図2を参照して詳細に説明する。
【0042】
図2は、本発明の実施形態にかかるテーブル生成部を示す構成図である。
【0043】
図2を参照すれば、テーブル生成部100は、選択部110と、キーチェーン生成部120と、生成部130とを含む。
【0044】
選択部110は、MS−OFFICE2000以下のバージョンで使用される暗号化アルゴリズムによって2つのリダクション関数(reduction function)のうちの1つを選択する。
【0045】
キーチェーン生成部120は、選択部110で選択したリダクション関数に基づいてキーチェーンを生成し、生成したキーチェーンに基づいてチェーンの開始キーおよび最終キーを計算する。ここで、キーチェーン生成部120が生成したキーチェーンは、虹キーチェーン(rainbow key chain)形態であることを特徴とする。
【0046】
生成部130は、開始キーおよび最終キーを用いて、暗号化アルゴリズムによってテーブルを生成する。この時、テーブル生成部130は、暗号化アルゴリズムによってテーブルA(計1種)、またはテーブルB0とテーブルB1(計2種)を生成する。
【0047】
テーブルAは、MS−WORD、MS−EXCELファイルに使用される40−bit RC4アルゴリズム用テーブルに該当する。
【0048】
テーブルB0は、MS−POWERPOINTファイルに使用されるCryptoAPI RC4アルゴリズム用テーブルであってBlockNum0を使用するブロックのためのテーブルに該当する。
【0049】
テーブルB1は、同アルゴリズム用テーブルであってBlockNum0でないブロックのためのテーブルに該当する。
【0050】
テーブルを生成する時、キーチェーン生成部120で使用するチェーンの長さNCOLと、生成されたテーブルの列の個数NROWは、数式1のような条件を満足しなければならない。
〔数式1〕
NCOL*NROW=240
選択部110で選択したリダクション関数は、RC−4暗号化アルゴリズムの出力8バイトまたは12バイトを受信して、この中から一部のビットを抽出して計40ビット(5バイト)を出力する関数である。
【0051】
選択部110で選択したリダクション関数からどのビットを抽出するかは、米国マイクロソフト社で公開した、MS−OFFICE2000以下のバージョンで使用する暗号化方法に対する文書の内容を分析して得られた内容によって決定され、MS−OFFICE文書ファイルを構成する各データブロックの最初の8バイトまたは12バイトの中から、常に値が固定されるビットの位置を持ってくることを特徴とする。
【0052】
このような位置は、MS−OFFICEファイルの使用する暗号化アルゴリズムが40−bit RC−4アルゴリズムの場合には計1セット、CryptoAPI RC−4アルゴリズムの場合に計2セットが存在し、それによってリダクション関数も同数だけ存在する。したがって、生成されるテーブルの種類も1種または2種となる。
【0053】
次に、テーブル生成部100のキーチェーン生成部120を、図3を参照して詳細に説明する。
【0054】
図3は、本発明の実施形態にかかるキーチェーン生成部を示す図である。
【0055】
図3を参照すれば、キーチェーン生成部120は、暗号文生成部121と、リダクション関数部122とを含む。
【0056】
まず、キーチェーン生成部120は、任意の40ビット(5バイト)の開始キーと、8バイトまたは12バイトの長さの固定平文とを受信して、動作を開始する。この時、固定平文の特定位置は、特定の値に固定されていなければならず、当該位置およびその値は、マイクロソフト社の公開文書によって特定され、リダクション関数部122で収集しているビットの位置およびその値と一致しなければならない。
【0057】
暗号文生成部121は、入力された開始キーと固定平文にRC−4暗号化アルゴリズムを適用し、8バイトまたは12バイトの長さの暗号文を生成する。
【0058】
リダクション関数部122は、暗号文生成部121で生成した暗号文を、選択部110で選択したリダクション関数に適用し、5バイトの結果物を出力する。ここで、結果物を新たなキーに設定し、前記過程をNCOL回繰り返した結果物を最終キーに設定する。
【0059】
すなわち、リダクション関数部122は、暗号文生成部121で生成した暗号文を、リダクション関数に、前に設定された繰り返し回数だけ適用した結果物を最終キーに設定する。
【0060】
本発明の実施形態にかかるキーチェーン生成部120では、出力結果を40ビットの整数と見なして、繰り返し回数を加えた結果を使用する方式の変形を適用することができ、これに限定されない。
【0061】
次に、テーブル生成部100の生成部130を、図4を参照して詳細に説明する。
【0062】
図4は、本発明の実施形態にかかる生成部を示す図である。
【0063】
図4を参照すれば、生成部130は、キーチェーン生成部120から開始キーおよび最終キーの対を受信する。
【0064】
生成部130は、第1ファイル生成部131と、第2ファイル生成部132とを含む。
【0065】
第1ファイル生成部131は、5バイトの長さの開始キーおよび最終キーの下位1バイトを抽出して計6バイトの格納データを生成し、6バイトの格納データを最終キーを基準として整列および併合してキーチェーンデータファイル133を生成する。
【0066】
第2ファイル生成部132は、5バイトの長さの最終キーの上位3バイトを抽出し、インデックス計算を行ってインデックスファイル134を生成する。
【0067】
本発明の実施形態にかかる生成部130で生成されたファイル、すなわち、キーチェーンデータファイル133とインデックスファイル134は、テーブルに該当する。
【0068】
このように、テーブル生成部100でテーブルを生成する過程は、暗号化されたファイルを復号化する装置に適用する時、たった1回行われることで十分である。ただし、1回行う時、複数のテーブルを生成することができる。
【0069】
本発明の実施形態にかかるテーブル生成部100は、キーチェーンの長さをNCOL=5500に設定した場合、テーブル1個の大きさが約1.2G程度であってよい。
【0070】
次に、暗号化されたファイルを復号化する装置の資料抽出部200を、図5を参照して詳細に説明する。
【0071】
図5は、本発明の実施形態にかかる資料抽出部を示す構成図である。
【0072】
まず、資料抽出部200は、暗号化されたファイル、例えば、暗号化されたMS−OFFICEファイル(=図5の暗号ファイル)を受信する。
【0073】
図5を参照すれば、資料抽出部200は、暗号化ヘッダ抽出部210と、固定平文抽出部220とを含む。
【0074】
暗号化ヘッダ抽出部210は、入力された暗号ファイル(E)から、暗号化に使用されたパスワードを検証するために必要な3つの値、すなわち、Salt、EncryptedVerifierおよびEncryptedVerifierHashを抽出する。
【0075】
本発明の実施形態にかかる暗号ファイルは、パスワードでないパスワードと任意に決定されたSaltから誘導された暗号キーを用いて、RC−4アルゴリズムによってファイルを構成する各ブロックを、そのブロックの番号(BlockNum)に合わせて暗号化し、ファイルの内部に使用されたSaltと共に、暗号キー検証値のEncryptedVerifierおよびEncryptedVerifierHashを記録しておく。
【0076】
ユーザがファイルを復号化するためにパスワードを入力した時は、このパスワードの有効性を検証するために入力されたパスワードとSaltから暗号キーを誘導した後、この値をEncryptedVerifierおよびEncryptedVerifierHashを用いて検証する。
【0077】
パスワードとSaltから暗号キーを誘導する過程は、暗号化アルゴリズムとして、40−bit RC−4アルゴリズム、またはCryptoAPI RC−4アルゴリズムが使用されたかによってやや差がある。
【0078】
固定平文抽出部220は、第1固定平文抽出部221と、第2固定平文抽出部222とを含む。
【0079】
第1固定平文抽出部221および第2固定平文抽出部222はそれぞれ、40−bit RC−4アルゴリズムが使用された暗号化と、CryptoAPI RC−4アルゴリズムが使用された暗号化に対応して、暗号化されたファイルを構成する暗号化された各ブロックの最初の8バイトまたは12バイトから、40ビット(5バイト)の長さの暗号化された固定平文を抽出する。
【0080】
固定平文抽出部220で暗号化された固定平文を抽出する方法は、図3と同様に、固定平文からリダクション関数を用いて特定位置の40ビット(5バイト)を抽出する方法に類似している。
【0081】
40−bit RC−4アルゴリズムが使用された場合は、第1固定平文抽出部221に沿ってBlockNum0を使用するブロックから、たった1つの暗号化された固定平文(図5の暗号化された固定平文A)を抽出することで十分である。
【0082】
反面、CryptoAPI RC−4アルゴリズムが使用された場合は、第2固定平文抽出部222に沿ってすべてのブロック番号に対して当該BlockNumを有するブロックから、暗号化された固定平文(図5の暗号化された固定平文B0〜暗号化された固定平文Bn)を抽出しなければならない。したがって、CryptoAPI RC−4アルゴリズムが使用された場合、抽出される暗号化された固定平文の個数は、暗号化されたファイルを構成する暗号化されたブロックの個数と等しい。
【0083】
次に、暗号化されたファイルを復号化する装置の資料探索部300を、図6を参照して詳細に説明する。
【0084】
図6は、本発明の実施形態にかかる資料探索部を示す構成図である。
【0085】
図6を参照すれば、資料探索部300は、最終キー候補群生成部310と、開始キー探索部320とを含む。
【0086】
最終キー候補群生成部310は、暗号化された固定平文を用いてNCOL個のキーチェーンを生成することにより、NCOL個の最終キー候補群を生成する。
【0087】
具体的には、最終キー候補群生成部310は、資料抽出部200から抽出された暗号化された固定平文を受信して、暗号化された固定平文それぞれに対して次の過程を行う。
【0088】
暗号化された固定平文はそれぞれ40ビット(5バイト)の長さであるので、これを、図3に示しているキーチェーン生成部120で使用する開始キーのように取り扱うが、RC−4暗号化アルゴリズムとリダクション関数を適用する過程を繰り返す回数を、それぞれ0回行った後終了、1回行った後終了〜(NCOL−1)回行った後終了して、NCOL個の最終キーを得る。この過程を通じて取得したNCOL個の最終キーが、図6に示している最終キー候補群である。この過程において、キーチェーン生成部120に関して説明した部分において、繰り返し回数を加えた結果を使用する方式の変形は、繰り返し回数でない、変形した値を基準とする。例えば、3回行った後終了して取得した最終キーがあれば、最終キーを計算する時、計3回のリダクション関数を適用する過程を通過しなければならない。この時、一番目のリダクション関数部122に加える変形は(NCOL−2)に対応する変形を加え、二番目は(NCOL−1)に対応する変形を、最後の三番目はNCOLに対応する変形を加えることで、当該最終キーが計算過程で最後に通過するリダクション関数に対する変形は、NCOLに対応する変形となるようにする。
【0089】
次に、開始キー探索部320は、最終キー候補群生成部310で生成した最終キー候補群を、テーブル生成部100で生成したテーブルから探索して、最終キー候補群に対応する開始キーを探索する。
【0090】
図4に記載しているように、テーブルは、最終キーの上位3バイトからなるインデックスファイル134と、開始キーおよび最終キーの上位1バイトからなる格納データを最終キーを基準として整列したキーチェーンデータファイル133とから構成されている。
【0091】
したがって、開始キー探索部320は、最終キーの候補群の各キーの上位3バイトをインデックスファイル134から検索し、検索したインデックスファイルに対応するキーチェーンデータファイル133の当該範囲を探索して、最終キーの下位1バイトと一致する値を有する格納データを探索する。探索に成功すると、最終キー候補群の各キーに対応する開始キーを探索することができる。
【0092】
次に、暗号化されたファイルを復号化する装置のキー検証部400を、図7を参照して詳細に説明する。
【0093】
図7は、本発明の実施形態にかかるキー検証部を示す構成図である。
【0094】
図7を参照すれば、キー検証部400は、キーチェーン生成部410と、確認部420とを含む。
【0095】
キーチェーン生成部410は、図2のキーチェーン生成部120と同様の動作によってキーチェーンを生成するものであるが、資料探索部300で探索した開始キーを受信して、最終キーを計算する過程で得られる(NCOL−1)個の40ビット(5バイト)の長さのキー値をすべて出力する。
【0096】
確認部420は、資料探索部300で探索した開始キーに対応する最終キーと、キーチェーン生成部410で出力する(NCOL−1)個のキー値とを合わせて、計NCOL個のキー値の中から、最初に暗号化されたファイルから抽出した暗号化された固定平文が存在するかを確認する。
【0097】
確認部420は、暗号化された固定平文が存在しない場合、開始キー探索部320で別の開始キーを探索しなければならない。
【0098】
確認部420は、暗号化された固定平文が存在する場合、時間−メモリトレードオフ手法の原理によって、当該キーのすぐ前のキーが暗号化キーとなるので、暗号化キーを再暗号化部500に伝達する。
【0099】
次に、暗号化されたファイルを復号化する装置の再暗号化部500を、図8を参照して詳細に説明する。
【0100】
図8は、本発明の実施形態にかかる再暗号化部を示す構成図である。
【0101】
図8を参照すれば、再暗号化部500は、ヘッダ再暗号化部510と、ブロック復号化部520と、ブロック再暗号化部530とを含む。
【0102】
ヘッダ再暗号化部510は、入力された暗号ファイル(E)から抽出した暗号化ヘッダを再構成する。すなわち、ヘッダ再暗号化部510は、暗号化ヘッダ抽出部210で抽出したSalt、EncryptedVerifierおよびEncryptedVerifierHashを、新たなパスワード(NP)から誘導された新たな暗号化キー、すなわち、確認部420で伝達した暗号化キーに対応して変形させる。
【0103】
ヘッダ再暗号化部510は、暗号化ヘッダ抽出部210で抽出したSaltを変更するか変更しなくてよく、新たな暗号化キーを、“1234”などの、予め定められた記憶しやすいパスワードから、暗号化アルゴリズムを用いて導出された値を使用することができ、これに限定されない。
【0104】
ブロック復号化部520は、確認部420で伝達した暗号化キーを用いて各暗号化されたブロックを復号化する。
【0105】
仮に、MS−OFFICEファイルの暗号化に40−bit RC−4アルゴリズムが使用されたならば、1つの暗号化キーですべてのブロックを復号化することができるが、CryptoAPI RC−4アルゴリズムが使用されたならば、互いに異なるBlockNumを有する暗号化されたブロックに対して互いに異なる暗号化キーが必要である。したがって、この場合には、資料探索部300とキー検証部400ですべてのBlockNumに対する暗号化キーを探索しなければならない。
【0106】
すなわち、ブロック復号化部520は、BlockNumに対応する暗号化キーを引き受けて、暗号化されたファイルの各ブロックを復号化する。
【0107】
ブロック再暗号化部530は、ブロック復号化部520で復号化されたブロックを、ヘッダ再暗号化部510で使用された新たなパスワード(NP)およびそれから誘導される暗号化キーを用いて再暗号化する。この時、パスワードを知っていれば、すべてのBlockNumに対して必要な暗号化キーを誘導できるため、ブロック再暗号化部530に対して2つのアルゴリズムの違いはない。すべてのブロックが新たに暗号化されて1つのファイルとして格納されると、そのファイルは、新たなパスワード(NP)で復号化可能なMS−OFFICEファイルとなって、ユーザが内容を確認することができる。
【0108】
次に、暗号化されたファイルを復号化する方法を、図9を参照して詳細に説明する。
【0109】
図9は、本発明の実施形態にかかる暗号化されたファイルを復号化する方法を示すフローチャートである。
【0110】
図9を参照すれば、暗号化されたファイルを復号化する装置のテーブル生成部100は、MS−OFFICEファイル(例えば、MS−WORD、MS−EXCEL、MS−POWERPOINT)に対して使用された暗号アルゴリズムに対応するTMTOテーブルを生成する(S100)。
【0111】
暗号化されたファイルを復号化する装置の資料抽出部200は、暗号化されたファイルから暗号化ヘッダを抽出し、抽出した暗号化ヘッダに対応するブロックの暗号化された固定平文を抽出する(S200)。
【0112】
暗号化されたファイルを復号化する装置の資料探索部300は、暗号化された固定平文に基づいてキーチェーンを生成して、キーチェーンに相応する最終キー候補群を生成し、最終キー候補群とTMTOテーブルを用いて開始キーを探索する(S300)。
【0113】
暗号化されたファイルを復号化する装置のキー検証部400は、S300ステップで見つかった開始キーからキーチェーンを生成し、生成したキーチェーンから暗号化された固定平文が存在するか否かを確認する(S400)。
【0114】
S400ステップでキーチェーンから暗号化された固定平文が存在しない場合には、S300ステップで見つけた開始キーが誤ったものと判断し、S300ステップと同様に、開始キーを再探索しなければならない。
【0115】
反面、キーチェーンから暗号化された固定平文が存在する場合には、時間−メモリトレードオフ方法の原理によって、見つかったキー値のすぐ前のキー値が暗号化キーとなるので、暗号化キーを次のステップに適用する。
【0116】
暗号化されたファイルを復号化する装置の再暗号化部500は、S400ステップで検証されたキー、すなわち、暗号化キーを用いて暗号化されたファイルを再暗号化する(S500)。
【0117】
このように、本発明の実施形態にかかる暗号化されたファイルを復号化する装置は、2000以下のバージョンのMS−OFFICEファイルが使用する暗号化アルゴリズムで暗号化されたファイルのキーを探して、ファイルを予め約束した新たなパスワードで暗号化することにより、迂迴的に復号化する効果が得られる。
【0118】
以上、図面および明細書で最適な実施形態が開示された。ここで特定の用語が使用されたが、これは、単に本発明を説明するための目的で使用されたものであって、意味の限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。そのため、本技術分野における通常の知識を有する者であれば、これから多様な変形および均等な他の実施形態が可能であることを理解することができる。したがって、本発明の真の技術的保護範囲は、添付した特許請求の範囲の技術的思想によって定められなければならない。
【符号の説明】
【0119】
100;テーブル生成部
110;選択部
120;キーチェーン生成部
121;暗号文生成部
122;リダクション関数部
130;生成部
131;第1ファイル生成部
132;第2ファイル生成部
200;資料抽出部
210;暗号化ヘッダ抽出部
220;固定平文抽出部
221;第1固定平文抽出部
222;第2固定平文抽出部
300;資料探索部
310;最終キー候補群生成部
320;開始キー探索部
400;キー検証部
410;キーチェーン生成部
420;確認部
430;キーチェーン探索部
500;再暗号化部
510;ヘッダ再暗号化部
520;ブロック復号化部
530;ブロック再暗号化部
図1
図2
図3
図4
図5
図6
図7
図8
図9