Abschlussbericht
Abschlussbericht
Abschlussbericht
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