-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft ein Kryptosystem. Die vorliegende
Erfindung kann zum Beispiel verendet werden zur: Verschlüsselung
und Entschlüsselung
von Kommunikationsinhalten, die über ein
Computernetz übertragen
werden und Geheimhaltung erfordern; Verschlüsselung von Informationen während des
Speicherns auf einem Aufzeichnungsmedium und Entschlüsselung
der Informationen während
des Lesens, wobei die Informationen Geheimhaltung erfordern; und
dergleichen.
-
Hintergrundtechnik
-
Ein
herkömmliches
Kryptosystem wird im allgemeinen klassifiziert in ein Kryptosystem
mit geheimem Schlüssel
und ein Kryptosystem mit öffentlichem
Schlüssel.
Das Kryptosystem mit geheimem Schlüssel wird ferner klassifiziert
in ein Stromkryptosystem und ein Blockkryptosystem. Damit ist eine Anzahl
von Systemen betrachtet worden.
-
Gemäß dem Kryptosystem
mit geheimem Schlüssel
besitzen nur beteiligte Parteien sowohl einen Verschlüsselungsschlüssel als
auch einen Entschlüsselungsschlüssel als
Geheimschlüssel,
verschlüsselt
eine Person, die einen verschlüsselten Text
sendet, einen Klartext mit einem Verschlüsselungsschlüssel und
sendet den verschlüsselten
Text zu einem Kommunikationspartner, und der Kommunikationspartner
entschlüsselt
den verschlüsselten Text
mit einem Entschlüsselungsschlüssel, um
den Klartext zu erhalten. Was hierbei die Stärke eines Kryptosystems betrifft,
sind zwei Punkte von Wichtigkeit: nämlich daß ein Verschlüsselungsschlüssel und ein
Entschlüsselungsschlüssel geheimgehalten
werden; und eine Person, die einen verschlüsselten Text während der
Kommunikation wittert, den verschlüsselten Text nicht ein fach
lernen kann, um eine Regel zum Erhalten eines Klartextes herauszufinden.
Was den ersteren Punkt angeht, werden ein Verschlüsselungsschlüssel und
ein Entschlüsselungsschlüssel von
den Kommunikationsparteien gemeinsam genutzt, so daß es von
Bedeutung ist, wie sicher ein Schlüssel, dessen Verteilung wenigstens
einmal erforderlich ist, verteilt werden sollte. Was den letzteren Punkt
angeht, sind verschiedene Versuche unternommen worden; zum Beispiel
wird die Komplexität einer
Regel verstärkt,
so daß eine
Regel nicht ohne weiteres herausgefunden werden kann, wird eine Hash-Funktion
ohne jede Regel verwendet und werden ein Schlüssel und eine jedes Mal verwendete Regel
wahllos geändert.
-
Gemäß dem Kryptosystem
mit öffentlichem Schlüssel wird
unter Ausnutzung der Schwierigkeit des einmaligen Zerlegens eines
Wertes eines Produktes aus ausreichend großen Primzahlen in Faktoren
und der Schwierigkeit des Erhaltens einer Lösung für eine elliptische Kurve ein
Verschlüsselungsschlüssel zur
Verschlüsselung öffentlich
gemacht, erstellt eine Person, die einen Klartext senden möchte, einen
verschlüsselten
Text unter Verwendung des Schlüsselelementes,
das öffentlich
gemacht wurde, und kann nur eine autorisierte Person den verschlüsselten
Text mit einem Geheimschlüssel
entschlüsseln.
Gemäß diesem
System wird die Sicherheit dadurch gewährleistet, daß die Schwierigkeit
des Erhaltens eines Geheimschlüssels
aus einem öffentlichen Schlüssel genutzt
wird, und eine Verteilung eines Schlüssels, die gemäß dem Kryptosystem
mit geheimem Schlüssel
ein Problem darstellt, ist nicht erforderlich. In diesem Punkt wird
die Sicherheit verstärkt.
-
Das
Kryptosystem mit öffentlichem
Schlüssel benötigt jedoch
eine große
Menge an Berechnungszeit zur Verschlüsselung und Entschlüsselung.
Deshalb beansprucht die Arbeit mit einem langen Klartext (ungefähr 1000
oder mehr Zeichen) viel Zeit und hohe Kosten und ist somit im praktischen
Einsatz ungünstig.
-
Gemäß dem herkömmlicherweise
bekannten Kryptosystem mit geheimem Schlüssel wird hauptsächlich ein
Blockkryptosystem verwendet. Dieses System erfordert eine lange
Berechnungszeit zur Verschlüsselung
und Entschlüsselung
und weiterhin viel Zeit und hohe Kosten bei der Bearbeitung eines
langen Klartextes, wodurch es im praktischen Einsatz ungünstig ist.
Obwohl in einem herkömmlichen
Kryptosystem mit geheimem Schlüssel
im allgemeinen ferner ein DES-Kryptosystem in einem herkömmlichen
Kryptosystem mit geheimem Schlüssel verwendet
wird, wird festgestellt, daß ein
verschlüsselter
Text im Prinzip entschlüsselt
werden kann, wodurch ein Sicherheitsproblem verursacht wird.
-
Andererseits
wird bei dem Stromkryptosystem von dem Kryptosystem mit geheimem
Schlüssel gemäß einem
System (Vernam-Kryptosystem), bei dem eine echte Zufallszahlenfolge
als Verschlüsselungsschlüssel verwendet
wird und ein Schlüssel,
der in der Vergangenheit verwendet wurde, nicht wieder verwendet
wird, weniger Zeit zur Verschlüsselung und
Entschlüsselung
benötigt,
und ein verschlüsselter
Text kann im Prinzip nicht entschlüsselt werden. Jedoch muß zuvor
ein Verschlüsselungsschlüssel mit
derselben Länge
wie jener eines verschlüsselten Textes
an einen Empfänger
durch ein sicheres Mittel gesendet werden, so daß ein Problem der Verteilung eines
Schlüssels
verursacht wird. Da das Gewährleisten
der Sicherheit zum Verteilen eines Schlüssels viel kostet, kann das
Vernam-Kryptosystem nur für eine
spezielle Kommunikation verwendet werden, die hohe Geheimhaltung
erfordert, auch wenn die Kosten zur Verteilung eines Schlüssels unberücksichtigt bleiben.
-
US-A-5835597
offenbart ein Stromkryptosystem, bei dem für jeden zu verschlüsselnden
Klartext eine pseudostatistische Bitfolge, die dieselbe Länge wie
der Klartext hat, erzeugt wird und zu dem Klartext zum Erstellen
des verschlüsselten
Textes hinzugefügt
wird.
-
Offenbarung der Erfindung
-
Angesichts
der obenerwähnten
Probleme einer herkömmlichen
Verschlüsselungsvorrichtung
ist es eine Aufgabe der vorliegenden Erfindung, ein Kryptosystem
mit Schlüssel
mit variabler Länge
mit hoher Sicherheit und niedrigen Berechnungskosten vorzusehen.
Als Schlüsselerzeugungsschema
eines Stromkryptosystems hat dieses System eine Zufallszahleigenschaft,
die einer echten Zufallszahlenfolge ähnlich ist (d. h. Schwierigkeit
bei der Entschlüsselung),
gestattet es die Selektion eines erforderlichen Schlüssels gemäß der Länge eines
Klartextes und eines verschlüsselten
Textes und erfordert es nur eine kleine Menge von Parametern zur
Erzeugung eines Schlüssels,
um zuvor durch einen Absender und einen Empfänger gemeinsam genutzt zu werden,
im Vergleich zu jener eines verschlüsselten Textes.
-
Die
Erfindung sieht ein System nach Anspruch 1, ein Verfahren nach Anspruch
9 und ein Programm nach Anspruch 17 vor.
-
Um
die obengenannte Aufgabe zu erfüllen, wird
bei dem Kryptosystem mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung zunächst
ein Schlüsselerzeugungsschema verwendet,
das nur eine zuvor gegebene konstante Zahl oder weniger von Zeichenketten
mit besonderer Länge
hat. Wenn die konstante Zahl k ist, wird solch ein Schlüsselerzeugungsschema
als "k-sparse language" bezeichnet.
-
Das
Kryptosystem mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung unter Verwendung einer Erzeugungsvorrichtung
eines Schlüssels mit
variabler Länge
mit one-sparse language enthält: einen
Erzeugungsverarbeitungsteil eines Schlüssels mit variabler Länge zum
Erzeugen eines Verschlüsselungsschlüssels mit
einer erforderlichen beliebigen Länge; und einen Datenkettenlängen-Detektionsverarbeitungsteil
zum Detektieren einer Länge
einer Zeichenkette, bei dem, während
der Verschlüsselung des
Klartextes, der Datenkettenlängen-Detektionsteil eine
Länge des
Klartextes detektiert und der Erzeugungsverarbeitungsteil des Schlüssels mit
variabler Länge
nur einen Verschlüsselungsschlüssel mit
einer besonderen Länge
auf der Basis der detektierten Länge
des Klartextes zur Stromverschlüsselungsverarbeitung
erzeugt und, während
der Entschlüsselung des
verschlüsselten
Textes, der Datenkettenlängen-Detektionsverarbeitungsteil
eine Länge
des verschlüsselten
Textes detektiert und der Erzeugungsverarbeitungsteil des Schlüssels mit
variabler Länge nur
einen Verschlüsselungsschlüssel, der
derselbe wie der Verschlüsselungsschlüssel mit
besonderer Länge
ist, der für
die Verschlüsselung
verwendet wurde, auf der Basis der detektierten Länge des
verschlüsselten
Textes zur Stromentschlüsselungsverarbeitung
erzeugt.
-
Gemäß der oben
angegebenen Konfiguration sind bei dem Kryptosystem mit Schlüssel mit
variabler Länge
der vorliegenden Erfindung Parameter, die zum Erzeugen einer sparse
language erforderlich sind, nur eine Anfangskette, ein Satz von
Konvertierungsregeln und eine Konvertierungsregel-Selektionsfunktion.
Diese Parameter müssen
durch ein sicheres Mittel zu der Seite des Empfängers gesendet werden. Eine
Datenmenge ist klein, so daß die
Verteilung eines Schlüssels
verglichen mit einem herkömmlichen
Stromcode viel leichter ist. Ferner wird ein Verschlüsselungsschlüssel nicht
zweimal verwendet. Deshalb besteht keine Möglichkeit, daß ein Klartext
nur aus einem verschlüsselten
Text erhalten wird. weiterhin wird ein Verschlüsselungsschlüssel erzeugt,
indem eine Zeichenkonvertierung wiederholt wird, und die Zeichenkonvertierung
kann parallel ausgeführt
werden. Deshalb kann der Schlüssel
in einer kurzen Berechnungszeit erzeugt werden. Sobald der Schlüssel erzeugt
ist, werden die Verschlüsselung
und Entschlüsselung
nur durch Addition und Subtraktion ausgeführt, so daß die Verschlüsselung und
Entschlüsselung
mit hoher Geschwindigkeit vorgenommen werden können. Deshalb kann eine große Menge
an Daten mit hoher Geschwindigkeit verschlüsselt werden.
-
Das
Kryptosystem mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung, bei dem eine k-sparse language in bezug
auf k von 2 oder mehr als Erzeugungssystem eines Schlüssels mit
variabler Länge
verwendet wird, enthält:
einen Erzeugungsverarbeitungsteil eines Schlüssels mit variabler Länge zum
Erzeugen eines Verschlüsselungsschlüssels mit
einer erforderlichen beliebigen Länge; einen Datenkettenlängen-Detektionsverarbeitungsteil
zum Detektieren einer Länge
einer Zeichenkette; und eine Hash-Funktion zum Zuordnen einer Zeichenkette
zu einem Hash-Funktions-Wert, bei dem, während der Verschlüsselung
des Klartextes, der Datenkettenlängen-Detektionsverarbeitungsteil
eine Länge
des Klartextes detektiert, der Erzeugungsverarbeitungsteil des Schlüssels mit
variabler Länge
eine vorbestimmte Anzahl oder weniger von Verschlüsselungsschlüsseln mit
besonderer Länge
auf der Basis der detektierten Länge
des Klartextes erzeugt und einen Verschlüsselungsschlüssel zur
Stromverschlüsselungsverarbeitung
selektiert, die Hash-Funktion einen Hash-Wert in bezug auf den zu verschlüsselnden Klartext
erzeugt und der Hash-Wert zusammen mit dem erzeugten verschlüsselten
Text gesendet wird und, während
der Entschlüsselung
des verschlüsselten
Textes, der Datenkettenlängen-Detektionsverarbeitungsteil
eine Länge
des verschlüsselten
Textes detektiert, der Erzeugungsverarbeitungsteil des Schlüssels mit
variabler Länge
eine Vielzahl oder weniger von Verschlüsselungsschlüsseln mit
besonderer Länge
auf der Basis der detektierten Länge
des verschlüsselten
Textes zur Stromentschlüsselungsverarbeitung
erzeugt, die Hash-Funktion einen Hash-Wert in bezug auf jeden der
entschlüsselten Klartexte
erzeugt und ein Klartext mit einem Hash-Wert, der dem gesendeten
Hash-Wert gleich ist, selektiert wird.
-
Gemäß der oben
angegebenen Konfiguration wird, wenn eine k-sparse language in bezug
auf k von 2 oder mehr als Erzeugungssystem des Schlüssels mit
variabler Länge
verwendet wird, eines von k möglichen
Elementen von Zeichenketten zur Verschlüsselungs- und Entschlüsselungsverarbeitung verwendet.
Deshalb wird eine Hash-Funktion verwendet, die Merkmale von Klartext
als kleine positive ganze Zahl darstellt, und ein verschlüsselter
Text, der unter Verwendung eines beliebig selektierten von k Elementen
von Zeichenketten als Schlüssel
erhalten wird, und ein Hash-Funktions-Wert werden zu einem Empfänger gesendet.
Der Empfänger
entschlüsselt den
verschlüsselten
Text hinsichtlich k Elementen von Zeichenketten, die auf der Basis
der Länge
des verschlüssel ten
Textes erzeugt wurden, und erhält
jeweilig einen Hash-Funktions-Wert
von den resultierenden Zeichenketten, wodurch der Empfänger einen
Klartext selektieren kann, der zu dem gesendeten Hash-Funktions-Wert
paßt.
Da die Länge
des Hash-Funktions-Wertes
sehr klein ist (etwa mehrere zehn Bits), ist auch dann, wenn ein
Stromcode bei der Verteilung verwendet wird, bei dem ein herkömmlicherweise
verwendeter echter Zufallszahlenwert als Schlüssel genutzt wird, kein Problem
bei der Verteilung eines Schlüssels
vorhanden.
-
Um
eine k-sparse language zu erzeugen, die dieselbe Eigenschaft wie
eine Zufallszahlenfolge hat, wird ein System mit einer Anfangskette,
einem Satz von Konvertierungsregeln und einer Konvertierungsregel-Selektionsfunktion
verwendet. Hierin ist die Anfangskette eine kurze Kette, die aus
denselben Zeichen wie denen eines Verschlüsselungsschlüssels gebildet
ist. Die Konvertierungsregel ist eine Regel zum Konvertieren eines
Zeichens in eine Zeichenkette mit einer Länge von 1 oder mehr, und jedem
Zeichen wird nur eine Regel zuteil. Einige Sätze von solchen Regeln sind
vorgesehen. Die Konvertierungsregel-Selektionsfunktion ist eine
Funktion zum Selektieren eines Satzes von Konvertierungsregeln auf
der Basis der Länge
einer Zeichenkette. In diesem System wird eine Zeichenkette in eine
Zeichenkette konvertiert, die durch Anwenden eines Satzes von Konvertierungsregeln,
die durch die Konvertierungsregel-Selektionsfunktion auf der Basis
der Länge
der Zeichenkette selektiert werden, jeweilig auf alle Zeichen derselben
erhalten wird. Eine Anfangskette wird durch das obige Konvertierungssystem
sukzessive in eine Zeichenkette konvertiert, und eine Zeichenkette mit
derselben Länge
wie jener von Klartext, oder mit einer größeren Länge als jene, wird als Verschlüsselungsschlüssel verwen det.
Es wird mathematisch verifiziert, daß das hierin beschriebene Zeichenkettenkonvertierungssystem
unfehlbar eine k-sparse language erzeugt. Eine beliebige komplizierte
Funktion kann bei der Konvertierungsregel-Selektionsfunktion verwendet
werden, die eine Entschlüsselung
verhindert.
-
Um
das obige Zeichenkettenerzeugungsvermögen des Systems weiter zu verstärken, wird
in dem Erzeugungsverarbeitungsteil von konvertierten Zeichenketten
eine kombinierte Anfangszeichenkette, die durch Kombinieren von
Zeichen, die zur Erzeugung des Verschlüsselungsschlüssels verwendet werden,
mit Zeichen von Arten, die sich von den Zeichen unterscheiden, die
zur Erzeugung des Verschlüsselungsschlüssels verwendet
werden, erzeugt wird, als Anfangszeichenkette verwendet, wird eine kombinierte
Konvertierungsregel, die durch Kombinieren einer Zeichenkonvertierungsregel
bezüglich der
Zeichen, die zum Erzeugen des Verschlüsselungsschlüssels verwendet
werden, mit einer Zeichenkonvertierungsregel bezüglich der Zeichen von Arten,
die sich von den Zeichen unterscheiden, die zur Erzeugung des Verschlüsselungsschlüssels verwendet
werden, erzeugt wird, als Konvertierungsregel verwendet, wird die
Zeichenkonvertierung wiederholt, indem die kombinierte Anfangszeichenkette und
die kombinierte Konvertierungsregel verwendet werden, und werden
nur Zeichen, die zum Erzeugen des Verschlüsselungsschlüssels verwendet
werden, aus einer erzeugten Zeichenkette extrahiert, um einen Verschlüsselungsschlüssel zu
erzeugen.
-
Ferner
wird in dem Erzeugungsverarbeitungsteil der konvertierten Zeichenkette
eine Anfangszeichenkette von Zeichen von Arten, die sich von jenen
von Zeichen unterscheiden, die für
den Verschlüsselungsschlüssel verwendet
werden, als Anfangszeichenkette verwendet, wird eine Zeichenkonvertierungsregel
bezüglich
Zeichen von Arten, die sich von jenen von Zeichen unterscheiden,
die für den
Verschlüsselungsschlüssel verwendet
werden, als Konvertierungsregel verwendet, wird die Zeichenkonvertierung
unter Verwendung der Anfangszeichenkette und der Zeichenkonvertierungsregel
wiederholt und wird der Verschlüsselungsschlüssel durch
eine zweite Zeichenkonvertierung zum Konvertieren jedes Zeichens
einer erzeugten Zeichenkette in Zeichen, die für den Verschlüsselungsschlüssel verwendet
werden, erzeugt.
-
Eine
Verschlüsselungsstärke wird
auf Grund der Verwendung von redundanten Zeichen erhöht, wie
oben beschrieben. Es wird auch mathematisch verifiziert, daß das obige
System unfehlbar eine k-sparse language erzeugt.
-
In
dem obengenannten Kryptosystem wird dann, wenn kein Verschlüsselungsschlüssel mit
einer Länge
gleich jener von Klartext erzeugt wird und wenn die Länge eines
Klartextes bereits verwendet worden ist, die Zeichenkonvertierung
fortgesetzt, um eine konvertierte Zeichenkette mit einer Länge zu erzeugen,
die für
einen Verschlüsselungsschlüssel nicht
verwendet worden ist. Dann wird ein Abschnitt der konvertierten
Zeichenkette mit einer Länge
gleich jener von Klartext übernommen,
und der verbleibende Abschnitt derselben wird ausrangiert, wodurch
der Verschlüsselungsschlüssel erzeugt
wird. Wie oben beschrieben, kann dadurch, daß ein Absender und ein Empfänger aufzeichnen
dürfen,
daß die
Länge eines
verwendeten Verschlüsselungsschlüssels verbraucht
ist, verhindert werden, daß derselbe
verwendete Schlüssel
zwei- oder mehrfach
verwendet wird, und die Sicherheitsstärke kann erhöht werden.
-
Das
computerlesbare Aufzeichnungsmedium, das ein Verarbeitungsprogramm
zum Realisieren von Verarbeitungsoperationen eines Kryptosystems
mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung speichert, enthält: eine Erzeugungsverarbeitungsoperation
eines Verschlüsselungsschlüssels mit
variabler Länge,
zum Erzeugen eines Verschlüsselungsschlüssels mit
einer erforderlichen beliebigen Länge; eine Datenkettenlängen-Detektionsverarbeitungsoperation
zum Detektieren einer Länge
einer Zeichenkette; eine Stromcodeerzeugungsverarbeitungsoperation
zum Erzeugen eines Stromcodes unter Verwendung eines bezeichneten Verschlüsselungsschlüssels; und
eine Stromcodeentschlüsselungsverarbeitungsoperation
zum Entschlüsseln
des Stromcodes unter Verwendung eines bezeichneten Verschlüsselungsschlüssels, wobei, während der
Verschlüsselung
des Klartextes, die Erzeugungsverarbeitungsoperation des Verschlüsselungsschlüssels mit
variabler Länge
das Erzeugen eines Verschlüsselungsschlüssels mit
einer besonderen Länge
auf der Basis einer Länge
eines Klartextes enthält,
die bei der Datenkettenlängen-Detektionsverarbeitungsoperation
detektiert wird, und die Stromcodeerzeugungsverarbeitungsoperation
das Erzeugen eines Stromcodes unter Verwendung eines Verschlüsselungsschlüssels enthält, der
bei der Erzeugungsverarbeitungsoperation des Verschlüsselungsschlüssels mit
variabler Länge
erzeugt wird, und, während
der Entschlüsselung
des verschlüsselten
Textes, die Erzeugungsverarbeitungsoperation des Verschlüsselungsschlüssels mit
variabler Länge das
Erzeugen desselben Verschlüsselungsschlüssels wie
des für
die Verschlüsselung
verwendeten Verschlüsselungsschlüssels mit
besonderer Länge auf
der Basis der Länge
des verschlüsselten
Textes enthält,
die bei der Datenkettenlängen-Detektionsverarbeitungsopera tion
detektiert wird, und die Stromcodeentschlüsselungsverarbeitungsoperation das
Entschlüsseln
eines Stromcodes unter Verwendung des Verschlüsselungsschlüssels enthält, der bei
der Erzeugungsverarbeitungsoperation des Verschlüsselungsschlüssels mit
variabler Länge
erzeugt wird.
-
Durch
das Bereitstellen des obigen Aufzeichnungsmediums kann das Kryptosystem
mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung unter Verwendung eines Computers vorgesehen werden,
der das Aufzeichnungsmedium lesen kann.
-
Kurze Beschreibung der
Zeichnungen
-
1 zeigt
eine exemplarische Konfiguration eines Kryptosystems mit Schlüssel mit
variabler Länge
der Ausführungsform
1 gemäß der vorliegenden
Erfindung.
-
2 zeigt eine exemplarische Konvertierungsregel,
die in einem Konvertierungsregel-Halteteil 31 der Ausführungsform
1 gemäß der vorliegenden
Erfindung gehalten wird.
-
3 ist
ein Flußdiagramm,
das Verarbeitungsoperationen in einem Absendersystem 100 der Ausführungsform
1 gemäß der vorliegenden
Erfindung zeigt.
-
4 ist
ein Flußdiagramm,
das Verarbeitungsoperationen in einem Empfängersystem 200 der
Ausführungsform
1 gemäß der vorliegenden
Erfindung zeigt.
-
5 zeigt
eine exemplarische Konfiguration eines Kryptosystems mit Schlüssel mit
variabler Länge
der Ausführungsform
2 gemäß der vorliegenden
Erfindung.
-
6 zeigt eine exemplarische Konvertierungsregel,
die in einem Konvertierungsregel-Halteteil 31a der Ausführungsform
2 gemäß der vorliegenden
Erfindung gehalten wird.
-
7 zeigt eine exemplarische Konvertierungsregel,
die in dem Konvertierungsregel-Halteteil 31a der Ausführungsform
3 gemäß der vorliegenden Erfindung
gehalten wird.
-
8 zeigt eine exemplarische Konvertierungsregel,
die in dem Konvertierungsregel-Halteteil 31a der Ausführungsform
4 gemäß der vorliegenden Erfindung
gehalten wird.
-
9 zeigt
eine exemplarische Konfiguration eines Kryptosystems mit Schlüssel mit
variabler Länge
der Ausführungsform
5 gemäß der vorliegenden
Erfindung.
-
10 zeigt eine exemplarische Konvertierungsregel,
die in einem Konvertierungsregel-Halteteil 31b der Ausführungsform
5 gemäß der vorliegenden
Erfindung gehalten wird.
-
11 zeigt
Beispiele für
ein Aufzeichnungsmedium, das ein Verarbeitungsprogramm des Kryptosystems
mit Schlüssel
mit variabler Länge
gemäß der vorliegenden
Erfindung speichert.
-
Bester Modus zum Ausführen der
Erfindung
-
Im
folgenden wird unter Bezugnahme auf die Zeichnungen ein Kryptosystem
mit Schlüssel
mit variabler Länge
einer Ausführungsform
gemäß der vorliegenden
Erfindung beschrieben.
-
(Ausführungsform 1)
-
In
einem Kryptosystem mit Schlüssel
mit variabler Länge
der Ausführungsform
1 wird ein Erzeugungssystem eines Schlüssels mit variabler Länge mit
one-sparse language verwendet. Hierin wird bei einem Schlüsselerzeugungsschema,
das nur eine zuvor gegebene konstante Zahl oder weniger von Elementen
von Zeichenketten mit besonderer Länge erzeugt, wenn die gegebene
konstante Zahl k ist, solch ein Schlüssel erzeugungsschema als k-sparse language
bezeichnet. In der Ausführungsform
1 wird, falls die Länge
spezifiziert ist, nur ein Element eines Verschlüsselungsschlüssels mit
jener Länge
erzeugt.
-
1 zeigt
eine exemplarische Konfiguration des Kryptosystems mit Schlüssel mit
variabler Länge
der Ausführungsform
1 gemäß der vorliegenden
Erfindung. In 1 bezeichnet Bezugszeichen 100 ein
Absendersystem, das einen Klartext verschlüsselt, und 200 bezeichnet
ein Empfängersystem,
das einen verschlüsselten
Text entschlüsselt, um
einen Klartext zu erzeugen. Bezugszeichen 300 bezeichnet
einen Kommunikationsweg, über
den ein Absender 1 und ein Empfänger
2 Daten austauschen.
-
Das
Absendersystem 100 enthält
einen Dateneingabeteil 10, einen Datenkettenlängen-Detektionsverarbeitungsteil 20,
einen Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30,
einen Stromcodeverarbeitungsteil 40 und eine Kommunikationsschnittstelle 50.
Ein Controller, ein Speicher und dergleichen, die zum Steuern des
Systems erforderlich sind, sind nicht gezeigt.
-
Der
Dateneingabeteil 10 gibt Daten ein/aus. Bei der Verschlüsselung
wird ein Klartext eingegeben.
-
Der
Datenkettenlängen-Detektionsverarbeitungsteil 20 detektiert
die Länge
einer gegebenen Zeichenkette. Hierin wird die Länge eines Klartextes detektiert.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30 erzeugt
einen Verschlüsselungsschlüssel mit
einer erforderlichen beliebigen Länge unter Verwendung einer
Anfangszeichenkette und einer Konvertierungsregel, wie später beschrieben.
Die Länge
eines Verschlüsselungsschlüssels basiert
auf der Länge
eines detektierten Klartextes.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30 enthält einen
Konvertierungsregel-Halteteil 31, einen Erzeugungsverarbeitungsteil
einer konvertierten Zeichenkette 32, eine Liste verwendeter
Schlüssel 33 und
einen Verschlüsselungsschlüsselkonvertierungsteil 34.
-
2(a) zeigt ein Beispiel für eine Konvertierungsregel,
die in dem Konvertierungsregel-Halteteil 31 gehalten wird. 2(a) zeigt zur Erleichterung der Beschreibung
ein sehr einfaches Beispiel hinsichtlich dreier Zeichen "A", "a" und "b". Gemäß der in 2(a) gezeigten
exemplarischen Konvertierungsregel wird bezüglich des Zeichens "A" die Länge desselben von 1 in 2 konvertiert
("aA"). Das heißt, es versteht
sich, daß die
Länge einer
zu erzeugenden Zeichenkette durch eine Zeichenkonvertierung doppelt so
groß wird.
Die Länge
einer zu erzeugenden Zeichenkette kann eingestellt werden, indem
eine Konvertierung in mehreren Stufen ausgeführt wird.
-
Es
versteht sich von selbst, daß eine
Konvertierungsregel, die tatsächlich
zu verwenden ist, die Art von zu verwendenden Zeichen bereichern
kann, und es kann eine schwierigere Konvertierungsregel verwendet
werden. Ferner wird gemäß der exemplarischen
Konvertierungsregel in 2 eine Zeichenkette
so konvertiert, daß die
Länge ihres
Teils doppelt so groß wird.
Es ist auch möglich,
die Konvertierungsregel so festzulegen, daß die Länge eines Teils einer Zeichenkette
dreimal so groß oder
größer wird.
-
Der
Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32 erzeugt
eine konvertierte Zeichenkette mit einer erforderlichen beliebigen
Länge aus
einer Anfangszeichenkette unter Verwendung einer Konvertierungsregel,
die in dem Konvertierungsregel-Halteteil 31 gehalten wird.
Um eine konvertierte Zeichenkette mit einer erforderlichen beliebigen
Länge zu
erhalten, hat der Erzeugungsverarbeitungsteil der konvertierten
Zeichenkette 32 die folgenden vier Verarbeitungsstufen.
-
Bei
der ersten Verarbeitung wird eine Anfangszeichenkette in eine konvertierte
Zeichenkette konvertiert, die die Länge eines Klartextes erreicht, wobei
die Konvertierungsregel verwendet wird, die in dem Konvertierungsregel-Halteteil 31 gehalten
wird. Wenn zum Beispiel die Konvertierungsregel und eine Anfangszeichenkette
A verwendet werden, die in 2 gezeigt
sind, wird eine konvertierte Zeichenkette erzeugt, wie sie in 2(b) gezeigt ist. Jedes Mal, wenn eine
Zeichenkonvertierung ausgeführt wird,
wird die Länge
einer konvertierten Zeichenkette um ein Zeichen vergrößert. Da
die Länge
eines Klartextes durch den Datenkettenlängen-Detektionsverarbeitungsteil 20 detektiert
wird, wird die Konvertierung wiederholt, bis die Länge der
Zeichenkette die Länge
des Klartextes erreicht, wodurch die Länge einer konvertierten Zeichenkette
vergrößert wird. Wenn
angenommen wird, daß die
Länge eines
durch den Datenkettenlängen-Detektionsverarbeitungsteil 20 detektierten
Klartextes zum Beispiel "7" beträgt, kann
gemäß der ersten
Verarbeitung eine konvertierte Zeichenkette "bababaA" mit einer Länge von 7 nach sechsmaliger
Wiederholung der Konvertierungsregel erzeugt werden.
-
Bei
der zweiten Verarbeitung wird geprüft, ob eine konvertierte Zeichenkette,
die die Länge
eines Klartextes erreicht und in der ersten Verarbeitung erzeugt
wurde, für
die frühere
Erzeugung eines Verschlüsselungsschlüssels verwendet
worden ist oder nicht. Wenn die konvertierte Zeichenkette verwendet worden
ist, wird die Zeichenkonver tierung fortgesetzt, bis eine konvertierte
Zeichenkette erhalten wird, die nicht verwendet worden ist. Deshalb
enthält der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30 die
Liste verwendeter Schlüssel 33,
die Informationen über
die Länge
einer in der Vergangenheit verwendeten konvertierten Zeichenkette enthält, und
nimmt bei der zweiten Verarbeitung Bezug auf die Informationen.
Bei dem Kryptosystem mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung wird zum Erhöhen der Verschlüsselungsstärke und
zum Gewährleisten
der Sicherheit ein Verschlüsselungsschlüssel, der
bereits verwendet worden ist, nicht noch einmal verwendet. Auch
wenn typische elektronische Post mit derselben Länge eines Klartextes oft gesendet
wird, wird ein zu verwendender Verschlüsselungsschlüssel jedes
Mal variiert, so daß ein
verschlüsselter
Text auch bei Präsenz
eines Dritten, der die Kommunikation mit verschlüsseltem Textes wittert, nicht
einfach entschlüsselt
werden kann. Bei diesem Beispiel wird in dem Fall, wenn eine konvertierte
Zeichenkette mit einer Länge
von 7 bereits verwendet worden ist, die Zeichenkonvertierung bei der
zweiten Verarbeitung fortgesetzt. Falls zum Beispiel eine konvertierte
Zeichenkette mit einer Länge von
8 bei der siebten Konvertierung der nachfolgenden Stufe nicht bereits
verwendet worden ist, wird bei der zweiten Verarbeitung eine konvertierte
Zeichenkette "abababaA" mit einer Länge von
8 ausgegeben.
-
Bei
der dritten Verarbeitung wird in dem Fall, wenn die Länge einer
konvertierten Zeichenkette, die die Länge eines Klartextes erreicht
hat, die bis zu der Zeit erhalten wurde, als die zweite Verarbeitung
vollendet war, jene eines Klartextes überschreitet, die Länge der
konvertierten Zeichen kette so eingestellt, um jene eines Klartextes
zu sein. Die Länge
wird nicht unbedingt um ein Zeichen vergrößert, je nachdem, wie eine
Konvertierungsregel aufgestellt wurde. Ferner kann bei der zweiten
Verarbeitung eine konvertierte Zeichenkette erzeugt werden, die
länger
als ein Klartext ist, so daß die
Länge einer
konvertierten Zeichenkette nicht gleich jener eines Klartextes zu sein
braucht. Deshalb wird bei der so erzeugten konvertierten Zeichenkette
ein Abschnitt mit einer Länge eines
Klartextes übernommen,
und der verbleibende Abschnitt wird ausrangiert, wodurch eine konvertierte Zeichenkette
mit derselben Länge
wie jener eines Klartextes erhalten wird. Bei diesem Beispiel wird
bei der konvertierten Zeichenkette mit einer Länge von 8, die bis zu der Zeit
erhalten wurde, als die zweite Verarbeitung vollendet war, eine
Zeichenkette von 7 Zeichen, die den führenden Abschnitt entsprechend
der Länge
von 7 eines Klartextes darstellt, übernommen, und die verbleibende
eine Zeichenkette wird ausrangiert. Genauer gesagt, die bei der
dritten Verarbeitung erhaltene Zeichenkette lautet "abababa".
-
Bei
der vierten Verarbeitung wird die konvertierte Zeichenkette, die
durch den Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32 erzeugt
wurde, in eine Zeichenkette konvertiert, die als Verschlüsselungsschlüssel zu
verwenden ist, und zwar unter Verwendung des Verschlüsselungsschlüsselkonvertierungsteils 34.
Falls die durch den Erzeugungsverarbeitungsteil der konvertierten
Zeichenkette 32 erzeugte konvertierte Zeichenkette eine Zeichenkette
ist, die als Verschlüsselungsschlüssel zu
verwenden ist, ist die vierte Verarbeitung nicht erforderlich. Bei
diesem Beispiel wird angenommen, daß ein Verschlüsselungsschlüssel eine
Binärfolge von "0" und "1" ist.
Wenn die Konvertierung wie folgt ausgeführt wird: A → "1", a → "1", b → "0", wird ein Verschlüsselungsschlüssel "1010101" erhalten, wie in 2(c) gezeigt.
-
Der
Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32 erzeugt
eine konvertierte Zeichenkette mit einer Länge eines Klartextes durch die
oben angegebenen vier Verarbeitungen. Der Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30 nutzt
ein konvertiertes Zeichen, das durch den Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32 erzeugt wurde, als Verschlüsselungsschlüssel. Genauer
gesagt, bei dem in 2 gezeigten Beispiel
wird "1010101" als Verschlüsselungsschlüssel verwendet.
-
Der
Stromcodeverarbeitungsteil 40 erzeugt einen Stromcodetext
aus einem Klartext, wobei der durch den Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30 erzeugte
Verschlüsselungsschlüssel verwendet
wird. Hierin werden Zeichen eines Verschlüsselungsschlüssels zu
den jeweiligen Zeichen eines Klartextes hinzugefügt. Da die Länge des
Klartextes jener des Verschlüsselungsschlüssels gleich
ist, werden die entsprechenden Zeichen des Verschlüsselungsschlüssels zu
den jeweiligen Zeichen des Klartextes hinzugefügt. Bei dem in 2 gezeigten
Beispiel wird eine entsprechende Binärfolge von 7 Zahlen "1010101" des Verschlüsselungsschlüssels zu
einem Klartext mit einer Länge
von 7 hinzugefügt.
-
Die
Kommunikationsschnittstelle 50 sieht eine Schnittstelle
zur Kommunikation über
ein Netz 300 vor und sendet einen Stromcodetext, der durch den
Stromcodeverarbeitungsteil 40 erzeugt wird, an das Empfängersystem 200.
Um die Informationen über
die Länge
des zur Verschlüsselungsverarbeitung
verwendeten Verschlüsselungsschlüssels in
der Liste verwendeter Schlüssel 33 des
Empfängersystems 200 (später beschrieben)
zu halten, während der
Inhalt synchronisiert wird, teilt die Kommunikationsschnittstelle 50 dem
Empfängersystem 200 auch die
Informationen mit.
-
Als
nächstes
wird die Entschlüsselungsverarbeitung
in dem Empfängersystem 200 beschrieben.
-
Das
Empfängersystem 200 enthält einen
Dateneingabeteil 10, einen Datenkettenlängen-Detektionsverarbeitungsteil 20,
einen Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30,
einen Stromcodeverarbeitungsteil 40 und eine Kommunikationsschnittstelle 50.
Ein Controller, ein Speicher und dergleichen, die zum Steuern des
Systems erforderlich sind, sind nicht gezeigt.
-
Der
Dateneingabeteil 10 gibt Daten ein/aus. In dem Empfängersystem 200 empfängt der
Dateneingabeteil 10 einen verschlüsselten Text von der Kommunikationsschnittstelle 50.
-
Der
Datenkettenlängen-Detektionsverarbeitungsteil 20 detektiert
die Länge
einer gegebenen Zeichenkette auf dieselbe Weise wie der Datenkettenlängen-Detektionsverarbeitungsteil 20 in
dem Absendersystem 100. In dem Empfängersystem 200 detektiert
der Datenkettenlängen-Detektionsverarbeitungsteil 20 die
Länge des
empfangenen verschlüsselten
Textes.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30 ist
derselbe wie der Erzeugungsverarbeitungsteil des Schlüssels mit variabler
Länge 30 in
dem Absendersystem 100 und erzeugt einen Schlüssel (d.
h., der derselbe wie ein Verschlüsselungsschlüssel ist)
mit einer erforderlichen beliebigen Länge, der zur Entschlüsselung
verwendet wird, unter Verwendung einer Anfangszeichenkette und einer
Konvertierungsregel. In dem Empfängersystem 200 basiert
die Länge
des Verschlüsselungsschlüssels auf
der Länge
eines verschlüsselten
Textes. Der Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30 des
Empfängersystems 200 enthält ähnlich einen
Konvertierungsregel-Halteteil 31,
einen Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32,
eine Liste verwendeter Schlüssel 33 und
einen Verschlüsselungsschlüsselkonvertierungsteil 34. Hierbei
wird angenommen, daß die
in dem Konvertierungsregel-Halteteil 31 gehaltene
Konvertierungsregel dieselbe wie jene ist, die in dem Konvertierungsregel-Halteteil 31 des
Absendersystems 100 gehalten wird, und zuvor durch ein
sicheres Verfahren an das Absendersystem 100 und das Empfängersystem 200 verteilt
wird. Ferner wird angenommen, daß eine zu verwendende Anfangszeichenkette
dieselbe wie jene ist, die durch das Absendersystem 100 verwendet
wird, und zuvor durch ein sicheres Verfahren an das Absendersystem 100 und
das Empfängersystem 200 verteilt
wird. Zum Beispiel kann ein Kryptosystem mit öffentlichem Schlüssel oder
dergleichen zur Verteilung verwendet werden.
-
Hierbei
ist die Konvertierungsregel, die in dem Konvertierungsregel-Halteteil 31 gehalten
wird, dieselbe wie jene, die in 2 gezeigt
ist. Genauso wie im Falle des Absendersystems 100 wird
hinsichtlich eines Teils von Zeichen eine Zeichenkette mit einer
Länge von
1 in eine Zeichenkette mit einer Länge von 2 konvertiert. Immer
dann, wenn eine Zeichenkonvertierung vorgenommen wird, wird die
Länge einer
erzeugten Zeichenkette um ein Zeichen vergrößert. Die Länge einer zu erzeugenden Zeichenkette kann
eingestellt werden, indem die Konvertierung in mehreren Stufen ausgeführt wird.
-
Der
Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32 erzeugt
eine konvertierte Zeichenkette mit einer Länge eines verschlüsselten Textes
aus einer Anfangszeichenkette unter Verwendung der Konvertierungsregel,
die in dem Konvertierungsregel-Halteteil 31 gehalten wird.
Um eine konvertierte Zeichenkette mit einer Länge eines verschlüsselten
Textes zu erhalten, hat der Erzeugungsverarbeitungsteil der konvertierten
Zeichenkette 32 die folgenden vier Verarbeitungsstufen.
-
Bei
der ersten Verarbeitung wird eine Anfangszeichenkette in eine konvertierte
Zeichenkette konvertiert, bis sie die Länge eines verschlüsselten Textes
erreicht, wobei die Konvertierungsregel verwendet wird, die in dem
Konvertierungsregel-Halteteil 31 gehalten wird. Falls die
Konvertierungsregel und die Anfangszeichenkette A, die in 2(a) gezeigt sind, verwendet werden, wird
eine konvertierte Zeichenkette ähnlich
wie in 2(b) erzeugt. Da die Länge eines
verschlüsselten
Textes durch den Datenkettenlängen-Detektionsverarbeitungsteil 20 detektiert
wird, wird die Konvertierung wiederholt, bis die Länge der
Zeichenkette jene des verschlüsselten Textes
erreicht, wodurch die Länge
einer konvertierten Zeichenkette vergrößert wird. Hierbei wird, da
die Länge
des verschlüsselten
Textes gemäß der ersten Verarbeitung "7" beträgt, die Konvertierungsregel sechsmal
wiederholt, um eine konvertierte Zeichenkette mit einer Länge von
7 zu erzeugen.
-
Bei
der zweiten Verarbeitung wird geprüft, ob eine konvertierte Zeichenkette,
die die Länge
eines verschlüsselten
Textes erreicht und bei der ersten Verarbeitung erzeugt wurde, für die frühere Erzeugung
eines Verschlüsselungsschlüssels verwendet worden
ist oder nicht. Wenn die konvertierte Zeichenkette verwendet worden
ist, wird die Zeichenkonvertierung fortgesetzt, bis eine konvertierte
Zeichen kette erhalten wird, die nicht verwendet worden ist. Deshalb
enthält
der Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30 die
Liste verwendeter Schlüssel 33,
die Informationen über
die Länge einer
konvertierten Zeichenkette enthält,
die in der Vergangenheit verwendet wurde, und mit der Liste verwendeter
Schlüssel 33 des
Absendersystems 100 in bezug auf den Verlaufsinformationsinhalt
synchron ist, und nimmt bei der zweiten Verarbeitung Bezug auf die
Informationen. Hierbei sind die Informationen in der Liste verwendeter
Schlüssel 33 mit
dem Informationsinhalt der Liste verwendeter Schlüssel 33 des Absendersystems 100 synchron,
und die frühere
Verwendung der konvertierten Zeichenkette mit einer Länge von
7 ist in der Liste verwendeter Schlüssel 33 gespeichert.
Deshalb wird bestimmt, daß die
Zeichenkette nicht verwendet werden kann. Bei der zweiten Verarbeitung
wird die Zeichenkonvertierung fortgesetzt. Hinsichtlich einer konvertierten
Zeichenkette mit einer Länge
von 8 in der nachfolgenden Stufe sind keine Informationen über die
Verwendung derselben in der Liste verwendeter Schlüssel 33 enthalten,
und die konvertierte Zeichenkette mit einer Länge von 8 wird von der zweiten
Verarbeitung ausgegeben.
-
Bei
der dritten Verarbeitung wird in dem Fall, wenn
die Länge
einer konvertierten Zeichenkette, die die Länge eines verschlüsselten
Textes erreicht hat, die durch die zweite Verarbeitung erhalten
wurde, die Länge
eines verschlüsselten
Textes überschreitet, die
Länge der
konvertierten Zeichenkette so eingestellt, um die Länge des
verschlüsselten
Textes zu sein. Bei der erzeugten konvertierten Zeichenkette wird
ein Abschnitt mit einer Länge
des verschlüsselten
Textes übernommen,
und der verbleibende Abschnitt des ver schlüsselten Textes wird ausrangiert, wodurch
eine konvertierte Zeichenkette mit derselben Länge wie jener des verschlüsselten
Textes erhalten wird. Bei dem in 2 gezeigten
Beispiel wird bei der konvertierten Zeichenkette mit einer Länge von
8, die bis zu der Zeit erhalten wurde, als die zweite Verarbeitung
vollendet war, eine Zeichenkette von 7 Zeichen, die den führenden
Abschnitt darstellt und der Länge
von 7 eines verschlüsselten
Textes entspricht, übernommen,
und die verbleibende eine Zeichenkette wird ausrangiert. Genauer
gesagt, die bei der dritten Verarbeitung erhaltene konvertierte
Zeichenkette lautet "abababa".
-
Bei
der vierten Verarbeitung wird die konvertierte Zeichenkette, die
durch den Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32 erzeugt
wird, unter Verwendung des Verschlüsselungsschlüsselkonvertierungsteils 34 in
eine Zeichenkette konvertiert, die als Verschlüsselungsschlüssel zu verwenden
ist. Falls die konvertierte Zeichenkette, die durch den Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32 erzeugt wird, eine Zeichenkette
ist, die als Verschlüsselungsschlüssel zu verwenden
ist, ist die vierte Verarbeitung nicht erforderlich. Bei diesem
Beispiel wird angenommen, daß ein
Verschlüsselungsschlüssel eine
Binärfolge
von "0" und "1" ist. Wenn die Konvertierung wie folgt
ausgeführt
wird: A → "1" , a → "1" ,
b → "0" , wird ein Verschlüsselungsschlüssel "1010101" erhalten, wie in 2(c) gezeigt.
-
Der
Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32 erzeugt
eine konvertierte Zeichenkette mit einer Länge eines verschlüsselten Textes
durch die oben angegebenen vier Verarbeitungen. Der Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30 nutzt
ein konvertiertes Zeichen, das durch den Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32 erzeugt wurde, als Verschlüsselungsschlüssel. Genauer
gesagt, genauso wie in dem Absendersystem 100 wird in dem
Empfängersystem 200 auch
ein Verschlüsselungsschlüssel "1010101" erzeugt.
-
Derselbe
Verschlüsselungsschlüssel wie
jener, der in dem Absendersystem 100 verwendet wird, wird
auch in dem Empfängersystem 200 erhalten, wie
oben beschrieben.
-
Der
Stromcodeverarbeitungsteil 40 entschlüsselt einen Stromcodetext in
einen Klartext unter Verwendung des durch den Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30 erzeugten
Verschlüsselungsschlüssels. Hierbei
werden die Zeichen des Verschlüsselungsschlüssels von den
jeweiligen Zeichen des Stromcodetextes subtrahiert. Da die Länge des
verschlüsselten
Textes dieselbe wie jene des Verschlüsselungsschlüssels ist, werden
die Zeichen des Verschlüsselungsschlüssels, die
den jeweiligen Zeichen des verschlüsselten Textes entsprechen,
subtrahiert. Bei diesem Beispiel werden die 7 Zeichen "1010101" des Verschlüsselungsschlüssels entsprechend
den jeweiligen Zeichen des verschlüsselten Textes mit einer Länge von 7
jeweilig subtrahiert, um einen Klartext zu erhalten.
-
Schließlich wird
unter Bezugnahme auf ein Flußdiagramm
der Verarbeitungsablauf des Kryptosystems mit Schlüssel mit
variabler Länge
beschrieben. Falls die in dem Flußdiagramm beschriebenen Verarbeitungsoperationen
verwendet werden, wird das Verfahren zum Ausführen der Verschlüsselungsverarbeitung
mit variabler Länge
der vorliegenden Erfindung verstanden. 3 zeigt
Verarbeitungsoperationen in dem Absendersystem 100, und 4 zeigt
Verarbeitungsoperationen in dem Empfängersystem 200.
-
In
dem Absendersystem 100 werden, wie in 3 gezeigt,
die Eingabeverarbeitung eines Klartextes von dem Dateneingabeteil 10 (Operation 301), die
Detektionsverarbeitung einer Länge
eines Klartextes durch den Datenkettenlängen-Detektionsverarbeitungsteil 20 (Operation 302),
die erste Verarbeitung durch den Erzeugungsverarbeitungsteil des Schlüssels mit
variabler Länge 30 (Operation 303), die
zweite Verarbeitung (Operation 304), die Zeichenkonvertierungsfortsetzungsverarbeitung
in dem Fall, wenn eine konvertierte Zeichenkette verwendet worden
ist (Operation 305), die dritte Verarbeitung in dem Fall,
wenn eine konvertierte Zeichenkette nicht verwendet worden ist (Operation 306),
die vierte Verarbeitung (Operation 307) und die Stromverschlüsselungsverarbeitung
(Operation 308) durch den Stromcodeverarbeitungsteil 40 ausgeführt.
-
Ähnlich werden
in dem Empfängersystem 200,
wie in 4 gezeigt, die Eingabeverarbeitung eines verschlüsselten
Textes von dem Dateneingabeteil 10 durch die Kommunikationsschnittstelle 50 (Operation 401),
die Detektionsverarbeitung einer Länge eines verschlüsselten
Textes durch den Datenkettenlängen-Detektionsverarbeitungsteil 20 (Operation 402),
die erste Verarbeitung durch den Erzeugungsverarbeitungsteil des
Schlüssels
mit variabler Länge 30 (Operation 403),
die zweite Verarbeitung (Operation 404), die Zeichenkonvertierungsfortsetzungsverarbeitung
in dem Fall, wenn eine konvertierte Zeichenkette verwendet worden
ist (Operation 405), die dritte Verarbeitung in dem Fall,
wenn eine konvertierte Zeichenkette nicht verwendet worden ist (Operation 406),
die vierte Verarbeitung (Operation 407) und die Stromentschlüsselungsverarbeitung durch
den Stromcodeverarbeitungsteil 40 (Operation 408)
ausgeführt.
-
Auf
Grund der Verschlüsselungsverarbeitung
durch das Absendersystem 100 und der Entschlüsselungsverarbeitung
durch das Empfängersystem 200 kann
ein Verschlüsselungsschlüssel auf der
Basis der Länge
eines Klartextes und der Länge eines
verschlüsselten
Textes erzeugt werden, ohne den Verschlüsselungsschlüssel in
einem Stromkryptosystem zu verteilen, wodurch eine hohe Sicherheit realisiert
werden kann. Parameter, die zum Erzeugen einer sparse language erforderlich
sind, sind lediglich eine Anfangskette und ein Satz von Konvertierungsregeln.
Der Verschlüsselungsschlüssel wird
nicht zweimal verwendet, so daß keine
Möglichkeit
besteht, daß ein
Klartext nur aus einem verschlüsselten Text
erhalten werden kann. Ferner wird ein Verschlüsselungsschlüssel durch
das Wiederholen der Zeichenkonvertierung erzeugt, und die Zeichenkonvertierung
kann parallel ausgeführt
werden. Deshalb kann der Schlüssel
in einer kurzen Berechnungszeit erzeugt werden. Sobald der Schlüssel erzeugt
ist, werden die Verschlüsselung
und Entschlüsselung
lediglich durch Addition und Subtraktion ausgeführt, so daß die Verschlüsselung
und die Entschlüsselung
mit hoher Geschwindigkeit vorgenommen werden können. Deshalb kann eine große Menge
von Daten mit hoher Geschwindigkeit verschlüsselt werden.
-
(Ausführungsform 2)
-
Bei
einem Kryptosystem mit Schlüssel
mit variabler Länge
der Ausführungsform
2 wird ein Erzeugungssystem eines Schlüssels mit variabler Länge mit
k-sparse language verwendet (k ist eine ganze Zahl von 2 oder mehr).
Im Vergleich zu der Ausführungsform
1 wird in dem Kryptosystem mit Schlüssel mit variabler Länge der
Ausführungsform
2 eine Vielzahl von Sätzen
von Konvertierungsregeln vorbereitet, wird ein Konvertierungsregelsatz
zur Zeichenkonvertierung dynamisch selektiert und wird eine Hash-Funktion
als Information zum Identifizieren dessen verwendet, welcher Konvertierungsregelsatz verwendet
worden ist. In der Ausführungsform
2 wird zur Erleichterung der Beschreibung ein Erzeugungssystem eines
Schlüssels
mit variabler Länge
einer 2-sparse language beschrieben.
-
5 zeigt
eine exemplarische Konfiguration des Kryptosystems mit Schlüssel mit
variabler Länge
der Ausführungsform
2 gemäß der vorliegenden
Erfindung. In 5 bezeichnet Bezugszeichen 100a ein
Absendersystem, das einen Klartext verschlüsselt, und 200a bezeichnet
ein Empfängersystem,
das einen verschlüsselten
Text entschlüsselt, um
einen Klartext zu erzeugen. Bezugszeichen 300 bezeichnet
einen Kommunikationsweg, über
den ein Absender 1 und ein Empfänger
2 Daten austauschen.
-
Das
Absendersystem 100a enthält einen Dateneingabeteil 10,
einen Datenkettenlängen-Detektionsverarbeitungsteil 20,
einen Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a,
einen Stromcodeverarbeitungsteil 40 und eine Kommunikationsschnittstelle 50.
Ein Controller, ein Speicher und dergleichen, die zum Steuern des
Systems erforderlich sind, sind nicht gezeigt.
-
Der
Dateneingabeteil 10, der Datenkettenlängen-Detektionsverarbeitungsteil 20,
der Stromcodeverarbeitungsteil 40 und die Kommunikationsschnittstelle 50 sind
dieselben wie die Bildungselemente, die mit denselben Bezugszeichen
in dem Absendersystem 100 versehen sind und in der Ausführungsform
1 beschrieben wurden. Deshalb wird ihre Beschreibung hier weggelassen.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a erzeugt
einen Verschlüsselungsschlüssel mit
einer erforderlichen beliebigen Länge unter Verwendung einer
Anfangszeichenkette und einer Konvertierungsregel, wie später beschrieben.
Die Länge
eines Verschlüsselungsschlüssels basiert
wie in der Ausführungsform
1 auf der Länge
eines detektierten Klartextes. Der Erzeugungsverarbeitungsteil des
Schlüssels
mit variabler Länge 30a der
Ausführungsform
2 enthält
einen Konvertierungsregel-Selektionsfunktionsverarbeitungsteil 35 und
einen Hash-Funktions-Verarbeitungsteil 36 sowie einen Konvertierungsregel-Halteteil 31a,
einen Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32a,
eine Liste verwendeter Schlüssel 33 und
einen Verschlüsselungsschlüsselkonvertierungsteil 34.
-
Der
Konvertierungsregel-Halteteil 31a hält Konvertierungsregeln. In
der Ausführungsform
2 hält der
Konvertierungsregel-Halteteil 31a eine Vielzahl von Sätzen von
Konvertierungsregeln, wie in 6 gezeigt.
Bei dem in 6 gezeigten Beispiel wird
zur Erleichterung der Beschreibung angenommen, daß jeder
Satz eine einfache Konvertierungsregel für drei Zeichen ist, und es
sind nur zwei Sätze
gezeigt: nämlich
die Konvertierungsregel 1 und die Konvertierungsregel 2. Es versteht
sich von selbst, daß eine tatsächlich zu
verwendende Konvertierungsregel die Anzahl von zu verwendenden Zeichen
bereichern kann und eine größere Anzahl
von Sätzen
gehalten werden kann. Gemäß der exemplarischen
Konvertierungsregel in 6 wird eine
Zeichenkette so konvertiert, daß die
Länge ihres
Teils von eins in zwei konvertiert wird. Jedoch ist es genauso wie
in der Ausführungsform
1 auch möglich,
die Konvertierungsregel so festzulegen, daß die Länge eines Teils einer Zeichenkette
das Dreifache oder mehr erreicht.
-
Der
Konvertierungsregel-Selektionsfunktionsverarbeitungsteil 35 selektiert
dynamisch einen Konvertierungsregelsatz von einer Vielzahl von Sätzen von
Konvertierungsregeln, die in dem Konvertierungsregel-Halteteil 31a gehalten
werden. Verschiedene Konvertierungsregel-Selektionsfunktionen können angenommen
werden. Hierbei wird die folgende Funktion verwendet: in dem Fall,
wenn die Länge
eines Klartextes eine Primzahl ist, wird "1" (d.
h. die Konvertierungsregel 1) selektiert, und in dem Fall, wenn
die Länge
eines Klartextes keine Primzahl ist, wird "2" (d.
h. die Konvertierungsregel 2) selektiert. Gemäß dieser Funktion ist es unmöglich, da
die Charakteristiken der Verteilung von Primzahlen im Prinzip bislang
nicht geklärt
sind, die Tendenz zu verstehen, wieso die Konvertierungsregel 1
oder die Konvertierungsregel 2 selektiert wird. Auch wenn in der Ausführungsform
2 angenommen wird, daß die
Länge eines
Klartextes 7 ist, ist 7 eine Primzahl, so daß die Konvertierungsregel 1
auf der Basis der Konvertierungsregel-Selektionsfunktion selektiert
wird.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a erzeugt
eine konvertierte Zeichenkette gemäß der Länge eines Klartextes durch
den Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32a unter
Verwendung der selektierten Konvertierungsregel 1 und einer Anfangszeichenkette,
genauso wie in der Ausführungsform
1. In der Ausführungsform
2 führt
der Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32a die
ersten bis vierten Verarbeitungen aus, die in der Ausführungsform
1 beschrieben wurden. Bei diesem Beispiel ist die selektierte Konvertierungsregel
1 dieselbe wie jene, die in 2(a) gezeigt
ist, die in der Ausführungsform
1 beschrieben ist, so daß eine
zu erzeugende Zeichenkette auch dieselbe wie jene wird, die in 2(b) gezeigt ist. Hierbei wird angenommen,
daß ein
konvertiertes Zeichen "abababa" erzeugt wird. Es
wird auch angenommen, daß der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a "1010101" als Verschlüsselungsschlüssel verwendet.
-
Der
Hash-Funktions-Verarbeitungsteil 36 berechnet eine Hash-Funktion
auf der Basis einer konvertierten Zeichenkette, die durch den Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32a erzeugt wurde, um einen
Hash-Wert zu erhalten. Um die Stärke
der Sicherheit zu erhöhen,
wird vorzugsweise eine Hash-Funktion verwendet, deren Regel wahrscheinlich
nicht herausgefunden werden kann, und die Hash-Funktion ist vorzugsweise
eine echte Zufallszahlenfolge. Bei diesem Beispiel wird angenommen,
daß ein
Hash-Wert H1 bezüglich eines
Verschlüsselungsschlüssels "1010101" berechnet wird.
-
Der
Stromcodeverarbeitungsteil 40 erzeugt einen Stromcodetext
aus einem Klartext unter Verwendung des Verschlüsselungsschlüssels, der
durch den Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a erzeugt
wurde, genauso wie bei der Ausführungsform
1. Hierbei werden die 7 Zeichen "1010101" des entsprechenden
Verschlüsselungsschlüssels zu
den jeweiligen Zeichen eines Klartextes von 7 Zeichen hinzugefügt.
-
Die
Kommunikationsschnittstelle 50 sieht eine Schnittstelle
zur Kommunikation über
ein Netz 300 vor. In der Ausführungsform 2 sendet die Kommunikationsschnittstelle 50 den
Stromcodetext, der durch den Stromcodeverarbeitungsteil 40 erzeugt wurde,
und den Hash-Funktions-Wert H1 an das Empfängersystem 200a. Die
Informationen über
die Länge
des Verschlüsselungsschlüssels, der
zur Verschlüsselungsverarbeitung
verwendet wird, werden dem Empfängersystem 200a auch
mitgeteilt, um mit dem Inhalt der Liste verwendeter Schlüssel 33 synchron
zu sein.
-
Als
nächstes
wird die Entschlüsselungsverarbeitung
in dem Empfängersystem 200a beschrieben.
-
Das
Empfängersystem 200a enthält einen Dateneingabeteil 10,
einen Datenkettenlängen-Detektionsverarbeitungsteil 20,
einen Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a, einen
Stromcodeverarbeitungsteil 40 und eine Kommunikationsschnittstelle 50.
Ein Controller, ein Speicher und dergleichen, die zum Steuern des
Systems erforderlich sind, sind nicht gezeigt.
-
Der
Dateneingabeteil 10, der Datenkettenlängen-Detektionsverarbeitungsteil 20,
der Stromcodeverarbeitungsteil 40 und die Kommunikationsschnittstelle 50 sind
dieselben wie die Bildungselemente, die mit denselben Bezugszeichen
in dem Empfängersystem 200 versehen
sind und in der Ausführungsform
1 beschrieben wurden. Deshalb wird ihre Beschreibung hier weggelassen.
-
Der
verschlüsselte
Text und der Hash-Wert werden von dem Dateneingabeteil 10 durch
die Kommunikationsschnittstelle 50 empfangen. Bei diesem Beispiel
lautet der Hash-Wert
H1.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a erzeugt
einen Schlüssel
(d. h., der derselbe wie ein Verschlüsselungsschlüssel ist)
mit einer erforderlichen beliebigen Länge, der zur Entschlüsselung
verwendet wird, unter Verwendung einer Anfangszeichenkette und einer Konvertierungsregel.
In der vorliegenden Ausführungsform
gibt es eine Vielzahl von Sätzen
von Konvertierungsregeln, so daß bestimmt
werden muß, welcher
Verschlüsselungsschlüssel, der
unter Verwendung welches Konvertierungsregelsatzes erzeugt wurde,
korrekt ist.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a enthält einen Hash-Funktions-Verarbeitungsteil 36 sowie
einen Konvertierungsregel-Halteteil 31a, einen Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32a, eine Liste verwendeter
Schlüssel 33 und
einen Verschlüsselungsschlüsselkonvertierungsteil 34. Hierbei
wird angenommen, daß jeder
von einer Vielzahl von Sätzen
von Konvertierungsregeln, die in dem Konvertierungsregel-Halteteil 31a gehalten
werden, derselbe wie jeder von einer Vielzahl von Sätzen von
Konvertierungsregeln ist, die in dem Konvertierungsregel-Halteteil 31a des
Absendersystems 100a gehalten werden. Ferner wird angenommen,
daß eine
Hash-Funktion, die
in dem Hash-Funktion-Verarbeitungsteil 36 gehalten wird,
dieselbe wie jene ist, die in dem Hash-Funktions-Verarbeitungsteil 36 des Absendersystems 100a gehalten
wird, und diese durch ein sicheres Verfahren zuvor an das Absendersystem 100a und
das Empfängersystem 200a verteilt werden.
Weiterhin wird angenommen, daß eine
Anfangszeichenkette, die zu verwenden ist, dieselbe wie jene ist,
die durch das Absendersystem 100a verwendet wird, und zuvor
durch ein sicheres Verfahren an das Absendersystem 100a und
das Empfängersystem 200a verteilt
wird.
-
Der
Erzeugungsverarbeitungsteil der konvertierten Zeichenkette 32a erzeugt
eine konvertierte Zeichenkette mit einer Länge eines verschlüsselten Textes
aus einer Anfangszeichenkette unter Verwendung eines jeden der Sätze von Konvertierungsregeln,
die in dem Konvertierungsregel-Halteteil 31a gehalten werden.
Genauer gesagt, bei diesem Beispiel wird ein Verschlüsselungsschlüssel 1 unter
Verwendung der Konvertierungsregel 1 und einer Anfangszeichenkette,
die in 6 gezeigt sind, erzeugt, und
ein Verschlüsselungsschlüssel 2 wird
unter Verwendung der Konvertierungsregel 2 und einer Anfangszeichenkette
erzeugt. Ein Verschlüsselungsschlüssel wird
unter Verwendung der ersten bis dritten Verarbeitungen erzeugt,
die in der Ausführungsform
1 beschrieben sind. Es wird angenommen, daß eine erste konvertierte Zeichenkette "abababa" und ein erster Verschlüsselungsschlüssel "1010101" durch die Konvertierungsregel
1 und eine Anfangszeichenkette erzeugt werden und eine zweite konvertierte
Zeichenkette "bababab" und "0101010" durch die Konvertierungsregel
2 und eine Anfangszeichenkette erzeugt werden.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a erhält einen Hash-Wert
von jedem Verschlüsselungsschlüssel, der
durch den Hash-Funktions-Verarbeitungsteil 236 erzeugt
wird. Bei diesem Beispiel wird angenommen, daß ein Hash-Wert H1 aus dem
ersten Verschlüsselungsschlüssel "1010101" erzeugt wird und
ein Hash-Wert H2 aus einem zweiten Verschlüsselungsschlüssel "0101010" erzeugt wird. Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30a vergleicht
den erzeugten Hash-Wert mit jenem, der von dem Absendersystem 100a gesendet
wurde, und bestimmt einen Verschlüsselungsschlüssel mit einem
korrekten Hash-Wert als korrekten Verschlüsselungsschlüssel. Bei
diesem Beispiel wird ein Verschlüsselungsschlüssel 1 "1010101", der denselben Hash-Wert
H1 hat, als korrekter Verschlüsselungsschlüssel bestimmt.
-
Der
Stromcodeverarbeitungsteil 40 entschlüsselt einen Stromcodetext in
einen Klartext unter Verwendung des durch den Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30a erzeugten
Verschlüsselungsschlüssels. Bei
diesem Beispiel werden 7 Zeichen "1010101" des Verschlüsselungsschlüssels 1
von einem verschlüsselten
Text mit einer Länge
von 7 subtrahiert, um einen Klartext zu erhalten.
-
Auf
Grund der Verschlüsselungsverarbeitung
durch das Absendersystem 100a und der Entschlüsselungsverarbeitung
durch das Empfängersystem 200a kann
ein Verschlüsselungsschlüssel auf der
Basis der Länge
eines Klartextes und der Länge eines
verschlüsselten
Textes erzeugt werden, ohne einen Verschlüsselungsschlüssel eines
Stromkryptosystems zu verteilen. Ferner wird die Verschlüsselung
durch dynamisches Selektieren eines Konvertierungsregelsatzes von
einer Vielzahl von Sätzen
von Konvertierungsregeln ausgeführt,
so daß eine
hohe Sicherheit realisiert werden kann. Da ein Verschlüsselungsschlüssel nicht
zweimal verwendet wird, besteht keine Möglichkeit, daß ein Klartext
lediglich aus einem verschlüsselten
Text erhalten wird. weiterhin kann eine Vielzahl von Verschlüsselungsschlüsseln bei
der Entschlüsselung
parallel erzeugt werden, und Verschlüsselungsschlüssel können in
einer kürzeren Zeitperiode
erzeugt werden. Die Verschlüsselung und
Entschlüsselung
werden nur durch Addition und Subtraktion ausgeführt, so daß die Verschlüsselung und
Entschlüsselung
mit einer hohen Geschwindigkeit vorgenommen werden können. Deshalb
kann die Verschlüsselung
einer großen
Menge an Daten mit hoher Geschwindigkeit erfolgen.
-
(Ausführungsform 3)
-
Das
Kryptosystem mit Schlüssel
mit variabler Länge
der Ausführungsform
3 weist eine Vielzahl von Konvertierungsregeln auf und schaltet
eine Konvertierungsregel, die in jeder Stufe der Zeichenkonvertierung
zu verwenden ist, durch eine Konvertierungsregel-Selektionsfunktion
um. Als Konvertierungsregel-Selektionsfunktion wird eine Funktion zum
Umschalten einer Konvertierungsregel gemäß der Länge eines konvertierten Zeichens
in jeder Stufe der Zeichenkonvertierung eingesetzt. In der Ausführungsform
3 wird ein Beispiel für
das Umschalten einer Konvertierungsregel in Abhängigkeit davon beschrieben,
ob die Länge
eines konvertierten Zeichens eine Primzahl ist oder nicht. Als Beispiel
wird die Erzeugungsverarbeitung eines Schlüssels mit variabler Länge einer
one-sparse language beschrieben.
-
Die
Konfiguration selbst des Kryptosystems mit Schlüssel mit variabler Länge der
Ausführungsform
3 kann jener der Ausführungsform
2 ähnlich
sein und ist in 5 gezeigt. Bei dem Beispiel
der Ausführungsform
3 wird als Konvertierungsregel-Selektionsfunktion in jeder Stufe
der Zeichenkonvertierung bestimmt, ob die Länge einer Zeichenkette eine
Primzahl ist oder nicht, wodurch eine Konvertierungsregel umgeschaltet
wird. In dem Fall, wenn die Länge
einer konvertierten Zeichenkette eine Primzahl ist, wird die Konvertierungsregel
1 verwendet, und in dem Fall, wenn die Länge einer konvertierten Zeichenkette
keine Primzahl ist, wird die Konvertierungsregel 2 verwendet.
-
Der
Konvertierungsregel-Halteteil 31a hält zwei Konvertierungsregeln:
die Konvertierungsregel 1 und die Konvertierungsregel 2, wie in 7(a) gezeigt. Gemäß der Konvertierungsregel-Selektionsfunktion
des Konvertierungsregel- Selektionsfunktionsverarbeitungsteils 35 wird
in dem Fall, wenn die Länge
einer Zeichenkette eine Primzahl ist, die Konvertierungsregel 1
bei jedem Prozeß der
Zeichenkonvertierung verwendet, und wird in dem Fall, wenn die Länge keine
Primzahl ist, die Konvertierungsregel 2 verwendet.
-
Bei
der ersten Verarbeitung erzeugt der Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30a eine
Zeichenkette, indem mit A begonnen wird und in jeder Stufe der Zeichenkonvertierung
eine Konvertierungsregel in Abhängigkeit
davon umgeschaltet wird, ob die Länge einer Zeichenkette eine
Primzahl ist oder nicht, wie in 7(b) gezeigt. Wenn
bei diesem Beispiel angenommen wird, daß die Länge eines Klartextes 7 ist,
wird eine Konvertierungsregel, die zu verwenden ist, auf der Basis
der Länge
einer konvertierten Zeichenkette umgeschaltet, die aus einer Anfangszeichenkette
A erzeugt wird, wodurch eine konvertierte Zeichenkette "babaabA" mit einer Länge von
7 erhalten wird, wie in 7(b) gezeigt.
Die zweiten bis vierten Verarbeitungen sind dieselben wie jene bei
der Ausführungsform 2,
so daß die
eingehende Beschreibung derselben hier weggelassen wird. Bei diesem
Beispiel wird auf die Informationen in der Liste verwendeter Schlüssel 33 Bezug
genommen, wodurch detektiert wird, daß eine konvertierte Zeichenkette
mit einer Länge
von 7 bereits verwendet worden ist. Dann wird eine konvertierte
Zeichenkette "ababbaaA" mit einer Länge von
8 in "10100111" konvertiert, um
einen Verschlüsselungsschlüssel mit
den oberen 7 Bits "1010011" zu erzeugen, und
ein Stromcode wird auf der Basis dieses Verschlüsselungsschlüssels erzeugt.
-
In
dem Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge des
Empfängersystems
wird eine konvertierte Zeichenkette "babaabA" mit einer Länge von 7 auf der Basis der
Länge von
7 eines verschlüsselten
Textes erzeugt. Auf die Informationen in der Liste verwendeter Schlüssel wird
Bezug genommen, wodurch detektiert wird, daß die konvertierte Zeichenkette
mit einer Länge
von 7 bereits verwendet worden ist. Dann wird eine konvertierte
Zeichenkette "ababbaaA" mit einer Länge von
8 in "10100111" konvertiert, um
einen Verschlüsselungsschlüssel mit
den oberen 7 Bits "1010011" zu erzeugen. Ein
Stromcode wird auf der Basis dieses Verschlüsselungsschlüssels entschlüsselt, um
einen Klartext zu erhalten.
-
(Ausführungsform 4)
-
Genauso
wie bei der Ausführungsform
3 hat das Kryptosystem mit Schlüssel
mit variabler Länge der
Ausführungsform
4 eine Vielzahl von Konvertierungsregeln und schaltet eine Konvertierungsregel, die
zu verwenden ist, in jeder Stufe der Zeichenkonvertierung durch
eine Konvertierungsregel-Selektionsfunktion
um. Als Konvertierungsregel-Selektionsfunktion wird eine Funktion
zum Umschalten einer Konvertierungsregel gemäß der Länge eines konvertierten Zeichens
in jeder Stufe der Zeichenkonvertierung eingesetzt. In der Ausführungsform
4 ist ein Beispiel für
das Umschalten einer Konvertierungsregel auf der Basis des Resultats
einer Restklassenoperation einer Länge eines konvertierten Zeichens
angegeben. Als Beispiel wird die Erzeugungsverarbeitung des Schlüssels mit
variabler Länge
einer one-sparse language beschrieben.
-
Die
Konfiguration des Kryptosystems mit Schlüssel mit variabler Länge der
Ausführungsform
4 ist so wie in 5 gezeigt und genau dieselbe
wie in der Ausführungsform
2. Bei dem Beispiel der Ausführungsform
4 wird eine Restklassenope ration als Konvertierungsregel-Selektionsfunktion
eingesetzt.
-
Der
Konvertierungsregel-Halteteil 31a hält vier Konvertierungsregeln
(Konvertierungsregel 1 bis Konvertierungsregel 4), wie in 8(a) gezeigt. Gemäß der Konvertierungsregel-Selektionsfunktion
des Konvertierungsregel-Selektionsfunktionsverarbeitungsteils 35 wird
dann, wenn angenommen wird, daß x
eine Länge
einer Zeichenkette ist, eine Konvertierungsregel der Zahl des Resultats
der Restklassenoperation von 3xmod5 verwendet.
Genauer gesagt, die Zeichenkonvertierung wird ausgeführt; die
Länge einer
Zeichenkette wird jedes Mal verändert;
eine Restklassenoperation der Länge
wird ausgeführt; und
die Zeichenkonvertierung in der nachfolgenden Stufe wird unter Verwendung
einer Regel der Zahl eines erhaltenen Zahlenwertes ausgeführt.
-
Bei
der ersten Verarbeitung startet der Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30a bei
einer Anfangszeichenkette ABCD, führt er eine Restklassenoperation
der Länge
einer Zeichenkette in jeder Stufe der Zeichenkonvertierung aus und
schaltet eine Konvertierungsregel auf der Basis des Resultats um,
wodurch eine Zeichenkette erzeugt wird, wie in 8(b) gezeigt.
Bei der ersten Zeichenkonvertierung beträgt die Länge einer Anfangszeichenkette
ABCD 4, wird die Konvertierungsregel 1 von 3xmod5
= 1 eingesetzt und wird "aABCD" erhalten. Dann beträgt die Länge der
konvertierten Zeichenkette 5, so daß 3xmod5
= 3 erhalten wird, und die Konvertierungsregel 3 wird eingesetzt,
um "bABbcCD" zu erhalten. Die
Konvertierung schreitet so voran, wodurch "aABbCdD" mit einer Länge von 7 erhalten wird. Die
zweiten bis vierten Verarbeitungen sind dieselben wie jene in der
Ausführungsform
2. Deshalb wird die Beschreibung derselben hier weggelassen. Bei
diesem Beispiel wird auf die Informationen in der Liste verwendeter Schlüssel 33 Bezug
genommen, wodurch detektiert wird, daß eine konvertierte Zeichenkette
mit einer Länge
von 7 bereits verwendet worden ist. Dann wird eine konvertierte
Zeichenkette "bAbBaCcD" mit einer Länge von
8 erzeugt und in Zahlenwerte gemäß der Entsprechung
zwischen den Zeichen und den Zahlenwerten, die in 8(b) gezeigt
sind, konvertiert, wodurch eine Zahlenwertkette "00011011" erzeugt wird. Die oberen 7 Bits werden
extrahiert, um einen Verschlüsselungsschlüssel "0001101" zu erhalten. Ein
Stromcode wird auf der Basis des Verschlüsselungsschlüssels erzeugt.
-
In
dem Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge des
Empfängersystems
wird eine konvertierte Zeichenkette "aABbCdD" mit einer Länge von 7 auf der Basis der
Länge von
7 eines verschlüsselten
Textes erzeugt. Bei diesem Beispiel wird auf die Informationen in
der Liste verwendeter Schlüssel 33 Bezug
genommen, wodurch detektiert wird, daß die konvertierte Zeichenkette
mit einer Länge
von 7 bereits verwendet worden ist. Dann wird eine konvertierte
Zeichenkette "bAbBaCcD" mit einer Länge von
8 erzeugt, wird eine Zahlenwertkette "00011011" erzeugt, werden die oberen 7 Bits extrahiert
und wird schließlich
ein Verschlüsselungsschlüssel "0001101" erzeugt. Ein Stromcode wird
auf der Basis des Verschlüsselungsschlüssels entschlüsselt, um
einen Klartext zu erhalten.
-
(Ausführungsform 5)
-
In
dem Kryptosystem mit Schlüssel
mit variabler Länge
der Ausführungsform
5 wird eine kombinierte Anfangszeichenkette aus Zeichen, die zum
Erzeugen eines Verschlüsselungs schlüssels verwendet
werden, und aus Blindzeichen, die sich von den Zeichen unterscheiden,
die zum Erzeugen eines Verschlüsselungsschlüssels verwendet
werden, als Anfangszeichenkette verwendet, und eine kombinierte Konvertierungsregel
aus einer Zeichenkonvertierungsregel in bezug auf Zeichen, die zum
Erzeugen eines Verschlüsselungsschlüssels verwendet
werden, und aus einer Zeichenkonvertierungsregel in bezug auf Blindzeichen,
die sich von den Zeichen unterscheiden, die zum Erzeugen eines Verschlüsselungsschlüssels verwendet
werden, wird als Konvertierungsregel verwendet. Die Zeichenkonvertierung wird
unter Verwendung der kombinierten Anfangszeichenkette und der kombinierten
Konvertierungsregel wiederholt, und nur Zeichen, die zum Erzeugen
eines Verschlüsselungsschlüssels zu
verwenden sind, werden aus der erzeugten Zeichenkette extrahiert,
wodurch ein Verschlüsselungsschlüssel erzeugt
wird. Als Beispiel wird eine one-sparse language beschrieben.
-
9 zeigt
eine Konfiguration des Kryptosystems mit Schlüssel mit variabler Länge der
Ausführungsform
5. In 9 bezeichnet Bezugszeichen 100b ein Absendersystem,
das einen Klartext verschlüsselt,
und 200b bezeichnet ein Empfängersystem, das einen verschlüsselten
Text entschlüsselt, um
einen Klartext zu erzeugen. Bezugszeichen 300 bezeichnet
einen Kommunikationsweg, über
den ein Absender 1 und ein Empfänger
2 Daten austauschen.
-
Das
Absendersystem 100b enthält einen Dateneingabeteil 10,
einen Datenkettenlängen-Detektionsverarbeitungsteil 20,
einen Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30b,
einen Stromcodeverarbeitungsteil 40 und eine Kommunikationsschnittstelle 50.
Ein Controller, ein Speicher und dergleichen, die zum Steuern eines
Systems erforderlich sind, sind nicht gezeigt.
-
Der
Dateneingabeteil 10, der Datenkettenlängen-Detektionsverarbeitungsteil 20,
der Stromcodeverarbeitungsteil 40 und die Kommunikationsschnittstelle 50 sind
dieselben wie die Elemente, die mit denselben Bezugszeichen in dem
Absendersystem 100 versehen sind und in der Ausführungsform
1 beschrieben wurden. Deshalb wird ihre Beschreibung hier weggelassen.
-
Der
Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge 30b enthält einen Blindzeichenentfernungsverarbeitungsteil 37 sowie einen
Konvertierungsregel-Halteteil 31b, einen Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32b, eine Liste verwendeter
Schlüssel 33, einen
Verschlüsselungsschlüsselkonvertierungsteil 34,
einen Konvertierungsregel-Selektionsfunktionsverarbeitungsteil 35 und
einen Hash-Funktions-Verarbeitungsteil 36.
-
Hierin
entfernt der Blindzeichenentfernungsverarbeitungsteil 37 Blindzeichen
aus einer konvertierten Zeichenkette, die durch den Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32b erzeugt wurde, um nur
Zeichen zu extrahieren, die an der Erzeugung eines Verschlüsselungsschlüssels beteiligt
sind.
-
In
der Ausführungsform
5 enthält
eine Anfangszeichenkette Blindzeichen, die beim Erzeugen eines Verschlüsselungsschlüssels nicht
verwendet werden. Hierin wird zum Beispiel "ABCD",
die in der Ausführungsform
4 verwendet wurde, als Anfangszeichenkette verwendet, und "B" und "b" sollen
Blindzeichen sein, die beim Erzeugen eines Verschlüsselungsschlüssels nicht
verwendet werden. Ferner wird in der Ausführungsform 5 eine Vielzahl
von Sätzen von
Konvertie rungsregeln verwendet, die auch eine Konvertierungsregel
in bezug auf Blindzeichen enthalten. Als Beispiel hält der Konvertierungsregel-Halteteil 31b genauso
wie in der Ausführungsform
4 vier Konvertierungsregeln (Konvertierungsregel 1 bis Konvertierungsregel
4), wie in 10(a) gezeigt. Bei diesen
Konvertierungsregeln wird angenommen, daß "B" und "b" Blindzeichen sind, die beim Erzeugen
eines Verschlüsselungsschlüssels nicht
verwendet werden.
-
Es
wird angenommen, daß die
Konvertierungsregel-Selektionsfunktion des Konvertierungsregel-Selektionsfunktionsverarbeitungsteils 35 eine Konvertierungsregel
der Zahl des Resultats verwendet, das durch eine Restklassenoperation
von 3xmod5 erhalten wurde (wobei x die Länge einer
Zeichenkette ist), genauso wie bei der Ausführungsform 4.
-
Wie
bei der Ausführungsform
4 erzeugt bei der ersten Verarbeitung der Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge 30b eine Zeichenkette,
indem bei "ABCD" begonnen wird, eine Restklassenoperation
der Länge
einer Zeichenkette in jeder Stufe der Zeichenkonvertierung ausgeführt wird
und eine Konvertierungsregel, die in 10(a) gezeigt
ist, gemäß dem Resultat
der Restklassenoperation umgeschaltet wird, wie in 10(b) gezeigt.
-
In
der Ausführungsform
5 wird die folgende fünfte
Verarbeitung vor der in der Ausführungsform
2 beschriebenen zweiten Verarbeitung ausgeführt. Bei der fünften Verarbeitung
entfernt der Blindzeichenentfernungsverarbeitungsteil 37 Blindzeichen
aus einer konvertierten Zeichenkette, die durch den Erzeugungsverarbeitungsteil
der konvertierten Zeichenkette 32b erzeugt wurde, um nur
Zeichen zu extrahieren, die beim Erzeugen eines Verschlüsselungsschlüssels verwendet
werden. Falls die Länge
der konvertierten Zeichen kette die Länge eines Klartextes nicht
erreicht, wird die erste Verarbeitung fortgesetzt, um die Zeichenkonvertierung
auszuführen,
und die Zeichenkonvertierung wird wiederholt, bis die Länge der
konvertierten Zeichenkette, die nur aus den Zeichen besteht, die
beim Erzeugen eines Verschlüsselungsschlüssels verwendet
werden, die Länge
eines Klartextes erreicht. wenn bei diesem Beispiel angenommen wird,
daß die
Länge eines
Klartextes 7 ist, beträgt
in dem Fall, wenn die Länge
einer konvertierten Zeichenkette durch die erste Verarbeitung 7
ist (d. h. "aABbCdD"), wie in 10(b) gezeigt, die Länge 5 (d. h. "aACdD"), indem die Blindzeichen
bei der fünften
Verarbeitung entfernt werden. Deshalb wird die erste Verarbeitung
fortgesetzt. Aus der konvertierten Zeichenkette "bAbBaCcD" mit einer Länge von 8 wird "AaCcD" mit einer Länge von
5, indem die Blindzeichen bei der fünften Verarbeitung entfernt
werden, so daß die
erste Verarbeitung weiter fortgesetzt wird. Wenn die konvertierte
Zeichenkette "cdAcBbcCdD" mit einer Länge von
10 erhalten wird, wird die konvertierte Zeichenkette "cAccCdD" mit einer Länge von
7 nach dem Entfernen der Blindzeichen erhalten. Deshalb wird bei
der fünften
Verarbeitung "cAccCdD" erhalten.
-
Die
zweiten bis vierten Verarbeitungen sind dieselben wie jene in der
Ausführungsform
2. Bei diesem Beispiel wird angenommen, daß die konvertierte Zeichenkette
mit einer Länge
von 7 in der Liste verwendeter Schlüssel 33 noch nicht
verwendet worden ist. Schließlich
wird "cAccCdD" in Binärzahlen
konvertiert, die einen Verschlüsselungsschlüssel bilden, um
einen Verschlüsselungsschlüssel "1011001" zu erhalten. Ein
Stromcode wird unter Verwendung des Verschlüsselungsschlüssels erzeugt.
-
In
dem Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge des
Empfängersystems 200b wird
die Konvertierung mit einer Anfangszeichenkette "ABCD" auf
der Basis der Länge
von 7 eines Verschlüsselungsschlüssels gestartet,
werden die ersten bis fünften
Verarbeitungen ausgeführt
und wird ein Verschlüsselungsschlüssel "1011001" aus "cAccCdD" erhalten. Ein Stromcode
wird mit dem Verschlüsselungsschlüssel entschlüsselt, um
einen Klartext zu erhalten.
-
(Ausführungsform 6)
-
Das
Kryptosystem mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung kann mit verschiedenen Computern konfiguriert
werden, indem ein Programm, das Verarbeitungsoperationen zum Realisieren
der oben angegebenen Konfiguration beschreibt, auf einem computerlesbaren
Aufzeichnungsmedium aufgezeichnet wird. Beispiele für ein Aufzeichnungsmedium,
das ein Programm speichert, das Verarbeitungsoperationen zum Realisieren
eines Kryptosystems mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung speichert, enthalten ein Aufzeichnungsmedium 400 in
einer Aufzeichnungsvorrichtung in einem Netz und ein Aufzeichnungsmedium 405 wie
beispielsweise eine Festplatte und ein RAM eines Computers sowie
ein tragbares Aufzeichnungsmedium 401 wie etwa eine CD-ROM 402 und eine
flexible Platte 403. Bei der Ausführung des Programms wird das
Programm auf einen Computer 404 geladen und auf einem Hauptspeicher
ausgeführt.
-
Es
versteht sich, daß gemäß dem Kryptosystem
mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung verschiedene Abwandlungen und Änderungen
an dem oben angegebenen Verfahren und der Vorrichtung vorgenommen
werden können,
ohne vom obigen Konzept der vorliegenden Erfindung abzuweichen.
Deshalb sei erwähnt,
daß die
vorliegende Erfindung nicht auf die obigen Ausführungsformen begrenzt ist.
-
Industrielle Anwendbarkeit
-
Auf
Grund der oben angegebenen Konfiguration hat die vorliegende Erfindung
die folgenden Effekte.
-
In
dem Kryptosystem mit Schlüssel
mit variabler Länge
der vorliegenden Erfindung bleibt, da ein Verschlüsselungsschlüssel und
ein Entschlüsselungsschlüssel in
Abhängigkeit
von der Länge
eines Klartextes und eines verschlüsselten Textes selektiert werden,
die Schwierigkeit des Verteilens eines Schlüssels erspart.
-
Geheimhaltungsparameter,
die durch eine Verschlüsselungsvorrichtung
und eine Entschlüsselungsvorrichtung
gemeinsam genutzt werden sollten, sind eine Anfangskette, Sätze von
Konvertierungsregeln und eine Konvertierungsregel-Selektionsfunktion
sowie eine echte Zufallszahlenfolge zum Verschlüsseln eines Hash-Funktions-Wertes,
um einen Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge zu bilden.
Diese Parameter können
in einer kleinen Menge von Informationen dargestellt werden. Deshalb
können
sie sicher und leicht zum Beispiel unter Verwendung eines Kryptosystems
mit öffentlichem
Schlüssel
gesendet werden.
-
Bei
dem Verschlüsselungssystem
der vorliegenden Erfindung wird kein Schlüssel zweimal verwendet. Deshalb
besteht nicht die Möglichkeit,
daß ein
Klartext lediglich aus einem verschlüsselten Text erhalten wird.
Es ist auch unmöglich,
einen Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge aus
einem Schlüssel
vorherzusagen, der willkürlich
erhalten wird, da es eine unendliche Anzahl von Sätzen von
Parametern gibt, die den Erzeugungsverarbeitungsteil des Schlüssels mit
variabler Länge
bilden. Deshalb ist die Sicherheit des Kryptosystems sehr hoch.
-
Ein
Schlüssel
wird in dem Erzeugungsverarbeitungsteil des Schlüssels mit variabler Länge dadurch
erzeugt, daß eine
Zeichenkonvertierung und eine Konvertierungsregel-Selektionsfunktion
wiederholt werden. Ein Schlüssel
kann mit hoher Geschwindigkeit erzeugt werden, falls die Konvertierungsregel-Selektionsfunktion
so festgelegt wird, daß die
Berechnung leicht ist.
-
Sobald
ein Schlüssel
erzeugt ist, kann die Verschlüsselung
nur durch Addition ausgeführt
werden, und die Entschlüsselung
kann nur durch Subtraktion ausgeführt werden. Deshalb können die
Verschlüsselung
und die Entschlüsselung
mit hoher Geschwindigkeit erfolgen. In dem Fall, wenn ein Klartext,
ein verschlüsselter
Text und ein Schlüssel
aus 0 und 1 gebildet sind, werden die Verschlüsselung und die Entschlüsselung
durch eine XOR-Operation ausgeführt
und können
mit höherer
Geschwindigkeit vorgenommen werden.
-
Eine
Verschlüsselungsvorrichtung
und eine Entschlüsselungsvorrichtung
enthalten dieselben Bildungselemente (z. B. einen Erzeugungsverarbeitungsteil
des Schlüssels
mit variabler Länge).
Deshalb ist es tatsächlich
leicht, diese Vorrichtungen zu konfigurieren.