Hauptseite » Projekte » Verschlüsselung für Jederman

Verschlüsselung für Jederman

Jeder sollte heutzutage eine Möglichkeit kennen, seine Daten zu verschlüsseln. Deshalb habe ich hier mal den Algorithmus fur das Verfahren Ciphersaber beschrieben, der sowohl einfach nachzuprogrammieren, als auch sehr sicher ist.

Als Beispiel ist dieses Verfahren hier in Javascript implementiert.

unnz

Beschreibung von Ciphersaber

Ciphersaber beruht auf dem »IETF Standard-Entwurf für ARCFOUR (ARC4) und ist als Streamcipher effizient und schnell.
ARCFOUR besteht aus zwei Schritten: Schlüsselkonstruktion und Chiffrierung.

Die gleichen Schritte werden für Chiffrierung und Dechiffrierung durchgeführt.




Bei CipherSaber besteht das ARCFOUR Schlüsselfeld aus dem Schlüssel mit einem angehängten 10 Byte langen Initialisierungsvektor IV.

Bei Ciphersaber2 wird die Mischoperation des Statusfeldes N mal ausgeführt.


Zur vollen Ausnutzung der Stärke von CipherSaber2 wird folgendes empfohlen:

»Kryptanalyse von Ciphersaber







Erweiterung der Schlüssellänge auf 65526 Byte




Zur Erweiterung der Schlüssellänge auf 65526 Byte ist es notwendig, das Schlüsselfeld auf 64kByte zu vergrößern. Zusätzlich müssen alle modulo 256 Operationen auf modulo 65536 geändert werden. Außerdem müssen alle Byteoperationen durch 2Byte Operationen ersetzt, und eine ungerade Anzahl von Daten durch ein Füllzeichen ergänzt werden.


Dadurch ergeben sich Vor- und Nachteile.






Es folgen einige Hilfestellungen zum Nachprogrammieren.




Pseudocode Chiphersaber2

# Erzeugung IV
FOR i = 0 TO 9
	IV[i] = int(random 256)
ENDFOR
# Status erzeugen
FOR i = 0 TO 255
	S[i] = i
ENDFOR
# IV an Schlüsselfeld anhängen
len = length(K)
FOR i = 0 TO 9
	K[i + len] = IV[i]
ENDFOR
# Schlüsselfeld auf 256 Byte erweitern
j = 0
len = length(K)
FOR i = len TO 255
	K[i] = K[j] 
	j = ( j + 1 ) mod len
ENDFOR
# Statusfeld mischen
j = 0
FOR k = 1 TO N 
	FOR i = 0 TO 255
		j = ( j + S[i] + K[i] ) mod 256
		swap S[i],S[j]
	ENDFOR
ENDFOR
# hier sollte das Schlüsselfeld K gelöscht werden
FOR i = 0 TO 255
	K[i] = 0
ENDFOR
# Verschlüsseln/Entschlüsseln
i = 0
j = 0
WHILE( c = getByte )
	i = (i + 1) mod 256
	j = ( j + S[i] ) mod 256
	n = ( S[i] + S[j] ) mod 256
	swap S[i], S[j]
	putByte S[n] xor c;
ENDWHILE

Testdaten


Hier sind zwei kurze verschlüsselte Texte.

Text1 (Ciphersaber1)
Schlüssel: "asdfg" N: 1
---HEX---
d7 24 0b d3 c5 4d 66 32 8b b5 ea 4a b7 3c c1 d8
15 0a eb 18 02 db ce 63 54 2b 9f 7c 4d ea 2b 4d
89 70 eb ff 64 ad a1 bd a7 b9 a9 c9
---
---BASE64---
1yQL08VNZjKLtepKtzzB2BUK6xgC285jVCuffE3qK02JcOv/ZK2hvae5qck=
---

Text2 (Ciphersaber2)
Schlüssel: "asdfg" N: 20
---HEX---
57 a3 c7 4d 41 33 5d 2c 80 c8 c9 45 2d 79 af 0b
b5 f6 e6 8b 5f 91 cb d5 18 d9 e5 6f eb d7 6b c6
35 72 ac a2 3e 42 1b 0c e0 6a eb 9c
---
---BASE64---
V6PHTUEzXSyAyMlFLXmvC7X25otfkcvVGNnlb+vXa8Y1cqyiPkIbDOBq65w=
---

TrackBack

TrackBack-URL zu diesem Eintrag: http://vsrv.de/mt-cgi/mt-tb.cgi/44

Kommentar schreiben

(Ihr Kommentar wird zeitverzögert freigeschaltet. Danke für Ihre Geduld.)














Sitemap


no software patents


Home

Tu dich fei besinne
bleib immer emol stieh,
kimmst ah dorten hie
wu de hie willst.
Denn miet Eil un Hast
hat manicher in senn Labn
oft's Schennste verpasst.

Powered by
Movable Type 3.2


ktni