29.01.2013 Aufrufe

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

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.

Anhang A: Tests 62<br />

Fehleraufdeckung:<br />

Es wird gezeigt, dass ändern eines Bits zu <strong>einer</strong> anderen Signatur führt. Für diese Zwecke<br />

wird im ROM eine Konstante angelegt nämlich:<br />

“static const unsigned int testvar = 0;”<br />

Der ROM-Test wird ausgeführt. Die Signatur, die berechnet wurde, ist die folgende:<br />

0xBCDE18DA - Hexadezimal oder 3168671962 - Dezimal<br />

Nach diesem Durchlauf wird nur die Konstante geändert, und zwar wie folgt:<br />

“static const unsigned int testvar = 1;”<br />

Der ROM-Test wird wieder ausgeführt. Die Signatur die berechnet wurde, ist die folgende:<br />

0x5860C61F – Hexadezimal oder 1482737183 - Dezimal<br />

Die berechneten Signaturen unterscheiden sich deutlich. Jetzt wird überprüft ob das<br />

Ändern der Konstanten in den ursprünglichen Zustand auch die zuerst berechnete Signatur<br />

als Ergebnis wieder zurückgegeben wird. Die Konstante wird wieder geändert wie<br />

folgt:<br />

“static const unsigned int testvar = 0;”<br />

Der ROM-Test wird wieder ausgeführt. Die Signatur die berechnet wurde, ist die folgende:<br />

0xBCDE18DA – Hexadezimal oder 3168671962 - Dezimal<br />

Das ist die gleiche Signatur, die im ersten Test das Ergebnis war. Aus diesem wird ersichtlich,<br />

dass das Ändern eines einzelnen Bits zu <strong>einer</strong> anderen Signatur führt.<br />

2. RAM-Test<br />

Ausführungszeit:<br />

Die Ermittlung der Ausführungszeit <strong>für</strong> eine Zeitscheibe des RAM-Tests geschieht genau<br />

wie beim ROM-Test: mit Hilfe von LEDs.<br />

Für eine Zeitscheibe des RAM-Tests werden laut Osziloskops 71ms benötigt. Bis ein<br />

Wort selbst und das Wort mit allen 8 Sektoren getestet wird, werden in etwa 71*8 ≈ 568<br />

ms benötigt. Bis ein Sektor vollständig getestet ist und weggelassen werden kann vergehen<br />

≈ 581632 ms oder etwa 10min. Diese Zeit wird benötigt um den größten Teil des<br />

Tests (von acht die immer schneller werden) auszuführen, falls dieser am Stück ausgeführt<br />

sein sollte. Die weiteren Berechnungen werden immer Kürzer, weil immer weniger<br />

Sektoren zu testen gibt. Dies zeigt der Auszug aus dem Quellcode bevor dieser automatisiert<br />

wurde:<br />

void RAM_test()<br />

{ …<br />

runsector = 1;<br />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!