暗号化通信で使用される共通鍵暗号方式に関する記述のうち, 適切なものはどれか。
平成23年度 特別試験 ITパスポート試験 問88
This question's explanation and your answers so far.
問 88
Incorrectア
This describes public-key cryptography, not symmetric-key cryptography. In public-key cryptography the encryption key (the public key) and the decryption key (the private key) are different, and the private key cannot be derived from the public key within any realistic amount of time, so the key used for encryption may be disclosed to anyone. In symmetric-key cryptography, by contrast, the encryption key and the decryption key are the same, so if the key used for encryption is disclosed to a third party, that third party can decrypt the ciphertext using that very same key. A symmetric key must remain a secret held only by the parties to the communication, so this statement is wrong.
- イ
正解 The correct answer is イ. Symmetric-key cryptography (also called shared-key or secret-key cryptography) is a scheme in which the sender encrypts and the receiver decrypts with one and the same key; AES and DES are typical examples. Internally it splits the plaintext into blocks and repeats many rounds of lightweight operations such as exclusive OR (XOR), substitution, and transposition (reordering), so a computer can run it extremely fast. Public-key cryptography (such as RSA), on the other hand, bases its security on the difficulty of prime factorization or the discrete logarithm problem, so it requires modular exponentiation on huge integers of several hundred to several thousand bits, and processing the same amount of data takes orders of magnitude more computation and time than symmetric-key cryptography. Therefore the statement “compared with public-key cryptography, the amount of computation required for encryption and decryption is smaller” is an appropriate property of symmetric-key cryptography. This difference in properties has direct practical consequences: in encrypted communication such as SSL/TLS, public-key cryptography is used at the start of the session to deliver a symmetric key (a session key) to the other party safely, and the large volume of message data exchanged afterwards is handled with the fast symmetric-key cryptography — a hybrid scheme that combines the strengths of both. Keep in mind as well that the weak point of symmetric-key cryptography is not speed but the key distribution problem of how to get the key to the other party safely, and the key management problem that the number of keys grows with the number of communication partners.
Incorrectウ
What encryption protects is confidentiality (keeping the content from being read by a third party); it has no function for correcting errors or tampering that occur on the communication path and restoring the original data. Detecting errors is the role of parity checks, and correcting them is the role of error-correcting codes such as Hamming codes, and for tampering the basic approach is detection rather than correction — integrity is confirmed by comparing hash values, by a message authentication code (MAC), or by a digital signature. Decrypting a tampered ciphertext with symmetric-key cryptography only yields meaningless data and does not restore the original, so this statement is wrong.
Incorrectエ
With symmetric-key cryptography, people who share the same key can decrypt one another's ciphertext. If the same key is handed out to everyone, then what you send to party A can also be decrypted by party B, and the goal of keeping the content secret separately for each party cannot be achieved. A separate symmetric key must therefore be prepared for each communication partner, and when n people communicate secretly with one another the number of keys needed swells to n(n-1)/2, growing faster than the number of partners. This heavy burden of key management and key distribution is precisely the representative weak point of symmetric-key cryptography, so the statement that a single key for encryption is enough is wrong.
- The performance gap between symmetric-key and public-key cryptography — symmetric-key cryptography (AES, DES, etc.) uses the same key for encryption and decryption and does lightweight processing by repeating XOR, substitution, and transposition, so it is fast. Public-key cryptography (RSA, etc.) involves modular exponentiation on huge integers, so it is slow. Because of this gap, TLS and the like adopt a hybrid scheme that uses public-key cryptography to hand over the key and symmetric-key cryptography to encrypt the message body.
- The weak points of symmetric-key cryptography are key distribution and key management — the key must remain a secret belonging only to the parties and cannot be made public, and since a different key is needed for each partner, the number of keys required grows to n(n-1)/2 when n people communicate with one another. Note also that encryption is a technology for protecting confidentiality; integrity (tamper detection) is handled by hashes, MACs, and digital signatures, and error correction by error-correcting codes — these are separate technologies.