JP5713693B2 - ストレージ装置、ストレージ方法およびプログラム - Google Patents

ストレージ装置、ストレージ方法およびプログラム Download PDF

Info

Publication number
JP5713693B2
JP5713693B2 JP2011006824A JP2011006824A JP5713693B2 JP 5713693 B2 JP5713693 B2 JP 5713693B2 JP 2011006824 A JP2011006824 A JP 2011006824A JP 2011006824 A JP2011006824 A JP 2011006824A JP 5713693 B2 JP5713693 B2 JP 5713693B2
Authority
JP
Japan
Prior art keywords
secret
encryption key
keys
random number
generated
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.)
Active
Application number
JP2011006824A
Other languages
English (en)
Other versions
JP2012151546A (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.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2011006824A priority Critical patent/JP5713693B2/ja
Publication of JP2012151546A publication Critical patent/JP2012151546A/ja
Application granted granted Critical
Publication of JP5713693B2 publication Critical patent/JP5713693B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、耐タンパデバイスやOSの特殊な領域を使用すること無しに、暗号学的に安全、かつ効率的なストレージ装置、ストレージ方法およびプログラムに関する。
一般に、プログラムには、価値のあるアルゴリズムおよびコンテンツの暗号鍵等、利用者に対して秘密にすべき情報が含まれる場合がある。一方で、プログラムを解析するための技術(RE:Reverse Engineering)も数多く開発されているのが現状である。このため、これらの技術によりプログラムが解析されると、不正者に秘密情報が入手されるという脅威が考えられる。
このような脅威を回避するために、例えば、UIMカード(User Identity Module Card)やUSIMカード(Universal Subscriber Identity Module Card)等の耐タンパデバイスを用いた技術が知られている(例えば、特許文献1参照。)。
特開2010−66883号公報
一方、近年、オープンプラットフォームでのセキュリティ確保が重要な課題となっている。このようなオープンプラットフォーム環境では、耐タンパデバイスが必ずしも利用できる訳ではなく、ソフトウェアのみでセキュリティ確保が必要となり、秘密情報を格納するセキュアストレージも、ソフトウェアのみで構成しなければならない。また、セキュアストレージに対しては、サイドチャネル攻撃が想定され、そのような攻撃に対して耐性を持つ方式が必要である。
そこで、本発明は、上述の課題に鑑みてなされたものであり、耐タンパデバイスやOSの特殊な領域を使用すること無しに、暗号学的に安全、かつ効率的なストレージ装置、ストレージ方法およびプログラムを提供することを目的とする。
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
(1)本発明は、ソフトウェアのみで構成されるストレージ装置であって、N個の秘密鍵を生成する秘密鍵生成手段(例えば、図1の秘密鍵生成部101に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する隠蔽手段(例えば、図1の秘密鍵秘匿部102に相当)と、乱数を生成する乱数生成手段(例えば、図1の乱数生成部103に相当)と、前記N個の秘密鍵と生成した乱数とから暗号鍵を生成する暗号鍵生成手段(例えば、図1の暗号鍵生成部104に相当)と、格納されるデータを該生成した暗号鍵で暗号化する暗号化手段(例えば、図1の暗号化部106に相当)と、を備えたことを特徴とするストレージ装置を提案している。
この発明によれば、秘密鍵生成手段は、N個の秘密鍵を生成する。隠蔽手段は、N個の秘密鍵をプログラム内に隠蔽する。乱数生成手段は、乱数を生成する。暗号鍵生成手段は、N個の秘密鍵と生成した乱数とから暗号鍵を生成する。暗号化手段は、格納されるデータを生成した暗号鍵で暗号化する。したがって、鍵生成手段が、N個の秘密鍵を生成するため、秘密鍵がN−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(2)本発明は、(1)のストレージ装置について、前記秘密鍵生成手段(例えば、図3の秘密鍵生成部201に相当)が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とし、前記暗号鍵生成手段(例えば、図3の暗号鍵生成部204に相当)が前記N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とすることを特徴とするストレージ装置を提案している。
この発明によれば、秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とし、暗号鍵生成手段がN個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする。したがって、暗号鍵生成手段がN個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とするため、さらにセキュリティ能力を向上させることができる。
(3)本発明は、(2)のストレージ装置について、前記使用した乱数と使用した秘密鍵のインデックス情報をデータに付与するインデックス情報付与手段(例えば、図3のインデックス付与部207に相当)を備えたことを特徴とするストレージ装置を提案している。
この発明によれば、インデックス情報付与手段は、使用した乱数と使用した秘密鍵のインデックス情報をデータに付与する。したがって、これにより、N個の秘密鍵のうち、どのn個の秘密鍵を用いたのかを明確に把握することができる。
(4)本発明は、(1)のストレージ装置について、前記秘密鍵生成手段(例えば、図5の秘密鍵生成部201に相当)が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とし、前記暗号鍵生成手段(例えば、図5の暗号鍵生成部304に相当)が前記N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成することを特徴とするストレージ装置を提案している。
この発明によれば、秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とし、暗号鍵生成手段がN個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成する。したがって、暗号鍵生成手段がN個の秘密鍵のそれぞれに生成した乱数を乗じることにより、生成した暗号鍵を第3者からの攻撃に対して、秘匿化することができる。
(5)本発明は、(1)のストレージ装置について、前記秘密鍵生成手段(例えば、図7の秘密鍵生成部401に相当)が、暗号鍵のシードとなるマスターシークレットを生成し、該生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とし、前記暗号鍵生成手段(例えば、図7の暗号鍵生成部404に相当)が前記n個の情報からマスターシークレットを復元し、該復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とすることを特徴とするストレージ装置を提案している。
この発明によれば、秘密鍵生成手段が、暗号鍵のシードとなるマスターシークレットを生成し、生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とし、暗号鍵生成手段がn個の情報からマスターシークレットを復元し、復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする。したがって、n−1個までのマスターシークレットの漏洩に対して、漏洩耐性を得ることができる。
(6)本発明は、(1)から(5)のストレージ装置について、前記暗号鍵生成手段(例えば、図1の暗号鍵生成部104、図3の暗号鍵生成部204、図5の暗号鍵生成部304、図7の暗号鍵生成部404に相当)が、暗号化処理ごとに異なる暗号鍵を生成することを特徴とするストレージ装置を提案している。
この発明によれば、暗号鍵生成手段が、暗号化処理ごとに異なる暗号鍵を生成する。したがって、暗号化に使用する鍵が暗号化ごとに異なるため、さらに、第三者の攻撃に対して、耐性を持つことができる。
(7)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法であって、N個の秘密鍵を生成する第1のステップ(例えば、図2のステップS101に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図2のステップS102に相当)と、乱数を生成する第3のステップ(例えば、図2のステップS103に相当)と、前記N個の秘密鍵と生成した乱数とから暗号鍵を生成する第4のステップ(例えば、図2のステップS104に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図2のステップS105に相当)と、を備えたことを特徴とするストレージ方法を提案している。
この発明によれば、N個の秘密鍵を生成し、生成したN個の秘密鍵をプログラム内に隠蔽する。さらに、乱数を生成し、N個の秘密鍵と生成した乱数とから暗号鍵を生成する。そして、格納されるデータを生成した暗号鍵で暗号化する。したがって、N個の秘密鍵を生成するため、秘密鍵がN−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(8)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法であって、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする第1のステップ(例えば、図4のステップS201に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図4のステップS202に相当)と、乱数を生成する第3のステップ(例えば、図4のステップS203に相当)と、前記N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする第4のステップ(例えば、図4のステップS204に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図4のステップS205に相当)と、を備えたことを特徴とするストレージ方法を提案している。
この発明によれば、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする。このN個の秘密鍵をプログラム内に隠蔽する。さらに、乱数を生成し、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とし、格納されるデータを生成した暗号鍵で暗号化する。したがって、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とするため、秘密鍵がn−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(9)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法であって、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする第1のステップ(例えば、図6のステップS301に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図6のステップS302に相当)と、乱数を生成する第3のステップ(例えば、図6のステップS303に相当)と、前記N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成する第4のステップ(例えば、図6のステップS305に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図6のステップS306に相当)と、を備えたことを特徴とするストレージ方法を提案している。
この発明によれば、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする。このN個の秘密鍵を前記プログラム内に隠蔽する。さらに、乱数を生成し、N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成し、格納されるデータを生成した暗号鍵で暗号化する。したがって、暗号鍵生成手段がN個の秘密鍵のそれぞれに生成した乱数を乗じることにより、生成した暗号鍵を第3者からの攻撃に対して、秘匿化することができる。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(10)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法であって、暗号鍵のシードとなるマスターシークレットを生成し、該生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とする第1のステップ(例えば、図8のステップS401に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図8のステップS402に相当)と、乱数を生成する第3のステップ(例えば、図8のステップS403に相当)と、前記n個の情報からマスターシークレットを復元し、該復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする第4のステップ(例えば、図8のステップS404に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図8のステップS405に相当)と、を備えたことを特徴とするストレージ方法を提案している。
この発明によれば、暗号鍵のシードとなるマスターシークレットを生成し、生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とする。このN個の秘密鍵をプログラム内に隠蔽する。さらに、乱数を生成し、n個の情報からマスターシークレットを復元し、復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵として、格納されるデータを生成した暗号鍵で暗号化する。したがって、n−1個までのマスターシークレットの漏洩に対して、漏洩耐性を得ることができる。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(11)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法をコンピュータに実行させるためのプログラムであって、N個の秘密鍵を生成する第1のステップ(例えば、図2のステップS101に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図2のステップS102に相当)と、乱数を生成する第3のステップ(例えば、図2のステップS103に相当)と、前記N個の秘密鍵と生成した乱数とから暗号鍵を生成する第4のステップ(例えば、図2のステップS104に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図2のステップS105に相当)と、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、N個の秘密鍵を生成し、生成したN個の秘密鍵をプログラム内に隠蔽する。さらに、乱数を生成し、N個の秘密鍵と生成した乱数とから暗号鍵を生成する。そして、格納されるデータを生成した暗号鍵で暗号化する。したがって、N個の秘密鍵を生成するため、秘密鍵がN−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(12)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法をコンピュータに実行させるためのプログラムであって、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする第1のステップ(例えば、図4のステップS201に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図4のステップS202に相当)と、乱数を生成する第3のステップ(例えば、図4のステップS203に相当)と、前記N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする第4のステップ(例えば、図4のステップS204に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図4のステップS205に相当)と、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする。このN個の秘密鍵をプログラム内に隠蔽する。さらに、乱数を生成し、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とし、格納されるデータを生成した暗号鍵で暗号化する。したがって、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とするため、秘密鍵がn−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(13)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法をコンピュータに実行させるためのプログラムであって、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする第1のステップ(例えば、図6のステップS301に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図6のステップS302に相当)と、乱数を生成する第3のステップ(例えば、図6のステップS303に相当)と、前記N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成する第4のステップ(例えば、図6のステップS305に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図6のステップS306に相当)と、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする。このN個の秘密鍵を前記プログラム内に隠蔽する。さらに、乱数を生成し、N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成し、格納されるデータを生成した暗号鍵で暗号化する。したがって、暗号鍵生成手段がN個の秘密鍵のそれぞれに生成した乱数を乗じることにより、生成した暗号鍵を第3者からの攻撃に対して、秘匿化することができる。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
(14)本発明は、ソフトウェアのみで構成されるストレージ装置のストレージ方法をコンピュータに実行させるためのプログラムであって、暗号鍵のシードとなるマスターシークレットを生成し、該生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とする第1のステップ(例えば、図8のステップS401に相当)と、該N個の秘密鍵を前記プログラム内に隠蔽する第2のステップ(例えば、図8のステップS402に相当)と、乱数を生成する第3のステップ(例えば、図8のステップS403に相当)と、前記n個の情報からマスターシークレットを復元し、該復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする第4のステップ(例えば、図8のステップS404に相当)と、格納されるデータを該生成した暗号鍵で暗号化する第5のステップ(例えば、図8のステップS405に相当)と、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、暗号鍵のシードとなるマスターシークレットを生成し、生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とする。このN個の秘密鍵をプログラム内に隠蔽する。さらに、乱数を生成し、n個の情報からマスターシークレットを復元し、復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵として、格納されるデータを生成した暗号鍵で暗号化する。したがって、n−1個までのマスターシークレットの漏洩に対して、漏洩耐性を得ることができる。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
本発明によれば、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができるという効果がある。また、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができるという効果がある。
本発明の第1の実施形態に係るストレージ装置の構成を示す図である。 本発明の第1の実施形態に係るストレージ装置の処理を示す図である。 本発明の第2の実施形態に係るストレージ装置の構成を示す図である。 本発明の第2の実施形態に係るストレージ装置の処理を示す図である。 本発明の第3の実施形態に係るストレージ装置の構成を示す図である。 本発明の第3の実施形態に係るストレージ装置の処理を示す図である。 本発明の第4の実施形態に係るストレージ装置の構成を示す図である。 本発明の第4の実施形態に係るストレージ装置の処理を示す図である。
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
<第1の実施形態>
図1および図2を用いて、本発明の第1の実施形態について説明する。
<ストレージ装置の構成>
本実施形態に係るストレージ装置は、図1に示すように、秘密鍵生成部101と、秘密鍵秘匿部102と、乱数生成部103と、暗号鍵生成部104と、データ格納部105と、暗号化部106とから構成されている。なお、各構成要素は、すべてソフトウェアで構成されている。
ここで、秘密鍵生成部101は、N個の秘密鍵を生成する。秘密鍵秘匿部102は、秘密鍵生成部101が生成したN個の秘密鍵をプログラム内に隠蔽する。乱数生成部103は、乱数を生成する。
暗号鍵生成部104は、秘密鍵生成部101が生成したN個の秘密鍵と乱数生成部103が生成した乱数とから暗号鍵を生成する。なお、暗号鍵生成部104は、暗号化処理ごとに異なる暗号鍵を生成するようにしてもよい。データ格納部105は、暗号化の対象となるデータを格納する。暗号化部106は、データ格納部105に格納されるデータを暗号鍵生成部104が生成した暗号鍵で暗号化する。
<ストレージ装置の処理>
図2を用いて、本実施形態に係るストレージ装置の処理について説明する。
まず、秘密鍵生成部101は、N個の秘密鍵を生成する(ステップS101)。秘密鍵秘匿部102は、生成したN個の秘密鍵をプログラム内に隠蔽する(ステップS102)。次に、乱数生成部103は、乱数を生成し(ステップS103)、暗号鍵生成部104がN個の秘密鍵と生成した乱数とから暗号鍵を生成する(ステップS104)。そして、データ格納部105に格納されるデータを暗号化部106が、生成された暗号鍵で暗号化する(ステップS105)。
したがって、本実施形態によれば、N個の秘密鍵を生成するため、秘密鍵がN−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
<第2の実施形態>
図3および図4を用いて、本発明の第2の実施形態について説明する。
<ストレージ装置の構成>
本実施形態に係るストレージ装置は、図3に示すように、秘密鍵生成部201と、秘密鍵秘匿部102と、乱数生成部103と、暗号鍵生成部204と、データ格納部105と、暗号化部206と、インデックス付与部207とから構成されている。なお、各構成要素は、すべてソフトウェアで構成されている。また、第1の実施形態と同様の符号を付す構成要素については、同様の機能を有するため、その詳細な説明は省略する。
ここで、秘密鍵生成部201は、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする。暗号鍵生成部204は、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする。なお、暗号鍵生成部204は、暗号化処理ごとに異なる暗号鍵を生成するようにしてもよい。
暗号化部206は、データ格納部105に格納されるデータを暗号鍵生成部204が生成した暗号鍵で暗号化する。インデックス付与部207は、使用した乱数と使用した秘密鍵のインデックス情報をデータに付与する。
<ストレージ装置の処理>
図4を用いて、本実施形態に係るストレージ装置の処理について説明する。
まず、秘密鍵生成部101は、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする(ステップS201)。秘密鍵秘匿部102は、生成したN個の秘密鍵をプログラム内に隠蔽する(ステップS202)。
次に、乱数生成部103は、乱数を生成し(ステップS203)、暗号鍵生成部204がN個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする(ステップS204)。そして、データ格納部105に格納されるデータを暗号化部206が、生成された暗号鍵で暗号化する(ステップS205)。
したがって、本実施形態によれば、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とするため、秘密鍵がn−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
<第3の実施形態>
図5および図6を用いて、本発明の第3の実施形態について説明する。
<ストレージ装置の構成>
本実施形態に係るストレージ装置は、図5に示すように、秘密鍵生成部201と、秘密鍵秘匿部102と、乱数生成部103と、暗号鍵生成部304と、データ格納部105と、暗号化部306と、インデックス付与部207とから構成されている。なお、各構成要素は、すべてソフトウェアで構成されている。また、第1の実施形態または第2の実施形態と同様の符号を付す構成要素については、同様の機能を有するため、その詳細な説明は省略する。
ここで、暗号鍵生成部304は、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする。なお、暗号鍵生成部204は、暗号化処理ごとに異なる暗号鍵を生成するようにしてもよい。暗号化部206は、データ格納部105に格納されるデータを暗号鍵生成部204が生成した暗号鍵で暗号化する。
<ストレージ装置の処理>
図6を用いて、本実施形態に係るストレージ装置の処理について説明する。
まず、秘密鍵生成部101は、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とする(ステップS201)。秘密鍵秘匿部102は、生成したN個の秘密鍵をプログラム内に隠蔽する(ステップS202)。
次に、乱数生成部103は、乱数を生成し(ステップS203)、暗号鍵生成部204がN個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする(ステップS204)。そして、データ格納部105に格納されるデータを暗号化部206が、生成された暗号鍵で暗号化する(ステップS205)。
したがって、本実施形態によれば、N個の秘密鍵のうちn個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とするため、秘密鍵がn−1個漏洩しても耐性を有する。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
<第4の実施形態>
図7および図8を用いて、本発明の第4の実施形態について説明する。
<ストレージ装置の構成>
本実施形態に係るストレージ装置は、図7に示すように、秘密鍵生成部401と、秘密鍵秘匿部102と、乱数生成部103と、暗号鍵生成部404と、データ格納部105と、暗号化部406とから構成されている。なお、各構成要素は、すべてソフトウェアで構成されている。また、第1の実施形態と同様の符号を付す構成要素については、同様の機能を有するため、その詳細な説明は省略する。
ここで、秘密鍵生成部401は、暗号鍵のシードとなるマスターシークレットを生成し、生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とする。
暗号鍵生成部404は、n個の情報からマスターシークレットを復元し、復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする。なお、暗号鍵生成部404は、暗号化処理ごとに異なる暗号鍵を生成するようにしてもよい。
暗号化部406は、データ格納部105に格納されるデータを暗号鍵生成部404が生成した暗号鍵で暗号化する。
<ストレージ装置の処理>
図8を用いて、本実施形態に係るストレージ装置の処理について説明する。
まず、秘密鍵生成部401は、暗号鍵のシードとなるマスターシークレットを生成し、生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とする(ステップS401)。秘密鍵秘匿部102は、生成したN個の秘密鍵をプログラム内に隠蔽する(ステップS402)。
次に、乱数生成部103は、乱数を生成し(ステップS403)、暗号鍵生成部404は、n個の情報からマスターシークレットを復元し、復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする(ステップS404)。そして、データ格納部105に格納されるデータを暗号化部406が、生成された暗号鍵で暗号化する(ステップS405)。
したがって、本実施形態によれば、n−1個までのマスターシークレットの漏洩に対して、漏洩耐性を得ることができる。また、耐タンパデバイスやOSの特殊な領域を用いることなく、暗号学的に安全、かつ効率的なストレージ装置を構成することができる。さらに、ソフトウェアのみで構成されるため、オープンプラットフォームにおいても十分なセキュリティを確保することができる。
なお、ストレージ装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストレージ装置に読み込ませ、実行することによって本発明のストレージ装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
101;秘密鍵生成部
102;秘密鍵秘匿部
103;乱数生成部
104;暗号鍵生成部
105;データ格納部
106;暗号化部
201;秘密鍵生成部
204;暗号鍵生成部
206;暗号化部
207;インデックス付与部
304;暗号鍵生成部
306;暗号化部
401;秘密鍵生成部
404;暗号鍵生成部
406;暗号化部

Claims (14)

  1. ソフトウェアプログラムのみで構成されるストレージ装置であって、
    N個の秘密鍵を生成する秘密鍵生成手段と、
    該N個の秘密鍵を前記ソフトウェアプログラム内に隠蔽する隠蔽手段と、
    乱数を生成する乱数生成手段と、
    前記N個の秘密鍵と生成した乱数とから暗号鍵を生成する暗号鍵生成手段と、
    格納されるデータを該生成した暗号鍵で暗号化する暗号化手段と、
    を備えたことを特徴とするストレージ装置。
  2. 前記秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とし、前記暗号鍵生成手段が前記N個の秘密鍵のうちn(N≧n)個の秘
    密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とすることを特徴とする請求項1に記載のストレージ装置。
  3. 前記暗号鍵生成手段が、前記暗号鍵の出力に使用した乱数と使用した秘密鍵のインデックス情報をデータに付与するインデックス情報付与手段を備えたことを特徴とする請求項2に記載のストレージ装置。
  4. 前記秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、これを秘密鍵とし、前記暗号鍵生成手段が前記N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成することを特徴とする請求項1に記載のストレージ装置。
  5. 前記秘密鍵生成手段が、暗号鍵のシードとなるマスターシークレットを生成し、該生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とし、前記暗号鍵生成手段が前記n個の情報からマスターシークレットを復元し、該復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とすることを特徴とする請求項1に記載のストレージ装置。
  6. 前記暗号鍵生成手段が、暗号化処理ごとに異なる暗号鍵を生成することを特徴とする請求項1から請求項5のいずれかに記載のストレージ装置。
  7. ソフトウェアプログラムのみで構成され、秘密鍵生成手段と、隠蔽手段と、乱数生成手段と、暗号鍵生成手段と、暗号化手段とを備えたストレージ装置のストレージ方法であって、
    前記秘密鍵生成手段が、N個の秘密鍵を生成する第1のステップと、
    前記隠蔽手段が、該N個の秘密鍵を前記ソフトウェアプログラム内に隠蔽する第2のステップと、
    前記乱数生成手段が、乱数を生成する第3のステップと、
    前記暗号鍵生成手段が、前記N個の秘密鍵と生成した乱数とから暗号鍵を生成する第4のステップと、
    前記暗号化手段が、格納されるデータを該生成した暗号鍵で暗号化する第5のステップと、
    を備えたことを特徴とするストレージ方法。
  8. 前記第1のステップにおいて、前記秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、前記N個の秘密鍵を生成し、
    前記第4のステップにおいて、前記暗号鍵生成手段が、前記N個の秘密鍵のうちn(N≧n)個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とする
    することを特徴とする請求項7に記載のストレージ方法。
  9. 前記第1のステップにおいて、前記秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、前記N個の秘密鍵を生成し、
    前記第4のステップにおいて、前記暗号鍵生成手段が、前記N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成することを特徴とする請求項7に記載のストレージ方法。
  10. 前記第1のステップにおいて、前記秘密鍵生成手段が、暗号鍵のシードとなるマスターシークレットを生成し、該生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とし、
    前記第4のステップにおいて、前記暗号鍵生成手段が、前記n個の情報からマスターシークレットを復元し、該復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とすることを特徴とする請求項7に記載のストレージ方法。
  11. ソフトウェアプログラムのみで構成され、秘密鍵生成手段と、隠蔽手段と、乱数生成手段と、暗号鍵生成手段と、暗号化手段とを備えたストレージ装置のストレージ方法をコンピュータに実行させるためのプログラムであって、
    前記秘密鍵生成手段が、N個の秘密鍵を生成する第1のステップと、
    前記隠蔽手段が、該N個の秘密鍵を前記ソフトウェアプログラム内に隠蔽する第2のステップと、
    前記乱数生成手段が、乱数を生成する第3のステップと、
    前記暗号鍵生成手段が、前記N個の秘密鍵と生成した乱数とから暗号鍵を生成する第4のステップと、
    前記暗号化手段が、格納されるデータを該生成した暗号鍵で暗号化する第5のステップと、をコンピュータに実行させるためのプログラム。
  12. 前記第1のステップにおいて、前記秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、前記N個の秘密鍵を生成し、
    前記第4のステップにおいて、前記暗号鍵生成手段が、前記N個の秘密鍵のうちn(N≧n)個の秘密鍵と生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とすることを特徴とする請求項11に記載のプログラム。
  13. 前記第1のステップにおいて、前記秘密鍵生成手段が、鍵長Lと鍵の個数Nとを入力し、長さLの乱数をN個生成して、前記N個の秘密鍵を生成し、
    前記第4のステップにおいて、前記暗号鍵生成手段が、前記N個の秘密鍵のそれぞれに生成した乱数を乗じることにより、暗号鍵を生成することを特徴とする請求項11に記載のプログラム。
  14. 前記第1のステップにおいて、前記秘密鍵生成手段が、暗号鍵のシードとなるマスターシークレットを生成し、該生成したマスターシークレットをn(N>n)個の情報が集まれば、マスターシークレットを復元できる閾値秘密分散法によりN個に分割し、これを秘密鍵とし、
    前記第4のステップにおいて、前記暗号鍵生成手段が、前記n個の情報からマスターシークレットを復元し、該復元したマスターシークレットと生成した乱数とをハッシュ関数に入力して、その出力を暗号鍵とすることを特徴とする請求項11に記載のプログラム。

JP2011006824A 2011-01-17 2011-01-17 ストレージ装置、ストレージ方法およびプログラム Active JP5713693B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011006824A JP5713693B2 (ja) 2011-01-17 2011-01-17 ストレージ装置、ストレージ方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011006824A JP5713693B2 (ja) 2011-01-17 2011-01-17 ストレージ装置、ストレージ方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2012151546A JP2012151546A (ja) 2012-08-09
JP5713693B2 true JP5713693B2 (ja) 2015-05-07

Family

ID=46793412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011006824A Active JP5713693B2 (ja) 2011-01-17 2011-01-17 ストレージ装置、ストレージ方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5713693B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3007225B2 (ja) * 1992-05-08 2000-02-07 三菱電機株式会社 暗号化された制御信号の通信システム
JP2003333030A (ja) * 2002-05-16 2003-11-21 Nec Corp タイムシフト出力方法及びタイムシフト出力装置
JP2007298847A (ja) * 2006-05-02 2007-11-15 Kddi Corp プログラム内データの保護装置、保護方法およびプログラム
JP2008103936A (ja) * 2006-10-18 2008-05-01 Toshiba Corp 秘密情報管理装置および秘密情報管理システム
JP2008109276A (ja) * 2006-10-24 2008-05-08 Toshiba Corp 携帯可能電子装置
JP2009181385A (ja) * 2008-01-31 2009-08-13 Hitachi Ltd ストレージシステム、その暗号鍵管理方法及び暗号鍵管理プログラム
JP2009284231A (ja) * 2008-05-22 2009-12-03 Panasonic Corp 鍵生成装置、鍵生成方法及び鍵生成プログラム、並びに、電子機器
JP2010141567A (ja) * 2008-12-11 2010-06-24 Toshiba Corp 通信装置、通信方法及びプログラム
JP5347597B2 (ja) * 2009-03-13 2013-11-20 カシオ計算機株式会社 秘密情報管理システム、秘密情報管理装置及びプログラム

Also Published As

Publication number Publication date
JP2012151546A (ja) 2012-08-09

Similar Documents

Publication Publication Date Title
Bogdanov et al. Towards practical whitebox cryptography: optimizing efficiency and space hardness
EP2924677B1 (en) Splitting s-boxes in a white-box implementation to resist attacks
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
EP3477889B1 (en) Using white-box in a leakage-resilient primitive
Kumar et al. TPA auditing to enhance the privacy and security in cloud systems
Cordova et al. Comparative analysis on the performance of selected security algorithms in cloud computing
JP2010011109A (ja) 認証ユニット、認証端末、認証システム、認証方法およびプログラム
EP2940917B1 (en) Behavioral fingerprint in a white-box implementation
JP5713693B2 (ja) ストレージ装置、ストレージ方法およびプログラム
Tu et al. Protecting secret documents via a sharing and hiding scheme
Rajalakshmi et al. Comparative Study of Cryptographic Algorithms in cloud storage data security
Al-Khanjari et al. Developing Secured Interoperable Cloud Computing Services
Aghili Improving security using blow fish algorithm on deduplication cloud storage
JP5990110B2 (ja) 暗号化状態確認システム、暗号化状態確認方法およびプログラム
Jha et al. Some proofs of joint distributions of keystream biases in RC4
Ezadeen et al. Survey of Blowfish Algorithm for Cloud
Singh et al. Securing RJSON data between Middleware and Smart phones through Java Script based Cryptographic Algorithms
JP6181573B2 (ja) データ共有システム、データ共有方法およびプログラム
JP2010056848A (ja) 暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体
Shi et al. On security of a white-box implementation of SHARK
WO2023199379A1 (ja) 情報処理装置、方法及びプログラム
JP2009037095A (ja) データスクランブル装置、データデスクランブル装置、データスクランブル方法、データデスクランブル方法およびプログラム
Nithisha et al. An effective mechanism for secret sharing in Distributed Blockchain Systems
Pitropakis et al. Towards an augmented authenticator in the Cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150310

R150 Certificate of patent or registration of utility model

Ref document number: 5713693

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150