2014-05-06 1 views
0

Je souhaite crypter des données purement aléatoires avec une seule clé plus courte que le texte en clair. Dois-je utiliser AES ou un autre algorithme de chiffrement robuste, ou puis-je utiliser OTP, c'est-à-dire uniquement le texte en clair (purement aléatoire) avec la clé unique, bloc par bloc?La touche "One-Time-Pad" peut-elle être réutilisée si le texte en clair crypté est aléatoire?

E.g. les données ont une longueur de 1024 bits et sont aléatoires. La clé a une longueur de 128 bits (aléatoire aussi). Est-il sûr de crypter des données en xoring 8 blocs successifs de 128 bits avec la même clé?

+1

Que voulez-vous dire par «sûr»? Je suppose que la réponse dépend de cela. –

Répondre

0

E.g. les données ont une longueur de 1024 bits et sont aléatoires. La clé est longue de 128 bits (aléatoire aussi). Est-il sûr de crypter des données en xoring 8 blocs de 128 bits successifs avec la même clé?

Si vos données sont aléatoires, alors la réponse est oui.

Vous pouvez considérer vos données réelles comme des clés OTP ici. C'est purement aléatoire et n'est utilisé qu'une seule fois, donc il n'y a aucun moyen de récupérer des clés ou des données.

0

Si les données elles-mêmes sont aléatoires, alors il est également probable que l'espace de texte, donc toute transformation conduira à la sécurité. XOR ou chiffrement de flux maintient la relation que les blocs ont en chiffrement texte comme ci-dessous ..

from Crypto.Cipher import ARC4 
key = '1234567812345678' 
obj1 = ARC4.new(key) 
obj2 = ARC4.new(key) 
d1= obj1.encrypt('\x01\x82\x83\x04\x05\x06\x10\x81\x23\x32\x33\x34') 
d2= obj2.encrypt('\x81\x02\x83\x84\x85\x86\x90\x01\xa3\xb2\x33\xb4') 
print repr(d1) 
print repr(d2) 


p1='';p2='' 
for i in d1: 
    if ord(i)>=128: p1+=chr(ord(i)-128)  
    else: p1+=chr(ord(i)) 

print; print 
for i in d2: 
    if ord(i)>=128: p2+= chr(ord(i)-128)  
    else: p2+=chr(ord(i)) 
print p1==p2`  

sortie:

'\xbaq\xba\xd0\x0c\xb7\xce&\xd3\x019\xfb' 
':\xf1\xbaP\x8c7N\xa6S\x819{' 


True 
1

Votre question demande «Est-il sûr de chiffrer les données par XOR 8 successives 128 Blocs de bits avec la même clé? "

Ce n'est pas un One-Time-Pad. Un tampon à usage unique est utilisé une fois et une fois seulement. Toute compromission d'une partie des données non cryptées permettrait la récupération de tout ou partie de la clé, et donc la récupération d'une plus grande partie des données non cryptées.

Un système de cryptage sécurisé est sécurisé contre un attaquant connaissant tout ou partie du texte en clair: une "attaque en clair" connue. Votre système n'est pas sûr. il est vulnérable à une attaque en clair.

Questions connexes