タグ付けされた質問 「hash」

任意のサイズのデータ​​を固定サイズの整数にマップする数学関数。ハッシュテーブルのキーとしてよく使用されるか、データの整合性を確保するのに役立ちます

4
ハッシュ関数でmodとして素数を使用するのが最適なのはなぜですか?
1〜100のキー値のリストがあり、それらを11個のバケットの配列に整理したい場合、mod関数を作成するように教えられました。 H=kmod 11H=kmod 11 H = k \bmod \ 11 これで、すべての値が9行に次々と配置されます。たとえば、最初のバケットには0、11、22 0,11,22…0,11,22…0, 11, 22 \dotsます。2番目では1,12,23…1,12,23…1, 12, 23 \dotsなどがあります。 悪い子になって、ハッシュ関数として非プライムを使用することにしたとしましょう-テイク12.ハッシュ関数の使用 H=kmod 12H=kmod 12 H = k \bmod \ 12 値をハッシュテーブルにつながる0,12,24…0,12,24…0, 12, 24 \dots 最初のバケットで、1,13,25…1,13,25…1, 13, 25 \dots等秒でのように。 本質的には同じものです。衝突を減らさなかったし、素数ハッシュコードを使用して物事をうまく分散させることもしなかったので、それがどのように有益であるかわかりません。

