Tham khảo tài liệu 'hacker professional ebook part 156', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | authentication are needed. And since any cryptographic hash is vulnerable to birthday attacks the small 64-bit block size implies that we should be able to find two different messages with the same hash value by constructing and hashing only about 232 different messages. Another approach to message authentication is to use an authenticating block cipher this is often a block cipher which has a large block with some extra data inserted in an authentication field as part of the plaintext before enciphering each block. The extra data can be some transformation of the key the plaintext and or a sequence number. This essentially creates a homophonic block cipher If we know the key many different ciphertexts will produce the same plaintext field but only one of those will have the correct authentication field. The usual approach to authentication in a public key cipher is to encipher with the private key. The resulting ciphertext can then be deciphered by the public key which anyone can know. Since even the wrong key will produce a deciphered result it is also necessary to identify the resulting plaintext as a valid message in general this will also require redundancy in the form of a hash value in the plaintext. The process provides no secrecy but only a person with access to the private key could have enciphered the message. User Authentication The classical approach to user authentication is a password this is something you know. One can also make use of something you have such as a secure ID card or something you are biometrics . The classic problem with passwords is that they must be remembered by ordinary people and so carry a limited amount of uniqueness. Easy-to-remember passwords are often common language phrases and so often fall to a dictionary attack. More modern approaches involve using a Diffie-Hellman key exchange plus the password thus minimizing exposure to a dictionary attack. This does require a program on the user end however. Key Authentication In .