L'introduction
À la longueur de plusieurs siècles l'humanité utilisait les méthodes cryptographiques pour la protection de l'information à sa transmission et la conservation. Approximativement à la fin de XIX s. ces méthodes sont devenues l'objet de l'étude mathématique. La branche des mathématiques étudiant la protection de l'information, s'appelle traditionnellement криптологией [cryptology] et se subdivise sur la cryptographie [cryptography], occupant de l'élaboration des nouvelles méthodes et l'argumentation de leur convenance, et криптоанализ [cryptanalysis], la tâche de qui - l'étude intense des méthodes existant, souvent en vue du dévoilement réel des secrets de l'autre partie. La cryptographie et криптоанализ se trouvent en étroite collaboration l'un avec l'autre et avec les besoins pratiques et se développent par les organisations parallèlement fermées gouvernementales de plusieurs États et la communauté internationale scientifique.
À présent il y a mille les systèmes cryptographiques réalisés программно, ainsi que аппаратно. Parmi eux on peut mettre en relief les systèmes, le principe lui-même cryptographique du travail de qui est tenu en secret, comme, par exemple, le circuit Clipper proposé par le gouvernement des États-Unis à titre du standard cryptographique pour les télécommunications, et les systèmes, l'algorithme de qui est ouvert, mais confidentiel est seulement défini, en général petit, la portion de l'information appelée comme la clé (confidentielle) [(secret) key] - se rapporte à ceux-ci la plupart des systèmes, réalisé программно et destiné pour une large utilisation. Par la suite nous examinerons seulement les systèmes du deuxième type.
Dans le système du type examiné la tâche de l'ouverture du système, c'est-à-dire les violations de la protection de l'information sans connaissance préalable de la clé, en général, théoriquement разрешима à la présence près de la partie ouvrant des ressources non limitées calculatoires. Du point de vue mathématique la sécurité du système cryptographique est définie par la complexité de la décision de cette tâche en tenant compte des ressources réelles calculatoires de la partie potentielle ouvrant. Du point de vue d'organisation a une importance le rapport du coût de l'ouverture potentielle et la valeur de l'information protégée.
L'étude mathématique de la sécurité des systèmes cryptographiques est embarrassée par l'absence de la notion universelle mathématique de la complexité. Pour cette raison la sécurité de la plupart des systèmes cryptographiques à présent il est impossible non seulement prouver, mais même adéquatement formuler. En général, l'application de n'importe quel système cryptographique est fondée sur les résultats de plusieurs années pratique криптоанализа des systèmes du type donné, dans n'importe quel degré renforcé par l'argumentation mathématique. Cette argumentation peut réduire la tâche du dévoilement donné криптосистемы à quelque tâche de la théorie des nombres ou комбинаторики, la décision de qui est considérée non réellement réalisable, ou qu'est plus préférable, vers la classe des tâches NP-complètes, сводимость vers qui est "le standard" de l'insolubilité pratique. En même temps, la notion de l'insolubilité pratique pour les tâches concrètes pratiques n'est pas nettement définie ou stable, grâce au développement des équipements informatiques et les méthodes криптоанализа.
La cryptographie avec la clé symétrique
Longtemps le schéma traditionnel cryptographique était le schéma avec la clé symétrique [symmetric key, dual key]. Dans ce schéma il y a une clé, qui participe à шифровании et le décodage de l'information. La procédure chiffrant à l'aide de la clé produit une série d'actions sur les données initiales, дешифрующая la procédure à l'aide de la même clé produit les actions inverses sur le code. Le décodage du code sans clé est supposé pratiquement irréalisable. Si l'information chiffrée ainsi est transmise selon ordinaire, i.e. à non protégé, la voie de communication, la même clé doit se trouver à l'expéditeur et le destinataire, en conséquence de quoi apparaît la nécessité du canal supplémentaire protégé pour la transmission de la clé, augmente la vulnérabilité du système et augmentent les difficultés d'organisation.
À la classe des algorithmes avec la clé symétrique se rapporte la méthode "du carnet à une seule fois” [one-time pad], consistant à побитовом l'addition (“гаммировании”) du texte chiffré avec la succession accidentelle des bits - la clé (voir [S94]). La longueur la clé doit coïncider avec la longueur le texte chiffré et chaque segment de la clé doit être utilisé une fois; dans le cas contraire le texte cède facilement au déchiffrement non sanctionné. À l'exécution de ces conditions la méthode donnée est la seule méthode théoriquement stable contre криптоанализа de l'adversaire avec les ressources non limitées calculatoires. Malgré cela, à présent la méthode "du carnet à une seule fois” n'est pas appliquée pratiquement à cause des complexités d'organisation liées à la génération, la transmission et la conservation des clés super-longues utilisées dans lui.
L'algorithme DES (Data Encryption Standard), 1976 accepté le 23 novembre à titre du standard officiel cryptographique des États-Unis pour la protection sans esprit critique [unclassified] les informations (voir [S94], s 219-243) peut servir d'un autre exemple du schéma avec la clé symétrique. Dans le standard on insérait la position sur obligatoire ресертификации (la révision) de l'algorithme toutes les cinq années; dernier une telle ресертификация avait lieu en 1992 Au dire des experts, en rapport avec les succès définis à криптоанализе DES et l'apparition des nouvelles méthodes шифрования avec la clé symétrique, l'algorithme peut ne pas être ресертифицирован sur le délai suivant de cinq ans. Néanmoins, DES il croit toujours криптографически comme l'algorithme ferme et il reste au schéma le plus répandu шифрования avec la clé symétrique.
Le standard russe de la cryptographie avec la clé symétrique est défini la norme d'État 28147-89 “les Systèmes du traitement de l'information. La protection cryptographique. L'algorithme de la transformation cryptographique”, qui était mis en vigueur le 1 juillet 1990 À la différence de DES, le standard contient l'indication de ce qu'il “selon les possibilités n'inflige pas les restrictions sur le degré du caractère secret de l'information protégée”. En gros l'algorithme la norme d'État 28147 est analogue DES, mais il y a une série de différences essentielles, comme, par exemple, la longueur la clé et l'interprétation du contenu des noeuds du remplacement [dans le schéma DES appelé “S-boxes”]. Pendant que le remplissage des noeuds du remplacement DES est optimisé du point de vue de la résistance cryptographique et est évidemment indiqué dans le standard, le remplissage des noeuds du remplacement la norme d'État 28147 “est l'élément confidentiel et est livré dans l'ordre établi”. En prenant en considération qu'il en même temps “est l'élément à long terme clé total au réseau de l'ORDINATEUR”, et que "la règle" de la livraison peut ne pas prévoir l'optimisation cryptographique, ce point du standard semble à un de ses faibles, embarrassant la réalisation et ne contribuant pas à la résistance cryptographique. Cependant au devoir des significations optimisées pour les noeuds du remplacement la résistance cryptographique de l'algorithme est comparée avec la résistance DES.
La cryptographie avec la clé ouverte
En 1976 U.Diffi et M.Hellmanom [DH76] était proposé un nouveau type du système cryptographique - le système avec la clé ouverte [public key cryptosystem]. Dans le schéma avec la clé ouverte se trouve deux clés, ouvert [public] et confidentiel [private, secret], choisi de manière que leur application successive vers le tableau laisse ce massif sans changements. La procédure chiffrant utilise la clé ouverte, дешифрующая - confidentiel. Le décodage du code sans connaissance de la clé confidentielle est pratiquement irréalisable; en particulier, est pratiquement insoluble la tâche du calcul de la clé confidentielle de la clé connue ouverte. L'avantage principal de la cryptographie avec la clé ouverte - le mécanisme simplifié de l'échange pour les clés. À la réalisation de la communication selon la voie de communication on transmet seulement clé ouverte que rend possible l'utilisation pour ce but du canal ordinaire et élimine le besoin du canal spécial protégé pour la transmission de la clé.
Avec l'apparition des systèmes avec la clé ouverte la notion sur la protection de l'information, mais avec lui les fonctions de la cryptographie se sont élargies considérablement. Si avant la tâche principale des systèmes cryptographiques on croit sûr шифрование les informations, à présent le domaine d'utilisation de la cryptographie insère aussi la signature en chiffre (аутентификацию), l'obtention d'une licence, нотаризацию (свидетельствование), la gestion distribuée, les schémas du vote, l'argent électronique et plusieurs autres (voir [BFS91], ч.7, [S94], ч.1). Les fonctions les plus répandues des systèmes cryptographiques avec la clé ouverte - шифрование et la signature en chiffre, et en outre le rôle de la signature en chiffre a augmenté ces derniers temps en comparaison de traditionnel шифрованием : certains des systèmes avec la clé ouverte soutiennent la signature en chiffre, mais ne soutiennent pas шифрование.
La signature en chiffre est utilisée pour аутентификации des textes transmis par les canaux de télécommunication. Elle est analogue à la signature ordinaire écrite à la main et possède ses propriétés principales : certifie que le texte signé part notamment de la personne qui ont signé et ne fait pas à cette personne la plus de la possibilité refuser les obligations liées au texte signé. La signature en chiffre représente une petite quantité de l'information supplémentaire transmise avec le texte signé. À la différence de шифрования, à la formation de la signature on utilise la clé confidentielle, mais au contrôle - ouvert.
À cause des particularités des algorithmes étant à la base des systèmes avec la clé ouverte, leur puissance au traitement du bloc unitaire de l'information d'habitude aux dizaines des fois moins que la puissance des systèmes avec la clé symétrique sur le bloc de la même longueur. Pour l'augmentation de l'efficacité des systèmes avec la clé ouverte on applique souvent les méthodes mélangées réalisant les algorithmes cryptographiques des deux types. À шифровании les informations sort la clé accidentelle symétrique, s'offre l'algorithme avec la clé symétrique pour шифрования du texte initial. Mais puis l'algorithme avec la clé ouverte pour шифрования de la clé symétrique. Par le canal de communication on transmet le texte chiffré par la clé symétrique, et la clé symétrique chiffrée par la clé ouverte. Pour le déchiffrement de l'action sont produits dans l'ordre inverse : d'abord à l'aide de la clé confidentielle du destinataire on déchiffre la clé symétrique, mais puis à l'aide de la clé symétrique - le texte chiffré reçu par le canal. Pour la formation de la signature électronique d'après le texte signé on calcule son hesh-fonction (digest) unidirectionelle [one-way hash function, digest], représentant un bloc court de l'information caractérisant tout le texte en tout; la tâche de la restitution du texte de son hesh-fonction ou la sélection d'un autre texte ayant la même hesh-fonction, est pratiquement insoluble. À la formation directe de la signature, au lieu de шифрования par la clé confidentielle de chaque bloc du texte la clé confidentielle est appliquée seulement à l'hesh-fonction; par le canal on transmet le texte lui-même et la signature formée de l'hesh-fonction. Pour le contrôle de la signature on calcule de nouveau l'hesh-fonction du texte reçu par le canal, après quoi à l'aide de la clé ouverte est contrôlé que la signature correspond notamment à la signification donnée de l'hesh-fonction. Les algorithmes du calcul des hesh-fonctions unidirectionelles, en général, sont liés logiquement étroitement aux algorithmes шифрования avec la clé symétrique.
Les méthodes décrites hybrides шифрования et la signature en chiffre reunissent dans eux-mêmes l'efficacité des algorithmes avec la clé symétrique et la propriété de l'indépendance selon les canaux supplémentaires confidentiels pour la transmission des clés, inhérent aux algorithmes avec la clé ouverte. La résistance cryptographique de la méthode concrète hybride est définie par la résistance du groupe le plus faible dans la chaîne comprenant les algorithmes avec symétrique et avec la clé ouverte, choisi pour sa réalisation.
Le système RSA
En 1978 de R.Rivest, A.Shamir et L.Adleman [RSA78] ont créé premier криптосистему avec la clé ouverte pour шифрования et la signature en chiffre, recevant le nom RSA (selon les premières lettres des noms des auteurs). Le système fait un lapsus dans les termes de la théorie élémentaire des nombres. Sa sécurité dépend de l'insolubilité pratique de la tâche de la décomposition du grand nombre naturel sur les multiplicateurs simples. L'état moderne des algorithmes de la factorisation (les décompositions sur les multiplicateurs) permet de décider cette tâche pour les nombres de la longueur jusqu'à 430 bats; à partir de cela, la clé de la longueur à 512 bits est considérée sûre pour la protection des données sur le délai jusqu'à 10 ans, mais à 1024 bits - absolument sûr. La longueur la signature dans le système RSA coïncide avec la longueur la clé.
Malgré le fait que manque математически l'information prouvée de la tâche du dévoilement RSA vers la tâche de la décomposition le multiplicateur, ainsi que les tâches de la décomposition sur le multiplicateur vers la classe des tâches NP-complètes, le système a subi l'essai par la pratique et est le standard reconnu de-facto dans la cryptographie industrielle, ainsi que le standard officiel de la série d'organisations internationales. D'autre part, la diffusion libre du logiciel fondé sur RSA, est limitée par ce que l'algorithme RSA est protégé aux États-Unis par la série des patentes.
Le projet DSS
En 1991 aux États-Unis on publiait le projet du standard fédéral de la signature en chiffre - DSS (Digital Signature Standard, [DSS91], voir aussi [S94], s 304-314), la signature en chiffre décrivant le système DSA (Digital Signature Algorithm). Un des critères principaux à la création du projet était sa propreté de patente.
L'algorithme proposé DSA, a, comme RSA, le caractère teoretiko-numérique, et est fondé sur le système cryptographique El-Gamalja [E85] dans la variante de Shnorra [S89]. Sa sécurité est fondée sur l'insolubilité pratique du cas particulier défini de la tâche du calcul du logarithme discontinu. Les méthodes modernes de la décision de cette tâche ont approximativement la même efficacité que les méthodes de la décision de la tâche de la factorisation; en raison de cela il est proposé d'utiliser les clés de la longueur de 512 à 1024 bats avec les mêmes caractéristiques de la sécurité que dans le système RSA. La longueur la signature dans le système DSA moins qu'à RSA, fait 320 bits.
Dès le moment de la publication le projet a reçu beaucoup de rappels critiques (voir, par ex., [R92]), plusieurs de qui étaient pris en considération à sa mise au point. Un de principaux arguments contre DSA est ce que, à la différence de la tâche totale du calcul du logarithme discontinu, son cas particulier utilisé dans le schéma donné, est peu étudié et a, probablement, une beaucoup plus petite complexité de l'ouverture. En outre le standard ne spécifie pas le moyen de la réception des nombres pseudo-accidentels utilisés à la formation de la signature en chiffre, et n'indique pas que cet élément de l'algorithme est un des plus critique selon la résistance cryptographique.
Les fonctions DSA sont limitées seulement par la signature en chiffre, le système n'est pas destiné principalement pour шифрования des données. Selon la puissance le système DSA est comparé avec RSA à la formation de la signature, mais il est essentiel (à 10-40 fois) lui cède au contrôle de la signature.
Avec le projet DSS on publie le projet du standard SHS (Secure Hash Standard), décrivant l'hesh-fonction unidirectionelle SHA (Secure Hash Algorithm), recommandé pour l'utilisation avec DSA (voir [S94], s 333-336). L'Hesh-fonction SHA est la modification de l'algorithme MD4 bien connu dans la littérature cryptographique.
Le standard russe de la signature en chiffre
En 1993 en Russie on publiait deux étalons nationaux “les Procédures de la production et le contrôle de la signature électronique en chiffre sur la base de l'algorithme asymétrique cryptographique” et “la Fonction хэширования”, sous le titre total “la Télématique. La protection cryptographique de l'information”.
Le standard “les Procédures de la production et le contrôle de la signature électronique en chiffre...” Est pareil en plusieurs cas à l'analogue américain DSS. Pour la formation et le contrôle de la signature en chiffre dans lui on utilise le même algorithme El-Gamalja et Shnorra qu'à DSS, avec les modifications insignifiantes. Il y a deux longueurs alternatives la clé, 512 et 1024 bits; la longueur la signature fait 512 bits.
Pour la génération des clés on propose une série de nouveaux algorithmes. Les clés reçues à l'aide de ces algorithmes, ont l'aspect spécial que peut simplifier potentiellement la tâche de l'ouverture du système en comparaison de DSS. La critique DSS liée à l'argumentation pas assez d'élaborée théorique de l'algorithme, en cas de росийского du standard s'adoucit un peu par ce que l'élément de la clé q sort plus long, qu'à DSA. La critique. Lié à l'absence de la spécification sur le moyen de la réception des nombres pseudo-accidentels, il reste dans la force.
Comme DSS, le standard russe définit seulement l'algorithme de la signature en chiffre, mais non шифрования. La puissance des deux algorithmes coïncide approximativement.
Le standard “la Fonction хэширования” est destiné à l'utilisation ensemble avec le standard “les Procédures de la production et le contrôle de la signature en chiffre” et représente algorithme original fondé sur la méthode шифрования avec la clé symétrique la norme d'État 28147. Le standard ne contient pas l'argumentation cryptographique de l'algorithme choisi et ne corrige pas la norme d'État 28147 dans la partie du remplissage des noeuds du remplacement.
Malgré les manques indiqués, le système décrit dans le standard russe, est employé dans plusieurs domaines, particulièrement pour les applications commerciales.
Le système de programme cryptographique de TerKript
De Saint-Pétersbourg МГП “ТЕРКОМ” on élabore le système cryptographique de TerKript représentant l'ensemble des programmes dans la langue C du standard ANSI. Le système réalise définitivement les algorithmes DES, la norme d'État 28147, RSA, DSS/SHS et les standards russes cryptographiques. Les algorithmes sont réalisés à la base des procédures totales de la théorie des nombres utilisant les méthodes modernes teoretiko-numériques pour l'acquisition de l'efficacité maximum. Il y a une version spéciale du système optimisée pour le travail sur les ordinateurs personnels IBM AT 286, 386, 486.
La littérature