Paris is a personality in Greek mythology. He is an important person in the Trojan War, and Homer's "Iliad". Paris was the son of King Priam of Troy and his wife Hecuba. Because it was prophesied that he would bring the end and destruction of Troy, he was left to die in the wilderness, but was found by another man, who took him as a son and named him Paris.
Three goddesses, Hera, Aphrodite, and Athena, had a beauty contest. They all bribed Paris with different offers. Hera offered him power, Athene offered him wisdom, and Aphrodite promised him the most beautiful woman in the world, Helen.
The problem was that Helen was already married to Menelaus, the brother of Agamemnon. Paris took Helen home with him to Troy. This caused the Trojan War.
During the war, Paris killed Achilles by shooting his heel with a poisoned arrow.
Late in the war, Paris was killed by Philoctetes.
Helen of Troy
In Greek mythology, Helen, also known as Helen of Troy (Ancient Greek: Ἑλένη, Helénē), was said to have been the most beautiful woman in the world. The queen of Sparta, Helen was married to Menelaus, but later eloped with Prince Paris of Troy (most often depicted as being kidnapped) and taken to Troy, resulting in the Trojan War as the Achaeans set out to bring her back to Sparta. She was believed to be the daughter of Zeus and Leda, the wife of King Tyndareos of Sparta, and was the sister of twins Castor and Polydeukes, and Clytemnestra.
RSA algorithm
RSA (Rivest–Shamir–Adleman) is an algorithm used by modern computers to encrypt and decrypt messages. It is an asymmetric cryptographic algorithm. Asymmetric means that there are two different keys. This is also called public key cryptography, because one of the keys can be given to anyone. The other key must be kept private. The algorithm is based on the fact that finding the factors of a large composite number is difficult: when the factors are prime numbers, the problem is called prime factorization. It is also a key pair (public and private key) generator.
RSA involves a public key and private key. The public key can be known to everyone- it is used to encrypt messages. Messages encrypted using the public key can only be decrypted with the private key. The private key needs to be kept secret. Calculating the private key from the public key is very difficult.
RSA use a number of concepts from cryptography:
The keys for the RSA algorithm are generated the following way:
Notes on the above steps:
<br>
The public key is made of the modulus formula_27 and the public (or encryption) exponent formula_28.<br>
The personal key is made of p,q and the private (or decryption) exponent formula_29 which must be kept secret.
Alice gives her public key formula_49 to Bob and keeps her private key secret. Bob wants to send message formula_50 to Alice.
First he turns formula_50 into a number formula_52 smaller than formula_4 by using an agreed-upon reversible protocol known as a padding scheme. He then computes the ciphertext formula_54 corresponding to:
This can be done quickly using the method of exponentiation by squaring. Bob then sends formula_54 to Alice.
Alice can recover formula_57 from formula_54 by using her private key formula_29 in the following procedure:
Given formula_57, she can recover the original distinct prime numbers, applying the Chinese remainder theorem to these two congruences yields
Thus,
Therefore:
Here is an example of RSA encryption and decryption. The prime numbers used here are too small to let us securely encrypt anything. You can .
<br>The public key is (formula_79, formula_80). For a padded message formula_57the encryption function formula_82 becomes:
The private key is (formula_79, formula_85). The decryption function formula_86 becomes:
<br>For example, to encrypt formula_88, we calculate
To decrypt formula_90, we calculate
Both of these calculations can be computed fast and easily using the square-and-multiply algorithm for .
RSA can easily be derived using Euler's theorem and Euler's totient function.
Starting with Euler's theorem,formula_92we must show that decrypting an encrypted message, with the correct key, will give the original message.
Given a padded message "m", the ciphertext "c", is calculated byformula_93Substituting into the decryption algorithm, we haveformula_94We want to show this value is also congruent to "m".
The values of "e" and "d" were chosen to satify,formula_95Which is to say, there exists some integer "k", such thatformula_96Now we substitute into the encrypted then decrypted message,formula_97We apply Euler's theorem, and achive the result.formula_98
When used in practice, RSA must be combined with some form of padding scheme, so that no values of "M" result in insecure ciphertexts. RSA used without padding may have some problems:
In practice, the first two problems can arise when short ASCII messages are sent. In such messages, "m" might be the concatenation of one or more ASCII-encoded character(s). A message consisting of a single ASCII codice_1 character (whose numeric value is 0) would be encoded as "m" = 0, which produces a ciphertext of 0 no matter which values of "e" and "N" are used. Likewise, a single ASCII codice_2 (whose numeric value is 1) would always produce a ciphertext of 1. For systems which conventionally use small values of "e", such as 3, all single character ASCII messages encoded using this scheme would be insecure, since the largest "m" would have a value of 255, and 255 is less than any reasonable modulus. Such plaintexts could be recovered by simply taking the cube root of the ciphertext.
To avoid these problems, practical RSA implementations typically embed some form of structured, randomized padding into the value "m" before encrypting it. This padding ensures that "m" does not fall into the range of insecure plaintexts, and that a given message, once padded, will encrypt to one of a large number of different possible ciphertexts. The latter property can increase the cost of a dictionary attack beyond the capabilities of a reasonable attacker.
Standards such as PKCS have been carefully designed to securely pad messages prior to RSA encryption. Because these schemes pad the plaintext "m" with some number of additional bits, the size of the un-padded message "M" must be somewhat smaller. RSA padding schemes must be carefully designed so as to prevent sophisticated attacks. This may be made easier by a predictable message structure. Early versions of the PKCS standard used constructions, which were later found vulnerable to a practical adaptive chosen ciphertext attack. Modern constructions use secure techniques such as Optimal Asymmetric Encryption Padding (OAEP) to protect messages while preventing these attacks. The PKCS standard also has processing schemes designed to provide additional security for RSA signatures, e.g., the Probabilistic Signature Scheme for RSA (RSA-PSS).
Suppose Alice uses Bob's public key to send him an encrypted message. In the message, she can claim to be Alice but Bob has no way of verifying that the message was actually from Alice since anyone can use Bob's public key to send him encrypted messages. So, in order to verify the origin of a message, RSA can also be used to sign a message.
Suppose Alice wishes to send a signed message to Bob. She produces a hash value of the message, raises it to the power of "d" mod "n" (just like when decrypting a message), and attaches it as a "signature" to the message. When Bob receives the signed message, he raises the signature to the power of "e" mod "n" (just like encrypting a message), and compares the resulting hash value with the message's actual hash value. If the two agree, he knows that the author of the message was in possession of Alice's secret key, and that the message has not been tampered with since.