Einführung
Für die Adressdatenbank habe ich einen Schlüsselalgorithmus benötigt.
Entstanden ist eine einfache Implementierung des RSA-Algorithmus.
RSA ist ein Algorithmus, dessen Wirkungsweise auf mathematischen Problemstellungen
beruht, deren Lösung von Generationen von Mathematikern versucht, aber
nie erzielt wurde. Man erzeugt auf eine bestimmte Weise zwei Schlüssel
d und e, sowie eine Zahl n. Verschlüsselt wird die Information i mit der
Formel x = i ^ e % n (sprich: i hoch e mod n). Entschlüsselt wird mit i
= x ^ d % n. Die Schlüsselbreite beträgt je nach Anwendung bis 2048
Bits. Die zu verschlüsselnde Information wird einfach in Byteblöcke
aufgeteilt, deren Länge der Schlüssellänge entspricht. Dann werden
sukzessive alle Blöcke ver- bzw, entschlüsselt.
Eine gute Einführung zu Thema RSA gibt der Artikel "Die
faszinierende Geschichte von Alice und Bob" von Mirko Matytschak.
Funktionsumfang
Für beide Versionen der Implementierung ist der Funktionsumfang identisch:
- Eine einfache Implementierung des RSA-Algorithmus für BigInteger-Zahlen
und -Arrays,
- Schlüsselgenerierung für die benötigten Schlüssel,
- Eine Schlüsselklasse für Byte-Arrays,
- Eine Schlüsselklasse für Strings,
- Ein Input/Output-FilterStream-Paar.
Version 2 für Java Version 5 und höher
Version 2 verwendet die ab Java Version 5 verfügbaren Generics für
Klassen wie Vector, Iterator und ähnliche. Somit treten die lästigen
Warnungen beim compilieren nicht mehr auf und die Implementierung wird Typesicher.
Die folgende Tabelle enhält die Archive mit den Quellfiles und den Binarys:
| Datei |
Größe |
Inhalt |
| LongRSA_src_2_0_0.zip |
42.053 Byte |
- Quellfiles des Paketes de.longsoft.RSA mit der RSA Verschlüsselung.
- Quellfiles des Paketes de.longsoft.RSATest mit dem Swing-Testprogramm
für die Schlüsselerzeugung und die String-Verschlüsselung
sowie einem Kommandozeilentestprogramm für RSA-FilterStreams.
- Quellfiles des Paketes de.longsoft.Utilities mit einigen Hilfsklassen
für GUI.
|
| LongRSA_bin_2_0_0.zip |
49.741 Byte |
jar-Dateien mit dem kompilierten Klassen. |
Zum selbst erzeugen gibt es zwei Möglichkeiten:
- Arbeiten mit einer IDE (z.B. Eclipse)
In der IDE drei neue Projekte erzeugen, eins für LongRSA_2_0, eins für
LongRSATest_2_0 und eins für Utilities_2_0. Alle Quellfiles inclusive
Verzeichnisse in die src-Verzeichnisse der Projekte aufnehmen. In den Projektabhängigkeiten
von LongRSATest_2_0 die anderen beiden Projekte eintragen. Für den Test
die Klasse de.longsoft.LongRSATest.RSATest als main class eintragen. Compilieren
und Starten.
- Arbeiten mit Ant
Folgende Verzeichnisstruktur erzeugen:
./--+ release
+ debug
+ LongRSA
+
src
+
bin
Das Archiv mit den Quellen in das src-Verzeichnis auspacken inclusive der
in den zip-Files enthalten Pfade. Nacheinander in die drei Verzeichnisse mit
den Quellfiles wechseln und 'ant release' aufrufen. Im bin-Verzeichnis werden
die kompilierten Klassen abgelegt und im release-Verzeichnis die fertigen
jar-Dateien. Ins release-Verzeichnis wechseln und Testprogramm mit
'java -jar LongRSATest_2_0.jar'
starten.
Und dann erscheint folgendes Testprogramm:

Mit JavaDoc (z.B. 'ant javadoc') kann eine HTML-Beschreibung des
Paketes erzeugt werden.
Version 1 für Java bis Version 1.4.x
Version 1 die nicht Typsichere Version bei Klassen wie Vector und Iterator
wie sie für Java bis Versin 1.4.x üblich waren. Beim Kompilieren unter
Java ab Version 5.0 treten jede Menge Warnungen auf. Die folgende Tabelle enhält
die Archive mit den Quellfiles und den Binarys:
| Datei |
Größe |
Inhalt |
| LongRSA_src_1_0_2.zip |
21.287 Byte |
- Quellfiles des package de.LongSoft.RSA mit der RSA Verschlüsselung.
Mit JavaDoc kann eine HTML-Beschreibung des package erzeugt werden.
- Quellfiles des package de.LongSoft.RSATest mit dem Swing-Testprogramm
für die Schlüsselerzeugung und die String-Verschlüsselung
sowie einem Kommandozeilentestprogramm für RSA-FilterStreams.
|
| LongRSA_bin_1_0_2.zip |
16.054 Byte |
jar-Dateien mit dem kompilierten Klassen. |
Zum selbst erzeugen gibt es zwei Möglichkeiten:
- Arbeiten mit einer IDE (z.B. Eclipse)
In der IDE drei neue Projekte erzeugen, eins für LongRSA_1_0 und eins
für LongRSATest_1_0. Alle Quellfiles inclusive Verzeichnisse in die src-Verzeichnisse
der Projekte aufnehmen. In den Projektabhängigkeiten von LongRSATest_1_0
das andere Projekt eintragen. Für den Test die Klasse de.longsoft.LongRSATest.RSATest
als main class eintragen. Compilieren und Starten.
- Arbeiten mit Ant
Folgende Verzeichnisstruktur erzeugen:
./--+ release
+ debug
+ LongRSA
+
src
+
bin
Das Archiv mit den Quellen in das src-Verzeichnis auspacken inclusive der
in den zip-Files enthalten Pfade. Nacheinander in die zwei Verzeichnisse mit
den Quellfiles wechseln und 'ant release' aufrufen. Im bin-Verzeichnis werden
die kompilierten Klassen abgelegt und im release-Verzeichnis die fertigen
jar-Dateien. Ins release-Verzeichnis wechseln und Testprogramm mit
'java -jar LongRSATest_1_0_2.jar'
starten.
Und dann erscheint folgendes Testprogramm:

Mit JavaDoc (z.B. 'ant javadoc') kann eine HTML-Beschreibung des
Paketes erzeugt werden.
© Ralf Lange, longsoft Dresden
Kommentare und Anregungen: Webmaster
Formular- letzte Änderung: 2008-07-03
Java und alle Java basierten Schutznamen und Logos sind Schutzmarken oder registrierte
Schutzmarken von Sun Microsystems, Inc. in den USA und in anderen Ländern.
Alle anderen erwähnten Firmen- und Produktnamen sind Schutzmarken oder registrierte
Schutzmarken des jeweiligen Herstellers.