【PHP8.x】sodium_crypto_kx_seed_keypair関数の使い方
作成日: 更新日:
sodium_crypto_kx_seed_keypair関数は、鍵交換プロトコルで使用される公開鍵と秘密鍵のペアを、与えられたシード(種)から決定論的に生成する関数です。この関数は、PHPの暗号ライブラリであるSodium拡張の一部として提供されています。
通常、暗号化に利用する鍵ペアは、予測不可能な乱数を用いてランダムに生成されます。しかし、このsodium_crypto_kx_seed_keypair
関数では、ユーザーが指定した固定の32バイトのシード値を用いることで、常に同じ鍵ペアを再現して生成することができます。これは、例えばテスト環境で同じ鍵ペアを繰り返し使用したい場合や、特定のプロトコル設計上、シードから鍵ペアを派生させる必要がある場合などに役立ちます。
引数として32バイトの文字列形式のシードを受け取ります。そして、戻り値として、秘密鍵と公開鍵が連結された64バイトの文字列を返します。この64バイトのうち、最初の32バイトが秘密鍵、続く32バイトが公開鍵となります。シードが外部に漏れると、同じシードから誰でも同じ鍵ペアを生成できてしまうため、シードの管理には十分な注意が必要です。セキュリティ要件の高い本番環境では、通常はランダムな鍵生成関数であるsodium_crypto_kx_keypair
の利用が推奨されます。
基本的な使い方
構文(syntax)
1sodium_crypto_kx_seed_keypair(string $seed): string
引数(parameters)
string $seed
- string $seed: 鍵ペア生成に使用するシード値(バイト列)を指定する文字列
戻り値(return)
string
この関数は、暗号化通信の鍵ペア(公開鍵と秘密鍵)を生成します。生成された鍵ペアは、バイナリ形式の文字列として返されます。