5
アンチブルームフィルターはありますか?
A ブルームフィルタは、効率的にさまざまな値がすでに処理中に遭遇したかどうかを追跡することが可能となります。データアイテムが多数ある場合、ブルームフィルターを使用すると、ハッシュテーブルのメモリを大幅に節約できます。ハッシュテーブルと共有するブルームフィルターの主な機能は、アイテムが新しいものではない場合は常に「not new」と表示することですが、アイテムに「not new」のフラグが立てられる確率はゼロではありません「新しい場合でも。 逆の動作をする「アンチブルームフィルター」はありますか? 言い換えれば、アイテムが新しい場合は「新しい」と言う効率的なデータ構造がありますが、新しいものではないアイテムについては「新しい」と言うこともありますか? 以前に表示されたすべてのアイテムを(たとえば、並べ替えられたリンクリストに)保持することは最初の要件を満たしますが、大量のメモリを使用する場合があります。緩和された2番目の要件を考えると、それも不要であることを願っています。 より正式な治療、書き込み好む人のためにb(x)=1b(バツ)=1b(x) = 1ブルームフィルタを考えればxバツx新しいもので、b(x)=0b(バツ)=0b(x) = 0それ以外の場合は、書き込みn(x)=1n(バツ)=1n(x) = 1ならばxバツx本当に新しいとされn(x)=0n(バツ)=0n(x) = 0それ以外の場合。 次に、Pr[b(x)=0|n(x)=0]=1Pr[b(バツ)=0|n(バツ)=0]=1Pr[b(x) = 0 | n(x) = 0] = 1 ; Pr[b(x)=0|n(x)=1]=αPr[b(バツ)=0|n(バツ)=1]=αPr[b(x) = 0 | n(x) = 1] = \alpha ; Pr[b(x)=1|n(x)=0]=0Pr[b(バツ)=1|n(バツ)=0]=0Pr[b(x) = 1 | n(x) = 0] = 0; Pr[b(x)=1|n(x)=1]=1−αPr[b(バツ)=1|n(バツ)=1]=1−αPr[b(x) = 1 | n(x) …

2
量子コンピューティングを使用して、現代のハッシュを簡単に破ることができるでしょうか?
簡単に言えば、たとえば20キュビットのパワーを備えた量子コンピューティングデバイスを構築する場合、そのようなコンピューターを使用して、あらゆる種類の最新のハッシュアルゴリズムを役に立たないものにできるでしょうか。 従来のコンピューティングアプリケーションで量子コンピューティングのパワーを活用することさえ可能でしょうか?

2
入力を広げる機能
次の特性を持つnビット数からnビット数までの関数があるかどうかを知りたいfff: fffは全単射で必要があります 両方の及び計算可能かなり高速であるべきですffff−1f−1f^{-1} fffは、入力と有意な相関関係のない数値を返す必要があります。 その理由は次のとおりです。 データを操作するプログラムを書きたい。データの一部の情報は、検索キーがアルファベットの記号であるバイナリ検索ツリーに保存されます。時間とともに、アルファベットにさらに記号を追加します。新しいシンボルは、利用可能な次の無料番号を取得するだけです。したがって、ツリーは常に小さなキーに対して小さなバイアスを持ち、必要以上にリバランスが発生します。 私のアイデアは、シンボル番号を範囲全体に広く広がるようにマングルすることです。シンボル番号は、一度だけ発生する入出力中にのみ重要であるため、このような関数を適用することはそれほど高価ではありません。fff[0,264−1][0,264−1][0,2^{64}-1] Xorshift乱数ジェネレーターの1つの反復について考えましたが、理論的には可能であるはずですが、元に戻す方法は実際にはわかりません。 誰もがそのような機能を知っていますか? これはいいアイデアですか?

3
(衝突のない)ハッシュテーブル検索は本当にO(1)なのですか?
免責事項:私はこことStackoverflowで同様の聞こえる質問があることを知っています。しかし、それらはすべて衝突についてであり、それは私が求めているものではありません。 私の質問は次のとおりです。なぜそもそも衝突のないルックアップなのO(1)ですか? 私がこのハッシュテーブルを持っているとしましょう: Hash Content ------------- ghdjg Data1 hgdzs Data2 eruit Data3 xcnvb Data4 mkwer Data5 rtzww Data6 今、私はkハッシュ関数h(k)が与えるキーを探していますh(k) = mkwer。しかし、ルックアップはハッシュmkwerが5の位置にあることをどのように「知っている」のでしょうか。それO(n)を見つけるためにすべてのキーをスクロールする必要がないのはなぜですか?ハッシュは、実際のハードウェアアドレスではあり得ません。データを移動する能力を失うからです。そして、私の知る限りでは、ハッシュテーブルはハッシュでソートされていません(そうであったとしても、検索にも時間がかかりますO(log n))? ハッシュを知ることは、テーブル内の正しい場所を見つけるのにどのように役立ちますか?

2
記憶に残るIPv6アドレスの弱いハッシュ関数
IPv6の形式のIPv6アドレスは、862A:7373:3386:BF1F:8D77:D3D2:220F:D7E0IPv4の4オクテットよりも記憶や転記がはるかに困難です。 これを緩和する試みが 行われ、IPv6アドレスがより記憶に残るものになっています。 「これは比較的無害であり、支払う価値がないように曲げられている場合、これは比較的無害であり、見つけやすい」というフレーズがターゲットIPv6アドレスにハッシュされることを見つけるために逆にできる意図的に弱いハッシュ関数はありますか?もちろん、ハッシュには衝突する入力が多数あり、この例のフレーズのように、記憶に残る可能性のある文が自動的に提供される可能性があります。 私は2つの部分があると思います:最初に、両方の方向に良い分布を持つ弱いハッシュ。2つ目は、多くの衝突(短い、指定された言語の単語で構成され、場合によっては簡略化された文法に従う)から覚えやすいフレーズを選択するためのアルゴリズムです。 ハッシュ関数は弱くする必要がありますが、努力がまだ重要であることは間違いありません。ただし、フレーズがわかると、ターゲットアドレスへのハッシュの計算は非常に高速になります。 編集 私は、πのいくつかの数字を記憶するために、この関連するアイデア、Piphilologyを見つけました。 量子力学を含む激しい講義の後、もちろんアルコール飲料をどうやって望むか!

1
一方向プロパティを満たさないハッシュ関数への攻撃
私はコンピュータセキュリティコースを改訂しており、過去の質問の1つに悩まされています。はい、これ: アリス(AAA)は、ボブ(B)に共有シークレットS a bを使用してショートメッセージを送信し、メッセージが彼女からのものであることを認証したいと考えています。彼女は2つの部分を含む単一のメッセージを送信することを提案します: A → B :MMMBBBSabSabS_{ab}Hはハッシュ関数であり ∥意味連結。A→B:M,h(M∥Sab)A→B:M,h(M∥Sab) A \to B: \quad M, h(M \mathbin\parallel S_{ab})hhh∥∥\parallel ボブがメッセージがアリスから来たことを確認するために何をしているのか、なぜ(特性を除いて)ボブがこれを信じるのかを注意深く説明してください。hhh が一方向のプロパティを満たさず、事前イメージを生成できると仮定します。攻撃者ができることとその方法を説明します。hhh プリイメージの生成に比較的時間がかかる場合は、を変更せずにプロトコルを改善するための簡単な対策を提案します。hhh 私は最初のものを知っていると思います。ボブは受信したメッセージのハッシュを共有キーと一緒に取得し、そのハッシュをアリスから受信したハッシュと比較する必要があります。両者が一致する場合は、アリスがメッセージを送信したことを証明する必要があります。 2つ目の質問についてはわかりません。2番目の問題の答えは、攻撃者がハッシュを与えられた元のメッセージを簡単に取得できるということですか?それがどのように行われるかはわかりません。

2
高速ハッシュ:ファイルの変更を識別するためのさまざまな手法の組み合わせ?
ファイルが同じかどうかをすばやく検出する方法を作成したいと思います。ほぼ100%の確実性のために、既存のハッシュアルゴリズム(SHA256など)を使用します。ただし、ファイルは数GBの巨大なビデオファイルであることが想定されているため、SHA256ハッシュの計算には、特にネットワーク上で時間がかかる場合があります。 したがって、他のさまざまな手法を組み合わせたいと思います。 ファイルサイズ:ファイルサイズが変更された場合、コンテンツは変更されました(確か) 頭/尾ハッシュ ランダムハッシュ 後者の2つは私の質問の一部です。 私の推測では、ヘッダーには次のようなものがあります: フレームレート(ビデオなど) 解像度(ビデオ、画像など) (ファイル)長さ(フレーム、ピクセルなど) 最終変更日(例:動画ではなくWord文書) 尾をチェックすることを検討する理由は次のとおりです。 MP3にはタグ情報があります EXIFが正しい場合は、最後にカスタムデータを追加します ランダムハッシュは、ファイル内のランダムな位置にある特定の長さ(例:64 kB)の126の領域を選択し、それらのハッシュを作成します。もちろん、後で比較するためにオフセットを覚えています。全体として、ハッシュには(1 + 126 + 1)* 64 kBのデータを使用するので、ハッシュを取得するには、数GBではなく8 MBを読み取るだけで済みます。 たぶん今は数学の問題でしょうが、ファイルサイズ、ヘッド、テール、ランダムデータの組み合わせを使用して変更を検出し、このクイックハッシュサムを生成する可能性はどのくらいありますか? ファイルは常に正当なファイルであると思います。シングルバイトを操作するメリットはありません。ユーザーは通常のビデオ編集ツールを使用してファイルを変更します。 更新:私はCrypto.StackExchangeからのこの回答を受け入れませんでした。私の提案は暗号化されておらず、安全であることを意図していないことに同意します。また、ファイルのCRC処理が高速であることにも同意しますが、私の場合は本当にハッシュが必要です。その理由を説明します。 私のアプリケーションでは、ブックマークをビデオに保存することが期待されています。私のデータベースは、ビデオハッシュとブックマークを保存することが期待されています。 ユーザーがファイルを移動または名前変更することがあります。私のプログラムは、ファイルが存在しないことを認識しますが、データベースからブックマークを削除しません。代わりに、同じビデオが(誤って)再度再生されたときに、(おそらく)同じファイルであることを認識したいと思います。 ユーザーは、ネットワークドライブ(NAS)にファイルを保存し、ビデオをストリーミングする必要があります。それらはダムストレージです。サーバーコンポーネントをインストールできません。そして、それらはかなり遅いかもしれないので、私は本当に完全なハッシュを望んでいません。3 GBファイルのフルハッシュの計算には、ハッシュアルゴリズムの速度に関係なく、10 MB /秒で少なくとも5分かかります。 ユーザーがファイルを編集した場合、どういうわけかハッシュが一致しないことを期待します。そうしないと、間違ったブックマークが表示されてしまうからです。 正しいブックマークを取得できる可能性は約80%です。ハッシュピースをいくつまとめて、ファイルのどこに配置すればよいですか?

1
連続ハッシュはありますか?
質問: そのジャムの情報トポロジー(暗号学的に安全な)ハッシュが存在することができる?{0,1}∗{0,1}∗\{0,1\}^{*} 私たちは、与えられた効率的に計算可能な近さ述語追加できると時間K(Y )(またはY自体を)あれば教えてくれるyがある非常に近いX(例えばレーベンシュタイン距離またはのハミング距離のxとyの未満であります固定定数c)?hk(x)hk(x)h_k(x)hk(y)hk(y)h_k(y)yyyyyyxxxxxxyyyccc バックグラウンド: 情報トポロジによって Iはポイントとトポロジー空間を意味上Σ *と塩基と{ X Σ *:X ∈ Σ * }。Σ∗Σ∗\Sigma^*Σ∗Σ∗\Sigma^*{xΣ∗:x∈Σ∗}{xΣ∗:x∈Σ∗}\{x\Sigma^* : x \in \Sigma^* \} トポロジについて考える良い方法は、オープンセットを肯定 / 検証可能なポイントのプロパティと見なすことです(つまり、trueの場合、trueであることを確認/観察できます)。これを念頭に置いて、クローズドセットは反駁可能なプロパティです。 関数は、開集合の逆画像が開いている場合は連続です。我々の場合、この手段は、その全てについてのy ∈ Σ *、あるI ⊆ Σ *ように F - 1(Y 、Σ *)= ⋃ X ∈ I X Σ *。f:Σ∗→Σ∗f:Σ∗→Σ∗f:\Sigma^* \to \Sigma^*y∈Σ∗y∈Σ∗y \in \Sigma^*I⊆Σ∗I⊆Σ∗I \subseteq \Sigma^*f−1(yΣ∗)=⋃x∈IxΣ∗.f−1(yΣ∗)=⋃x∈IxΣ∗.f^{-1}(y\Sigma^*) = \bigcup_{x\in …

2
ハッシュテーブルのサイズ変更時にサイズ変更のカスケードを回避するにはどうすればよいですか?
個別のチェーンや線形/二次プローブなどの従来の衝突解決方法では、キーのプローブシーケンスを任意に長くすることができます。テーブルの負荷係数を低く維持することで、キーの確率を短くして、高い確率で維持できます。したがって、再ハッシュ中の衝突は負荷率に影響を与えないため、問題にはなりません。 ただし、カッコウハッシュ(および最悪の場合のO(1)ルックアップ時間を提供する他の方法)では、キーのプローブシーケンスが長くなりすぎると、サイズ変更が発生する必要があります。しかし、リハッシュ中にキーがシャッフルされると、1つのキーに対して長すぎるプローブシーケンスが作成され、別のサイズ変更が必要になる場合があります。確率は小さいですが、特に優れたハッシュ関数を使用すると、確率は低くなります。 再ハッシュ中に完全なハッシュ関数を明示的に生成するのではなく、この方法でサイズ変更をカスケードできないようにする方法はありますか?おそらく特定の衝突解決スキームに固有ですか?これまでに出会った文献は、問題を完全に覆い隠しているようです。ハッシュテーブルを成長させるだけでなく、縮小することにも興味があることを覚えておいてください。

1
作業証明は確率論的にチェック可能ですか?
私はしばらく潜んでいます。これは私の最初の投稿です。質問の形式や形式が適切でない場合は、申し訳ありません。この質問は、姉妹サイトからの別の質問のアイデアから生まれました。 質問 ブロックチェーンの性質上、公に同意できる多数のコインフリップが生成される可能性があります。つまり、以前のブロックのハッシュは、ネットワークによってからランダムに引き出されることに同意する場合があります。{ 0 、1 }{0,1}\{0,1\} したがって、誰かがブロックチェーンのビザンチン将軍の問題の解決策を作成しようとしましたが、作業証明はまたはでの決定問題であり、証明は、以前のブロックのハッシュをパブリックコインとして使用して確率論的にチェックされます。反転?NEXPNEXPNEXPPSPACEPSPACEPSPACE 動機 たとえば、問題の目撃者を見つけることによって、暗号通貨の作業証明を「より良く」しようとするオンラインでの議論を見てきました。 NPNPNP 問題の目撃者を見つけた証明者は、彼女が仕事をしたことを証明するために目撃者を公に発表することができます。 NPNPNP 一般的な静的な問題のプールがあった場合、たとえば地球上で最大のの都市のサブセットのと言った、ブロックを保護するために証人を発表すると、誰もが同じ証人を使用して作業を別のチェーンにアタッチでき、チェーンを固定しないでください。NPNPNPTSPsTSPsTSPsnnniii 検証が知識ゼロの証明である場合、世界(証明者は別として)は、証人が実際に何であったかを知る必要はありません。 ただし、他の人が指摘しているように、暗号通貨は信頼できないピアツーピアシステムであるため、そのような証人のゼロ知識を維持しようとすることは、信頼できないピアツーピアシステムでは困難な場合があります。 たとえば、証明者がいずれかの解決策を見つけた場合 TSPTSPTSP 静的プールからの問題、および ZKPZKPZKP証拠として、価格が正しければ、彼女は依然として証人を詐欺師に売ろうとするかもしれません。その詐欺師は、別の詐欺チェーンに作品を添付する可能性があります。 の証人 NPNPNP 問題は、証明の目的の1つであるブロックチェーンを保護しない可能性があります。 同様の提案 の静的プールから問題空間を変換する NPNPNP問題の動的プールへの問題が役立つ可能性があり、私は作業証明としてサブグラフ同型問題を動的に生成するという提案を見てきました。しかし、私が知る限り、上記の提案は証人を決定論的に検証します。 また、PCPを使用してアウトソーシングされた計算を検証しようとする試みも見ましたが、アウトソーシングされた作業が暗号通貨ブロックチェーンに接続されているとは思いません。たぶんその仕事は近づいています。 歴史 で[GMR85] 、著者は、対話型証明系を紹介します。で[GS86] 、著者らは、グラフnonisomorphismのパブリックコインプロトコルを示します。で[Sha91] 、著者は証明していますIP=PSPACEIP=PSPACEIP=PSPACE。 で[BFL91] 、筆者はあることを証明しますMIP=NEXPMIP=NEXPMIP=NEXP。で[BFLS91] 、作者はに正式な証明を変換するこれらのアイデアを拡張する構想透明な証明対数多項式時間でチェック可能。 で[AS92] 、著者は、数学的な文だけ読んで対数多項式時間で確認することができることを意味しているとして、上記の作品を特徴づけpoly(logn)poly(logん)poly(logn) ペアノ算術の定理の証明のビット、サイズの証明 nんn (それらはビットのサブ対数の数に減少し、同時に O(1)O(1)O(1) 神聖なPCP定理のクエリ)。 たとえば、[AS92]から引用して、彼らはステートメントを想定しています: {(T,1n):TisatheoremofPeanoarithmeticwithaproofofsize≤n}{(T、1ん):T私satheoreメートルofPeaんoar私thメートルet私cw私thaproofofs私ze≤ん}\{(T,1^n):T\:is\:a\:theorem\:of\:Peano\:arithmetic\:with\:a\:proof\:of\:size\:\leq n\} 言語として NPNPNP、ビットの対数以下の数で確率論的にチェックできる証人。 の間の簡単な関係を見つけることは決定できないことに注意してください |T||T||T|、定理の長さが証明され、 |π|=n|π|=ん|\pi|=n、証明のサイズ。単純な証明可能なステートメントには長い証明があるか、長い証明可能なステートメントには短い証明がある場合があります。 つまり、不完全性定理により、 …

3
1対1の暗号で安全なビットシャッフル
入力項目(Nバイト)を指定して、これを出力(まだNバイト)にマップする関数を探しています。関数は以下の性質を持つ必要があります。 すべての入力が一部の出力にマップされ、2つの入力が同じ出力にマップされないように、1対1にする必要があります。 出力要素が与えられた場合、たとえマッピングが完全にわかっていても、その出力につながる入力を推測するのは難しいはずです。 そのような機能はありますか?詳細はどこで確認できますか?

2
ブルームフィルターと完全なハッシュ
A ブルームフィルタは、所与のセットのテストメンバーシップにハッシュ関数を使用して項目が指定された位置にないの存在するかどうかをチェックすることにより、。SSS ハッシュの衝突の影響を緩和するために、複数の関数が使用され、ユニバーサルハッシュを使用する場合の確率的限界が生成されます。 要素あたり10ビットを使用して、「妥当な」エラー率を実現できます。 セット完全なハッシュ関数を 直接構築でき、最後の要素がに存在しない場合、要素ごとに1ビットのみを使用して完全に回復できます。S+∞S+∞S + \inftySSS この推論が間違っている根本的な理由は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.