はじめに

このページは暗号について記載を行うページです。
暗号について根本から色々書くには私の知識が足りません。なので中途半端なところだけまとめていく予定です。



もう少し追記

暗号については理解することが難しく、且つ実装領域だと英語の技術資料が多すぎるため頭がおかしくなりそうになります。あとは同じものを指す用語が多かったり、略語の解説をしない(!)ところも多く、とても頭がおかしくなりました。皆さんに同じ轍を踏んで苦しんで欲しいですが、私が忘れた時に同じ轍を踏みたくないのでまとめます。

RSA暗号

Rivest Shamir Adleman
リベスト・シャミア・エーデルマン(敬称略)の3人によって開発された非対象鍵を用いた暗号方式である。公開鍵暗号方式とも呼ばれる。
名前は形式を表すもの製作者を示すものが存在する。これは後者である。

公開鍵暗号(方式) = Public Key Cryptosystem (パブリックキークリプトシステム)
非対称鍵暗号(方式) = Asymmetric Key Cryptosystem (アシンメトリックキークリプトシステム)

2つの素数の掛け算は簡単であるが、その結果から何の素数の掛け算かを逆算することが困難であることを根拠として、暗号の安全性を守っている。

RSA暗号を用いたデジタル署名

パディングについて記載しておく。
これはデジタル署名に限定されず、通常の暗号でも用いられる。
RSA暗号はブロック暗号方式であり、そのブロック長は鍵長に依存するためパディングが必要になる。特にパディングをすることを明示する場合、RSASSAという表記を行う。
RSA Signature Scheme with Appendixの略である。(3)
アールエスエー シグネチャスキームウィズアペンディックス
付加物(パディング)を用いたRSA署名方式と覚えよう。
通例としてはこのあとに方法を記載する。デファクトスタンダードとなっているのはRSASSA-PKCS#1-v1.5である。表記法は記載制約などによりかなり揺れるので注意すること。
PKCS = Public Key Cryptographic Standards Version1 Revision1.5 / 公開鍵暗号標準
PKCS#1-v1.5はアルゴリズムの名前ではなく、標準機構(ISOとかJISとか)の一種です。この場合は、PKCS#1-v1.5により定義される方法を使用することという意味になる。
実際の内容は固定値パディングである。
RSASSA-PKCS#1-v1.5はOpenSSLに実装されているから標準となっているという側面が強い。数学的な安全性はまだ確保されているが、RSASSA-PKCS#1-v1.5よりも優秀なパディングアルゴリズムとしてRSASSA-PSSというものが提案されている。
RSASSA-Probabilistic Signature Scheme / プロバビリスティック シグネチャ スキーム / 確率的署名方式
これはOpenSSLに実装されていないらしいが、どのバージョンかとかは全然見ていない。

参考:
(1) http://blog.livedoor.jp/k_urushima/archives/979220.html
(2) http://qiita.com/kunichiko/items/2e0a2bd35c8e9492ceb5
(3) https://tls.mbed.org/kb/generic/rsassa-pss

連絡

間違い指摘は根拠と共に Twitter:Palantir_k まで
質問などは答えるかどうかわかりません。
技術系ページの内容のみ、失礼な質問には攻撃的になる可能性があります。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-03-07 (土) 09:05:28