#author("2024-03-04T21:52:22+09:00","default:irrp","irrp")
#author("2024-03-25T17:42:23+09:00","default:irrp","irrp")
→セキュリティ関連

→セキュリティ関連ツール

→アルゴリズム

→数学・物理

#contents

*サブトピック [#s58af6ea]

-IPSecまとめ
-SSL/TSL/HTTPS関連
--[[SSL-VPN]]


*一般 [#fde2f34d]
-[[楕円曲線暗号のための数学1(射影座標)>https://zenn.dev/herumi/articles/projective-coordinate]] 2024.3

-[[CRYPTREC | 「CRYPTREC 暗号技術ガイドライン(耐量子計算機暗号)」及び「CRYPTREC 暗号技術ガイドライン(高機能暗号)」の公開>https://www.cryptrec.go.jp/topics/cryptrec_20230417_guidelines.html]]  2023.4

-[[暗号理論(2)|No.5|note>https://note.com/yas_d_wa/n/nd9d7e1bc5083]] 2023.4
--秘密分散法

-[[暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-前半- - ABEJA Tech Blog>https://tech-blog.abeja.asia/entry/cryptographic-fundamental-theory-202304-1]] 2023.4
-[[暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-後半- - ABEJA Tech Blog>https://tech-blog.abeja.asia/entry/cryptographic-fundamental-theory-202304-2]] 2023.4

-[[【書籍】Pythonでいかにして暗号を破るか | Al Sweigart, IPUSIRON |本 | 通販 | Amazon>https://amzn.to/3XOLmwq]] 2023.2

-[[【特集】Windows 11で必須になった「TPM 2.0」って何?TPMの役割や確認方法を紹介 - PC Watch>https://pc.watch.impress.co.jp/docs/topic/feature/1334277.html]] 2021.6
--TPM(Trusted Platform Module)は、デバイス上で様々なセキュリティ機能を提供するためのモジュールだ。
--暗号化用アルゴリズムエンジン、ハッシュエンジン、鍵生成器、乱数生成器、不揮発性メモリ(鍵などを保管)などを備えたモジュールで、TPM内への暗号キーの作成や使用制限をするために利用される。

-[[楕円曲線暗号アルゴリズムを理解する>https://techracho.bpsinc.jp/yoshi/2019_08_16/79280]] 2019.8

-[[B-CASカード >http://yomeiotani.blogspot.jp/2012/05/b-cas.html]]
--住民基本台帳のカードとB-CASカードのコマンドが良く似ているのでそれぞれ照らし合わせて、B-CASカードにはない書き換えコマンドがありそうなことが判明。
--東芝製のB-CASカードの一部を書き換えるコマンドのパスワードがtoshibaの文字列を電話のテンキーで押したときの数字をアスキーコードに置き換えたものであることが判明して、東芝製のB-CASカードの情報の読み込みと書き換えに成功。
--松下製のB-CASカードも同じく、パスワードが一部あっているかいないかでカードのレスポンス時間が微妙に違うことを利用し、カードの情報を読み書きするパスワードを発見。
--松下製のB-CASカードから鍵生成アルゴリズムを含むバイナリーコードが読み出される。
--松下製B-CASカードのCPUが8ビットのM6805、簡単にいうとファミコンと同じCPUであることがわかる。

-[[b-casカード不正改造問題の本質はカードの交換を不可能にしたこと>http://d.hatena.ne.jp/essa/20120522/p1]] 2012.5.22
--関連:%%[[softcas>http://www.wazoku.net/softcas.html]]%%

-[[S/MIMEでセキュアな電子メール環境を作る>http://www.atmarkit.co.jp/fsecurity/special/04smime/smime01.html]]
--データを保障するのに認証局という第三者的機関を導入。通信対象が広がり、不特定多数の相手と安全に通信することが可能になります。
--[[S/MIME を利用した暗号化と電子署名@IPA>http://www.ipa.go.jp/security/fy12/contents/smime/email_sec.html]]

-[[USBメモリ暗号化>http://www.oshiete-kun.net/archives/2008/11/usbusb.html]]
--「USBメモリ内の書類フォルダだけは暗号化したい」といった目的であればもっと手軽なツールをオススメするが、全体を暗号化するのであれば、定番な高性能暗号化ツールTrueCryptをオススメする。通常、TrueCryptはインストールして利用するツールだが、「トラベラーディスク」という機能を利用するとポータブル化が可能なのだ。

-[[データと暗号化の基礎>http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20040428/1/]]
--CAPICOMとは,Crypt API COMを意味し,ネイティブ暗号化API(Application Programming Interface)をCOMインタフェース化し,使いやすさを向上させたテクノロジです。COMインタフェース実体は,CAPICOM.DLLに実装されています。
--[[CAPICOM 2.1.0.1 の再頒布可能なファイルとそのサンプル>http://www.microsoft.com/downloads/details.aspx?FamilyID=860ee43a-a843-462f-abb5-ff88ea5896f6&displaylang=ja]]

-[[暗号技術の世界にも2010年問題>http://pc.nikkeibp.co.jp/article/news/20080423/1001286/]] 2008.4.24
--「2004年以降、ハッシュ関数が相次いで破られたため」に、米国政府は次世代暗号への移行を決意したという。まず、2004年8月、中国の研究者グループにより「MD5」などが破られた。それを受けてNISTでは、SHA-1も破られることを予想してか、SHA-1の運用は2010年までに中止し、SHA-2に移行する計画であることを同月に表明した。
--そして予想通り、2005年2月にSHA-1も事実上破られ、同月、NISTは移行計画の実行を宣言。ハッシュ関数だけではなく、共通鍵暗号や公開鍵暗号も含めた大規模な世代交代を予告した。これによって生じるのが「2010年問題」である。 

-[[104bitWEPは1分あれば破れる>http://slashdot.jp/security/article.pl?sid=07/04/03/2243222]] 2007.4.4

-[[ワンタイムパスワードでは防げない中間者攻撃:http://itpro.nikkeibp.co.jp/article/USNEWS/20060713/243303/]]

-[[ワンタイム・パスワード:http://www.atmarkit.co.jp/aig/02security/onetimepassword.html]]
--一回だけ使用して使い捨てるパスワード。主にリモートからの接続に利用される
--RSAセキュリティのSecurIDが代表的
--ワンタイムパスワードの生成にはいくつかの方法があるが、SecurIDではサーバ との時刻同期を利用
--トークンと呼ばれるワンタイムパスワード生成器(キーホルダー型やPDAのソフトウェアなど)であらかじめサーバと時刻を同期させておく
--トークンは、ユーザー固有のPIN Number(もしくは暗証番号)と時刻の組み合わせから、一見ランダムな10桁程度の数字を生成する。
--この数字がワンタイムパスワードとして、サーバにログインする際に利用される
--サーバは、トークンと同じアルゴリズムを用いて、パスワードが正規のユーザーからのものであるかどうかを確認することができる
--トークンが生成するパスワードは1分ごとに変化するため、パスワードが万が一盗聴されたとしても、有効期間は最大でも1分しかない
--パスワードは繰り返し使われることなく使い捨てとなる

-[[Camellia:http://info.isl.ntt.co.jp/crypt/camellia/intro.html]]
--NTTが開発したオープンソースの暗号化技術

-[[NTの暗号化機能を使ってファイルを保護する:http://muumoo.jp/news/2005/06/09/0.html]]

-[[隠すことこそセキュリティの基本:http://itpro.nikkeibp.co.jp/members/NT/WinSecurity/20050630/1/]] 2005.7.1
-[[ファイルの隠し方:http://arena.nikkeibp.co.jp/tokushu/gen/20050902/113338/]] 2005.9.5
-[[How to hide files in JPG's:http://www.thetechtray.net/videos/rar/]]


*SSH [#fb297fda]
-[[Remote-SSHで接続中にいきなり初期化が無限ループしだした #VSCode - Qiita>https://qiita.com/kiNako_aNko/items/bdf6a0e8518f630c790c]] 2024.3

-[[HTTP/3コネクション上でSSHを実行するSSH3プロトコル - ASnoKaze blog>https://asnokaze.hatenablog.com/entry/2024/03/04/000626]] 2024.3

-[[SSHポートフォワーディング機能のおさらいと利用例 #SSH - Qiita>https://qiita.com/kazu_ppp/items/55e11b1b64683e3b85a8]] 2022

-[[Windows 用 OpenSSH の概要 | Microsoft Learn>https://learn.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui]] 2023.10

-[[【Ubuntu日和】SSH使うなら、これだけは覚えておきたい話 - PC Watch>https://pc.watch.impress.co.jp/docs/column/ubuntu/1536955.html]] 2023.10

-[[SSH Agent Forwarding で、秘密鍵一つで便利に多段 SSH する - Qiita>https://qiita.com/kino-ma/items/42423a17f5516f9dafde]] 2021
--SSH Agent とは、 SSH する際にユーザの秘密鍵をよしなに管理してくれる存在です。たとえば、 SSH Agent にパスフレーズ付きの秘密鍵を登録すると、 SSH 接続ごとにパスフレーズを求められるといったことがなくなります。

-[[最強のSSH踏み台設定>http://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8]] 2015.10.17
-[[SSHの仕組み!ぼんやりとした理解だったものをすっきりさせようの会>http://nigohiroki.hatenablog.com/entry/2013/08/18/221434]]
-[[Windows用定番SSHクライアントTera Termの使い方>http://sourceforge.jp/magazine/09/02/02/0412259]]


*暗号化関連用語 [#g8c81a46]
-[[CRYPTREC | CRYPTREC暗号リスト(電子政府推奨暗号リスト)>https://www.cryptrec.go.jp/list.html]] 2013
--デジタル庁、総務省及び経済産業省は、CRYPTRECの活動を通して電子政府で利用される暗号技術の評価を行っており、2013年3月に 「電子政府における調達のために参照すべき暗号のリスト(CRYPTREC暗号リスト)」を策定
--[[暗号強度要件(アルゴリズム及び鍵長選択)に 関する設定基準(デジタル庁ほか)>https://www.cryptrec.go.jp/list/cryptrec-ls-0003-2022.pdf]] 2022.7

-[[PGP>http://www.atmarkit.co.jp/icd/root/74/5783574.html]]
--PGPでは、電子署名としてはRSAを用い、その電子署名とメール本文をIDEA(International Data Encryption Algorithm)と呼ばれる共有鍵暗号方式で暗号化する。そしてIDEAの鍵をRSAによって暗号化する。メール本文の暗号化にIDEAを用いるのは、比較的処理の軽いIDEAでメール本文の暗号化、復号化を行うことで、処理速度の向上を図るためである。RSAによる公開鍵は、送信相手にあらかじめ渡しておく必要がある。
--OpenPGPのRFC:RFC2440

-[[S/MIME>http://www.atmarkit.co.jp/aig/02security/smime.html]]
--インターネット電子メールの代表的な暗号化方式で、電子メールの暗号化と電子署名に関する国際規格。MIMEの機能拡張版。メッセージの暗号化と、電子署名を行う機能を持つ。
--S/MIMEは公開鍵暗号方式としてRSAを利用しており、送信者は公開鍵で暗号化処理を行い、受信者はメッセージを読むため秘密鍵を用いる。このため、認証機関が発行した電子証明書が必要となる。
--RFC2311からRFC2315
--バージョン3に対応するRFC:RFC2630〜RFC2634

-[[X.509>http://www.atmarkit.co.jp/aig/02security/x509.html]]
--ITU(International Telecommunications Union:国際電気通信連合電気通信標準化部門)が定めたデジタル証明書の標準仕様

-メッセージダイジェスト関数
--ハッシュ関数のうち、変換結果を元のメッセージに戻すことができないものをメッセージダイジェスト関数という
--複数のメッセージが同じ結果になることが、計算上ありえない
--メッセージダイジェスト関数が変換した結果をダイジェストという
--ダイジェストの長さはMD5で16バイト、SHA1で20バイト

-電子署名
--メッセージとともにメッセージ内容のダイジェストを暗号化して送る。ダイジェストを復号化して受信側のダイジェストと合っていれば改竄なしと判定する。メッセージ内容が秘匿されているわけではない点に注意。


*ハッシュ化 [#jcfc20c6]
→ブロックチェーン関連

-[[なぜハッシュ値は元の値を復元できないのか、SHA-256を実装してみる - Qiita>https://qiita.com/_akira19/items/2f206395c21f91e0a0f0]] 2023.10

-[[ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita>https://qiita.com/ockeghem/items/d7324d383fb7c104af58]] 2023.8

-[[Hashing Passwords in Python with BCrypt - GeeksforGeeks>https://www.geeksforgeeks.org/hashing-passwords-in-python-with-bcrypt/]] 
 import bcrypt
  
 # example password
 password = 'password123'
  
 # converting password to array of bytes
 bytes = password.encode('utf-8')
   
 # generating the salt
 salt = bcrypt.gensalt()
   
 # Hashing the password
 hash = bcrypt.hashpw(bytes, salt)

-[[bcryptを使ってパスワードをハッシュ化とストレッチングをしましょう! - Qiita>https://qiita.com/KomattaSorata/items/b55f16ef829c3096ef81]] 2020
--bcryptは1999年に公開された、Blowfish暗号を基礎にしたパスワードハッシュ化関数です。「ソルト」を組み込んでレインボーテーブル攻撃防止し、キー拡張を反復執行することによってブルートフォース攻撃にも対抗できる仕様になっています。(後続に説明します。)
--オリジナルのbcrypt仕様には、接頭辞が $2$ として定義しています。後続に「ASCII以外の文字を扱うようになった」($2a$)、「PHPで8ビット文字列の処理バグを修復した」($2x$, $2y$)と「OpenBSDライブラリによって255文字数制を越えるバグを修復した」($2b$)バージョンが発表され、更新された。
--ストレッチングとは、「生成したハッシュを再度ハッシュ化することです」。これを何度も繰り返すことによって、ハッシュを逆算するに必要な計算時間が増えていきます。
--ストレッチングの回数を増やすことによって、正規でハッシュ化計算を行うサーバーへの負荷も増えます。パフォーマンスや環境を気にかけて、適切なストレッチング回数を設定することが大事です。

-[[ブロックチェーンで勉強でつまづかないためにハッシュ関数について調べる - Qiita>https://qiita.com/kaito_ps/items/2b736726ef0ec0e4649d]] 2022.5

-[[ハッシュ関数「SHA-256」の計算プロセスをわかりやすく視覚化してくれる「Sha256 Algorithm Explained」 - GIGAZINE>https://gigazine.net/news/20220209-sha256-algorithm-explained/]] 2022.2

-http://www.hashkiller.co.uk/md5-decrypter.aspx
--HashKiller.co.uk allows you to input an MD5 hash and search for its decrypted state in our database, basically, it's a MD5 cracker / decryption tool.

-http://md5cracker.org/

-[[US Secure Hash Algorithm 1(SHA1):http://www.ipa.go.jp/security/rfc/RFC3174JA.html]]
-[[Cryptographic hash function@Wikipedia:http://en.wikipedia.org/wiki/Cryptographic_hash_function]]
-[[ デファクトスタンダード暗号技術の大移行@IT:http://www.atmarkit.co.jp/fsecurity/rensai/crypt01/crypt01.html]]
-[[Canonical Huffman Code:http://codezine.jp/a/article.aspx?aid=376]]


*公開鍵暗号化/PKI [#w85db79a]
-公開鍵暗号化方式
--暗号化と復号に異なる鍵を使い、片方を公開する。
--公開鍵で暗号化したら、私有鍵(秘密鍵)で復号←この説明は誤りらしい。下方にある[[RSA署名を正しく理解する>https://zenn.dev/herumi/articles/rsa-signature]] を参照
--私有鍵で暗号化したら、公開鍵で復号
--代表的なアルゴリズムはRSA,Diffie-Hellman,DSA
-公開鍵は多くの人に渡してもいいが、私有鍵は第三者に渡らないように注意しなければならない。

-[[プログラマのための公開鍵による暗号化と署名の話>https://zenn.dev/herumi/articles/pke-signature-for-programmer]] 2023.9

-[[公開鍵暗号 - 情報処理安全確保支援士 - SE娘の剣 ->https://sc.seeeko.com/entry/public_key_code]] 2022

-[[PKI(Public Key Infrastructure)>http://www.atmarkit.co.jp/aig/02security/pki.html]]
--公開鍵基盤
--認証機関から証明書を発行することで、認証局という第三者的機関が、公開鍵とその持ち主を保証する方式
    * 鍵と証明書のライフサイクル管理
    * 認証機関(CA)機能
    * 登録機関(RA:Registration Authority)機能
    * 証明書の保管、運用管理用ディレクトリの維持
    * 完全な証明書失効システム
    * 鍵のバックアップとリカバリの仕組み
    * タイムスタンプ機能
--[[(2) リーマン予想が証明されたら公開鍵暗号が破られるという話を多くの人が信じていますが、それが真であると仮定して暗号を破るアルゴリズムを書くことはなぜできないのですか? - Quora>https://jp.quora.com/%E3%83%AA%E3%83%BC%E3%83%9E%E3%83%B3%E4%BA%88%E6%83%B3%E3%81%8C%E8%A8%BC%E6%98%8E%E3%81%95%E3%82%8C%E3%81%9F%E3%82%89%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7%E3%81%8C%E7%A0%B4%E3%82%89%E3%82%8C%E3%82%8B]] 2021

-[[RSA署名を正しく理解する>https://zenn.dev/herumi/articles/rsa-signature]] 2023.9
--秘密鍵によって行うのは署名であって暗号化ではない

-[[RSAの終わりの始まり - 暗号移行再び - Qiita>https://qiita.com/lemiyachi/items/c20a18b172c6f192a262]] 2023.1
-[[RSA>http://www.atmarkit.co.jp/aig/02security/rsa.html]] 2017
--R. Rivest、A. Shamir、L. Adelmanの頭文字
--公開鍵暗号方式
--RSAは、整数論であるオイラーの定理と2つの素数を使って公開鍵暗号の仕掛けを実現しており、大きい数の素因数分解の困難さを暗号化手法としている。
--PKIの基本技術になっている。 
--[[サルにもわかるRSA暗号>http://www.maitou.gr.jp/rsa/]]
--[[How RSA Works With Examples>http://percepi.blogspot.ca/2012/05/how-rsa-works-with-examples.html]] 2012.5.26
--[[RSA公開鍵暗号アルゴリズムを理解する>https://techracho.bpsinc.jp/yoshi/2017_02_15/35024]] 2017.2
--[[RSAに対するフェルマー攻撃 - Qiita>https://qiita.com/tnakagawa/items/d87fd8459ec9e1ce6844]] 2022.3



*共通鍵暗号化方式(秘密鍵暗号化方式) [#s444b1c1]
-対称鍵暗号、秘密鍵暗号とも呼ばれます。
-暗号化に使う鍵と復号に使う鍵が同じ
-通信相手ごとに違う鍵を用意して、相手によって使い分ける
-ストリーム暗号とブロック暗号に分かれる
-ストリーム暗号の1つにRC4があります。RC4はSSLで使われています。
-ブロック暗号はPGPやS/MIME,DES,IDEA
-VPNでは通常こちらの方式を使う(速いから)。

-[[AES:Advanced Encryption Standard>http://ja.wikipedia.org/wiki/AES%E6%9A%97%E5%8F%B7]]
--アメリカ合衆国の新暗号規格 (Advanced Encryption Standard) として規格化された共通鍵暗号方式

-[[DES(Data Encryption Standard)>http://www.atmarkit.co.jp/aig/02security/des.html]]
--DESは、データを64ビット長のブロックに分割し、各ブロックを56ビット長の鍵で暗号化する共通暗号鍵アルゴリズム。トリプルDESは、DESを3重に繰り返すことで、暗号強度を高めている。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS