シャミヌルの秘密共有蚈画

銀行の金庫を保護する必芁があるシナリオを考えおみたしょう。 鍵がなければ絶察に難攻䞍萜だず考えられおおり、仕事の初日に鍵が枡されたす。 目暙は、キヌを安党に保管するこずです。

必芁に応じおストレヌゞにアクセスできるように、キヌを垞に持ち歩くこずにしたずしたす。 ただし、ストレヌゞを開くたびに物理的な存圚が必芁になるため、このような゜リュヌションは実際にはうたく拡匵できないこずがすぐにわかりたす。 玄束された䌑暇はどうなりたすか さらに、質問はさらに恐ろしいものです。唯䞀の鍵を玛倱した堎合はどうなりたすか?

あなたは䌑暇を念頭に眮いお、キヌのコピヌを䜜成し、それを別の埓業員に蚗すこずにしたした。 ただし、これも理想的ではないこずは理解されおいたす。 鍵の数が XNUMX 倍になれば、鍵の盗難の可胜性も XNUMX 倍になりたす。

必死になっお、あなたは耇補を砎棄し、元のキヌを半分に分割するこずにしたした。 ここで、鍵を集めお金庫を開けるには、鍵の砎片を持っおいる XNUMX 人の信頌できる人が物理的にその堎に立ち䌚わなければならないず考えるかもしれたせん。 これは、泥棒は XNUMX ぀の鍵を盗む必芁があるこずを意味し、これは XNUMX ぀の鍵を盗むよりも XNUMX 倍困難です。 ただし、誰かが半分のキヌを玛倱した堎合、完党なキヌを回埩するこずはできないため、このスキヌムは XNUMX ぀のキヌよりも優れおいるわけではないこずがすぐにわかりたす。

この問題は䞀連の远加のキヌずロックで解決できたすが、このアプロヌチではすぐに次のこずが必芁になりたす。 ЌМПгП 鍵ず錠前。 あなたは、セキュリティが XNUMX 人の担圓者に完党に䟝存しないようにキヌを共有するのが理想的な蚭蚈であるず刀断したす。 たた、XNUMX ぀のフラグメントが倱われた堎合 (たたは人が䌑暇に入った堎合) に、キヌ党䜓が機胜し続けるように、フラグメントの数に䜕らかのしきい倀が必芁であるず結論付けおいたす。

秘密を共有する方法

このタむプの鍵管理スキヌムは、1979 幎にアディ・シャミヌルが著曞を出版したずきに考えられたした。 「秘密を共有する方法」。 この蚘事では、いわゆる シャミヌルの秘密共有蚈画 秘密の倀 (暗号キヌなど) を効率的に分割するためのしきい倀スキヌム。 シャミヌルの秘密共有蚈画 郚品。 そしお、少なくずもそのずきだけ、 シャミヌルの秘密共有蚈画 の シャミヌルの秘密共有蚈画 パヌツが組み立おられおいるので、簡単にシヌクレットを埩元できたす シャミヌルの秘密共有蚈画.

セキュリティの芳点から芋るず、このスキヌムの重芁な特性は、少なくずも次の知識がない限り、攻撃者は絶察に䜕も知らないはずであるずいうこずです。 シャミヌルの秘密共有蚈画 郚品。 存圚感さえも シャミヌルの秘密共有蚈画 郚分には情報を提䟛しないでください。 このプロパティを セマンティックセキュリティ.

倚項匏補間

シャミア閟倀スキヌム シャミヌルの秘密共有蚈画 コンセプトに基づいお構築された 倚項匏補間。 この抂念に慣れおいない堎合でも、実際には非垞に簡単です。 実際、グラフ䞊に点を描いおそれを線や曲線で結んだこずがあるなら、すでにそれを䜿甚しおいるこずになりたす。

シャミヌルの秘密共有蚈画
2 ぀の点を介しお、XNUMX 次の倚項匏を無限に描くこずができたす。その䞭から XNUMX ぀だけを遞択するには、XNUMX 番目の点が必芁です。 図 りィキペディア

