並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 9 件 / 9件

新着順 人気順

ハッシュ関数の検索結果1 - 9 件 / 9件

  • Rustで有名アルゴリズムに挑戦(25) 現代セキュリティを支えるハッシュ関数SHA-256をRustで実装してみよう

    パスワードの保存や、データの改ざん検知など、現代のセキュリティに欠かせないのが、ハッシュ関数です。今回は、実際にRustでSHA-256を実装して、ハッシュ関数に関する理解を深めてましょう。 RustでSHA-256を実装してみよう ハッシュ関数とSHA-256とは ハッシュ関数とは、入力データを一定の手順で変換し、固定長のハッシュ値と呼ばれるデータにする仕組みのことです。入力データが少し変わるだけで、生成されるハッシュ値が大きく変化します。ハッシュ値から元のデータの推測が難しいことから、厳格なセキュリティが必要な場面で利用されます。具体的に言えば、パスワードの保存や、データの改ざん検知で利用されます。 そして、今回Rustで作るのは、現代セキュリティで幅広く利用されている「SHA-256」です。「SHA-256」(Secure Hash Algorithm 256)とは、SHA-2のバリ

      Rustで有名アルゴリズムに挑戦(25) 現代セキュリティを支えるハッシュ関数SHA-256をRustで実装してみよう
    • 楕円曲線上の点を出力するハッシュ関数の標準化 Hash to Curves - Develop with pleasure!

      楕円曲線を使用したPedersen CommitmentやBLS署名など、誰もその離散対数を知らない点を利用する暗号プロトコルを最近よく見かける。ただ、プロトコルの説明では、そのような点の導出方法があまり詳しく書かれていなかったりすることもあり、アルゴリズムの選択を誤ると脆弱性の原因となる可能性が出てくる。 そんな点の導出方法について、さまざまな楕円曲線に対応した推奨アルゴリズムを定義しようというのが、現在IETFでドラフトが提案されている任意の入力値を楕円曲線上の点に変換するハッシュ関数↓ datatracker.ietf.org ハッシュ関数の仕様 この仕様では、入力値(バイト列)を楕円曲線の点にエンコードするのに以下の3つの関数を定義している。※ 正式な仕様は↑参照。 hash_to_field hash_to_field関数は、任意の入力値(バイト列)msgを有限体F上の1つ以上の

        楕円曲線上の点を出力するハッシュ関数の標準化 Hash to Curves - Develop with pleasure!
      • (暗号学的) ハッシュ関数入門 - Qiita

        同じアルゴリズムでも、強衝突耐性は弱衝突耐性、現像計算困難性よりも $n$ ビットセキュリティがずっと小さい理由は、誕生日のパラドックスで説明できます。 誕生日のパラドックス 1年は365日とし、部屋にN人の人がいるとき、その中に同じ誕生日の人の組が存在する確率が半分を超える最小のNは? 答えは23人。この時の確率は約50.7%です。ある特定の誕生日の人と同じ誕生日の人を探すのは困難(弱衝突耐性及び原像計算困難性に対応)でも、同じ誕生日を持つ2人を探す(強衝突耐性に対応)のは比較的簡単であるというパラドックスです。 ここで、このパラドックスを一般化し、以下のように考えてみます。 1年をY日とし、部屋にN人の人がいるとき、その中に同じ誕生日の人の組が存在する確率が半分を超える最小のNは? 詳細の計算は割愛しますが、Yが十分大きい時、 となります。$n$ビットハッシュ関数の$n$ビットのハッシ

          (暗号学的) ハッシュ関数入門 - Qiita
        • オンライン麻雀サイト「天鳳」に見る暗号学的ハッシュ関数のしくみ

          この記事は Up&Coming という雑誌へ寄稿している内容とほぼ同一のものです。Up&Coming はフォーラムエイトさんという会社が発行している広報誌で、縁あって僕も記事を書かせていただけることとなりました。 「IT ならなんでも!」というご依頼だったのでネタチョイス的にこのブログとも相性がよく、寄稿した内容もブログに投稿することにしました。よければ本誌のほうもぜひお読みください(ネットで無料で読めます!)。 ===== 突然ですが、将棋と麻雀をそれぞれコンピュータ上で遊ぶことを考えてみます。私たちは不正のない公平なゲームを楽しむことを目的としていますが、残念ながらこの二種類のテーブルゲームのうち片方ではそれは難しいでしょう。両者の間にはある決定的な違いが存在しているからです。 それは私たちから見えない「舞台裏」があるかどうかです。将棋は盤面上に見えているすべての駒がゲームそのものであ

            オンライン麻雀サイト「天鳳」に見る暗号学的ハッシュ関数のしくみ
          • Rustで有名アルゴリズムに挑戦(25) 現代セキュリティを支えるハッシュ関数SHA-256をRustで実装してみよう

            パスワードの保存や、データの改ざん検知など、現代のセキュリティに欠かせないのが、ハッシュ関数です。今回は、実際にRustでSHA-256を実装して、ハッシュ関数に関する理解を深めてましょう。 RustでSHA-256を実装してみよう ハッシュ関数とSHA-256とは ハッシュ関数とは、入力データを一定の手順で変換し、固定長のハッシュ値と呼ばれるデータにする仕組みのことです。入力データが少し変わるだけで、生成されるハッシュ値が大きく変化します。ハッシュ値から元のデータの推測が難しいことから、厳格なセキュリティが必要な場面で利用されます。具体的に言えば、パスワードの保存や、データの改ざん検知で利用されます。 そして、今回Rustで作るのは、現代セキュリティで幅広く利用されている「SHA-256」です。「SHA-256」(Secure Hash Algorithm 256)とは、SHA-2のバリ

              Rustで有名アルゴリズムに挑戦(25) 現代セキュリティを支えるハッシュ関数SHA-256をRustで実装してみよう
            • スプレッドシートにハッシュ関数を実装してみた【GAS】 - Qiita

              セキュリティ系の勉強を進めているうちに一方向ハッシュ関数についても触れ、 実装してみたいなぁと思いGASで実装してみました。 といっても、GASが最強に便利すぎてハッシュ関数の命令文が用意されていたので、ほとんど何もしなくても実装できちゃいました。 さらにさらに、先人がわかりやすいコードも残してくれていたので脳死状態でSHA256を実現できました。 すご。 #実現したかったこと 「パスワードが記載されたシートをハッシュ化してCSVファイルに出力する。」 本当にそれだけです。なんとなくハッシュ後の値を別で保存するシートを用意していますが、実行するとどっちも更新されるので、認証的な効果は皆無です。 ちょっと改良すれば、認証機能を持たせることができると思いますので、いつか暇があったら実装してみます。 #コード内容 function myFunction() { var currrentSheet

                スプレッドシートにハッシュ関数を実装してみた【GAS】 - Qiita
              • ハッシュ関数

                ハッシュ関数(正確には暗号学的ハッシュ関数)とは、入力の原形を止めないほど切り刻んで掻き混ぜて一定のサイズに要約する関数です。例えば MD5(エムディーファイブ)というハッシュ関数は、どんな入力でも128ビット(16バイト)に要約します。切り刻んで掻き混ぜるやりかたが非常に複雑なため、ハッシュ関数の逆関数をプログラムの形で書き下すことはできません(ハッシュ関数は多対1の関数で、逆関数は1対多の多価関数です)。つまり、ハッシュ関数は、陽な逆関数が存在しない「一方向関数」です。 ある入力に対するハッシュ関数の値をハッシュ値といいます。上に述べたように、与えられたハッシュ値に対応する元の入力を求める簡単な方法はありません。与えられたハッシュ値になるまで、あらゆる入力を試してみる、という手段(ブルートフォース)しかありません。 Windowsでは CertUtil というツールでハッシュが計算でき

                • ハッシュ関数とハッシュ値 - Qiita

                  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに この記事は、ハッシュ関数とハッシュ値について学んだことの備忘録となります。 ただのメモ書きのような記事で見づらいかもしれませんが、興味のある方は是非ご覧いただけますと幸いです。 1. ハッシュ関数とは ハッシュ関数とは、任意の長さのデータを固定長のデータに変換する関数です。 ハッシュ関数の主な特徴 固定長の出力 任意の長さの入力データに対して、一定の長さのハッシュ値(固定長のビット列)を生成します。例えば、SHA-256は常に256ビットのハッシュ値を出力します。 一方向性 ハッシュ関数は一方向性であり、ハッシュ値から元の入力

                    ハッシュ関数とハッシュ値 - Qiita
                  • ハッシュ関数とハッシュ値 - Qiita

                    はじめに この記事は、ハッシュ関数とハッシュ値について学んだことの備忘録となります。 ただのメモ書きのような記事で見づらいかもしれませんが、興味のある方は是非ご覧いただけますと幸いです。 1. ハッシュ関数とは ハッシュ関数とは、任意の長さのデータを固定長のデータに変換する関数です。 ハッシュ関数の主な特徴 固定長の出力 任意の長さの入力データに対して、一定の長さのハッシュ値(固定長のビット列)を生成します。例えば、SHA-256は常に256ビットのハッシュ値を出力します。 一方向性 ハッシュ関数は一方向性であり、ハッシュ値から元の入力データを逆算することが非常に困難です。これは、暗号化やデータの検証において重要な性質です。 高速計算 入力データに対するハッシュ値の計算が高速に行われるため、大量のデータに対しても効率的にハッシュ値を求めることができます。 わずかな変更による大きな変化 入力

                      ハッシュ関数とハッシュ値 - Qiita
                    1