【PHP8.x】sodium_crypto_sign_ed25519_pk_to_curve25519関数の使い方
作成日: 更新日:
sodium_crypto_sign_ed25519_pk_to_curve25519関数は、Ed25519デジタル署名スキームで利用される公開鍵を、Curve25519楕円曲線ベースのDiffie-Hellman鍵共有スキームで使用される公開鍵に変換する関数です。この関数は、PHPのLibsodium拡張機能の一部として提供されており、高度な暗号処理を安全に扱うために用いられます。
Ed25519は、メッセージの正当性を確認し、内容が改ざんされていないことを保証するためのデジタル署名に特化した暗号アルゴリズムです。一方、Curve25519 Diffie-Hellmanは、二者間で安全に共通の秘密鍵を生成するための鍵共有プロトコルであり、主にセキュアな通信路の確立に利用されます。
この関数の主な目的は、異なる暗号プロトコル間での鍵の互換性を持たせることです。具体的には、Ed25519で署名に利用していた公開鍵を、鍵共有のためのCurve25519の公開鍵としても再利用できるように変換します。これにより、鍵の管理が簡素化され、システム設計の柔軟性が向上します。例えば、あるエンティティがデジタル署名によって自身を認証しつつ、同時にその公開鍵を使って安全な通信のための共有鍵を確立したい場合などに非常に有効です。この関数は、入力としてEd25519公開鍵のバイナリ文字列を受け取り、対応するCurve25519公開鍵のバイナリ文字列を返します。
基本的な使い方
構文(syntax)
1<?php 2 3$ed25519_keypair = sodium_crypto_sign_keypair(); 4$ed25519_pk = sodium_crypto_sign_publickey($ed25519_keypair); 5 6$curve25519_pk = sodium_crypto_sign_ed25519_pk_to_curve25519($ed25519_pk); 7 8// $curve25519_pk holds the converted Curve25519 public key 9 10?>
引数(parameters)
string $ed25519_pk
- string $ed25519_pk: Ed25519公開鍵をCurve25519公開鍵に変換するための、Base64エンコードされたEd25519公開鍵文字列
戻り値(return)
string
Ed25519公開鍵をCurve25519公開鍵に変換したバイナリ形式の文字列を返します。