マウスの動きのランダムさを証明または反証しようとした信頼できる情報源を見つけることができませんでした。
Puttygenのソースコードをざっと見てみると、マウスの動きに基づいて秘密鍵だけを生成しているように見えることを示すことは重要かもしれません。これは、偶数セルでのマウス移動イベントの時間と奇数セルでのマウス位置で配列を埋め、その上にいくつかの魔法のシャッフル(メモリのシャッフル、フィールドのxoring)を振りかけ、いくつかのRSA/DSA/EC *キージェネレーターを呼び出します。引数としての配列。マウスの動きが優れたエントロピーソースであるという重大な証拠があるかどうかは、このようなユースケースにとって非常に重要です。これは、Linuxカーネルなどの追加ソースとして使用する場合とは異なります。これは、たとえ平凡なソースであっても、品質を向上させるだけです。
誰もこれを調べたことがないとは信じがたい。何が欠けていますか?
コンピュータセキュリティのコンテキストと関連するサンプルレートでの神経筋システムの予測不可能性について説明している研究論文はないので、希望する研究論文をリンクすることはできません。しかし、私はcan人間の動きが確率的で予測不可能である理由の少なくともいくつかを説明します。それはすべて単純な事実に要約されます。生体組織は、情報伝達のための本当に、本当にずさんな媒体です。これは 非常に長い時間 で知られており、常に計算神経科学の悩みの種となっています。生物学的ニューラルネットワークはひどいコンピューターです。
ニューロンの伝達速度は変動し、時には著しく変動します。単一のニューロン内でも、速度は可変です。さらに、連続して送信される 活動電位 (軸索を伝わる電気信号)の数は、微視的イオンチャネルが常に開く確率に依存します。さらに、筋肉には大きなジッターがあります。筋肉からの力は、スカラーの活動の増加からではなく、活性化されている 運動単位 と呼ばれる筋肉細胞の個別の束からのものです。できる限り激しく屈曲しても、モーターユニットの約30%しか起動できません。このランダムな運動単位の動員は、随意の骨格筋に典型的なぴくぴくとした振動を引き起こします。
非常にニューロンの確率的動作と筋肉細胞の確率論的活性化の組み合わせにより、タイミングがわずかに変動します。これらの遅延は人間にはほとんど知覚されませんが、コンピュータが毎秒数十億回の速度で動作しているコンピュータは、これにすぐに気付きます。神経伝達に固有のランダム遅延により、何百万ものサイクルが通過する可能性があり、これらのランダム遅延を測定して、エントロピーのソースとして使用できます。各活動電位が生成するエントロピーのビット数を正確に示す調査はありませんが、非常に保守的な推測を行うことができ、脳から筋肉、キーストロークまでのプロセス全体で、エントロピー。必要なのは、暗号的に重要な量のエントロピーを得るために数百回のキーストロークだけです。
人間の脳の確率的挙動はかなりよく記述されています here (セクション3と4を参照)。
したがって、キーストロークまたはマウスの動きからのエントロピーは、次の2つのソースから生じます。
ユニークな数のニューロンとユニークな神経回路に起因する人々の個々のバリエーション。
活動電位伝達速度、運動単位動員などの時間依存変動.
これらすべての結果、ランダムな遅延が発生します。これは、日常のタスクには関係ありませんが、時としてサブナノ秒の時間分解能さえも備えたコンピュータからは非常によく見えます。イベントの時間(マウスポインターの位置や押されたキーなどのデータだけでなく)をサンプリングすると、少なくとも名目上の量のエントロピーが含まれていると言えます。結局のところ、このすべての確率的ランダム性を考えると、ナノ秒以内に、脳から発信された信号がキーを押すのにかかる時間を推測することは不可能であることは明らかです。予測可能で、50%の精度でどれだけの時間がかかるかを推測できる場合でも、エントロピープールに追加するエントロピーが少し増えますが、100を超える必要はありません。
ただし、エントロピーの収集が誤って起こりやすいことを知っておくことが重要です。マウスの動きをサンプリングして、システム時間を時計として使用することはできません。イベントが発生したときに、サンプリングをトリガーする必要があります即時。これは、収集がカーネル内、通常は割り込みハンドラー内で発生する必要があることを意味します。そうしないと、予測可能なスケジューリング遅延が収集されたエントロピーを汚す可能性が非常に高くなります。結局のところ、ランダムキープレスイベントが発生するとすぐにバッファリングされ、予測可能な間隔でのみユーザー空間にリリースされる場合、ランダムキープレスイベントのメリットは何でしょうか。エントロピー収集は常にOS自体に任せる必要があります。
私見、概念はマウスの動きから借りたユーザーのフィンガープリンティングであり、キー生成に適用する場合、複雑さのスケールはまったく異なります。
両方を比較し始めると、マウスの動きのフィンガープリントを使用したユーザーの識別では、識別を改善するために必要なエントロピーが少なくて済み、高い誤検知が許容されます。したがって、それらのマウスの動きの指紋は、高精度をもたらします。
一方、マウス移動キージェネレータは、人の気分や環境に応じて高いエントロピーを使用しているため、誰でもどのような制御環境でも再現できるとは思えません。例えば。空腹時の人は、満腹時とは異なる方法でマウスを動かします。