次数 XNUMX の倚項匏を考えおみたしょう。 シャミヌルの秘密共有蚈画。 この関数をグラフにプロットしたい堎合、ポむントは䜕個必芁ですか? これは盎線を圢成する䞀次関数であるため、少なくずも XNUMX ぀の点が必芁であるこずがわかっおいたす。 次に、次数 XNUMX の倚項匏関数を考えたす。 シャミヌルの秘密共有蚈画。 これは二次関数であるため、グラフをプロットするには少なくずも XNUMX ぀の点が必芁です。 XNUMX 次の倚項匏はどうでしょうか? 少なくずもXNUMX点。 などなど。

このプロパティの本圓に玠晎らしい点は、倚項匏関数の次数を考慮するず、少なくずも シャミヌルの秘密共有蚈画 点があれば、この倚項匏関数の远加の点を導出できたす。 これらの远加点の倖挿を「倖挿」ず呌びたす。 倚項匏補間.

秘密をでっち䞊げる

すでにお気づきかもしれたせんが、ここでシャミヌルの巧劙な蚈画が機胜したす。 私たちの秘密を話したしょう シャミヌルの秘密共有蚈画 - です シャミヌルの秘密共有蚈画。 私たちは向きを倉えるこずができたす シャミヌルの秘密共有蚈画 グラフ䞊の点たで シャミヌルの秘密共有蚈画 次数を䌎う倚項匏関数を考え出したす シャミヌルの秘密共有蚈画、この点を満たしおいたす。 それを思い出しおみたしょう シャミヌルの秘密共有蚈画 が必芁なフラグメントのしきい倀になるため、しきい倀を XNUMX ぀のフラグメントに蚭定する堎合は、次数 XNUMX の倚項匏関数を遞択する必芁がありたす。

倚項匏は次の圢匏になりたす。 シャミヌルの秘密共有蚈画どこ シャミヌルの秘密共有蚈画 О シャミヌルの秘密共有蚈画 — ランダムに遞択された正の敎数。 次数を䜿甚しお倚項匏を構築しおいるだけです シャミヌルの秘密共有蚈画, ここで、自由係数 シャミヌルの秘密共有蚈画 - これは私たちの秘密です シャミヌルの秘密共有蚈画、および埌続のそれぞれに぀いお シャミヌルの秘密共有蚈画 ランダムに遞択された正の係数が存圚したす。 元の䟋に戻っお次のように仮定するず、 シャミヌルの秘密共有蚈画、関数を取埗したす シャミヌルの秘密共有蚈画.

この時点で、接続するこずでフラグメントを生成できたす。 シャミヌルの秘密共有蚈画 䞀意の敎数 シャミヌルの秘密共有蚈画どこ シャミヌルの秘密共有蚈画 それは私たちの秘密だからです。 この䟋では、しきい倀 XNUMX で XNUMX ぀のフラグメントを分散したいため、ポむントをランダムに生成したす。 シャミヌルの秘密共有蚈画 そしお、鍵の管理者である XNUMX 人の信頌できる人物にそれぞれ XNUMX ポむントを送りたす。 私たちは人々にもそれを知らせたす シャミヌルの秘密共有蚈画、これは公開情報ずみなされ、回埩に必芁であるため シャミヌルの秘密共有蚈画.

秘密を取り戻す

倚項匏補間の抂念ず、それがシャミヌルのしきい倀スキヌムの基瀎ずなる方法に぀いおはすでに説明したした。 シャミヌルの秘密共有蚈画。 XNUMX人の管財人のうちXNUMX人が埩元を垌望する堎合 シャミヌルの秘密共有蚈画、補間するだけで枈みたす シャミヌルの秘密共有蚈画 独自のポむントを備えおいたす。 これを行うために、圌らは自分のポむントを決定できたす シャミヌルの秘密共有蚈画 次の匏を䜿甚しおラグランゞュ補間倚項匏を蚈算したす。 数孊よりもプログラミングの方がわかりやすい堎合、pi は本質的に挔算子です。 for、すべおの結果を乗算したす。シグマは次のようになりたす。 for、すべおを合蚈したす。

シャミヌルの秘密共有蚈画

シャミヌルの秘密共有蚈画

に シャミヌルの秘密共有蚈画 次のように解決しお、元の倚項匏関数を返すこずができたす。

シャミヌルの秘密共有蚈画

私たちはそれを知っおいるので、 シャミヌルの秘密共有蚈画、 回埩 シャミヌルの秘密共有蚈画 簡単に実行できたす:

シャミヌルの秘密共有蚈画

安党でない敎数挔算の䜿甚

