13.01.2014 Aufrufe

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Implementierung<br />

passwordSalt , 1000) ;<br />

6 aes . Key = deriveBytes . GetBytes ( aes . KeySize /<br />

8);<br />

7 aes .IV = deriveBytes . GetBytes ( aes . BlockSize<br />

/ 8);<br />

8<br />

9 using ( MemoryStream ms = new MemoryStream ())<br />

10 {<br />

11 using ( CryptoStream cs = new<br />

CryptoStream (ms , aes .<br />

CreateDecryptor () ,<br />

CryptoStreamMode . Write ))<br />

12 {<br />

13 cs. Write ( encryptedMessage ,<br />

0, encryptedMessage .<br />

Length );<br />

14 }<br />

15<br />

16 return ms. ToArray ();<br />

17 }<br />

18 }<br />

19 }<br />

Listing 21: Entschlüsseln der Daten mit der Decrypt() Methode.<br />

Doch Verschlüsselung alleine reicht nicht aus. Zwar kann die Vertraulichkeit gewahrt<br />

werden, aber nicht die Integrität. Um die Ingerität der Daten zu wahren, muss den Daten<br />

eine Checksumme hinzugefügt werden vor dem verschlüsseln. Daher wurde die Klasse<br />

Checksum mit den Methoden GetBytesWithChecksum(), IsValid() und GetOriginalData<br />

() umgesetzt, wie in Abbildung 32 zu sehen ist.<br />

Checksum<br />

+ GetBytesWithChecksum(byte[]) : byte[]<br />

+ GetBytesWithChecksum(string) : byte[]<br />

+ GetOriginalData(byte[]) : byte[]<br />

+ IsValid(byte[]) : bool<br />

Abbildung 32: Klassendiagramm der Klasse Checksum.<br />

Mit der GetBytesWithChecksum() Methode erhält der Anwender ein Byte-Array als<br />

Rückgabewert von seinen übergeben Daten. Dieses Byte-Array enthält die Nutzdaten,<br />

den Hashwert der Nutzdaten und die Länge des Hashwerts. In Abbildung 33 wird dies<br />

verdeutlicht.<br />

64

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!