.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "DES_MODES 7SSL" .TH DES_MODES 7SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" des_modes \- Variantes de \s-1DES\s0 et autres algorithmes cryptographiques d'OpenSSL .SH "DESCRIPTION" .IX Header "DESCRIPTION" Plusieurs algorithmes cryptographiques d'OpenSSL peuvent être utilisés dans de nombreux modes. Ils permettent entre autres d'utiliser les chiffrements de bloc de la même façon que les chiffrements de flux. .SH "VUE D'ENSEMBLE" .IX Header "VUE D'ENSEMBLE" .SS "Mode dictionnaire de codes (Electronic Code Book, \s-1ECB\s0)" .IX Subsection "Mode dictionnaire de codes (Electronic Code Book, ECB)" Normalement disponible en tant que fonction \fIalgorithme\fR\fB_ecb_encrypt\fR(). .IP "\(bu" 2 64 bits sont chiffrés par opération. .IP "\(bu" 2 L'ordre des blocs peut être permuté sans détection. .IP "\(bu" 2 Deux blocs de même texte clair sont toujours chiffrés de la même manière (pour une même clef), rendant le mode vulnérable à une « attaque par dictionnaire ». .IP "\(bu" 2 Une erreur n'affectera qu'un seul bloc de texte chiffré. .SS "Mode enchaînement des blocs (Cipher Block Chaining, \s-1CBC\s0)" .IX Subsection "Mode enchaînement des blocs (Cipher Block Chaining, CBC)" Normalement disponible en tant que fonction \&\fIalgorithme\fR\fB_cbc_encrypt\fR(). Attention au fait que \fBdes_cbc_encrypt\fR() n'est pas vraiment \s-1CBC DES \s0(il ne met pas à jour le vecteur d'initialisation). Utilisez plutôt \fBdes_ncbc_encrypt\fR(). .IP "\(bu" 2 Un multiple de 64 bits est chiffré par opération. .IP "\(bu" 2 Le mode \s-1CBC\s0 produit le même texte chiffré à chaque fois que le même texte clair est chiffré avec la même clef et le même vecteur d'initialisation. .IP "\(bu" 2 L'opération de chaînage rend les blocs de texte chiffré dépendants du bloc de texte clair en cours et de tous les précédents, et par conséquent les blocs ne peuvent pas être permutés. .IP "\(bu" 2 L'utilisation de différents vecteurs d'initialisation empêche le même texte clair de produire le même texte chiffré. .IP "\(bu" 2 Une erreur affectera le bloc de texte chiffré en cours et tous les suivants. .SS "Mode chiffrement à rétroaction (Cipher Feedback, \s-1CFB\s0)" .IX Subsection "Mode chiffrement à rétroaction (Cipher Feedback, CFB)" Normalement disponible en tant que fonction \fIalgorithme\fR\fB_cfb_encrypt\fR(). .IP "\(bu" 2 Un nombre de bits (j) inférieur ou égal à 64 est chiffré par opération. .IP "\(bu" 2 Le mode \s-1CFB\s0 produit le même texte chiffré à chaque fois que le même texte clair est chiffré avec la même clef et le même vecteur d'initialisation. .IP "\(bu" 2 L'opération de chaînage rend les variables du texte chiffré dépendantes des variables du texte clair en cours et de toutes les précédentes, et par conséquent les variables de j bits sont chaînées et ne peuvent pas être permutées. .IP "\(bu" 2 L'utilisation de différents vecteurs d'initialisation empêche le même texte clair de produire le même texte chiffré. .IP "\(bu" 2 La force du mode \s-1CFB\s0 dépend de la taille de k (maximale si j == k). Dans cette implémentation, c'est toujours le cas. .IP "\(bu" 2 Le choix d'une petite valeur pour j nécessitera plus de cycles d'algorithme de chiffrement par unité de texte clair, et entraînera donc un coût de traitement plus important. .IP "\(bu" 2 Seuls des multiples de j bits peuvent être chiffrés. .IP "\(bu" 2 Une erreur affectera la variable de texte chiffré en cours et toutes les suivantes. .SS "Mode chiffrement à rétroaction de sortie (Output Feedback, \s-1OFB\s0)" .IX Subsection "Mode chiffrement à rétroaction de sortie (Output Feedback, OFB)" Normalement disponible en tant que fonction \fIalgorithme\fR\fB_ofb_encrypt\fR(). .IP "\(bu" 2 Un nombre de bits (j) inférieur ou égal à 64 est chiffré par opération. .IP "\(bu" 2 Le mode \s-1OFB\s0 produit le même texte chiffré à chaque fois que le même texte clair est chiffré avec la même clef et le même vecteur d'initialisation. De plus, en mode \s-1OFB,\s0 le même flux de clef est produit quand la même clef et le même vecteur d'initialisation sont utilisés. Par conséquent, pour des raisons de sécurité, un vecteur d'initialisation particulier ne devrait être utilisé qu'une seule fois pour une clef donnée. .IP "\(bu" 2 L'absence de chaînage rend le mode \s-1OFB\s0 plus vulnérable à certaines attaques. .IP "\(bu" 2 L'utilisation de différentes valeurs du vecteur d'initialisation empêche le même texte clair de produire le même texte chiffré, en produisant différents flux de clefs. .IP "\(bu" 2 Le choix d'une petite valeur pour j nécessitera plus de cycles d'algorithme de chiffrement par unité de texte clair, et entraînera donc un coût de traitement plus important. .IP "\(bu" 2 Seuls des multiples de j bits peuvent être chiffrés. .IP "\(bu" 2 Le mode d'opération \s-1OFB\s0 n'étend pas les erreurs de texte chiffré dans la sortie en texte clair correspondante. Toutes les erreurs d'un bit dans le texte clair ne provoquent qu'un bit d'erreur dans le texte clair déchiffré. .IP "\(bu" 2 Le mode \s-1OFB\s0 n'est pas autosynchrone. Si les deux opérations de chiffrement et déchiffrement se désynchronisent, le système doit être réinitialisé. .IP "\(bu" 2 Chaque réinitialisation devrait utiliser une valeur de vecteur d'initialisation différente des valeurs de vecteur d'initialisation utilisées auparavant avec la même clef. Dans le cas contraire, un flux de bits identique serait produit à chaque fois à partir des mêmes paramètres. Cela le rendrait fragile vis\-à\-vis d'une « attaque à texte clair connu ». .SS "Mode Triple \s-1ECB\s0" .IX Subsection "Mode Triple ECB" Normalement disponible en tant que fonction \fIalgorithme\fR\fB_ecb3_encrypt\fR(). .IP "\(bu" 2 Chiffrer avec clef1, déchiffrer avec clef2 et chiffrer de nouveau avec clef3. .IP "\(bu" 2 Comme pour le chiffrement \s-1ECB,\s0 mais augmente la taille de clef à 168 bits. Des attaques théoriques existent qui réduisent la longueur de clef effective à 112 bits, mais cette attaque nécessite aussi 2^56 blocs de mémoire, ce qui est peu probable, même pour la \s-1NSA.\s0 .IP "\(bu" 2 Si deux clefs sont identiques, cela est équivalent à ne chiffrer qu'une fois avec une seule clef. .IP "\(bu" 2 Si les première et dernière clefs sont identiques, la longueur de clef est de 112 bits. Des attaques permettent de réduire la force de clef effective à juste un peu plus de 56 bits, mais cela nécessite beaucoup de mémoire. .IP "\(bu" 2 Si les trois clefs sont les mêmes, c'est effectivement identique au mode \s-1ECB\s0 normal. .SS "Mode Triple \s-1CBC\s0" .IX Subsection "Mode Triple CBC" Normalement disponible en tant que fonction \&\fIalgorithme\fR\fB_ede3_cbc_encrypt\fR(). .IP "\(bu" 2 Chiffrer avec clef1, déchiffrer avec clef2 et ensuite chiffrer avec clef3. .IP "\(bu" 2 Comme pour le chiffrement \s-1CBC,\s0 mais augmente la taille de clef à 168 bits avec les mêmes restrictions que pour le mode triple \s-1ECB.\s0 .SH "NOTES" .IX Header "NOTES" Ce texte a été écrit en grande partie par Eric Young dans sa documentation d'origine pour SSLeay, le prédécesseur d'OpenSSL. À son tour, il l'a attribué à : .PP .Vb 5 \& AS 2805.5.2 \& Australian Standard \& Electronic funds transfer \- Requirements for interfaces, \& Part 5.2: Modes of operation for an n\-bit block cipher algorithm \& Appendix A .Ve .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fIblowfish\fR\|(3), \fIdes\fR\|(3), \fIidea\fR\|(3), \&\fIrc2\fR\|(3) .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.