13.01.2015 Aufrufe

Abschlussbericht

Abschlussbericht

Abschlussbericht

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Abschlussbericht</strong><br />

Trusted Sensor Node<br />

beschränkt. Das API wurde so definiert, dass zur Laufzeit zusätzliche Algorithmen hinzugefügt<br />

und wieder entfernt werden können. Im Rahmen des TSN-Projektes wurden die<br />

folgenden Algorithmen in das API integriert:<br />

• AES, Software-Implementierung des AES,<br />

• AES_HW, Treiber für die AES-Einheit des LEON2,<br />

• SHA1, Treiber für die SHA1-Einheit des LEON2,<br />

• PRNG, Pseudo-Zufallszahlen Generator auf Basis der SHA1-Einheit des LEON2,<br />

• ECC, Treiber für die ECC-Einheit des LEON2,<br />

• ECDSA, Implementierung von ECDSA nach ANSI X9.62 auf Basis der SHA1- und<br />

der ECC-Einheit des LEON2 und<br />

• EL-Gamal, Implementierung von EL-Gamal nach ANSI X9.63 auf Basis der ECC-<br />

Einheit des LEON2.<br />

Die Implementierung des API befindet sich in dem Verzeichnis services/crypt_api<br />

und ist im Konfigurationswerkzeug direkt unter dem Punkt CryptAPI zu finden. Für den<br />

AES Algorithmus wurden die beiden Modi Electronic Code Book (ECB) und Cipher Block<br />

Chaining (CBC) implementiert, die separat in dem Konfigurationswerkzeug ausgewählt<br />

werden können.<br />

Registrieren von Crypto-Algorithmen<br />

Einleitend wurde erwähnt, dass zur Laufzeit des TSN Algorithmen hinzugefügt und entfernt<br />

werden können. Hierfür stellt das API die beiden Funktionen crypt_api_register()<br />

und crypt_api_unregister() zur Verfügung. Beim Anmelden eines Algorithmus wird<br />

der Funktion ein Objekt vom Type crypt_api_alg_t übergeben. Dieses enthält die Parameter<br />

und Verweise auf die Implementierung des Algorithmus. Zu den Parametern gehört<br />

dessen Name, die Blockgröße und die Schlüsselgröße. Der Name muss eindeutig<br />

sein, da über diesen später eine Instanz des Algorithmus angefordert wird.<br />

Ein Algorithmus kann erst dann aus dem System entfernt werden, wenn keine weitere<br />

Instanz geöffnet ist. Ein genauere Erläuterung hierzu erfolgt im nächsten Abschnitt.<br />

CryptAPI-Verwendung<br />

Die Algorithmen des CryptAPI werden über ein einheitliches Interface aufgerufen, so dass<br />

in einer Applikation Algorithmen des gleichen Typs (Verschlüsselung, Hash oder Signatur)<br />

leicht gegeneinander ausgetauscht werden können.<br />

Für der Nutzung des Algorithmus muss mittels der Funktion crypt_api_lookup() die<br />

ID des Algorithmus ermittelt werden. Über diese ID kann mittels crypt_api_open() eine<br />

Instanz angefordert werden. Wenn eine Applikation eine Instanz angefordert hat, kann der<br />

Algorithmus nicht mehr entfernt werden, bis diese Instanz mittels crypt_api_close()<br />

freigegeben wird. Die Funktion crypt_api_open() gibt die Adresse eines Objektes vom<br />

63

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!