シャミヌルの基本的なアむデアをうたく​​適甚したしたが、 シャミヌルの秘密共有蚈画、これたで無芖しおきた問題が残されおいたす。 倚項匏関数は安党でない敎数挔算を䜿甚しおいたす。 攻撃者が関数のグラフ䞊で远加のポむントを取埗するたびに、他のポむントの可胜性が少なくなるこずに泚意しおください。 敎数挔算を䜿甚しお倚項匏関数の点の数を増やしおプロットするず、これを自分の目で確認できたす。 これは、私たちが定めたセキュリティ目暙に察しお逆効果です。なぜなら、攻撃者は少なくずも情報を埗るたではたったく䜕も知らないはずだからです。 シャミヌルの秘密共有蚈画 断片。

敎数挔算回路がいかに匱いかを瀺すために、攻撃者が XNUMX ぀のポむントを取埗したシナリオを考えおみたしょう。 シャミヌルの秘密共有蚈画 そしお、そのような公開情報を知っおいたす。 シャミヌルの秘密共有蚈画。 この情報から圌は掚枬できる シャミヌルの秘密共有蚈画、XNUMXに等しく、既知の倀を匏に代入したす シャミヌルの秘密共有蚈画 О シャミヌルの秘密共有蚈画.

シャミヌルの秘密共有蚈画

攻撃者はその埌、 シャミヌルの秘密共有蚈画、数えたす シャミヌルの秘密共有蚈画:

シャミヌルの秘密共有蚈画

定矩したので、 シャミヌルの秘密共有蚈画 ランダムに遞択された正の敎数ずしお、可胜な数は限られおいたす シャミヌルの秘密共有蚈画。 攻撃者はこの情報を䜿甚しお掚枬するこずができたす シャミヌルの秘密共有蚈画、5 より倧きい倀であれば䜕でもよいので、 シャミヌルの秘密共有蚈画 ネガティブ。 私たちが決定したので、これは真実であるこずがわかりたす シャミヌルの秘密共有蚈画

その埌、攻撃者は考えられる倀を蚈算できたす。 シャミヌルの秘密共有蚈画亀換 シャミヌルの秘密共有蚈画 в シャミヌルの秘密共有蚈画:

シャミヌルの秘密共有蚈画

オプションが限られおいるため、 シャミヌルの秘密共有蚈画 倀の遞択ず確認がいかに簡単であるかがわかりたす。 シャミヌルの秘密共有蚈画。 ここでの遞択肢は XNUMX ぀だけです。

安党でない敎数挔算の問題を解決する

この脆匱性を解消するために、Shamir 氏はモゞュラヌ挔算を䜿甚するこずを提案しおいたす。 シャミヌルの秘密共有蚈画 Ма シャミヌルの秘密共有蚈画どこ シャミヌルの秘密共有蚈画 О シャミヌルの秘密共有蚈画 — すべおの玠数のセット。

剰䜙挔算がどのように機胜するかを簡単に思い出しおみたしょう。 針付き時蚈はよく知られた抂念です。 圌女が䜿っおいる時蚈は、 シャミヌルの秘密共有蚈画。 短針は12時を過ぎるずすぐにXNUMX時に戻りたす。 このシステムの興味深い特性は、時蚈を芋ただけでは短針が䜕回転したかを掚枬できないこずです。 ただし、短針が XNUMX を XNUMX 回通過したこずがわかっおいれば、簡単な公匏を䜿甚しお経過時間数を完党に決定できたす。 シャミヌルの秘密共有蚈画どこ シャミヌルの秘密共有蚈画 ã¯çŽ„数ですここでは シャミヌルの秘密共有蚈画), シャミヌルの秘密共有蚈画 ã¯ä¿‚数です剰䜙なしで陀数が元の数倀に䜕倍になるか、ここでは シャミヌルの秘密共有蚈画、および シャミヌルの秘密共有蚈画 ã¯å‰°äœ™ã§ã€é€šåžžã¯ãƒ¢ã‚žãƒ¥ãƒ­æŒ”算子の呌び出しを返したす (ここでは シャミヌルの秘密共有蚈画。 これらの倀をすべお知るこずで、次の方皋匏を解くこずができたす。 シャミヌルの秘密共有蚈画, しかし、係数を芋逃しおしたうず元の倀に戻すこずはできたせん。

このスキヌムを前の䟋に適甚し、次を䜿甚するこずで、これによっおスキヌムのセキュリティがどのように向䞊するかを実蚌できたす。 シャミヌルの秘密共有蚈画。 新しい倚項匏関数 シャミヌルの秘密共有蚈画、そしお新たなポむント シャミヌルの秘密共有蚈画。 これで、キヌキヌパヌは再び倚項匏補間を䜿甚しお関数を再構築できるようになりたした。今回のみ、加算ず乗算の挔算にはモゞュロ リダクションを䌎う必芁がありたす。 シャミヌルの秘密共有蚈画 䟋えば シャミヌルの秘密共有蚈画).

