Maison  >  Article  >  Java  >  Partager une classification de base et un résumé du modèle de chiffrement et de déchiffrement Java

Partager une classification de base et un résumé du modèle de chiffrement et de déchiffrement Java

Y2J
Y2Joriginal
2017-05-02 11:41:151124parcourir

Cet article présente principalement des informations pertinentes résumées sur les méthodes de classification de base du cryptage et du décryptage Java. Les amis dans le besoin peuvent se référer à

Bases du cryptage et du décryptage Java :
<.>

La cryptographie est la science technique qui étudie la préparation et le déchiffrement des codes. L'étude des lois objectives des changements de mots de passe, appliquée à la compilation de codes pour garder les secrets de communication, est appelée cryptographie ; l'application au déchiffrement de codes pour obtenir des renseignements sur les communications est appelée déchiffrement, et est généralement appelée cryptographie.

Termes courants en cryptographie

Plaintext : Données à chiffrer.

Chiffré : données cryptées en clair.

Cryptage : Le processus de conversion du texte brut en texte chiffré.

Algorithme de chiffrement  : Un algorithme de conversion qui convertit le texte brut en texte chiffré.

Clé de cryptage : La clé utilisée pour effectuer les opérations de cryptage via l'algorithme de cryptage.

Déchiffrement : Le processus de conversion du texte chiffré en inscription.

Algorithme de décryptage  : Un algorithme de conversion qui convertit le texte chiffré en texte brut.

Clé de décryptage : La clé pour les opérations de décryptage en décryptant les cheveux courts.

Classification cryptozoologique

1. Par temps

a. Utilisez des caractères comme unité de cryptage de base.


b. Cryptographie moderne : les blocs d'informations sont utilisés comme unité de cryptage de base.


2 Divisé par algorithme de contenu confidentiel

a Algorithme restreint : La confidentialité de l'algorithme est basée sur le maintien du secret de l'algorithme.


b. Algorithme basé sur la clé : La confidentialité de l'algorithme est basée sur la confidentialité de la clé.


3. Divisé par système de clé

a. Cryptosystème symétrique : également appelé cryptosystème à clé unique ou à clé privée, le processus de cryptage est le même. car Le processus de décryptage utilise le même ensemble de clés. L'algorithme correspondant est un algorithme de chiffrement symétrique, tel que DES et AES.


b. Cryptosystème asymétrique : également appelé cryptosystème à double clé ou à clé publique, le processus de chiffrement et le processus de déchiffrement utilisent des clés différentes. L'algorithme correspondant est un algorithme de chiffrement asymétrique, tel que RSA.


4. Divisé par méthode de traitement du texte en clair

a. Chiffrement de flux : également appelé chiffrement de séquence, un bit est crypté à chaque fois ou un octet. du texte en clair. Par exemple, l'algorithme RC4.


b. Chiffrement par bloc : lors du cryptage, le texte en clair est divisé en groupes de longueur fixe, et la même clé et le même algorithme sont utilisés pour crypter chaque groupe et la sortie est également un texte en clair de longueur fixe. Lorsque la dernière taille de groupe ne correspond pas à la taille de groupe spécifiée,


dispose de deux modes de traitement :

Aucun mode de remplissage, traitez directement le restant Les données sont cryptées et la taille cryptée de ce groupe est liée aux données restantes


a un mode de remplissage, et les données sont remplies pour les groupes qui ne répondent pas à la longueur spécifiée ; le dernier groupe de données est identique à la taille de groupe spécifiée, puis ajoutez directement un groupe avec la taille

spécifiée ; le dernier octet de remplissage enregistre le nombre d'octets de remplissage.


Introduction au mode de fonctionnement du chiffrement bloqué

1. Modèle de livre de codes électronique - ECB

Chiffrez chaque groupe de texte brut indépendamment en utilisant la même clé. Lorsqu'il est chiffré de cette manière, le cryptage de chaque groupe est effectué indépendamment sans interférer les uns avec les autres, il peut donc être effectué en parallèle. De plus, comme chaque groupe est chiffré indépendamment, le même groupe de texte en clair aura le même texte chiffré après le chiffrement. Ce mode expose facilement la régularité statistique et les caractéristiques structurelles du regroupement de texte en clair. Ne protège pas contre les attaques de substitution.


