【PHP8.x】sodium_crypto_box_seal_open関数の使い方

作成日: 更新日:

sodium_crypto_box_seal_open関数は、匿名で暗号化されたメッセージを復号化する関数です。この関数は、PHPのSodium拡張機能の一部として提供されており、送信者の身元を隠しながら、特定の受信者のみがメッセージを読めるようにする「シーリング」と呼ばれる暗号化方式で作成されたデータを処理します。

具体的には、sodium_crypto_box_seal関数によって暗号化されたメッセージを受け取り、受信者自身の秘密鍵と公開鍵のペアを使用して、そのメッセージを元の平文に戻す役割を担います。この方式の大きな特徴は、メッセージを暗号化した送信者が誰であるかを、受信者側が知ることができない匿名性にあります。

この関数を使用する際は、暗号化されたメッセージ本体($ciphertext)、受信者自身の秘密鍵($secret_key)、そして受信者自身の公開鍵($public_key)の3つの情報を提供する必要があります。これらの鍵情報と暗号文が正しく一致した場合にのみ、安全にメッセージが復号されます。復号に成功すると、元のメッセージが文字列として返されますが、鍵が不一致であったり、暗号文が改ざんされているなどの理由で復号に失敗した場合はfalseが返されます。

この機能は、メッセージの内容を第三者から保護しつつ、送信者の身元を匿名に保ちたい、といったプライバシーを重視した通信シナリオで活用されます。セキュリティを必要とするアプリケーション開発において、データ秘匿と匿名性を両立させる重要な手段の一つです。

基本的な使い方

構文(syntax)

1<?php
2
3$message = sodium_crypto_box_seal_open(
4    $ciphertext,
5    $recipient_public_key,
6    $recipient_secret_key
7);

引数(parameters)

string $ciphertext, string $key_pair

  • string $ciphertext: 復号化する暗号化されたデータ(シール)
  • string $key_pair: 復号化に使用する秘密鍵(公開鍵暗号化ペアの秘密鍵部分)

戻り値(return)

string|false

暗号化されたメッセージを復号し、元の文字列を返します。復号に失敗した場合は false を返します。

【PHP8.x】sodium_crypto_box_seal_open関数の使い方 | いっしー@Webエンジニア