public-keys

公開鍵とは、誰とでも共有でき、デジタル署名の真正性を検証したり、データを暗号化したりするために使用される暗号鍵です。

公開鍵は、公開鍵暗号の基礎であり、鍵ペアの半分を構成します。もう半分は秘密鍵であり、秘密にしておく必要があります。公開鍵は、対応する秘密鍵から数学的に導き出されます。関連する秘密鍵でのみ復号できるデータを暗号化するために使用されます。ブロックチェーンのコンテキストでは、公開鍵は、ユーザーが暗号通貨やその他のデジタル資産を受け取ることができるアドレスとして機能します。また、対応する秘密鍵で作成されたデジタル署名を通じて、ユーザーがデジタル資産の所有権を検証することもできます。

公開鍵は通常、長い文字列として表されます。システムのセキュリティは、公開鍵から秘密鍵を導き出すことの数学的な難しさ(一方向関数)に依存しています。さまざまな暗号化アルゴリズム(例:ECDSA、RSA)は、異なる鍵形式と長さを利用し、システムのセキュリティとパフォーマンスに影響を与えます。

        graph LR
  Center["public-keys"]:::main
  Pre_cryptography["cryptography"]:::pre --> Center
  click Pre_cryptography "/terms/cryptography"
  Pre_asymmetric_encryption["asymmetric-encryption"]:::pre --> Center
  click Pre_asymmetric_encryption "/terms/asymmetric-encryption"
  Center --> Child_wallet_address["wallet-address"]:::child
  click Child_wallet_address "/terms/wallet-address"
  Rel_private_keys["private-keys"]:::related -.-> Center
  click Rel_private_keys "/terms/private-keys"
  Rel_digital_signatures["digital-signatures"]:::related -.-> Center
  click Rel_digital_signatures "/terms/digital-signatures"
  Rel_hashing["hashing"]:::related -.-> Center
  click Rel_hashing "/terms/hashing"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 理解度チェック

1 / 3

🧒 5歳でもわかるように説明

Think of a [public key](/ja/terms/public-key) like your home mailbox address. Anyone can see it and drop a letter (encrypted message) in, but only you have the special key ([private key](/ja/terms/private-key)) to open the mailbox and read the letters.

🤓 Expert Deep Dive

Public keys are the public component of an asymmetric key pair, generated using algorithms like RSA, ECC (Elliptic Curve Cryptography), or Diffie-Hellman. In RSA, the public key consists of an exponent 'e' and a modulus 'n' (product of two large primes), used for encryption (C = M^e mod n). Decryption requires the private key, which includes the exponent 'd' derived from the prime factors of 'n'. The security relies on the difficulty of factoring 'n'.

In ECC, public keys are points on an elliptic curve, derived by scalar multiplication of a base point (G) with the private key (k): Q = k * G. Verification of a signature (created using the private key 'k') involves checking an equation using the public key 'Q', the message hash, and random nonces, leveraging the difficulty of the Elliptic Curve Discrete Logarithm Problem (ECDLP).

Public keys are essential for establishing secure communication channels (e.g., TLS/SSL), verifying digital signatures, and managing cryptocurrency wallets. The concept of a "trust anchor" is crucial in PKI, where a root certificate's public key is implicitly trusted, and subsequent certificates are verified hierarchically. Vulnerabilities can arise from weak key generation, improper implementation (e.g., side-channel attacks), or the eventual threat of quantum computers breaking current asymmetric algorithms, necessitating research into post-[quantum cryptography](/ja/terms/post-quantum-cryptography).

🔗 関連用語

さらに詳しく:

📚 出典