En fait, selon la mise en œuvre, le processus de l'ECB n'est qu'un processus de regroupement du texte brut, puis de leur chiffrement séparément, et enfin de leur enchaînement. Ce mode n'est pas recommandé lorsque la longueur du message dépasse un paquet. L'ajout de bits aléatoires à chaque groupe (comme 96 bits de texte brut valide et 32 ​​bits de nombres aléatoires dans un groupe de 128 bits) peut légèrement améliorer sa sécurité, mais cela entraînera sans aucun doute l'expansion des données pendant le processus de cryptage.


Avantages :

1. Simple


2. 🎜>

3. Les erreurs ne seront pas transmises ;


Inconvénients :

Impossible de masquer le mode texte brut ; 🎜>
2. Attaque active possible sur le texte brut ;


2. Mode de lien de bloc de chiffrement - CBC


nécessite un vecteur d'initialisation. IV, le premier ensemble de texte en clair est XORé avec le vecteur d'initialisation, puis chiffré. Chaque ensemble suivant de texte en clair est XORé avec le texte chiffré de l'ensemble précédent avant d'être chiffré. Le IV n'a pas besoin d'être gardé secret, il peut être transmis en texte clair avec le texte chiffré.

Avantages :


1 Il n'est pas facile d'être activement attaqué, et la sécurité est meilleure que la BCE. Il convient à la transmission. messages longs. Ce sont les normes SSL, IPSec.

Inconvénients :


1. Pas propice au calcul parallèle ;
2. >

3. Un vecteur d'initialisation IV est requis


3. Mode de retour de texte chiffré - CFB


Un vecteur d'initialisation. IV est requis, après le chiffrement, effectuez une opération XOR avec le premier texte en clair groupé pour générer le premier groupe de texte chiffré, puis chiffrez le premier groupe de texte chiffré, puis effectuez une opération XOR avec le deuxième groupe de texte en clair pour envelopper le deuxième groupe de texte chiffré, et ainsi de suite, jusqu'à ce que le cryptage soit terminé.


Avantages :


1. Masquer le mode texte brut

2. mode ;

3. Les données plus petites que la taille du paquet peuvent être cryptées et transmises en temps opportun

Inconvénients :

1. propice au calcul parallèle ;

2. Transmission d'erreur : une unité de texte en clair est endommagée et affecte plusieurs unités

3. 🎜>
4. Mode de retour de sortie - OFB

nécessite un vecteur d'initialisation IV Après le cryptage, ces premières données cryptées sont XOR avec les premières groupées. texte en clair pour générer le premier groupe de textes chiffrés, puis chiffrer les premières données chiffrées une seconde fois pour obtenir les secondes données chiffrées. texte, et ainsi de suite jusqu'à ce que le cryptage soit terminé.


Avantages :

1. Masquer le mode texte brut ;

2. Convertir le chiffrement en bloc en mode flux ;

3. Peut crypter et transmettre des données plus petites que le paquet dans le temps ;


Inconvénients :


1. . Non Propice au calcul parallèle ;

2. Des attaques actives sur le texte clair sont possibles ;

3. >

5. Mode compteur - CTR

Utiliser un compteur La valeur initiale du compteur est cryptée et XORée avec le premier ensemble de texte en clair. génère le premier ensemble de texte chiffré, le compteur augmente, puis, après le cryptage, l'opération XOR est effectuée avec l'ensemble suivant de texte en clair pour générer l'ensemble suivant de texte chiffré, et ainsi de suite, jusqu'à ce que le cryptage soit terminé.


Avantages :

1. Peut être calculé en parallèle

2. bon comme le mode CBC ;


3. Cryptage et La solution implique uniquement le cryptage des algorithmes cryptographiques ;


Inconvénients :

1. Il n'y a pas de propagation d'erreur et il est difficile de garantir l'intégrité des données ;

Introduction à la méthode de remplissage du chiffrement par bloc

PKCS5 : la chaîne de remplissage se compose d'une séquence d'octets d'une valeur de 5, et chaque octet est rempli avec la longueur de la séquence d'octets. La taille du bloc est clairement définie comme étant de 8 bits

PKCS7 : La chaîne de remplissage se compose d'une séquence d'octets d'une valeur de 7, et chaque octet est complété avec la longueur de la séquence d'octets. La taille du bloc n'est pas définie et peut être comprise entre 1 et 255


ISO10126 : la chaîne de remplissage se compose d'une séquence d'octets, le dernier octet de cette séquence d'octets remplit la longueur de la séquence d'octets et les octets restants sont rempli de données aléatoires.


J'espère que cet article vous sera utile

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn