라이브러리
[PHP] openssl_pkey_derive - 원격 및 로컬 DH 또는 ECDH 키의 공개 값에 대한 공유 비밀을 계산합니다.
OpenSSL_pkey_derive 이란?
`openssl_pkey_derive`는 PHP의 OpenSSL 확장 함수 중 하나로, 두 개의 비대칭 키를 사용하여 공통 키를 생성하는 데 사용됩니다. 이 함수는 키 교환 프로토콜에서 사용됩니다.
사용 방법
`openssl_pkey_derive` 함수는 두 개의 비대칭 키를 인수로 받습니다. 첫 번째 인수는 공통 키를 생성할 비대칭 키, 두 번째 인수는 공통 키를 생성할 비대칭 키입니다.
예제
#hostingforum.kr
php
<?php
// 비대칭 키 생성
$privateKey = openssl_pkey_new();
openssl_pkey_export($privateKey, $privateKeyStr);
$publicKey = openssl_pkey_get_details($privateKey);
$publicKeyStr = $publicKey['key'];
// 공통 키 생성
$sharedKey = openssl_pkey_derive($publicKeyStr, $privateKeyStr);
// 공통 키 출력
echo "공통 키 : " . bin2hex($sharedKey) . "
";
// 비대칭 키 삭제
openssl_free_key($privateKey);
?>
설명
위 예제는 다음 단계를 수행합니다.
1. 비대칭 키를 생성합니다.
2. 비대칭 키를 인수로 공통 키를 생성합니다.
3. 공통 키를 출력합니다.
4. 비대칭 키를 삭제합니다.
참고
`openssl_pkey_derive` 함수는 키 교환 프로토콜에서 사용됩니다. 예를 들어, Diffie-Hellman 키 교환 프로토콜에서 사용됩니다.
예제 2: Diffie-Hellman 키 교환 프로토콜
#hostingforum.kr
php
<?php
// Alice의 비대칭 키 생성
$alicePrivateKey = openssl_pkey_new();
openssl_pkey_export($alicePrivateKey, $alicePrivateKeyStr);
$alicePublicKey = openssl_pkey_get_details($alicePrivateKey);
$alicePublicKeyStr = $alicePublicKey['key'];
// Bob의 비대칭 키 생성
$bobPrivateKey = openssl_pkey_new();
openssl_pkey_export($bobPrivateKey, $bobPrivateKeyStr);
$bobPublicKey = openssl_pkey_get_details($bobPrivateKey);
$bobPublicKeyStr = $bobPublicKey['key'];
// Alice가 Bob의 공통 키를 생성
$aliceSharedKey = openssl_pkey_derive($bobPublicKeyStr, $alicePrivateKeyStr);
// Bob이 Alice의 공통 키를 생성
$bobSharedKey = openssl_pkey_derive($alicePublicKeyStr, $bobPrivateKeyStr);
// 공통 키 비교
if (bin2hex($aliceSharedKey) === bin2hex($bobSharedKey)) {
echo "공통 키 일치
";
} else {
echo "공통 키 불일치
";
}
// 비대칭 키 삭제
openssl_free_key($alicePrivateKey);
openssl_free_key($bobPrivateKey);
?>
설명
위 예제는 Diffie-Hellman 키 교환 프로토콜을 사용하여 Alice와 Bob이 공통 키를 생성하는 방법을 보여줍니다.
참고
`openssl_pkey_derive` 함수는 키 교환 프로토콜에서 사용됩니다. 예를 들어, Diffie-Hellman 키 교환 프로토콜에서 사용됩니다.
결론
`openssl_pkey_derive` 함수는 두 개의 비대칭 키를 사용하여 공통 키를 생성하는 데 사용됩니다. 이 함수는 키 교환 프로토콜에서 사용됩니다. 예를 들어, Diffie-Hellman 키 교환 프로토콜에서 사용됩니다.
참고 자료
* OpenSSL 공식 문서:
* PHP 공식 문서:
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.