この新しい䟋を䜿甚しお、攻撃者がこれらの新しいポむントのうち XNUMX ぀を孊習したず仮定したす。 シャミヌルの秘密共有蚈画、および公開情報 シャミヌルの秘密共有蚈画。 今回、攻撃者は、持っおいるすべおの情報に基づいお、次の関数を出力したす。 シャミヌルの秘密共有蚈画 ã™ã¹ãŠã®æ­£ã®æ•Žæ•°ã®é›†åˆã§ã‚り、 シャミヌルの秘密共有蚈画 は匟性係数を衚したす シャミヌルの秘密共有蚈画.

シャミヌルの秘密共有蚈画

今、攻撃者は再び発芋したした シャミヌルの秘密共有蚈画、蚈算したす シャミヌルの秘密共有蚈画:

シャミヌルの秘密共有蚈画

それから圌はもう䞀床詊みたす シャミヌルの秘密共有蚈画亀換 シャミヌルの秘密共有蚈画 в シャミヌルの秘密共有蚈画:

シャミヌルの秘密共有蚈画

今床は圌は深刻な問題を抱えおいる。 数匏の欠損倀 シャミヌルの秘密共有蚈画, シャミヌルの秘密共有蚈画 О シャミヌルの秘密共有蚈画。 これらの倉数の組み合わせは無限に存圚するため、远加の情報を取埗するこずはできたせん。

セキュリティに関する考慮事項

シャミヌルの秘密共有スキヌムが瀺唆するもの 情報理論の芳点から芋たセキュリティ。 これは、この数孊が無制限の蚈算胜力を持぀攻撃者に察しおさえも耐性があるこずを意味したす。 ただし、この回路にはただいく぀かの既知の問題が含たれおいたす。

たずえば、シャミヌルの蚈画では、 チェックすべき断片぀たり、人々は自由に停の断片を提瀺し、正しい秘密の回埩を劚害するこずができたす。 十分な情報を持぀敵察的なフラグメントキヌパヌは、倉曎するこずで別のフラグメントを生成するこずさえできたす。 シャミヌルの秘密共有蚈画 あなた自身の裁量で。 この問題は次を䜿甚しお解決されたす 怜蚌可胜な秘密共有スキヌム、フェルドマンスキヌムなど。

もう XNUMX ぀の問題は、フラグメントの長さが察応するシヌクレットの長さに等しいため、シヌクレットの長さを簡単に刀断できるこずです。 この問題は簡単な方法で解決できたす パディング 固定長たでの任意の数倀を含むシヌクレット。

最埌に、セキュリティ䞊の懞念は蚭蚈自䜓を超えお広がる可胜性があるこずに泚意するこずが重芁です。 実際の暗号アプリケヌションでは、攻撃者がアプリケヌションの実行時間、キャッシュ、クラッシュなどから有甚な情報を抜出しようずするサむドチャネル攻撃の脅嚁がしばしば存圚したす。 これが懞念される堎合は、関数や定数怜玢などの保護手段の䜿甚、メモリがディスクに保存されないようにするこず、およびこの蚘事の範囲を超えおいるその他の倚くの考慮事項を開発䞭に慎重に怜蚎する必芁がありたす。

ДеЌП

На このペヌゞ Shamir の秘密共有スキヌムのむンタラクティブなデモンストレヌションがありたす。 ラむブラリを基にしたデモンストレヌション ssss-js、それ自䜓は人気のあるプログラムの JavaScript ポヌトです。 SSSS。 倧きな倀を蚈算するこずに泚意しおください シャミヌルの秘密共有蚈画, シャミヌルの秘密共有蚈画 О シャミヌルの秘密共有蚈画 しばらく時間がかかる堎合がありたす。

出所 habr.com

コメントを远加したす