タグ

署名に関するdelegateのブックマーク (14)

  • 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
  • TLS1.2と1.3での鍵交換/認証/暗号化に関する用語をまとめる - dorapon2000’s diary

    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS1.2での暗号スイートの一例ですが、なんでこんなにいくつもアルゴリズムを使う必要があるの?と思うわけです。しかも、ECDHEとECDSAとEdDSAなど用語が似ていたり、RSAは鍵交換と認証を両方やってしまったり、勉強している中でとても混乱してしまいそうです。 TLS1.2とTLS1.3の違いも含めて、自分なりにまとめて整理していきます。間違いがあればご指摘いただけると嬉しいです。 TLSで行われていること 以下の4つの視点でまとめていきます。仮にクライアントAがサーバBと安全ではない経路を使って安全に通信したいとします。 鍵交換 Aは暗号化用の鍵を誰にも知られずBに伝えたい 認証(デジタル署名) AはBが当にB人であることを知りたい 暗号化 Aは長いメッセージを誰にも知られずBに伝えたい 完全性の検証

    TLS1.2と1.3での鍵交換/認証/暗号化に関する用語をまとめる - dorapon2000’s diary
  • MAC、ハッシュ、および署名 - UWP applications

    この記事では、ユニバーサル Windows プラットフォーム (UWP) アプリでメッセージ認証コード (MAC)、ハッシュ、署名を使ってメッセージの改ざんを検出する方法について説明します。 メッセージ認証コード (MAC) 暗号化は、承認されていない個人によるメッセージの読み取りを防止できますが、その個人によるメッセージの改ざんを防止することはできません。 メッセージが改ざんされたことにより、そのメッセージが無意味な内容にすぎない場合であっても、実際にコストが発生する場合があります。 メッセージ認証コード (MAC) は、メッセージの改ざんを防止します。 たとえば、次の場合を考えてください。 ボブとアリスは秘密鍵を共有し、MAC 関数を使うことに同意しています。 ボブはメッセージを作成し、そのメッセージと秘密鍵を MAC 関数に入力して MAC 値を取得します。 ボブは、[暗号化されてい

    MAC、ハッシュ、および署名 - UWP applications
  • 電子署名と公開鍵暗号方式

    電子署名で重要な役割を果たす公開鍵暗号は、暗号化と復号とで異なる2つの鍵(秘密鍵と公開鍵)を使用する方式です。秘密鍵は、その所有者(署名者)によって秘密を保って管理される鍵であり、秘密鍵と対になる公開鍵は基的に公開することが可能で、他の人(署名検証者)に利用してもらうための鍵です。電子署名は、秘密鍵鍵で署名を作成し、秘密鍵と対になる公開鍵で検証することになります。 電子署名法で、使用が認められている「公開鍵暗号」としては、RSA暗号方式、DSA署名方式、およびECDSA署名方式の3種類です。このうち、DSA署名方式とECDSA署名方式は、公開鍵暗号に分類されますが、署名しかできない公開鍵暗号方式です。 1.RSA暗号方式 RSA暗号方式は、現在最も一般的に使われている公開鍵暗号方式です。RSA暗号方式では、2つの大きな素数 p と q を生成し、 p と q の積 n ( n = p ×

    電子署名と公開鍵暗号方式
  • どうして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
  • Windows証明書ストアからCNG署名 - Qiita

    「そうか!そうだったのか!」 男は突然つぶやいた。男はCAPICryptoAPI)を使ってWindows証明書ストアから選択した(秘密鍵が関連付いている)証明書にてRSA方式のデジタル署名を生成するプログラムをデバッグしていた。これまでは問題無く動作していたのだが、Adobe Acrobatから「IDを追加」-「今すぐデジタルIDを新規作成」-「Windows証明書ストア」を使って登録した秘密鍵(署名鍵)を使うとエラーになると言う問題で苦しんでいたのである。CAPIの実装は以下のようになっていた。 HCRYPTPROV hProv = NULL; HCRYPTPROV hKeyProv = NULL; HCERTSTORE hStore = NULL; DWORD dwKeySpec; BOOL fCallerFreeProv = FALSE; HCRYPTHASH hHash = NU

    Windows証明書ストアからCNG署名 - Qiita
  • RSA署名を正しく理解する

    初めに 「署名とはメッセージのハッシュ値を秘密鍵で暗号化したものであり、検証は署名を公開鍵で復号してハッシュ値と等しいかを確認することである」という説明(×)をよく見かけます。 正しい署名の定義と実際のRSA署名がどのようなものであり、上記説明(×)がなぜよくないのかを理解しましょう。 署名の定義 署名の解説は署名の概要でも解説しましたが、再掲します。 署名(方式)は鍵生成(KeyGen)、署名(Sign)、検証(Verify)の3個のアルゴリズムからなります。 KeyGenではアリスが署名鍵sと検証鍵Sを生成します。署名鍵sは自分だけの秘密の値なので秘密鍵、検証鍵Sは他人に渡して使ってもらう鍵なので公開鍵ともいいます。 Signは署名したいデータmに対して署名鍵sを使って署名と呼ばれるデータσを作ります。 データmと署名σのペアを他人(ボブ)に渡します。 Verifyはボブが検証鍵Sを使

    RSA署名を正しく理解する
  • 「電子署名=『秘密鍵で暗号化』」という良くある誤解の話 - Qiita

    はじめに 「クラウドを支えるこれからの暗号技術」のデジタル署名の説明へのツッコミtweetをしたところ、著者の方との遣り取りが始まったのですが…。 ※togetterまとめ「電子署名=『秘密鍵で暗号化』」という良くある誤解の話に経緯があります 認識の齟齬についてtwitterでどうこうするのは難しいですし、批判ばかりなのも建設的ではないので、「自分ならこう書くだろう」という文面の形でまとめてみました。 ※なお、電子署名を含めた公開鍵暗号全般に対する私の説明を2つの公開鍵暗号(公開鍵暗号の基礎知識)にまとめています。 署名の説明案 前提 「クラウドを支えるこれからの暗号技術」Web公開されているPDF、2018/3/11時点(最終更新2017/11/11の4.6節デジタル署名(p.50)を、書き換えるとしたら、という前提で文面を作っています。 ※そのため既存の文面の流用や、他の節を参照する記

    「電子署名=『秘密鍵で暗号化』」という良くある誤解の話 - Qiita
  • 公開鍵暗号と電子署名の基礎知識 - Qiita

    とくに、英語の decryption を日語でなんと呼ぶかは人によってまちまちです。 復号 と呼んでいる人もいるのですが、復号は decode の訳語として使いたいので、このエントリでは 平文化 を使います。 公開鍵暗号とは 玄関の鍵は閉めるときも開けるときも同じ鍵を使います。金庫の鍵も普通はそうです。では 金庫に貴重品を詰めて送ってもらう時はどうでしょう? 金庫を閉める鍵と開ける鍵が同じだと、金庫にものを詰めてもらう相手にその鍵を渡す必要があります。その鍵を郵送で送ろうとしたら、途中で誰かに見られて複製を作られてしまうかもしれません。大事なものを送るために鍵をかけようとしているのに、同じ労力をかけて鍵を受け渡さなければいけないとなると末転倒です。 これは、暗号通信でも同じことが言えます。 そこで、暗号通信において 閉めることしかできない鍵 と 開けることしかできない鍵 のペアを使うこ

    公開鍵暗号と電子署名の基礎知識 - Qiita
  • It's Now Possible To Sign Arbitrary Data With Your SSH Keys

    Did you know that you can use the ssh-keygen command to sign and verify signatures on arbitrary data, like files and software releases? Although this feature isn't super new - it was added in 2019 with OpenSSH 8.0 - it seems to be little-known. That's a shame because it's super useful and the most viable alternative to PGP for signing data. If you're currently using PGP to sign data, you should co

  • iOSアプリの署名を付け替える - Qiita

    業務で iOSアプリの開発をしていると、品質保証のためのテストや第三者検証のために、事前にデバイス登録をした機器にだけインストールできる AdHoc配布用の ipaファイルをテストチームにリリースすることが多いと思います。この ipaファイルは、AdHoc専用の証明書を使ってデジタル署名を行って作成します。 一方、実際に AppStoreに出す時は、Store用の証明書で署名を付けることになります。 AdHoc用の ipaを使ってテストを回し、これが全部終わって出荷可能の判断がくだされた後、Store用にビルドをしなおして Storeに上げる、という運用をしていることもあるでしょう。 もちろんこの場合も「全く同じソースコードベース」で「全く同じビルド設定」でビルドをして、Provisioning Profile と署名用証明書だけが異なるようにすれば理論的には問題ありません。ソースコードだ

    iOSアプリの署名を付け替える - Qiita
  • 1