タグ

署名とECDSAに関するdelegateのブックマーク (5)

  • CryptoKit を使って ECDSA を用いた署名を実装する - Qiita

    ECDSAでJWTによる電子署名を作成することがあったのでメモ ECDSAとは 楕円曲線暗号 - Wikipedia の一つ 楕円曲線暗号(だえんきょくせんあんごう、Elliptic Curve Cryptography、ECC)とは、 楕円曲線 上の 離散対数問題 (EC-DLP) の困難性を安全性の根拠とする 暗号。 暗号化と復号とで異なる2つの鍵を使用し、暗号化の鍵を公開できるようにした公開鍵暗号 RSA暗号 と比べて、短いデータ長で処理速度も早いが同レベル安全性が実現できるのがメリット CryptoKit を使ってやること CryptoKitを使って以下の手順により署名を作成していきます。 鍵の生成 電子署名の作成 全体のコードはこちらに上げてあります。 Key Pairの生成 CryptoKitの P256.Signing.PrivateKey を使えば2行で書けます let p

    CryptoKit を使って ECDSA を用いた署名を実装する - Qiita
  • どうしてECDSA署名から公開鍵が復元できるのか? - Develop with pleasure!

    ECDSAの署名からどうして公開鍵が取得できるの?という聞かれて何でだろうねって話になったので調べてみた。 署名から公開鍵のセットを復元 Rubyではecdsaのgemを使えば以下のように署名と署名対象のメッセージから公開鍵を取得できる。(署名対象のメッセージはどうせなのでBitcoinで使用されているのと同じトランザクションのsighashを使用。そのためbitcoinrbのgemも利用している) 実行すると↓のように2つの公開鍵が抽出できる。 0259f6658325c4e3ca6fb38f657ffcbf4b1c45ef4f0c1dd86d5f6c0cebb0e09520 03a9255e098f4075e9ebfaf7859f459095667879db33e977fc8c91029afa8a2490 ↑のコード上の署名はこの内の0259f6658325c4e3ca6fb38f65

  • ECDSAデジタル署名の仕組み

    Mastering Bitcoinにデジタル署名の仕組みが詳しく書いてなかったので、備忘録と内容補完のためにまとめます。 暗号学的ハッシュ関数についての用語 メッセージ:入力するデータのこと ダイジェスト(要約):メッセージをハッシュ関数に通した時の出力のこと 完全性:オリジナルのメッセージから1bitの変化もしていないこと。ダイジェストから確認・検証できる。 コミットメント:ハッシュ値を使ってメッセージとそのハッシュ計算を行った人間を確実に関係づけること ハッシュチェーン:ハッシュ値を入力としてハッシュ値を計算して行くことで、ハッシュ値の間の連続構造を改変不可能にしたもの ハッシュ値の衝突:異なるメッセージを入力したのに出力されたハッシュ値が同じになってしまうこと 衝突耐性がある:このハッシュ値の衝突が起きる確率が「ハッシュ値のサイズの平方根」という理想のとても低い確率になること 公開鍵

    ECDSAデジタル署名の仕組み
  • デジタル署名プロセスをプログラミングコードで解説 | ブロックチェーンで注目のECDSA署名のチュートリアルあり - Qiita

    デジタル署名とは、書面上のサインを代替する電子的なサインのことです。なかでも公開鍵・秘密鍵によるデジタル署名は多くのシステムで活用されている重要なセキュリティ技術です。しかし、デジタル署名の流れを理解している人は少ないでしょう。記事ではデジタル署名の概要と、プログラミングコードを通じた署名プロセスを解説します。デジタル署名の仕組みの理解や、システム実装などの参考にしてください。 デジタル署名とは デジタル署名とは、書面による署名を電子的に代替する方法のひとつです。そのため電子署名とも呼ばれます。法的な効力については、電子署名及び認証業務に関する法律という法律で規定されています。近年注目されているスマートコントラクトにおいて重要な技術要素で、多くの電子署名サービスやブロックチェーンなどで活用されています。 デジタル署名で利用される公開鍵・秘密鍵 一部のデジタル署名のプロセスでは、公開鍵,

    デジタル署名プロセスをプログラミングコードで解説 | ブロックチェーンで注目のECDSA署名のチュートリアルあり - Qiita
  • ECDSA の署名生成・検証を複数言語・環境でどう書くかまとめてみた - Qiita

    Golang, Node.js, Kotlin, Swift での ECDSA それぞれの言語でキーペア生成、署名生成、署名検証をおこないます。 公開鍵は PEM 形式, 署名データは ASN.1 エンコードした結果のバイナリデータを Base64 形式で出力します。 公開鍵を PEM 形式としたのはただ単によく見かけるから、という理由からです。(検証をおこなうという意味では DER エンコード されたバイナリデータを Base64 もしくは Hex 形式で出力するだけで十分だと、後から気づきました...) Golang Golang は標準ライブラリが充実しているため、さほど苦労することなく扱うことができます。 参考: golang ecdsa パッケージ 以下のコードは version: 1.13.3 で動作を確認しています。 package main import ( "crypto

    ECDSA の署名生成・検証を複数言語・環境でどう書くかまとめてみた - Qiita
  • 1