English French Actions
Alice and Bob have agreed on the secret information :math:`3` without having sent it explicitly through the network. If the integers used are large enough and have good properties, then even Eve who can capture all the messages sent by Alice and Bob cannot recover the secret key that they have exchanged. There is no formal proof of the security of the algorithm, but mathematicians have tried to solve similar problems with integers during centuries without finding an efficient algorithm. As long as the integers that are used are random and large enough, the only possible attack for Eve is to test all possible integers that could have been chosen by Alice and Bob. This is computationally very expensive. This algorithm is widely used in security protocols to agree on a secret key.
Unfortunately, the Diffie-Hellman key exchange alone cannot cope with man-in-the middle attacks. Consider Mallory who sits in the middle between Alice and Bob and can easily capture and modify their messages. The modulus and the base are public. They are thus known by Mallory as well. He could then operate as follows :
Alice chooses a secret integer and sends :math:`A= g^{a} \mod p` to Mallory
Mallory generates a secret integer, :math:`m` and sends :math:`M=g^{m} \mod p` to Bob
Bob chooses a secret integer and sends :math:`B=g^{b} \mod p` to Mallory
Mallory computes :math:`S_{A}=A^{m} \mod p` and :math:`S_{B}=B^{m} \mod p`
Alice computes :math:`S_{A}=M^{a} \mod p` and uses this key to communicate with Mallory (acting as Bob)
Bob computes :math:`S_{B}=M^{b} \mod p` and uses this key to communicate with Mallory (acting as Alice)
When Alice sends a message, she encrypts it with :math:`S_{A}`. Mallory decrypts it with :math:`S_{A}` and encrypts the plaintext with :math:`S_{B}`. When Bob receives the message, he can decrypt it by using :math:`S_{B}`.
To safely use the Diffie-Hellman key exchange, Alice and Bob must use an `authenticated` exchange. Some of the information sent by Alice or Bob must be signed with a public key known by the other user. In practice, it is often important for Alice to authenticate Bob. If Bob has a certificated signed by Ted, the authenticated key exchange could be organized as follows.
Alice chooses a secret integer : :math:`a` and sends :math:`A= g^{a} \mod p` to Bob
Bob chooses a secret integer : :math:`b`, computes :math:`B= g^{b} \mod p` and sends :math:`Cert(Bob,Bob_{pub},Ted), E_p(Bob_{priv},B)` to Alice
Alice checks the signature (with :math:`Bob_{pub}`) and the certificate and computes :math:`S_{A}=B^{a} \mod p`
Bob computes :math:`S_{B}=A^{b} \mod p`
This prevents the attack mentioned above since Mallory cannot create a fake certificate and cannot sign a value by using Bob's private key. Given the risk of man-in-the-middle attacks, the Diffie-Hellman key exchange mechanism should never be used without authentication.
Footnotes Notes de pied de page
The wikipedia page on passwords provides many of these references :
A detailed explanation of the operation of the RSA algorithm is outside the scope of this e-book. Various tutorials such as the `RSA page <>`_ on wikipedia provide examples and tutorial information.
A detailed explanation of the ECC cryptosystems is outside the scope of this e-book. A simple introduction may be found on `Andrea Corbellini's blog <>`_. There have been deployments of ECC recently because ECC schemes usually require shorter keys than RSA and consume less CPU.

Showing only subset of the strings as there were too many matches.

Component Translation Difference to current string
This translation Propagated Translated cnp3-ebook/principles/security
The following strings have the same context and source.
Propagated Translated cnp3-ebook/exercises/transport
Propagated Translated cnp3-ebook/principles/naming
Propagated Translated cnp3-ebook/exercises/dns
Propagated Translated cnp3-ebook/exercises/http
Propagated Translated cnp3-ebook/principles/referencemodels
Propagated Translated cnp3-ebook/exercises/tcp
Propagated Translated cnp3-ebook/exercises/tls
Propagated Empty cnp3-ebook/protocols/bgp
Propagated Empty cnp3-ebook/protocols/dnssec
Propagated Empty cnp3-ebook/protocols/http2
Propagated Empty cnp3-ebook/protocols/ppp
Propagated Empty cnp3-ebook/protocols/rpc
Propagated Empty cnp3-ebook/protocols/ipv6
Propagated Empty cnp3-ebook/protocols/tls
Propagated Translated cnp3-ebook/principles/sharing
Propagated Empty cnp3-ebook/protocols/udp
Propagated Empty cnp3-ebook/protocols/wifi
Propagated Translated cnp3-ebook/exercises/sockets
Propagated Translated cnp3-ebook/principles/network


User avatar gegoa

Translation changed

cnp3-ebook / principles/securityFrench

2 years ago
User avatar qdeconinck

New translation

cnp3-ebook / principles/securityFrench

2 years ago
User avatar qdeconinck

New contributor

cnp3-ebook / principles/securityFrench

New contributor 2 years ago
User avatar None

New source string

cnp3-ebook / principles/securityFrench

New source string 2 years ago
Browse all component changes

Things to check


This string has more than one translation in this project or is untranslated in some components.



English French
No related strings found in the glossary.

String information

Source string location
String age
2 years ago
Source string age
2 years ago
Translation file
locale/fr/LC_MESSAGES/principles/security.po, string 106