|
|
|
|
暗号強度 | 公開鍵暗号 RSA暗号方式 鍵ビット長 | 公開鍵暗号 ECDSA暗号方式 (楕円曲線暗号) 鍵ビット長 | 共通鍵暗号 AES暗号方式 鍵ビット長 | SHAハッシュ関数 | HMAC 暗号ハッシュ関数 | 2030年末まで | 2031年以降 |
80以下 (112未満) | 1024 | 160 | 2TDEA | SHA-1 | -- | × Legacy use | × Legacy use |
112 | 2048 | 224 | 3TDEA | SHA-224、SHA-512/224 | -- | ○ | × Legacy use |
128 | 3072 | 256 | AES-128 | SHA-256、SHA-512/256 | SHA-1 | ○ | ○ |
192 | 7680 | 384 | AES-192 | SHA-384 | SHA-224、SHA-512/224 | ○ | ○ |
256 | 15360 | 512 | AES-256 | SHA-512 | SHA-256、SHA-512/256 | ○ | ○ |
RSA暗号方式 鍵ビット長 | 利用期限 | 特定用途での延長 |
1408-bit | 2024年末まで | 2025年末まで |
1984-bit | 2029年末まで | -- |
使い方 | 目的 | 暗号化 | 復号化 | 補足 |
その1 | メッセージの秘匿送信 | 「受信者」の「公開鍵」 | 「受信者」の「秘密鍵」 | 受信者以外は暗号化メッセージを解読できない |
その2 | 自分である事の認証・証明 | 「送信者」の「秘密鍵」 | 「送信者」の「公開鍵」 | 送信者以外は暗号化メッセージを作れない |
![]() ゴルゴ13 (Volume108) 最終暗号 (SPコミックスコンパクト) (日本語) コミック - 2007/9/28 ASIN: 4845830612 |
![]() ゴルゴ13 (129) (SPコミックス) (日本語) コミック - 2003/7/5 ASIN: 4845801299 |
![]() ゴルゴ13 THE LAST CODE〜最終暗号〜 (My first big) (日本語) ムック - 2015/8/7 ASIN: 4091198481 |
![]() 暗号解読(上) (新潮文庫) (日本語) 文庫 - 2007/6/28 ASIN: 410215972X |
● PHP言語のサンプルプログラムの実行方法 php rsa_test.php
<?php // PHPの内部で RSA鍵ファイルを生成して // 公開鍵で暗号化して、秘密鍵で復号化する // opensslコマンドで秘密鍵で復号化する $config = array( // "digest_alg" => "sha512", "private_key_bits" => 1024, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); // Create the private and public key $res = openssl_pkey_new($config); // Extract the private key from $res to $privKey openssl_pkey_export($res, $privKey); echo $privKey."\n"."\n"; // Extract the public key from $res to $pubKey $pubKey = openssl_pkey_get_details($res); $pubKey = $pubKey["key"]; echo $pubKey."\n"."\n"; $data = 'plaintext data goes here'; echo $data."\n"."\n"; // Encrypt the data to $encrypted using the public key openssl_public_encrypt($data, $encrypted, $pubKey); echo bin2hex($encrypted)."\n"."\n"; // opensslコマンドで秘密鍵で復号化する //$ openssl rsautl -decrypt -inkey privKey.pem -in test_data.enc -out decode_test_data.txt //$ cat decode_test_data.txt file_put_contents("test_data.enc", $encrypted); file_put_contents("privKey.pem", $privKey); // Decrypt the data using the private key and store the results in $decrypted openssl_private_decrypt($encrypted, $decrypted, $privKey); echo $decrypted."\n"; ?>
$ php rsa_test.php -----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL2lQb9SaXj98VrX q0RKwV8vrtAIk0TaNAG4exc546BvYC2ZOUqXxAZ6b+pQQyzjLIVTti765Ju826wY 7WbAIJ3JsEBuwkoNLcxlw6xVnE7hkaIFrHdP4yEyaCbJ4nVSoEqUovRaQJuHVCCV 9VJmQzkZeBN1NnpnrlCzkAqc8eG9AgMBAAECgYB3Q7lwV6SrCZDCn4U+woCPmw4m GG59S3iPaHRIrAhB+ikTJBxKk90ccd12Dxnf3dI+2uFk9DXW11OTDG4oQ0V+vzyE ucCaq+8kf8XN5uPaO2/lzbGGhPUnyYobUknO8aV/QqTuSJ2PZBiyIFHP1wvChQ/i N8rDOn4uVWs+3DoixQJBAPM/kWZdFKOQBOqGwt1GcIVD/N4AwEqepXjW1TZK2gBf AzyebNz4pRlCxRdxdtvH5uvTRpKN4PYpsFvg2TuN/bMCQQDHllSxik5o6mSvOymU QCvxymRazOaXFJ05d0AlJDrU6FhuKO8vJL6Melozv+n4gwA7uoHXk+QD3FZuH05B BErPAkBdFl6WRdi4H01CUwAPnf1Bgpsqei8cX0oDzHMbq9lxeurKL/aJOb40xJCY QBu0T/PXG6tOOm10xs9u2cVIPTZxAkBZkANHfFn9SJmP7MuWxEk0Am+QM3ySdWSs Ye/9+skPu4fbPzE+BY4gedM6f7ddlmOnaeVUOQBMHzcFybSTBnsPAkEAsaWJtckR QAgU9mrzlufxbbfrVRWxIgKnNHWhMhJNckBh+8gOMZk/5erDM2YXU9gkt2XP81Ta aD3UCRXnecJl8A== -----END PRIVATE KEY----- -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9pUG/Uml4/fFa16tESsFfL67Q CJNE2jQBuHsXOeOgb2AtmTlKl8QGem/qUEMs4yyFU7Yu+uSbvNusGO1mwCCdybBA bsJKDS3MZcOsVZxO4ZGiBax3T+MhMmgmyeJ1UqBKlKL0WkCbh1QglfVSZkM5GXgT dTZ6Z65Qs5AKnPHhvQIDAQAB -----END PUBLIC KEY----- plaintext data goes here 4fe170ffc2e0599379c2393573ccf4437244d759e5d6b121da05c48b2b421656ad38f07dccac2e8c2946e42cc2caba33376674b8fa3c186fff8cff485a909ce85e80ce78cc3e58b5d2e9cf93d36fcc8ec217da38fa0431fcb3f9c2e654add6c2877f417f5e5e030e43268238f4f1cda72f7eab735460cd5b0e661425b47a5c43 plaintext data goes here $ ls -l -rw-r--r-- 1 pi pi 916 Jan 14 12:59 privKey.pem -rw-r--r-- 1 pi pi 128 Jan 14 12:59 test_data.enc $ openssl rsautl -decrypt -inkey privKey.pem -in test_data.enc -out decode_test_data.txt $ cat decode_test_data.txt plaintext data goes here
-----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL2lQb9SaXj98VrX q0RKwV8vrtAIk0TaNAG4exc546BvYC2ZOUqXxAZ6b+pQQyzjLIVTti765Ju826wY 7WbAIJ3JsEBuwkoNLcxlw6xVnE7hkaIFrHdP4yEyaCbJ4nVSoEqUovRaQJuHVCCV 9VJmQzkZeBN1NnpnrlCzkAqc8eG9AgMBAAECgYB3Q7lwV6SrCZDCn4U+woCPmw4m GG59S3iPaHRIrAhB+ikTJBxKk90ccd12Dxnf3dI+2uFk9DXW11OTDG4oQ0V+vzyE ucCaq+8kf8XN5uPaO2/lzbGGhPUnyYobUknO8aV/QqTuSJ2PZBiyIFHP1wvChQ/i N8rDOn4uVWs+3DoixQJBAPM/kWZdFKOQBOqGwt1GcIVD/N4AwEqepXjW1TZK2gBf AzyebNz4pRlCxRdxdtvH5uvTRpKN4PYpsFvg2TuN/bMCQQDHllSxik5o6mSvOymU QCvxymRazOaXFJ05d0AlJDrU6FhuKO8vJL6Melozv+n4gwA7uoHXk+QD3FZuH05B BErPAkBdFl6WRdi4H01CUwAPnf1Bgpsqei8cX0oDzHMbq9lxeurKL/aJOb40xJCY QBu0T/PXG6tOOm10xs9u2cVIPTZxAkBZkANHfFn9SJmP7MuWxEk0Am+QM3ySdWSs Ye/9+skPu4fbPzE+BY4gedM6f7ddlmOnaeVUOQBMHzcFybSTBnsPAkEAsaWJtckR QAgU9mrzlufxbbfrVRWxIgKnNHWhMhJNckBh+8gOMZk/5erDM2YXU9gkt2XP81Ta aD3UCRXnecJl8A== -----END PRIVATE KEY----- Private Key Detailed Information: Key Details: Type: RSA Size (bits): 1024 Modulus (n): bda541bf526978fdf15ad7ab444ac15f2faed0089344da3401b87b1739e3a06f 602d99394a97c4067a6fea50432ce32c8553b62efae49bbcdbac18ed66c0209d c9b0406ec24a0d2dcc65c3ac559c4ee191a205ac774fe321326826c9e27552a0 4a94a2f45a409b87542095f55266433919781375367a67ae50b3900a9cf1e1bd Public Exponent (e): 65537 (0x010001) Private Exponent (d): 7743b97057a4ab0990c29f853ec2808f9b0e26186e7d4b788f687448ac0841fa 2913241c4a93dd1c71dd760f19dfddd23edae164f435d6d753930c6e2843457e bf3c84b9c09aabef247fc5cde6e3da3b6fe5cdb18684f527c98a1b5249cef1a5 7f42a4ee489d8f6418b22051cfd70bc2850fe237cac33a7e2e556b3edc3a22c5 First Prime (p): f33f91665d14a39004ea86c2dd46708543fcde00c04a9ea578d6d5364ada005f 033c9e6cdcf8a51942c5177176dbc7e6ebd346928de0f629b05be0d93b8dfdb3 Second Prime (q): c79654b18a4e68ea64af3b2994402bf1ca645acce697149d39774025243ad4e8 586e28ef2f24be8c7a5a33bfe9f883003bba81d793e403dc566e1f4e41044acf First Exponent (dmp1 = d mod (p-1)): 5d165e9645d8b81f4d4253000f9dfd41829b2a7a2f1c5f4a03cc731babd9717a eaca2ff68939be34c49098401bb44ff3d71bab4e3a6d74c6cf6ed9c5483d3671 Second Exponent (dmq1 = d mod (q-1)): 599003477c59fd48998feccb96c44934026f90337c927564ac61effdfac90fbb 87db3f313e058e2079d33a7fb75d9663a769e55439004c1f3705c9b493067b0f Coefficient ((inverse of q) mod p): b1a589b5c911400814f66af396e7f16db7eb5515b12202a73475a132124d7240 61fbc80e31993fe5eac333661753d824b765cff354da683dd40915e779c265f0