-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft das Gebiet der Authentifizierung
von Dokumenten. Insbesondere betrifft sie die Authentifizierung
von einfachen Textdokumenten, die als Dateien oder in gedruckter Form
vorliegen.
-
HINTERGRUND
DER ERFINDUNG
-
In
der gegenwärtigen
Umgebung von Computernetzen, die durch eine exponentielle Zunahme der
als Dateien bzw. in elektronischer Form vorliegenden Textdokumente
gekennzeichnet ist, die über ungesicherte
Medien wie das Internet in Umlauf gebracht werden, und in der jedermann
ohne Weiteres gedruckte Versionen dieser Textdokumente ausdrucken
oder fotokopieren kann, ist die Authentifizierung ein zentrales
Problem. Dem Empfänger
eines Textdokuments, sei es eine elektronische Nachricht oder ein
Ausdruck von dieser, sollte es möglich
sein, die Herkunft des Dokuments sicherzustellen, sodass sich niemand
für jemanden
anderen ausgeben kann. Es sollte auch möglich sein zu prüfen, ob
das Textdokument auf seinem Weg zufällig oder absichtlich geändert worden
ist. Zu diesem Zweck wurden Verfahren zur Durchführung einer Authentifizierung
entwickelt.
-
Die
Standardlösung,
die für
elektronische Textdokumente gut geeignet ist, besteht darin, Textdokumenten
in Dateiform einen MAC oder Message Authentication Code hinzuzufügen. Ein
MAC ist ein Digest, der mittels einer Einweg-Hashfunktion über den
Text berechnet wird und der außerdem
von einem Schlüssel
abhängt,
beispielsweise einem geheimen Schlüssel, der nur dem Sender und
dem Empfänger
bekannt ist, damit der Empfänger
zum einen prüfen
kann, ob das, was er empfangen hat, wirklich von dem Absender stammt,
mit dem er den geheimen Schlüssel
teilt, und zum anderen, ob das Dokument unverändert ist. Der vom National
Institute of Standards and Technologies NIST in FIPS PUB 180-1, „Secure
Hash Standard",
US Dpt of Commerce, Mai 93, definierte Sichere Hash-Algorithmus (SHA)
erzeugt zum Beispiel einen 160-Bit-Hash.
Er kann mit einem Schlüssel
kombiniert werden, beispielsweise durch die Verwendung eines Mechanismus,
der als HMAC oder Keyed-Hash-Verfahren für die Nachrichtenauthentifizierung
bezeichnet wird und Gegenstand des unter der Nummer 2104 erschienenen
RFC (Request For Comment) der IETF (Enternet Engineering Task Force)
ist. Der HMAC ist so konstruiert, dass er mit jeder iterativen kryptographischen
Hashfunktion verwendet werden kann, einschließlich des SHA. Daher kann ein
MAC an ein elektronisches Textdokument angehängt werden, sodass das Ganze
vom Empfänger
geprüft
werden kann. Dieses Verfahren funktioniert natürlich nicht bei gedruckten
Textdokumenten, da es das Anhängen einer
Prüfinformation
an eine Datei voraussetzt. Darüber
hinaus weist dieses Verfahren den Nachteil auf, dass der Text und
die Prüfinformation
dabei getrennt vorliegen. Somit lässt sich Letztere leicht isolieren und
entfernen, was vorsätzlich
mit betrügerischer
Absicht geschehen kann oder unabsichtlich, wenn zwischengeschaltete
Teile der Einrichtung, die für
die Weiterleitung der elektronischen Dokumente zuständig sind,
nicht darauf ausgelegt sind, dieses zusätzliche Stück Information zu verarbeiten.
In diesem Fall wäre
es günstiger,
die Prüfinformation
transparent im Textkörper
des Dokuments selbst zu verschlüsseln, d.
h. auf eine Weise, die die Lesbarkeit des Texts in keiner Weise
beeinträchtigt,
sodass die Prüfinformation
bei den verschiedenen Manipulationen, denen sie auf ihrem Weg zum
Adressaten ausgesetzt ist, intakt bleibt und der Empfänger noch
in der Lage ist, das Dokument zu authentifizieren.
-
Eine
andere Vorgehensweise der Authentifizierung, die vorwiegend auf
Bilder in Dateiform angewendet wird (und die somit auch auf das
Bild eines gedruckten Textdokuments angewendet werden kann, jedoch
noch nicht direkt mit gedruckten Dokumenten funktioniert), besteht
darin, Daten in der digitalen Repräsentation der Bilder zu verstecken,
womit die vorstehend erwähnte
Anforderung erfüllt
wird, dass die Prüfinformation
möglichst
mit dem Dokument selbst verwoben sein sollte. Das Verstecken von
Daten hat beträchtliche
Aufmerksamkeit auf sich gezogen, vor allem wegen der Urheberrechte,
mit denen digitales Multimediamaterial versehen ist, das leicht
kopiert und über
das Internet und Netzwerke im Allgemeinen überall hin verteilt werden
kann. Eine gute Übersicht über Verfahren
zum Verstecken von Daten findet sich in „Techniques for data hiding" von W. Bender et
al., veröffentlicht
im IBM Systems Journal, Bd. 35, Nr. 3 & 4, 1996. Zur Veranschaulichung der
Art und Weise, auf die Daten versteckt werden können, sei hier die – im vorstehend
angeführten
Artikel dargestellte – verbreitetste
Form der Verschlüsselung
bei hohen Bitraten erwähnt,
bei der das niedrigstwertige Helligkeitsbit der Bilddaten durch
die eingebetteten Daten ersetzt wird. Dieses Verfahren, das in der
Tat die Anforderung der Unmerklichkeit erfüllt (das wiederhergestellte
Bild ist bei Weitem nicht so stark verändert, dass dies erkennbar
wäre),
kann unterschiedlichen Zwecken dienen, die der Authentifizierung
verwandt sind, darunter das Hinzufügen von Wasserzeichen, das
ein unzerstörbares
Zeichen auf einem Bild hinterlassen soll, oder die insbesondere der
Feststellung von Änderungen
am Bild dienende Fälschungssicherung
durch Einbetten eines MAC in die Bilddatei.
-
Angesichts
der für
die Übertragung
erforderlichen Speicherkapazität
und Bandbreite wäre
es allerdings eine sehr kostenaufwändige und unangemessene Lösung, einen
Text als Bild behandeln zu müssen.
Obwohl ein Text in Dateiform, wie im vorstehend angeführten Artikel
beschrieben, in vielen Hinsichten das schwierigste Objekt für die Unterbringung
versteckter Daten ist, da in einer Textdatei anders als in Bilddateien
redundante Informationen fehlen, ist die Manipulation von Leerräumen, d.
h. Leerzeichen, und zwar insbesondere von Leerzeichen zwischen Wörtern, die
vom Autor eines Textdokuments absichtlich über das für die Lesbarkeit des Texts
erforderliche Maß hinaus
eingesetzt werden, die einfachste Art einen Text zu markieren – mittels dieser
Leerstellen ist eine Authentifizierung möglich, ohne dass ein separater
MAC hinzugefügt
wird, da die zur Prüfung
erforderliche Information dann gewissermaßen verborgen im Text selbst
eingebettet ist, und zwar in Form von Leerzeichen, die ein Leser beim
flüchtigen
Lesen wahrscheinlich nicht bemerkt.
-
Eine
Aufgabe der Erfindung besteht daher darin, ein Verfahren zur Verfügung zu
stellen, um die zur Authentifizierung eines Textdokuments erforderliche
Information in den Textkörper
des Dokuments selbst einzufügen.
-
Eine
weitere Aufgabe der Erfindung ist es, dieses Verfahren sowohl für Textdokumente
in Dateiform als auch für
gedruckte Textdokumente anwendbar zu machen.
-
Weitere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
für den
Fachmann ersichtlich, wenn er die folgende Beschreibung unter Bezugnahme
auf die beiliegenden Zeichnungen studiert. Im Folgenden sollen alle
weiteren Vorteile beschrieben werden.
-
Die
US-Patentschrift 5,467,447 mit der Bezeichnung „Document marking system employing context-sensitive
embedded marking codes" (Vogel Peter
S) beschreibt ein System zur Erstellung von Dokumenten, die neben
der üblichen
alpha-numerischen Textinformation eine charakteristische Markierung
enthalten. Das Markierungsschema der Erfindung ist in der Lage,
der Identifizierung dienende Informationen zu übermitteln, die es, falls ein
Dokument in die Hände
einer unbefugten Person gelangt, ermöglichen, eine bestimmte Kopie
eines Dokuments bis zu ihrer Quelle zurückzuverfolgen. Die Erfindung
lässt sich
auch dazu verwenden, aus einer Anzahl von Fotokopien eines Originaldokuments jede
einzelne zu identifizieren.
-
Die
Europäische
Patentanmeldung
EP 0 782 322 mit
der Bezeichnung „Method
and apparatus for embedding data into an electronic document" (OKI Electronic
IND CO LTD; Matsui Kineo (JP)) beschreibt ein Verfahren und eine
Vorrichtung zum Einbetten von Daten in ein elektronisches Dokument durch
Modulation der Leerräume
zwischen Wörtern. Bei
dem Verfahren der Codierung eines elektronischen Textdokuments wird
die Länge
eines Leerraums, der einem Wort in einer Zeile von Textdaten, die
Teil eines elektronischen Dokuments sind, vorangeht, im Verhältnis zu
der Länge
eines Leerraums, der dem Wort folgt, mit dem Wert eines Signaturdatenbits
moduliert. Die Signaturdaten werden somit in die Textdaten des elektronischen
Dokuments eingebettet und sind daher für unbefugte Leser schwer zu erkennen.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Es
werden ein Verfahren gemäß Anspruch
1 und eine Vorrichtung gemäß Anspruch
10 zur Markierung eines Textdokuments durch Einfügen von Leerzeichen zwischen
Wörtern
beschrieben. Das Verfahren besteht zunächst darin, die Gesamtheit
der Leerzeichen, die im Textdokument zwischen Wörtern auftreten, zu bearbeiten,
um sie an ein Modell anzupassen, sodass ein kanonisches Textdokument
erhalten wird. Danach wird aus dem kanonischen Textdokument zur
weiteren Anpassung an das Modell eine Teilmenge der Positionen der
Leerzeichen zwischen Wörtern
zurückgehalten,
in der das Einfügen
von Leerzeichen erlaubt ist. Hiernach wird mit dem kanonischen Textdokument
und einem geheimen Schlüssel
als Eingaben eine eindeutige Kombination von Positionen aus der
vorstehend genannten Teilmenge von Positionen berechnet. An jeder
Position der gerade berechneten eindeutigen Kombination von Positionen
wird mindestens ein zusätzliches
Leerzeichen eingefügt,
womit ein markiertes Dokument erhalten wird. Dasselbe Verfahren
wird auf ein empfangenes markiertes Textdokument angewendet, das
durch einen Empfänger
zu authentifizieren ist, der ebenfalls über den geheimen Schlüssel verfügt, wobei
ein Vergleich des empfangenen Textdokuments mit dem markierten Textdokument
hinzukommt, sodass das empfangene Textdokument als authentisch akzeptiert
wird, wenn die beiden Dokumente exakt übereinstimmen. Andernfalls
wird das empfangene Dokument als Fälschung zurückgewiesen.
-
Somit
stellt die Erfindung ein Verfahren und eine Vorrichtung zur Verfügung, mit
denen die zur Authentifizierung eines Textdokuments erforderliche
Information in den Textkörper
des Dokuments selbst eingebettet wird, indem zusätzliche Leerzeichen eingefügt werden,
die ein Leser beim flüchtigen
Lesen wahrscheinlich nicht bemerkt, wobei dieses verfahren bzw.
diese Vorrichtung bei Textdokumenten in Dateiform und in gedruckter
Form funktionieren.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
eine Gesamtdarstellung der Erfindung, die die Authentifizierung
eines Texts durch Einfügen
zusätzlicher
Leerzeichen erlaubt.
-
2 stellt
dar, wie ein möglicher
kanonischer Text aussehen kann und wie die Erfindung auch auf gedruckten
Text angewendet werden kann.
-
3 ist
eine Gesamtdarstellung des wichtigsten Schritts der Erfindung, dessen
Ausgabe ein markierter Text ist, der authentifiziert werden kann.
-
4 zeigt
anhand eines Beispiels, wie ein eindeutiger Keim erzeugt werden
kann, der sowohl vom Text als auch vom gemeinsamen geheimen Schlüssel abhängt.
-
5 zeigt
ein Beispiel für
einen Pseudozufallszahlengenerator, der eine Abfolge von Zahlen
erzeugt, die die Leerzeichen vorgibt, die zwischen Wörtern des
Texts eingefügt
werden sollen.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSART
-
In
der folgenden Beschreibung der Figuren wird mehrfach Bezug genommen
auf das Buch „Applied
Cryptography" von
Bruce Schneier, das 1996 in der zweiten Auflage bei John Wiley & Sons erschienen
ist. Die Bezugnahmen werden mit [SCH] abgekürzt und können einen Verweis auf ein
bestimmtes Kapitel enthalten, z. B. [SCH/Kap.18].
-
1 stellt
das gesamte Verfahren der Erfindung dar, mittels dessen ein markierter
Text für
die Authentifizierung gewonnen wird. Das Verfahren beginnt mit einem
ursprünglichen
Text „oText" [100],
der so markiert werden muss, dass der Empfänger der Nachricht prüfen kann,
ob er tatsächlich
von jemandem, der mit dem Empfänger
einen gemeinsamen geheimen Schlüssel
[130] teilt, markiert worden ist, wobei er zugleich sicherstellen
kann, dass der Text unterwegs nicht versehentlich oder absichtlich
geändert
worden ist. Der ursprüngliche
Text [100] enthält im
Allgemeinen zusätzliche
Leerzeichen, die aus typographischen Gründen hinzugefügt sind.
Zum Beispiel folgen einem Punkt häufig zwei Leerzeichen, wie
es an der Stelle [101] der Fall ist. Dann besteht der erste
Bearbeitungsschritt [110] darin, alle unnötigen Leerzeichen
aus dem ursprünglichen
Text zu entfernen, sodass sich nur ein Leerzeichen zwischen je zwei
Wörtern
befindet. Das Ergebnis dieses Schritts ist die kanonische Form von „oText", d. h. „kText" [120],
in dem zwei Wörter
nie durch mehr als ein Leerzeichen getrennt sind. Diese Weise, einen kanonischen
Text zu erhalten, ist zwar einfach, doch nicht die einzig mögliche.
In der nachfolgenden 2 wird eine Möglichkeit
ausgeführt,
wie ein kanonischer Text aussehen könnte. Obwohl dieser erste Schritt
für die
Erfindung wesentlich ist, ist seine Implementierung doch als unkompliziert
anzusehen. Abgesehen von 2, in der einige mögliche Alternativen
für den kanonischen
Text betrachtet werden, wird dieser Aspekt hier nicht weiter diskutiert.
Insbesondere wird im weiteren Verlauf dieser Beschreibung der Erfindung angenommen,
dass die Gewinnung von „kText" für den Fachmann
ein trivialer Vorgang ist. Der zweite, weitaus weniger triviale
Bearbeitungsschritt [140] besteht im eindeutigen Markieren
von „kText" durch Einfügen einiger
zusätzlicher
Leerzeichen [151], um einen markierten Text „mText" [150] zu
erhalten. Die Eingaben zu diesem zweiten Bearbeitungsschritt [140]
sind einerseits „kText" [120] und
andererseits ein gemeinsamer geheimer Schlüssel [130]. Eine bevorzugte
Ausführungsart
dieses zweiten Schritts wird in den folgenden Figuren ausführlich dargestellt.
Die Absicht dabei ist, einen „mText" zu erzeugen, der
für einen
gegebenen „kText" und den geheimen
Schlüssel
eindeutig ist.
-
Anders
gesagt, niemand, der nicht über
den geheimen Schlüssel
verfügt,
sollte in der Lage sein, auf der Grundlage eines gefälschten
oder veränderten „kText" einfach einen „mText" so zu erstellen, dass
eine Akzeptanz durch den Empfänger
wahrscheinlich ist, der nach Anwendung desselben Gesamtvorgangs
nicht dasselbe Muster von zusätzlichen
Leerzeichen [151] erhalten wird, was ihm tatsächlich erlaubt
zu entscheiden, dass entweder der Text geändert worden ist oder der Absender
nicht derjenige ist, der er zu sein vorgibt. Das Einfügen zusätzlicher
Leerzeichen im Schritt [140] muss natürlich so erfolgen, dass es
nicht möglich
ist (d. h, in der Praxis, dass es mit den derzeit verfügbaren Rechnerressourcen
nur sehr schwierig oder langwierig zu berechnen ist), den geheimen
Schlüssel
aus „mText" zu erschließen.
-
Wie
vorstehend kurz angemerkt, wenden Absender und Empfänger grundsätzlich denselben Vorgang
an, um einen Text zu markieren oder um ihn beim Empfang zu prüfen. Der
erste Schritt [110] und der zweite Schritt [140]
sind identisch. Der einzige Unterschied besteht darin, dass der
Absender den ersten Schritt auf den ursprünglichen Text „oText" anwendet, während der
Empfänger
den empfangenen „mText" verwendet. Beide
erzeugen denselben „kText", wenn „mText" nicht verändert worden
ist. Der Empfänger
authentifiziert den empfangenen „mText", da er in der Lage ist, denselben „mText" aus „kText" zu rekonstruieren,
d. h. mit derselben Anzahl zusätzlicher
Leerzeichen, die sich an denselben Stellen befinden, sodass bei
einem Vergleich [160] beide entweder exakt übereinstimmen
[161] oder der Vergleich negativ ausfällt [162]; in letzterem
Fall wird der empfangene Text zurückgewiesen.
-
Schließlich muss
die Wahrscheinlichkeit, dass zufällig
derselbe „mText" erzeugt wird, extrem niedrig
sein (sodass eine Kollision, die einem Angriff den Weg bereitet,
der schließlich
zur Entdeckung des geheimen Schlüssels
führen
würde,
unwahrscheinlich ist), damit die Erfindung von praktischem Wert
ist. In dem in dieser Figur dargestellten Beispiel ist „oText" aus praktischen
Gründen
ein ziemlich kurzer Text, der 72 Wörter umfasst, sodass „kText" 71 Leerzeichen zwischen
Wörtern
aufweist, d. h. es existieren 71 Möglichkeiten, zusätzliche
Leerzeichen einzufügen.
Wenn man jedoch die Anzahl der eingefügten Leerzeichen auf beispielsweise
10 % der Gesamtzahl notwendiger Leerzeichen begrenzen möchte, damit
es unwahrscheinlich ist, dass sie beim flüchtigen Lesen bemerkt werden
(insbesondere wenn im Gegensatz zu dem Beispiel aus 1,
das zur einfachen Illustration des Mechanismus der Erfindung einen „Courier"-Zeichensatz mit
festem Zeichenabstand aufweist, eine Proportionalschriftart verwendet wird),
sollten in dem Text dieses speziellen Beispiels nicht mehr als 7
zusätzliche
Leerzeichen verwendet werden. Das entspricht einer Wahrscheinlichkeit
von weniger als 1 zu 109 oder genauer: 1
zu (C 7 / 71 + C 6 / 71 + C 5 / 71 + C 4 / 71...). Das reicht aber unter Umständen nicht, um
einen ernsten Angriff abzuwehren. Daher ist davon auszugehen, dass
die Erfindung besser für
längere
Texte geeignet ist, bei denen mehr Möglichkeiten zum Einfügen von
Leerzeichen bestehen, es sei denn, man ist bereit, mehr als 10 %
Leerzeichen einzufügen – insbesondere
im Fall relativ kurzer Texte wie desjenigen aus 1,
bei dem sich die Wahrscheinlichkeit zum Beispiel um ungefähr eine
Größenordnung
verringern ließe – indem
man einfach zulässt,
dass ein weiteres Leerzeichen (8 anstatt 7) eingefügt wird.
Eine alternative Lösung
für einen
kurzen Text besteht darin, ihn beispielsweise mit einem Banner,
einer Abschlussinformation, einem Disclaimer oder einem Warntext
zu versehen. Dies sind in der Praxis notwendige Kompromisse, die
in den verschiedenen Anwendungsfällen
der Erfindung in Betracht zu ziehen sind.
-
2 stellt
dar, wie ein möglicher
kanonischer Text aussehen kann, da keine eindeutige Definition existiert,
die besagt, was ein kanonischer Text im Idealfall sein sollte. Wenn
in dem Beispiel aus 1 angenommen wird, dass zwischen
zwei Wörtern
immer nur ein einziges Leerzeichen bleibt (in einem weit gefassten
Sinn ist ein Wort hier definiert als eine beliebige Anzahl von Zeichen,
die sich zwischen zwei Leerzeichen befinden und selber keine Leerzeichen
sind), so hat dieser einfache Ansatz allerdings Nachteile. Der Empfänger solch
eines Texts in Dateiform verfügt über kein
sicheres Verfahren, das Format des ursprünglichen Texts wiederherzustellen,
da er nicht weiß,
wo die Zeilenumbrüche
liegen. Und falls es sich um einen gedruckten Text handelt, kann er
nicht entscheiden, wie viele zusätzliche
Leerzeichen sich am Ende jeder Zeile befinden.
-
Soweit
es um gedruckte Texte geht, ist zu erwähnen, dass die Erfindung die
Verwendung eines zweckmäßigen optischen
Geräts
voraussetzt, das die Zahl der tatsächlich in den Text eingefügten Leerzeichen
unterscheiden kann. Das Zählen
der eingefügten
Leerzeichen in einem gedruckten Text durch eine Sichtprüfung ist
zwar sicher praktikabel, wenn Schriftarten mit festem Zeichenabstand
verwendet werden, doch kann dies sehr schwierig, wenn nicht unmöglich, werden,
wenn für
den Druck des Texts keine Proportionalschriftart verwendet wird.
In beiden Fällen
wäre dies
jedoch eine sehr beschwerliche, fehleranfällige Arbeit. Daher ist bei
der Anwendung der Erfindung auf gedruckte Texte wie [200]
im Allgemeinen die Verwendung einer geeigneten Vorrichtung erforderlich,
die ein optisches Gerät
sowie entsprechende IT-Ressourcen umfasst, damit automatisch ein
Text in Dateiform gewonnen werden kann, bei dem die korrekte Zahl
an Leerzeichen zwischen den Wörtern
eingefügt
ist. Geräte
und Software, um dies zu erreichen, stehen heutzutage zur Verfügung. Gemeinhin
als OCR (Optical Character Recognition) bezeichnete Softwareprogramme,
die beispielsweise auf einem PC (Personal Computer) [215]
ausgeführt werden
können
und einen optischen Scanner [210] ansteuern, sind im Handel
erhältlich
und werden vielfach eingesetzt.
-
Daher
setzt ein Beispiel für
eine andere Definition eines kanonischen Texts [220], die
etwas differenzierter als diejenige aus Beispiel 1 ist, voraus, dass
sich weiterhin nur ein Leerzeichen zwischen zwei Wörtern befindet,
z. B. [230], während
eine Zeile durch drei Leerzeichen abgeschlossen wird, z. B. [240].
Dann würde
das Markieren wie in 1 erfolgen, indem an ausgewählten Positionen
ein zusätzliches
Leerzeichen eingefügt
würde,
wobei jedoch die Enden von Zeilen (drei Leerzeichen) ausgeschlossen blieben,
sodass diese Form eines kanonischen Texts sowohl für Texte
in Dateiform als auch für
gedruckte Texte geeignet wäre
und es dabei doch ermöglichen würde, dass
die Zeilen des ursprünglichen
Texts auf der Grundlage des markierten Texts in Dateiform wiederhergestellt
werden. Ein unbedeutender Nachteil besteht hierbei darin, dass weniger
Positionen verbleiben, an denen zusätzliche Leerzeichen eingefügt werden
können,
da die Wortzwischenräume
an Zeilenenden [240] ausgeschlossen sind (damit gedruckter Text
behandelt werden kann).
-
Angesichts
dieses zweiten Beispiels gibt es natürlich viele Möglichkeiten,
eine Reihe von Regeln aufzustellen, um einen kanonischen Text zu
erhalten, auf die sich alle Beteiligten einigen müssen und
die von solcher Art sein müssen,
dass das Erzeugen von „kText" stets eindeutig
ist. Das bedeutet, wenn ein ursprünglicher Text „oText" oder ein empfangener „mText" vorliegt, muss stets
genau eine Möglichkeit für den entsprechenden „kText" existieren. Je nach der
Komplexität dieser
Regeln ist es unter Umständen
jedoch nicht immer möglich,
die Kompatibilität zwischen
gedruckten Texten und Texten in Dateiform zu bewahren. Insbesondere
ist es bei Texten, die mit einem Textverarbeitungsprogramm formatiert
wurden, das automatisch zusätzliche
Leerzeichen zwischen Wörtern
einfügt,
um einen Text bündig
auszurichten (d. h. einen Text so formatiert, dass er links- und
rechtsbündig
ist [250]), nicht mehr möglich, im gedruckten Text die
Zahl der „echten" Leerzeichen (z. B.
[255]), die der Autor in den Text eingefügt hat,
von der Zahl zusätzlicher
Leerzeichen zu unterscheiden, die das Textverarbeitungsprogramm
selbst eingefügt hat
(z. B. [260]).
-
In
diesem letzteren Beispiel lässt
sich ein mit zusätzlichen
Leerzeichen verschlüsselter
Text nur in Dateiform gemäß der Erfindung
behandeln, wobei ein wichtiger Vorteil darin besteht, dass Texte,
wenn sie angezeigt oder gedruckt werden, die Leerzeichen, die vom
Autor des Texts absichtlich eingefügt worden sind, besser verstecken,
sodass sie noch weniger von denjenigen zu unterscheiden sind, die
vom Textformatierungsprogramm eingefügt worden sind. In diesem Beispiel,
einem Auszug aus einem Artikel von Daniel X. Le vom 18. November
1997 mit dem Titel „Document
Imaging Software Toolkits, Computer-Assisted Zoning Software, the
OCR Voting Machine, and OCR verification Software", erhältlich auf
der Website von LD Technologies Inc. unter http://www.ldtechnologies.com/,
wurde der Text mit Word97TM formatiert,
dem bekannten Textverarbeitungsprogramm von Microsoft Corporation,
One Microsoft Way, Redmond, WA 98052, USA. Dieses Beispiel zeigt
deutlich die eingefügten
Leerzeichen [255] (zusammen mit anderen nicht druckbaren
Zeichen wie [265]) in Form kleiner Punkte (nicht zu drucken und
normalerweise nicht angezeigt) und außerdem die eingefügten Leerräume wie
[260], mittels derer ein links- und rechtsbündiger Text
erhalten wird.
-
3 konzentriert
sich mehr auf den zweiten Bearbeitungsschritt der Erfindung, d.
h. auf Schritt [140] aus 1. Obwohl
es viele äquivalente
Alternativen gibt, diesen Schritt auszuführen, ist in 2 eine
insgesamt bevorzugte Ausführungsart
[340] dargestellt, zu deren Implementierung Einzelheiten
anhand von Beispielen in den nachfolgenden Figuren näher beschrieben
werden. Bei diesem Schritt kommt es insbesondere auf die Anwendung
von aus der Kryptographie bekannten Standardverfahren an (die Grenzen
dieser Verfahren wurden in sorgfältigen Untersuchungen
ermittelt, deren Ergebnisse der umfangreichen Literatur zum Thema
entnommen werden können),
um entsprechend der Beschreibung in 1 einen „mText" zu erzeugen. Somit
kann der zweite Bearbeitungsschritt beginnen [300], wenn
ein geheimer Schlüssel
[330] vorliegt und ein kanonischer Text „kText" [320] erstellt
ist. Dann wird der erste Unterschritt [342] durchgeführt. Dessen
Ausgabe ist ein verschlüsselter
Nachrichtendigest fester Länge,
der einerseits den „kText" unabhängig von
dessen tatsächlicher
Länge und
andererseits den geheimen Schlüssel
repräsentiert.
Das bedeutet, der Unterschritt [342] soll einen Keim [344]
für den
nächsten Unterschritt,
d. h. für
den PZZ-Generator (Pseudozufallszahlengenerator) [346]
liefern. Der Keim [344], das Ergebnis des Unterschritts
[342], sollte im Idealfall so beschaffen sein, dass bei
einem vorgegebenen geheimen Schlüssel
niemals zwei verschiedene „kText"-Dokumente zur Ausgabe
desselben Werts führen,
sodass nicht nur erwartet werden kann, dass zwei völlig unterschiedliche
Texte auch unterschiedliche Werte ausgeben, sondern dass auch die
geringste Änderung
eines „kText"-Dokuments zu einem
anderen Wert führen
sollte. In der Praxis bedeutet dies, dass die im Unterschritt [342]
verwendete Funktion ohne statistischen Bias sein muss und der berechnete
Digest, d. h. der Keim [344], groß genug sein muss, damit die
Wahrscheinlichkeit, dass zwei Texte denselben Wert liefern, extrem
niedrig ist.
-
Außerdem hängt der
Keim auch von dem geheimen Schlüssel
[330] ab, sodass er auch anders ausfällt, wenn er ausgehend vom
selben „kText", aber mit einem
anderen geheimen Schlüssel
erzeugt wird. Für
den Fachmann ist ersichtlich, dass die Erzeugung eines solchen Keims
eng verwandt ist mit der Erzeugung eines MACs (Message Authentication Code),
die im Allgemeinen den Einsatz eines kryptographischen Standardverfahrens
voraussetzt, d. h. des Hashverfahrens, und, im besonderen Fall von MAC,
des Einweg-Hashverfahrens.
Tatsächlich
sind verfügbare
Einweg-Hashfunktionen
so geartet, dass es sehr unwahrscheinlich ist, dass zwei Nachrichten denselben
Hashwert ergeben. Auch dann, wenn nur ein Bit im Eingabetext geändert wird,
wird im Durchschnitt die Hälfte
der Bits des Hashwerts umgekehrt und es ist praktisch unmöglich einen
Text zu finden, der einen vorgegebenen Hashwert ergibt. Diese letztere
Eigenschaft von Einweg-Hashfunktionen wird im Folgenden jedoch noch
weiter diskutiert, da es, wenn es unbedenklich ist, unter Umständen nicht
nötig ist, die
Erfindung auszuführen,
und es somit möglich
ist, diesen Schritt etwas zu vereinfachen.
-
Es
existieren zahlreiche Hashalgorithmen. Eine gute Übersicht
darüber
findet sich in [SCH/Kap.18]. Nachdem (oder während) ein Digest von „kText" erzeugt wurde (wird),
muss er auf die eine oder andere Weise mit dem gemeinsamen geheimen Schlüssel [330]
kombiniert werden, wodurch ein MAC erhalten wird, sodass nur diejenigen,
die den geheimen Schlüssel
miteinander teilen, in der Lage sind, den Hashwert zu prüfen, womit
die Authentizität ohne
Geheimhaltung festgestellt wird. Daher ist es übliche Praxis, zur Authentifizierung
eines Texts in Dateiform einen MAC an die jeweilige Textdatei anzuhängen, damit
der Empfänger
diesen prüfen
kann, während
er gemäß der Erfindung
stattdessen als Keim für
einen PZZ-Generator [346] verwendet wird, von dem zahlen
erzeugt werden, die in Unterschritt [348] dazu dienen,
zu entscheiden, wo die Leerzeichen im „kText" einzufügen sind, um einen markierten
Text „mText" zu erhalten, der
wie in 1 erklärt authentifiziert
werden kann. Die Anzahl der zu erzeugenden Zufallszahlen hängt direkt
von der akzeptablen Wahrscheinlichkeit ab, mit der derselbe „mText" rein zufällig erhalten
werden darf. Je nach Anwendung der Erfindung ist diese ein Eingabeparameter.
-
Pseudozufallszahlengeneratoren
finden in der Kryptographie breite Anwendung und haben erhebliche
Aufmerksamkeit auf sich gezogen. Wieder findet sich ein guter Überblick
in [SCH/Kap.16&17], während beispielsweise „The Art
of Computer Programming" von
Donald E. KNUTH, Kapitel 3, Band 2, Addison-Wesley, einen weitaus theoretischeren
Zugang zu Zufallszahlen bietet. Somit kann für eine bestimmte Anwendung
ein passender Pseudozufallszahlengenerator ausgewählt werden.
Ein Beispiel wird im Folgenden in 5 gegeben.
Unabhängig davon,
welcher PZZ-Generator gewählt
wird – er
sollte vorzugsweise so geartet sein, dass es rechentechnisch sehr
schwierig, wenn nicht unmöglich
ist, den Keim [344] ausgehend von dem Muster zusätzlicher Leerzeichen
zu erschließen.
Unter der Voraussetzung, dass diese Bedingung erfüllt ist,
können
die Einschränkungen
für den
Schritt [342] geringer ausfallen. Wie an früherer Stelle
angemerkt, wird der Einwegcharakter dieses Schritts erheblich weniger
kritisch. Sein wichtigstes Ziel, das beibehalten werden muss, besteht
darin, dass im Idealfall keine zwei „kText"-Dokumente [320] mit demselben
geheimen Schlüssel
zum selben Keim führen
dürfen.
Bei diesem Vorgehen braucht der Keim [344] nur eine eindeutige
Repräsentation
von „kText" in Kombination mit
dem geheimen Schlüssel
zu sein; da davon ausgegangen wird, dass es unmöglich oder sehr schwierig ist,
den Keim von dem Muster der zusätzlichen Leerzeichen
ausgehend zu erschließen,
wird die Fähigkeit,
den geheimen Schlüssel
leicht aus dem Keim zu erschließen,
unwichtig.
-
Obwohl
die folgenden Figuren insbesondere diese bevorzugte Ausführungsart
der Erfindung illustrieren, ist es genauso möglich, eine andere Wahl zu treffen,
die für
eine bestimmte Anwendung der Erfindung geeigneter ist. Für den Fachmann
ist ersichtlich, dass es beispielsweise auch möglich ist, einen schwächeren PZZ-Generator
zu wählen
und stattdessen im Schritt [342] die Schwierigkeit einzubauen,
den geheimen Schlüssel
zu erschließen
und den Einwegcharakter sicherzustellen, wie es bei der üblichen
Berechnung von MACs geschieht.
-
4 zeigt
anhand eines Beispiels, wie sich ein Digest von einem „kText"-Dokument und einem geheimen
Schlüssel
ableiten und als Keim für
einen PZZ-Generator verwenden lässt.
Bei diesem Beispiel wird wieder vorausgesetzt, dass es unerheblich
ist, ob man bei diesem Schritt von dem Keim ausgehend den geheimen
Schlüssel
ermitteln kann, da der Einwegcharakter vielmehr durch den PZZ-Generator
sichergestellt ist, wovon nachstehend in 5 ein Beispiel
gegeben wird.
-
Daher
ist ein rechentechnisch einfaches Verfahren zur Erzeugung eines
Keims ähnlich
der Art und Weise, auf die ein verbreitetes Datenkompressionsprogramm,
das unter dem Namen PKZIPTM bekannt ist
(ein Produkt von PKWARE, Inc., 9025 N. Deerwood Drive, Brown Deer,
WI 53223, USA, Website http://www.pkware.com/), die Verschlüsselung vornimmt.
Diese wird um ein irreduzibles CRC-Polynom (Cyclic Redundancy Check) vom
Grad 32 aufgebaut, das im Folgenden CRC-32 [420] genannt
wird. Mehr zu diesem Thema findet sich in [SCH/Kap.16.12]. Dann
besteht das Verfahren wie bei CRC im Wesentlichen darin, den Bitstrom,
der sich aus der Konvertierung der Textzeichen [400] in ihr
binäres
8-Bit-Äquivalent
ergibt, mittels des vorstehend genannten CRC-32-Polynoms zu teilen. Das heißt, es wird
davon ausgegangen, dass jedes Textzeichen beispielsweise in ASCII
[410] codiert ist. Der Rest einer solchen Teilung, die
auf Bitebene modulo 2 (mit einfachen XORs) und modulo dem CRC-32-Polynom
(einem 33-Bit-Vektor)
durchgeführt wird,
ist höchstens
ein Vektor mit einem Umfang von 32 Bit [430]. Der einfachste
Weg, den geheimen Schlüssel
zu kombinieren, um einen Keim zu erhalten, der eine Funktion vom
Text und vom Schlüssel ist,
besteht darin, den geheimen Schlüssel,
z. B. eine ASCII-Zeichenkette [405] oder [415]
der Länge
16 (128 Bit), zunächst
mit dem Text zu verketten, sodass der Rest der Teilung tatsächlich eine
Kombination des Texts und des geheimen Schlüssels ist. Obwohl bekannt ist,
dass die PKZIP-Verschlüsselung schwach
ist (wie von E. Biham und P. C. Kocher in „A Known Plaintext Attack
on the PKZIP Encryption",
K. U. Leuven Workshop on Cryptographic Algorithms, Springler Verlag,
berichtet), ist das Verfahren dennoch zweckdienlich, um in der bevorzugten
Ausführungsart
der Erfindung einen Keim zu erzeugen, da es bei dem erfindungsgemäßen Ansatz
der PZZ-Generator ist, der für
den Einwegcharakter sorgt. Statistisch beträgt die Wahrscheinlichkeit,
aus zwei verschiedenen Texten denselben Keim zu gewinnen, nur 1
zu 232 bzw. 4.294.967.296. Mit dem Text
und dem Schlüssel
aus dem vorliegenden Beispiel lautet der mittels der CRC-32-Funktion
erhaltene Digest [430], der als Keim dem in 5 dargestellten PZZ-Generator
zugeführt
wird, in binärer
Form folgendermaßen:
b'1 1 0 1 0 0 1 1 0
0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0' bzw. in dezimaler Form: 3.543.759.276.
-
5 zeigt
ein Beispiel für
einen Pseudozufallszahlengenerator (PZZ-Generator) [500],
der für die
bevorzugte Ausführungsart
der Erfindung geeignet ist. Der in [SCH/Kap.17.9] beschriebene BBS-Generator
(Blum, Blum und Shub) ist einer der einfachsten und effizientesten
Generatoren seiner Art. Er ist nach links unvorhersagbar und nach
rechts unvorhersagbar, das heißt,
ein Kryptoanalytiker kann aufgrund der Beobachtung einer gegebenen
Folge weder das nächste
Bit in der Folge noch das vorangehende Bit vorhersagen. Im Beispiel
dieser Figur erfolgt die Ausführung
folgendermaßen:
Es
werden zwei große
Primzahlen p und q gewählt, die
kongruent 3 modulo 4 sein müssen.
Da die Mersenne'schen
Zahlen (z. B. Primzahlen der Form 2n – 1) alle
kongruent 3 modulo 4 sind, werden in diesem Beispiel der Einfachheit
halber die folgenden Primzahlen gewählt:
p = 261 – 1 = 2.305.843.009.213.693.951
und
q = 289 – 1 = 618.970.019.642.690.137.449.562.111,
und
n, das Produkt von p und q (eine Blum-Zahl), ist:
n = 1.427.247.692.705.959.880.439.315.947.500.961.989.719.490.561.
-
Dann
wird der im vorigen Schritt erhaltene Keim [510] verwendet,
um den Anfangswert X0 [515] des
Generators zu berechnen, sodass gilt: X0 = Keim2 modulo n mit dem Keim 3.543.759.276.
-
Danach
werden alle folgenden internen Werte Xi [520]
des Generators auf dieselbe Weise berechnet. Das heißt, Xi = Xi–1 2 modulo
n. Das i-te Pseudozufallsbit ist das LSB (Least Significant Bit, niedrigstwertiges
Bit) von Xi. Es ist zu beachten, dass die
Forderung, dass der Keim relativ prim zu n gewählt werden muss, damit der
BBS-Generator einwandfrei arbeitet, automatisch erfüllt ist,
da der Keim eine kleinere Zahl als p oder q ist.
-
Es
werden genügend
Bits erzeugt, sodass genügend
gültige
Zahlen [525] (d. h. 7 in dem Beispiel aus 5)
nach dem Zufallsprinzip ausgewählt werden
können,
um zusätzliche
Leerzeichen einzusetzen (die Anzahl der zusätzlich einzusetzenden Leerzeichen
ist ein Eingabeparameter, der für
eine bestimmte Anwendung festgelegt werden muss). Obwohl auch andere
Verfahren möglich
sind, besteht eine einfache Art und Weise dies zu erreichen darin, die
Leerzeichen zwischen den Wörtern
des kanonischen Texts zu indizieren, z. B. [530]. Je nach
dem für
den kanonischen Text im Einzelfall gewählten Format ist es jedoch
möglich,
dass man sich dafür
entschieden hat, einige Leerzeichen zwischen Wörtern auszuschließen. Wie
anhand 2 diskutiert wurde, könnten die Leerzeichen an den
Zeilenenden [531] ausgeschlossen worden sein. Unabhängig davon, welches
Format für
den kanonischen Text gewählt wurde,
müssen
von dem PZZ-Generator genügend Bits
[535] erzeugt werden, um den gesamten Umfang der Leerzeichen
im Text (oder einen anderen gewählten
Umfang) abzudecken. In diesem Beispiel genügen 7 Bits (27 – 1 = 127),
um die 71 Zwischenräume zwischen
den Wörtern
des Texts abzudecken. Wenn 7 Bits erzeugt worden sind, wird daher
eine erste Zahl abgeleitet [540]. Für jede nachfolgende Gruppe von
7 Bits wird eine neue Zahl erhalten. Wenn allerdings eine Zahl größer als
71 ist [550] oder wenn eine Zahl sich wiederholt [545],
wird sie übersprungen.
In diesem Beispiel wird die folgende Reihe erzeugt: 2 40 48 24 4
41 17. Wenn eine 7. gültige
Zahl erreicht ist [525] (in diesem Fall 17), wird der Generator
angehalten, da jetzt genügend
einzufügende
Leerzeichen vorliegen.