#author("2024-11-10T18:04:33+09:00","default:k1rou","k1rou") #author("2024-11-10T19:31:06+09:00","default:k1rou","k1rou") *暗号化 [#i99c01ef] **名称 [#pe4ee783] -encrypt **概要 [#ca317b31] -文字列やファイル、通信の内容を第三者に見られないようにする仕組や技術のこと。 -データを暗号にすることを「暗号化」、暗号化されたデータを元に戻すことを「復号」という。(「復合化」ではない) -暗号化・復号には「鍵」を使用する。 -暗号化は可逆性がある。(不可逆性の場合は、暗号化ではなく[[ハッシュ]]を使う) *暗号化の利用目的 [#c36bc2fb] -秘匿性の高いデータを送信する際に、意図した相手以外がそのデータを見れないように(再現できないように)する。 -送信するデータが改竄されていないことを受信側で確認するために、送信側で送信するデータから生成したハッシュ値を送信するデータとは別経路で送信し、受信側で受信したデータから生成したハッシュ値と受信したハッシュ値が同値であることを確認することで、改竄されていないことを証明する。 *暗号化の方式 [#g2caa8af] **古典的な方式 [#v7a18b08] -シフト暗号 -[[転置式暗号]] -[[換字式暗号]] -[[エニグマ]] **近代的な方式 [#re60e362] -[[共通鍵暗号方式]] -[[公開鍵暗号方式]] -ハイブリッド方式 --[[共通鍵暗号方式]]と[[公開鍵暗号方式]]を組み合わせた方式 ---データの暗号化は[[共通鍵暗号方式]]を使い、データの暗号化に使う鍵の暗号化に[[公開鍵暗号方式]]を使う --[[セッション鍵方式]] ---[[公開鍵暗号方式]]を使いつつ、暗号化と復号にセッション鍵(暗号化と復号に使い捨ての共通鍵)を利用する。 **その他 [#je280d63] -[[Base64]] -[[DSA]] -[[DH鍵共有]] *パスワードの暗号化について [#j726caee] -[[パスワード]]は特段の理由がない限り、暗号化ではなく技術的に複合が困難な[[ハッシュ]]でハッシュ化した文字列を保存する。 *暗号規格のライブラリ [#r3baf4ba] -CryptoJS --crypto-js --JavaScriptのライブラリ --https://code.google.com/archive/p/crypto-js/ -WebCrypto -[[OpenSSL]] -Tink --Google --多言語のクロスプラットフォーム暗号ライブラリ --https://opensource.google.com/projects/tink --https://github.com/google/tink -BCrypt *暗号プロトコル [#d28925fa] -暗号と通信を組み合わせた技術のこと -[[TLS]]など *量子計算機の対策 [#e6b789b5] -格子理論に基づく暗号 -符号理論に基づく暗号 -ハッシュベースの暗号 -[[PQC]] (Post-Quantum Cryptography) *暗号の安全性に関する情報 [#v23a0380] -[[CRYPTREC]] --http://www.cryptrec.go.jp/ -[[NIST]]の[[ITL]] --SP800-57 Recommendation for Key Management -CELLOS --https://www.cellos-consortium.org/ *関連サイト [#ne11b75b] -Java暗号化アーキテクチャ 標準アルゴリズム名のドキュメント(JDK 8用)~ https://docs.oracle.com/javase/jp/8/docs/technotes/guides/security/StandardNames.html#SecureRandom -暗号モジュール試験及び認証制度(JCMVP) -IPA~ https://www.ipa.go.jp/security/jcmvp/index.html -CyberChef --様々な暗号や符号プロトコルの変換ツール~ https://gchq.github.io/CyberChef/ -鍵管理における推奨事項 NIST Special Publication 800-57 Part 1 Revision 5 -IPA~ https://www.ipa.go.jp/files/000090943.pdf -Build and Learn Rails Authentication - SpeakerDeck~ https://speakerdeck.com/sylph01/build-and-learn-rails-authentication -データベース暗号化はなぜ必要?デメリットはある?効果的に運用するポイントを解説(2024.6.24) - 三和コムテック~ https://product.sct.co.jp/blog/security/why-database-encryption-necessary *関連用語 [#k5da80a6] -[[E2EE]] -End to end encryption -[[FIPS]] PUB 140-2 --米国連邦政府の省庁等機関が利用する暗号モジュールのセキュリティ要求事項 -[[OpenPGP]] -[[PBE]] -[[PFS]] -Perfect Forward Secrecy -[[PGP]] -Pretty Good Privacy -[[PKI]] -[[SSL/TLS]] -[[TDE]] -[[TLS]] -[[Vault]] -[[暗号技術]] -[[暗号スイート]] -[[暗号技術]]を組み合わせたプロトコルのことを指す -[[暗号学的ハッシュ関数]] -[[ステガノグラフィ]] -[[サイファーパンク]] -[[ハイブリッド暗号]] -[[ハッシュ]] -[[ファイル暗号化]] -[[ブロックチェーン]] -[[符号化]] -[[量子暗号]] -[[危殆化]]