DE60105328T2 - Öffentliche Schlüsselverteilung unter Verwendung einer näherungsweise linearen Funktion - Google Patents

Öffentliche Schlüsselverteilung unter Verwendung einer näherungsweise linearen Funktion Download PDF

Info

Publication number
DE60105328T2
DE60105328T2 DE60105328T DE60105328T DE60105328T2 DE 60105328 T2 DE60105328 T2 DE 60105328T2 DE 60105328 T DE60105328 T DE 60105328T DE 60105328 T DE60105328 T DE 60105328T DE 60105328 T2 DE60105328 T2 DE 60105328T2
Authority
DE
Germany
Prior art keywords
comparator
unit
key
key information
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60105328T
Other languages
English (en)
Other versions
DE60105328D1 (de
Inventor
C. Ralph Merkle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of DE60105328D1 publication Critical patent/DE60105328D1/de
Application granted granted Critical
Publication of DE60105328T2 publication Critical patent/DE60105328T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein kryptografische Verfahren und Systeme zur Verwendung in der digitalen Datenverarbeitung und konkret Verfahren und Systeme zur Verteilung von Public Keys (öffentliche Schlüssel).
  • Die Verwaltung und Verteilung von Schlüsseln ist ein extrem wichtiger Aspekt sicherer Kommunikationssysteme auf der Basis kryptografischer Verfahren. Dies gilt, obwohl die meisten sicheren kryptografischen Algorithmen sofort unsicher werden, wenn die entsprechenden Schlüssel in die falschen Hände geraten. Tatsächlich beginnen Kryptoanalysten und Hacker gleichermaßen häufig, sich Verschlüsselungssysteme zu Nutze zu machen, indem sie versuchen, die Schlüssel zu ermitteln und auszunutzen, da dies oft einfacher und kostengünstiger ist. Im Ergebnis dessen ist viel Aufmerksamkeit der Entwicklung kryptografischer Verfahren und Systeme geschenkt worden, die eine sichere, aber einfache Verteilung von kryptografischen Schlüsselinformationen gestatten.
  • Zeitige Bedenken im Hinblick auf die Schlüsselverteilung führten zur Erfindung der Public-Key-Kryptografie. Kryptografische Algorithmen für Publik Keys verwenden einen Verschlüsselungscode, der sich von dem Entschlüsselungscode unterscheidet. Da die Algorithmen so angelegt sind, dass es rechnerisch unmöglich ist, den Entschlüsselungscode aus dem Verschlüsselungscode abzuleiten, kann der Verschlüsselungscode "öffentlich" (public) gemacht werden. Jeder kann einen öffentlichen Verschlüsselungscode bzw. Schlüssel verwenden, um eine Mitteilung zu verschlüsseln, aber nur ein Empfänger mit einem entsprechenden "geheimen bzw. privaten" Schlüssel (private key) kann die Nachricht entschlüsseln.
  • Der erste Algorithmus zur allgemeinen Verschlüsselung von Public Keys war der Rucksack-Algorithmus (knapsack algorithm), der von Ralph Merkle und Martin Hellmann entwickelt wurde. Die Rucksack-Algorithmen erhalten ihre Sicherheitsaspekte durch das Rucksackproblem. Wenn man annimmt, dass ein eindimensionaler Rucksack eine Länge S und n Zahlenfolgen der Länge a1, a2, ..., an hat, dann besteht das "Rucksack-Problem" darin, eine Teilfolge zu finden, die den Rucksack genau ausfüllt, wenn eine solche Teilfolge vorhanden ist. Eine äquivalente Art und Weise, dass Rucksack-Problem auszudrücken, besteht darin, einen binären n-Vektor x zu finden, so dass S = a×x ist, wenn ein x vorhanden ist. Bei Verwendung in der Vektornotation bedeutet das mathematische Sym bol "×" die Berechnung des Skalarproduktes aus zwei oder mehreren Vektoren. Bei dem Rucksack-Problem wird weit verbreitet die Auffassung vertreten, dass das Finden einer Lösung x ein NP-vollständiges Problem und daher schwierig sei.
  • Es wird davon ausgegangen, dass mathematische Probleme, die als "NP-vollständig" klassifiziert sind, mathematisch so komplex sind, dass sie lediglich auf einer nicht deterministischen Tuning-Maschine in einer polynomischen Zeit gelöst werden können, oder, anders ausgedrückt, indem sämtliche möglichen Lösungen durchprobiert werden. Im Hinblick auf eine weitere Erörterung der NP-Vollständigkeit und der Komplexitätstheorie siehe Michael R. Gray und David S. Johnson "Computers and Intractability: A Guide to the Theory of NP-Completeness" (W. H. Freeman and Co., 1979). Daher sind kryptografische Algorithmen, die NP-vollständig sind, gegenüber schweren und brutalen Angriffen weitgehend resistent.
  • In ihrer Arbeit schlugen Merkle und Hellmann ein Public-Key-System vor, das durch Erzeugung von Rucksack-Problemfällen entstand, welche gelöst werden konnten, wenn bestimmte geheime Informationen bekannt waren. Siehe Ralf C. Merkle und Martin Hellmann "Hiding Information and Signatures in Trapdoor Knapsacks", IEEE Transactions on Information Theory, Bd. 24, Nr. 5, Sept. 1978, S. 525–530. Leider erwies sich dieses System als weniger sicher als das allgemeine (uneingeschränkte) Rucksack-Problem. Siehe Leonard M. Adelman, "On Breaking the Iterated Merkle-Hellman Public Key Cryptosystem", Advances in Cryptology Proceedings of Crypto '82, Plenum Press 1983, Seiten 303–308; Ernest F. Brickell, "Breaking iterated knapsacks", Advances in Cryptology, Proceedings of Crypto '84, Springer Verlag, 1985, S. 342–358.
  • Viele kryptische Systeme mit Public Keys lösen das Schlüsselverteilungsproblem, allerdings sind sie rechnerisch sehr aufwändig und arbeiten somit auf konventionellen Rechnersystemen sehr langsam. Eines der am häufigsten eingesetzten Public-Key-Kryptosysteme ist beispielsweise der kryptografische RSA-Algorithmus, der eine ganzzahlige Potenzierung mit Moduli erforderlich macht, die oft über 1000 Bit aufweisen.
  • US-A-5 297 206 legt ein kryptografisches Signatursystem offen, bei dem einem privaten Schlüssel zugestimmt wird, indem mit Hilfe einer Chiffrierung eines öffentlichen Schlüssels ein Chiffrierkanal kommuniziert wird.
  • Das Dokument legt ein kryptografisches Public-Key-System offen, bei dem die Verwendung von zwei Schlüsseln, einem Public Key und einem Private Key, sowohl eine geheime als auch authentische Übertragung von Daten erleichtert. Ein Public-Key-Kryptosystem kann zur Identifizierung, für elektronische Signaturen, die Schlüsselverteilung und die sichere Datenübertragung verwendet werden. Zu speziellen Anwendungs gebieten des Public-Key-Kryptosystem gehören Bankautomaten, die Daten mit Chipkarten von Kunden austauschen, das Point-of-Service-Banking, die Telekommunikation, elektronische Mails und die Zugriffssteuerung.
  • Die Aufgabe der vorliegenden Erfindung besteht in der Schaffung eines sicheren kryptografischen Verfahrens und Systems, die rechnerisch effizienter sind und das bei konventionellen Verfahren bestehende Problem der Schlüsselverteilung und -verwaltung lösen.
  • Nach einer ersten Ausführungsform schaffen die erfindungsgemäßen Verfahren, Systeme und Herstellungsartikel für zwei Einheiten die Möglichkeit, über einen unsicheren Kommunikationskanal gemeinsame kryptografische Schlüsselinformationen zu vereinbaren. Die zweite Einheit ist mit einem Public/Private-Key-Paar verbunden, das auf einem Public-Key-Algorithmus basiert. Bei einem erfindungsgemäßen Verfahren bestimmt eine erste Einheit einen ersten Wert x und eine gewichtete Summe, die auf dem ersten Wert und einem ersten Teil eines Public Key basiert, der der zweiten Einheit entspricht. Die erste Einheit überträgt die gewichtete Summe zu der zweiten Einheit und bestimmt einen ersten Komparator, der auf dem ersten Wert und einem zweiten Teil eines Public Key basiert, der der zweiten Einheit entspricht. Die zweite Einheit bestimmt einen zweiten Komparator, der eine annähernde Version des ersten Komparators darstellt. Auf der Grundlage des ersten und des zweiten Komparators können die erste und die zweite Einheit kryptografische Schlüsselinformationen vereinbaren. Bei einer Ausführungsform der Erfindung bestimmt die erste Einheit einen ersten Komparator, der auf einer ersten annähernd linearen Funktion, dem ersten Wert, und einem zweiten Teil eines Public Key basiert, der der zweiten Einheit entspricht; und die zweite Einheit bestimmt einen zweiten Komparator, der auf dem zweiten Wert und einer zweiten annähernd linearen Funktion basiert, die mit der ersten annähernd linearen Funktion zusammenhängt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die beigefügten Zeichnungen, die einen festen Bestandteil dieser Patentbeschreibung bilden, veranschaulichen eine Ausführungsform der Erfindung und dienen gemeinsam mit der Beschreibung der Erläuterung der erfindungsgemäßen Prinzipien.
  • 1 ist ein Blockdiagramm eines Public-Key-Kryptosystems, welches über einen unsicheren Kommunikationskanal ein rechnerisch sicheres Kryptogramm überträgt;
  • 2 zeigt die Schritte eines als Beispiel angeführten erfindungsgemäßen Verfahrens zum Vereinbaren eines gemeinsamen kryptografischen Schlüssels; und
  • 3 veranschaulicht ein erfindungsgemäßes Beispielsystem für die Public-Key-Verteilung zwischen zwei Benutzern.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Nun wird genauer auf erfindungsgemäße Ausführungsformen eingegangen, von denen in den beigefügten Zeichnungen Beispiele abgebildet sind. Hier offen gelegte erfindungsgemäße Verfahren, Systeme und Herstellungsartikel können für die Verteilung von Public Keys mit Hilfe einer annähernd linearen Funktion verwendet werden.
  • Ein Public-Key-Algorithmus ist ein beliebiger Algorithmus, der zwei verschiedene "Schlüssel" (keys) verwendet, einen für die Verschlüsselung und einen anderen für die Entschlüsselung. Da der eine Schlüssel nicht ohne weiteres aus dem anderen ermittelt werden kann, darf der Public Key ungehindert herausgegeben, über unsichere Kanäle verteilt und öffentlich verschickt werden, ohne dass dabei die Sicherheit eines Verschlüsselungssystems auf der Basis des Public-Key-Algorithmus in Gefahr gerät.
  • Wenn zwei Seiten mit Hilfe eines Public-Key-Kryptosystems über einen unsicheren Kommunikationskanal kommunizieren wollen, müssen die Seiten miteinander kompatible kryptografische Vorrichtungen haben. Eine Seite muss eine Verschlüsselungsvorrichtung besitzen, die eine Transformation auf der Grundlage eines Public-Key-Algorithmus ausführt, und einen Verschlüsselungscode (Schlüssel) E, und die andere Seite muss eine Entschlüsselungsvorrichtung besitzen, die umgekehrte Transformation auf der Grundlage desselben Public-Key-Algorithmus ausführt, und den Entschlüsselungscode (Schlüssel) D, der dem Verschlüsselungscode entspricht.
  • 1 ist ein Blockdiagramm, welches ein allgemeines Public-Key-Kryptosystem darstellt. Wenn bei Nutzung eines Public-Key-Kryptosystems ein Benutzer 1 eine verschlüsselte Nachricht an Benutzer 2 senden will, erhält Benutzer 1 zuerst einen Verschlüsselungscode vom Benutzer 2, der auch allgemein als "Public" Key von Benutzer 2 bezeichnet wird. Bevor überhaupt eine Kommunikation stattfinden kann, muss Benutzer 2 mit Hilfe eines bekannten Public-Key-Kryptosystems ein Public/Private-Key-Paar generieren. Die Schlüssel können beispielsweise mit einem Schlüsselgenerator 124 durch Eingabe von der Schlüsselquelle 126 generiert werden. Bei der Schlüsselquelle 126 kann es sich z. B. um einen echten Zufallsgenerator handeln.
  • Um mit Benutzer 2 zu kommunizieren, kann Benutzer 1 beispielsweise direkt über einen unsicheren Kommunikationskanal 130 einen Verschlüsselungscode E erhalten, bei dem es sich um den Public Key von Benutzer 2 handelt, indem beispielsweise Benutzer 2 den Public Key in einer Email an Benutzer 1 sendet oder Benutzer 1 den Public Key von ei ner Webpage herunter lädt. Mit Hilfe einer Verschlüsselungsvorrichtung 105 verschlüsselt Benutzer 1 eine Klärtextnachricht P, so dass ein Verschlüsselungstext C entsteht. Die Verschlüsselungsvorrichtung 105 verschlüsselt P mit Hilfe eines bekannten Public-Key-Algorithmus. Über eine Kommunikationsschnittstelle 131 und einen unsicheren Kanal 130, beispielsweise per Email über das Internet, sendet Benutzer 1 C an Benutzer 2. Benutzer 2 empfängt die verschlüsselte Nachricht C über eine Kommunikationsschnittstelle 128. Benutzer 2 kann C mit Hilfe einer Entschlüsselungsvorrichtung 122 und eines Entschlüsselungscodes D entschlüsseln.
  • Ein gemeinsames Merkmal von Public-Key-Verteilungssystemen besteht darin, dass es für Lauscher 150 rechnerseitig nicht möglich ist, den zugrunde liegenden Klartext des Chiffriertextes C unabhängig zu ermitteln, selbst wenn der Lauscher 150 auch den Verschlüsselungscode E ermittelt.
  • Die vorliegende Erfindung ist ein neuer und schneller Public-Key-Verteilungsalgorithmus, der lediglich eine geringe Anzahl gewichteter Multipräzisions-Ganzzahladditionen (mit geringer Ganzzahlwichtung) verwendet. Zwei Einheiten können die vorliegende Erfindung anwenden, um kryptografische Schlüsselinformationen zu vereinbaren. Auf der Basis eines Public Keys überträgt ein Benutzer über ein unsicheres Kommunikationsmedium Informationen zu einem anderen Benutzer. Mit Hilfe der übertragenen Informationen können sich beide Seiten auf dieselbe kryptografische Schlüsselinformation verständigen, ohne die Sicherheit des Kryptosystems in Frage zu stellen.
  • Erfindungsgemäße Verfahren und Systeme basieren auf annähernd linearen ("AL") Funktionen, d. h. auf einer aus einer Familie von Funktionen AL (*, w), so dass AL(i+j, w) ~ AL(i, w) + AL(j, w), wobei w die Familie durch Auswahl einer speziellen linearen Funktion AL (*, w) parametrisiert. Weiterhin hat AL die folgende Eigenschaft: AL(i+j, w) ~ AL(i, w) + AL(j, w) mod k,wobei das mathematische Symbol "~" angibt, dass das Ergebnis auf der linken Seite "annähernd äquivalent" dem Ergebnis auf der rechten Seite ist. Eine Beispieldefinition für "annähernd äquivalent" wird nachstehend genauer erörtert.
  • Bei einer Beispielausführungsform der vorliegenden Erfindung kann eine Klasse von Funktionen, die zu dem Satz AL (i, w) gehören und alle die Eigenschaften dieser Klasse aufweisen, definiert werden durch: P(i,w) = floor(((w×i mod m)/m)×k),wobei k ein ganzzahliger Parameter ist, und die Parameter w und der Modul m entweder reale oder ganzzahlige Werte sind. Sämtliche Multiplikations- und Divisionsoperationen sollten als Standardmultiplikations- und Divisionsoperationen an dem Satz realer Zahlen aufgefasst werden. Speziell bei den Divisionen handelt es sich nicht um Ganzzahldivisionen an dem Modul m, sondern um reale Divisionen, selbst wenn beide Operanden zufällig ganzzahlige Werte haben. Die Modul-Operation ist ebenfalls für die Realzahlen definiert und erzeugt einen Wert, der größer als oder genauso groß wie null ist und kleiner m.
  • Die Funktion floo(arg) ist definiert als die größte Ganzzahl, die kleiner ist als oder genauso groß ist wie arg, und wandelt daher einen realen Wert in einen Ganzzahlwert um. Die floor-Funktion (Abrundungsfunktion) wird verwendet, um explizit anzugeben, wenn reale Werte in Ganzzahlen umgewandelt werden sollten (möglicherweise mit einem Informationsverlust infolge der Eliminierung des Bruchteils). Bei diesem konkreten Beispiel führt der Dividend des Arguments, d. h. (w×i mod m)/m) zu einer realen Zahl zwischen 0 und 1 (einschließlich von 0 und ausschließlich von 1). Nach Multiplikation k entsteht eine reale Zahl zwischen 0 und k (einschließlich 0 ausschließlich k). Die floor-Funktion wandelt dieses Ergebnis in eine Ganzzahl um, die größer als oder genauso groß wie 0 und kleiner als k.
  • Bei einer erfindungsgemäßen beispielhaften Ausführungsform wird angenommen, dass w, m und k Ganzzahlen sind. Weiterhin wird bei diesem konkreten Beispiel angenommen, dass k und m Potenzen von 2 sind, d. h. log2 m und log2 k sind beides Ganzzahlen. Die Einschränkung von k und m auf Potenzen von 2 verbessert die Effizienz der Berechnungen, ist jedoch nicht erforderlich.
  • Es kann gezeigt werden, dass die Funktion P(i, w) Mitglied einer Familie von annähernd linearen Funktionen ist, wie oben definiert, und P(i, w) ein ganzzahliges Ergebnis hervorbringt. Schaut man sich zuerst die Definition von P(i, w) an, so stellt man fest, dass (w×i mod m)/m eine reale Zahl zwischen 0 und 1 ist (einschließlich 0 und ausschließlich 1). Wenn diese Größe mit der Ganzzahl k multipliziert wird, entsteht eine reale Zahl zwischen 0 und k (einschließlich 0 und ausschließlich k). Durch Umwandlung der entstehenden Größe in eine Ganzzahl mit Hilfe der Abrundungsfunktion (floor) entsteht eine Ganzzahl zwischen 0 und k (einschließlich 0 und ausschließlich k). Somit erzeugt die Funktion AL (i, w) wie gewünscht ein ganzzahliges Ergebnis.
  • Darüber hinaus erfüllt die Klasse von Funktionen P(i, w) die Eigenschaft: AL(i+j, w) ~ AL(i, w) + AL(j, w) mod k.Um dies anzuzeigen, wird zuerst definiert: L(i,w)=((w×i mod m)/m)×k,wobei L(i, w) die Ganzzahlen auf reale Zahlen abbildet, indem fast dieselbe Berechnung wie bei P(i, w) ausgeführt wird, jedoch die Abrundungsoperation weggelassen wird. L(i, w) erfüllt die Eigenschaft: L(i+j, w) = L(i, w) + L(j, w) mod k,weshalb L(i, w) eine lineare Funktion ist. Gezeigt werden kann dies weiterhin durch wiederholte Anwendung von distributiven Gesetzen:
    Figure 00070001
    wobei r gleich 0 ist, wenn (w×i mod m) + (w×j mod m) kleiner als m ist und ansonsten 1 ist.
  • Da der einzige Unterschied zwischen L(i, w) und P(i, w) die Abrundungsoperation ist, würde man erwarten, dass: L(i–j) = L(i, w) + L(j, w) – r×k,d. h. dass P(i, w) ein Mitglied der Klasse von Funktionen ist, die annähernd linear sind. In der Tat wäre diese annähernde Gleichheit oft exakt, würde jedoch ebenfalls oft ein ganzzahliges Ergebnis hervorbringen, das "um eins abweicht", was einer spezielle Beispieldefinition von "annähernd linear" entspricht.
  • Bei Public-Key-Verteilungsverfahren und -systemen, die den erfindungsgemäßen Prinzipien entsprechen, vereinbaren zwei Benutzer, dasselbe Public-Key-Verteilungssystem mit den Systemparametern m, k und n zu verwenden. Ein erster Benutzer (bei diesem Beispiel Alice genannt) erzeugt dann ein Public/Private-Key-Paar. Bei erfindungsgemäßen Verfahren und Systemen umfasst der Private Key w einen realen oder Ganzzahlwert, der nur Alice bekannt ist. Bei dem Private Key w kann es sich beispielsweise um einen zufällig gewählten Vektor mit einer Länge 0 s und 1 s handeln. Der Private Key kann optional weiterhin m enthalten, oder aber m kann ein feststehender Systemparameter sein. Ferner umfasst der Public Key a und b, wobei a und b Vektoren mit n Elementen sind, und b = P(a, w) mod k. Die a-Komponente des Public Key kann zufällig gewählt werden oder pseudozufällig aus einem kleinen Schlüssel generiert werden, z. B. unter Zuhilfenahme einer Blockverschlüsselung, um die pseudozufälligen Werte von a zu erzeugen. Da b mühelos aus w und a zurückgerechnet werden kann, falls a pseudozufällig aus einem kleinen Schlüssel generiert wurde, ist die Gesamtinformationsmenge, die für den Private Key gespeichert werden muss, recht klein.
  • Wie bereits angeführt, kann der Public Key weiterhin optional k umfassen oder k kann ein feststehender Systemparameter sein. Während k im Prinzip jeder beliebige Wert sein kann, so ist doch davon auszugehen, dass die Wahl von k Auswirkungen auf die Sicherheit des Systems haben kann.
  • Bei dem folgenden Beispiel wird angenommen, dass w und die Elemente von a zufällig gewählte 200-Bit-Größen sind, dass k die Ganzzahl 28 (bzw. 256) und m 2200 ist. Bei diesem Beispiel sind zudem die Werte von b; 8-Bit-Größen. Darüber hinaus kann m als Teil des Private Key verwendet werden, bei dem vorliegenden Beispiel ist m jedoch ein öffentlicher und festgelegter Systemparameter, um die Berechnungen zu vereinfachen. Somit ist (bei diesem Beispiel) der geheime Schlüssel allein w.
  • Nachdem Alice das Public/Private Key-Paar bestimmt hat, teilt sie den Public Key mit einem zweiten Benutzer mit, in diesem Beispiel Bob genannt. Bob kann diesen Public Key mit Hilfe eines beliebigen Verfahrens erhalten, das normalerweise mit der Public-Key-Verteilung zusammenhängt, z. B. kann Alice den Public Key per Email zu Bob schicken, oder Alice kann den Public Key an eine Stelle senden, auf die Bob Zugriff hat. An diesem Punkt wird davon ausgegangen, dass Bob a und b (aus dem Public Key) und die Systemparameter m, k und n kennt (bei denen es sich in diesem Beispiel um feststehende Systemparameter handelt). Da Alice das Public/Private Key-Paar erzeugt hat, kennt sie a und b (den Public Key), die Systemparameter m, k und n und zusätzlich w (den Private Key).
  • 2 veranschaulicht die Schritte eines Beispielverfahrens zur Vereinbarung eines gemeinsamen kryptografischen Schlüssels. Zu Beginn wählt Bob einen zufälligen Ganzzahl-n-Vektor x (Schritt 210) und berechnet S = x×a (Schritt 215). Die Elemente von Vektor x können beispielsweise aus dem Bereich [0, 1] oder aus dem Bereich [0, 1, 2, 3] ausgewählt werden, wobei der Vektor x ein ganzzahliger Vektor ist. Bei den beiden Beispielbereichen können aus dem ersten Bereich ausgewählte Ganzzahlen beispielsweise mit einem Bit dargestellt werden, und aus dem zweiten Bereich ausgewählte Ganzzahlen können mit zwei Bit dargestellt werden.
  • Anschließend überträgt Bob S an Alice (Schritt 220). An dieser Stelle kann auf der unsicheren Leitung ein Lauscher S abfangen. Als Nächstes berechnet Alice mit Hilfe von S, von Alice' Private Key (w) und den Systemparametern m und k den Wert T = P(S, w), wie nachstehend abgebildet (Schritt 230). T = P(S, w) = floor(((w×S mod m/m)×k.
  • Mittlerweile kann Bob mit Hilfe des Systemparameters k und der Variablen x, die nur Bob bekannt ist, T' berechnen und die Elemente von b hinzufügen (Schritt 225). T' = floor (x×(b + 0,5) mod k)
  • Da b ein Vektor ist, stellt der Ausdruck (b+0,5) den Vektor (b1+0,5, b2+0,5, b3+0,5 ... bn+0,5) dar.
  • Es kann gezeigt werden, dass T' eine Annäherung an T ist, indem zuerst die Differenz zwischen der annähernd linearen Funktion P und der linearen Funktion L, d. h. "err", definiert wird als: err = L(a, w)–P(a, w)–0,5 = L(a, w)–b–0,5
  • Jeder Wert err; kann als zufällige Variable in dem Intervall [–0,5 ... 0,5] behandelt werden, die einen Mittelwert 0 hat und eine Abweichung 1/12 (1/12 ist eine Ganzzahl von x2 im Bereich [–0,5 ... 0,5]). Die Konstante 0,5 ist eine Konsequenz aus der Tatsache, dass bei der vorliegenden Ausführungsform P(i, w) mit Hilfe der Abrundungsfunktion definiert und nicht die nächstgelegene Ganzzahl ist.
  • Mit Hilfe der nachfolgenden wiederholten Anwendung von distributiven Gesetzen kann gezeigt werden, dass sich T dem Wert T' annähert.
    Figure 00090001
    wobei der Fehlerterm (x×err) den Mittelwert 0 und eine Abweichung hat, die gleich
    Figure 00090002
    ist. Nach den Schritten 225 und 230 kennt Alice T und Bob kennt T'. Da T ~ T' ist, wenn k groß genug ist, haben sich Alice und Bob auf einige gemeinsame Informationen geeinigt. Kryptografische Schlüssel müssen jedoch Bit für Bit identisch sein, und wie oben angeführt, kann T zwar genauso wie T' sein, es gibt jedoch keine Garantie, dass die beiden Werte gleich sind.
  • Bei erfindungsgemäßen Verfahren ist ein Mechanismus vorhanden, mit dem die annähernd gleichen T und T' so umgewandelt werden, dass Alice und Bob exakt dieselben Informationen kennen, ohne dass Bob einfach T' an Alice überträgt oder umgekehrt. Diese Umwandlung kann mit Hilfe eines von mehreren verschiedenen Fehlerkorrekturverfahren erfolgen.
  • Ein Beispiel zur Fehlerkorrektur ist in den Schritten 235 bis 260 abgebildet. Es wird z. B. angenommen, dass sich Alice und Bob auf ein einziges Bit einer kryptografischen Schlüsselinformation einigen wollen. Bob wollte nicht einfach T' an Alice übertragen, da dies Informationen für einen eventuellen Lauscher bereitstellt. Anstelle dessen kann Bob sowohl T' als auch den Wert übertragen, der am weitesten von T' mod k entfernt ist und der, wenn man davon ausgeht, dass k durch 2 teilbar ist, (T'+k/2) mod k ist. Alice könnte anschließend feststellen, ob T näher an T' oder (T'+k/2) mod k liegt. Wenn beispielsweise T dichter an T' liegt, können sich Alice und Bob auf ein gemeinsames Bit verständigen, vorausgesetzt, T'–T (der durch die Näherung eingeführte Fehler) ist nicht zu groß. Wenn T beispielsweise dichter an T' liegt, können sowohl Alice als auch Bob das Bit "0" wählen oder anderenfalls das Bit "1".
  • Wenn sowohl T' als auch (T'+k/2) mod k in einer festen Reihenfolge übertragen werden, würde jedoch die Geheimhaltung des vereinbarten Bit in Gefahr geraten. Bei einer erfindungsgemäßen Ausführungsform überträgt Bob lediglich den kleineren Wert von T' und (T'+k/2) mod k an Alice, wodurch dieses Problem vermieden wird. Wie in 2 dargestellt, bestimmt Bob beispielsweise die kleinste Zahl der beiden Zahlen (Schritt 235). Diese Bestimmung kann mathematisch dargestellt werden als Tmin = min (T', (T'+k/2) mod k). Anschließend überträgt Bob Tmin an Alice (Schritt 235). Wenn Bob T' überträgt (Schritt 245), dann verwendet Bob einen ersten Schlüsselinformationssatz, z. B. "0" (Schritt 260). Ansonsten verwendet Bob einen zweiten Schlüsselinformationssatz, z. B. das Bit "1" (Schritt 250).
  • Inzwischen hat Alice Tmin empfangen und kann diesen Wert mit T vergleichen. Bei einer erfindungsgemäßen Ausführungsform vergleicht Alice T mit Tmin, indem der Abstand (T, Tmin und k) berechnet wird, wobei der Abstand (i, j, k) den Abstand zwischen i und j modulo k angibt, oder anders ausgedrückt, die kleinste Zahl (i–j) mod k und (j–i) mod k (Schritt 240). Wenn beispielsweise der Abstand (T, Tmin, k) kleiner ist als der Abstand (T, Tmin+k/2, k), dann verwendet Alice den ersten Schlüsselinformationssatz (Schritt 260). Wenn der Abstand (T, Tmin, k) nicht kleiner ist als der Abstand (T, Tmin+k/2, k), verwendet Alice den zweiten Schlüsselinformationssatz (Schritt 250). Auf diese Art und Weise können Alice und Bob die gemeinsamen Schlüsselinformationen vereinbaren.
  • Bei dem vorliegenden Beispiel haben sich Alice und Bob auf einziges Bit als Schlüsselinformation verständigt. Es können ebenfalls erfindungsgemäße Systeme und Verfahren zum Einsatz kommen, um gleichzeitig mehrere Informationsbits zu vereinbaren. Das Berechnen von mehreren Bits in jeder Operation kann eine Möglichkeit darstellen, die Anzahl von Berechnungen zu verringern und gleichzeitig die Berechnungsleistung zu verbessern. Bei einer Ausführungsform können Alice und Bob beispielsweise vereinbaren, mit jeder Iteration zwei Bit als Schlüsselinformation auszuwählen bzw. die System parameter können entsprechend eingestellt werden. Nachdem Bob T' berechnet hat (Schritt 225), kann er in diesem Fall beispielsweise Tmin mit Hilfe der Formel Tmin = min (T', (T'+k/4) mod k, (T'+k/2) mod k (T'+3k/4) mod k) bestimmen. In diesem Fall bestimmt Bob den Mindestabstand zwischen T' und vier Auswahlmöglichkeiten: Tmin, (Tmin+k/4) mod k, (Tmin+2k/4) mod k und (Tmin+3k/4) mod k. Bei dem vorliegenden Beispiel wird anschließend Tmin gleichmäßig aus der Verteilung abgezogen [0, ... k/4]. Wenn Bob in Schritt 235 Tmin sendet, verwendet Bob 0 als Schlüsselinformation, was umgesetzt wird in "00" bzw. in 2 Bit Schlüsselinformation. Wenn Bob andererseits (T'+k/4) mod k als Tmin sendet, verwendet Bob die 1 oder "01" als die 2 Bit Schlüsselinformation. Auf diese Art und Weise können mit jeder Iteration mehr Bits gesendet werden. Die Übertragung einer sehr großen Bitanzahl kann jedoch die Fehlerrate erhöhen.
  • Eine andere Möglichkeit zur Erhöhung der Berechnungsleistung besteht darin, Berechnungen bei wiederholten Iterationen des in 2 beschriebenen Verfahrens zu nutzen. Wenn Bob beispielsweise S1 = x1×a und S2 = x2×a berechnet, können S1 und S2 berechnet werden, indem zuerst jene Elemente von a hinzugefügt werden, die sowohl in x1 als auch in x2 vorhanden waren, und anschließend diese gemeinsame Summe in späteren Berechnungen weiterverwendet wird. Wenn z. B. x1 = 01011 und x2 = 10111 ist, dann kann diese Berechnung beispielsweise wie folgt ausgeführt werden:
    temp = (00011)×a,
    x1×a = (01000)×a + temp, und
    x2×a = (10100)×a + temp.
  • Andere Methoden zum Verringern der Gesamtanzahl von Additionen sind ebenfalls möglich, wenn viele Summen über denselben Vektor a zu berechnen sind, z. B. die Berechnung von mehreren temporären Vektoren, woraufhin nach gemeinsamen Elementen in den Vektoren gesucht wird.
  • Eine Möglichkeit zur Verringerung sowohl des rechnerseitigen als auch des kommunikationsseitigen Overhead besteht darin, mehr als einen Wert von w zu verwenden und mehr als einen Vektor b mit demselben Vektor a. Beispielsweise könnte w2 zusätzlich zu w generiert werden und b2 = AL (a, w2) erzeugen. Nach der Auswahl von x würde Bob berechnen: T2' = floor (x×(b2 + 0,5) mod k),während Alice T2 = AL(S, w2) berechnen würde. Die übrigen Berechnungen würden wie zuvor ablaufen, jedoch könnten Alice und Bob S zweimal verwenden, und sich folglich auf doppelt so viele Bits verständigen, während S nur einmal berechnet und übertragen werden würde.
  • Nachdem w2 und b2 bereits verwendet worden sind, besteht kein Problem darin, dies auf w3 und b3, w4 und b4, usw. zu erweitern. Dadurch wird es möglich, eine einzige Summe S viele Male zu verwenden und viele Bits zu verschlüsseln. Der Kommunikations-Overhead ist geringer, da weniger Werte S übertragen zu werden brauchen, um dieselbe Anzahl gemeinsamer Schlüsselbits zu generieren. Zudem verringert sich auch der Berechnungsaufwand, da weniger Werte von S berechnet werden.
  • Bei einer Ausführungsform können erfindungsgemäße Systeme dem Public-Key-Kryptosystem aus 1 ähneln. Bei Bob könnte es sich um Benutzer 1 handeln und bei Alice könnte es sich um Benutzer 2 handeln. Systeme wie jenes, das in 1 abgebildet ist, können zum Generieren und Verteilen von Informationen auf einem unsicheren Kanal 130 verwendet werden, der es schließlich Bob und Alice ermöglichen würde, sich auf eine gemeinsame Schlüsselinformation zu einigen. Bei einer Ausführungsform können die durch Strichlinien in 1 umgebenen Elemente Personalcomputer 110 und 120 sein. Jeder der Computer 110 und 120 kann beispielsweise äquivalent zum Computer 312 in 3 sein.
  • 3 veranschaulicht ein System, das sich für die Public-Key-Verteilung in erfindungsgemäßer Art und Weise eignet. Der Computer 312 umfasst einen Prozessor 322, eine Speichervorrichtung 320, einen Read-Only-Memory (ROM) 318 und einen Hauptspeicher 316. Die erfindungsgemäßen Verfahrensschritte können beispielsweise von dem Prozessor 322 ausgeführt werden oder optional von einer Hardware-Vorrichtung, wie z. B. einer Verschlüsselungs-/Entschlüsselungsvorrichtung 326. Bei dem Hauptspeicher 316 handelt es sich um einen Random-Access-Memory (RAM) oder um eine dynamische Speichervorrichtung, die von dem Prozessor 322 ausgeführte Befehle speichert. Der Hauptspeicher 316 kann ebenfalls Informationen speichern, die bei der Ausführung von Befehlen oder Daten, z. B. kryptografischen Schlüsseln, verwendet werden. Der ROM 318 wird zum Speichern statischer Informationen und Befehle verwendet, die vom Prozessor 322 genutzt werden. Die Speichervorrichtung 320, z. B. eine Magnet- oder optische Platte, speichert ebenfalls Befehle und Daten, die während des Betriebs des Computersystems 312 verwendet werden.
  • Darüber hinaus kann der Computer 312 eine Anzeige 330 und eine Cursor-Steuerung 314 sowie eine Benutzeroberflächeneinrichtung aufweisen, wie beispielsweise eine Maus 330, einen Trackball (nicht abgebildet) oder einen Stift 310. Bei der Anzeige 330 kann es sich um eine CRT- oder eine andere Art Anzeigevorrichtung handeln. Die Cursor-Steuerung 314 steuert die Cursor-Bewegung der Benutzeroberflächeneinrichtungen auf der Anzeige 330.
  • Der Computer 312 kann an ein lokales Netzwerk (LAN) 334 angeschlossen sein, um mit anderen an das LAN 334 angeschlossenen Vorrichtungen zu kommunizieren. Zum Beispiel kann das LAN mit einem Computer 340, einem Drucker 336 und einem Massenspeicher 338 verbunden sein. Der Computer 340 kann z. B. von einem anderen Benutzer mit verwendet werden, der mit Alice oder Bob eine Schlüsselinformation vereinbaren will. Weiterhin kann das LAN 334 an ein Gateway 342 angeschlossen sein, um mit einem anderen Netzwerk 344 verbunden zu werden. Das Netzwerk 344 kann mit einem Computer 346, einem Drucker 348 und einer Datenbank 350 verbunden sein. Durch den Anschluss des Computers 312 an das LAN 334 und das Netzwerk 344 kann der Computer 312 Informationen über ein unsicheres Netzwerk an andere Computer senden, um sich erfindungsgemäß auf gemeinsame Schlüsselinformationen zu verständigen. Zum Beispiel kann Alice mit Hilfe des Computers 312 kommunizieren, während sich Bob am Computer 346 im LAN 334 und im Netzwerk 344 befindet.
  • Die hier beschriebene Vorrichtung und die entsprechenden Verfahren können von dem Computer 312 unter Zuhilfenahme von Hardware, Software oder einer Kombination aus Hardware und Software implementiert werden. Zum Beispiel können die hier beschriebene Vorrichtung und die Verfahren als ein Programm in einem oder mehreren Hauptspeichern 316, ROM 318 oder Speichereinheit 320 implementiert sein. Bei einer Ausführungsform führt der Prozessor 322 Programme aus, die die Zwischenwerte berechnen, die Bob zu Alice sendet.
  • Derartige Programme können von einem anderen Computer-lesbaren Medium in den Hauptspeicher 316 eingelesen werden, z. B. von der Speichervorrichtung 320. Die Ausführung von Befehlssequenzen, die im Hauptspeicher 316 enthalten sind, veranlasst den Prozessor 322, die hier beschriebenen erfindungsgemäßen Prozessschritte auszuführen. Weiterhin veranlasst die Ausführung von Befehlssequenzen, die im Hauptspeicher 316 enthalten sind, den Prozessor dazu, Geräteelemente zu implementieren, welche die Prozessschritte umsetzen. Zur Ausführung der Erfindung kann anstelle von Softwarebefehlen oder in Kombination mit diesen eine fest verdrahtete Schaltung verwendet werden. Somit sind die Ausführungsformen der Erfindung nicht auf eine spezielle Kombination aus Hardware-Schaltung und Software begrenzt.
  • Der hier verwendete Begriff "Computer-lesbares Medium" bezieht sich auf ein beliebiges Medium, das an der Bereitstellung von Befehlen für den Prozessor 322 mitwirken kann. Ein derartiges Medium kann beispielsweise die Form von nichtflüchtigen Speichermedien, flüchtigen Speichermedien und Übertragsmedium annehmen, ist jedoch nicht auf selbige begrenzt. Zu nichtflüchtigen Speichermedien gehören beispielsweise optische und magnetische Platten, wie beispielsweise die Speichervorrichtung 320. Flüchtige Speichermedien schließen einen RAM ein, wie beispielsweise den Hauptspeicher 316. Zu Übertragungsmedien gehören Koaxialkabel, Kupferdrähte und Glasfaserleiter, einschließlich der Drähte, die den Bus 326 bilden. Übertragungsmedien können ebenfalls die Form akustischer Wellen oder von Lichtwellen haben, wie jene, die bei Funkwellen- und Infrarot-Datenübertragungen generiert werden.
  • Zu allgemeinen Computer-lesbaren Medien gehören beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Magnetband oder ein anderes magnetisches Speichermedium, eine CD-ROM, ein anderes beliebiges optisches Medium, Lochkarten, Lochstreifen oder ein anderes physikalisches Medium mit Lochmuster, ein RAM, ein PROM, ein EPROM, ein FLASH-EPROM, und ein anderer beliebiger Speicherchip oder eine Kassette, eine Trägerwelle, wie nachstehend beschrieben, oder ein beliebiges Medium, welches ein Computer auslesen und benutzen kann.
  • Bei der Übertragung einer oder mehrerer Befehlssequenzen zum Prozessor 322 zwecks Ausführung können verschiedene Formen Computer-lesbarer Medien beteiligt sein. Zum Beispiel können sich die Befehle anfangs auf einer Magnetplatte oder einem entfernten Computer befinden. Der entfernte Computer kann die Befehle in seinen dynamischen Speicher laden und die Befehle mit einem Modem über eine Telefonleitung senden. Ein lokales Modem an einem Computersystem 212 kann die Daten auf der Telefonleitung empfangen und einen Infrarot-Sender verwenden, um die Daten in ein Infrarot-Signal umzuwandeln. Ein Infrarot-Detektor, der an eine geeignete Schaltung angeschlossen ist, kann die Daten auf dem Infrarot-Signal empfangen und die Daten auf dem Bus 326 positionieren. Der Bus 326 befördert die Daten zum Hauptspeicher 316, von dem der Prozessor 322 Befehle abruft und ausführt. Die vom Hauptspeicher 316 empfangenen Befehle können wahlweise auf der Speichervorrichtung 320 entweder vor oder nach Ausführung der Schritte durch den Prozessor 322 gespeichert werden.
  • Das Computersystem 312 enthält weiterhin eine Kommunikationsschnittstelle 324, die mit dem Bus 326 gekoppelt ist. Die Kommunikationsschnittstelle 324 ermöglicht eine Kommunikation bzw. Datenübertragung zu anderen Systemen in zwei Richtungen. Die Kommunikationsschnittstelle 324 kann beispielsweise eine ISDN-Karte (Integrated Services Digital Network) oder ein Modem sein, die/das eine Datenkommunikationsverbindung mit einer entsprechenden Art Telefonleitung herstellt. Die Kommunikation kann ebenfalls über eine LAN-Karte (Lokal Area Network) gewährleistet werden, so dass eine Kommunikation zu einem LAN möglich wird. Die Kommunikationsschnittstelle 324 kann ferner eine drahtlose Karte zur Umsetzung einer drahtlosen Kommunikation zwischen dem Computersystem 312 und drahtlosen Systemen sein. Bei jeder derartigen Implementierung sendet und empfängt die Kommunikationsschnittstelle 324 elektrische, elektromagnetische oder optische Signale, die Datenströme transportieren, welche verschiedene Arten von Informationen darstellen.
  • Die Kopplung zwischen der Kommunikationsschnittstelle 324 und externen Vorrichtungen und Systemen ermöglicht meist eine Kommunikation über eines oder mehrere Netzwerke oder andere Vorrichtungen. Zum Beispiel kann das Bindeglied eine Verbindung zu einem lokalen Netzwerk (nicht abgebildet), zu einem Hauptrechner oder zu einer Datenanlage herstellen, die von einem Internet Service Provider (ISP) betrieben wird. Ein ISP bietet Datenkommunikationsleistungen über das weltweite Paketdatenkommunikationsnetzwerk an, allgemein als "Internet" bezeichnet. Sowohl lokale Netzwerke als auch das Internet verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme transportieren. Die Signale in den verschiedenen Netzwerken und die Signale zwischen den Netzwerken und der Kommunikationsschnittstelle 324, die die digitalen Daten zu und von dem Computersystem 312 befördern, sind Beispielformen von Trägerwellen, die die Information transportieren.
  • Über das Bindeglied zwischen der Kommunikationsschnittstelle 324 und den externen Systemen und Vorrichtungen kann das Computersystem 312 durch das Netzwerk/die Netzwerke hindurch Nachrichten senden und Daten empfangen, einschließlich eines Programmcodes. Im Internet kann beispielsweise ein Server einen gewünschten Code für ein Anwendungsprogramm über das Internet, einen ISP, ein lokales Netzwerk und eine Kommunikationsschnittstelle 324 übertragen.
  • Der über das Netzwerk empfangene Programmcode kann vom Prozessor 322 ausgeführt werden, nachdem er empfangen wurde, und/oder zur späteren Ausführung in einem Speicher, z. B. in der Speichervorrichtung 320, gespeichert werden. Auf diese Art und Weise kann das Computersystem 312 den Anwendungscode in Form einer Trägerwelle erhalten.

Claims (9)

  1. Verfahren zum Vereinbaren gemeinsamer kryptografischer Schlüsselinformationen zwischen einer ersten (110) und einer zweiten (120) Einheit über einen unsicheren Kommunikationskanal, wobei die zweite Einheit mit einem Public/Private-Key-Paar verbunden ist, das auf einem Public Key-Algorithmus basiert, und das Verfahren die folgenden Schritte umfasst: Bestimmen (210) eines ersten Wertes x durch die erste Einheit; Bestimmen (215) einer gewichteten Summe, die das Skalarprodukt des ersten Wertes und eines ersten Teils eines Public Key ist, der der zweiten Einheit entspricht, durch die erste Einheit; Übertragen (220) der gewichteten Summe zu der n Einheit durch die erste Einheit; Bestimmen (225) eines ersten Komparators, der das Skalarprodukt des ersten Wertes und eines zweiten Teils des Public Key ist, der der zweiten Einheit (120) entspricht, durch die erste Einheit; Bestimmen (230) eines zweiten Komparators, der eine annähernd lineare Funktion des ersten Komparators darstellt, durch die zweite Einheit; und Vereinbaren (235250) kryptografischer Schlüsselinformationen, die auf dem ersten und dem zweiten Komparator basieren, durch die erste und die zweite Einheit.
  2. Verfahren nach Anspruch 1, das des Weiteren die folgenden Schritte umfasst: Übertragen der gewichteten Summe zu der zweiten Einheit über den unsicheren Kommunikationskanal (130) durch die erste Einheit; Bestimmen des ersten Komparators des Weiteren auf Basis einer ersten annähernd linearen Funktion durch die erste Einheit, Übertragen eines dritten Wertes zu der zweiten Einheit durch die erste Einheit, wobei der dritte Wert auf dem ersten Komparator basiert; Bestimmen (230) des zweiten Komparators, der auf der gewichteten Summe und einer zweiten annähernd linearen Funktion basiert, die mit der ersten annähernd linearen Funktion zusammenhängt, durch die zweite Einheit; und Vereinbaren (235250) kryptografischer Schlüsselinformationen, die auf dem dritten Wert und dem zweiten Komparator basieren, durch die erste und die zweite Einheit.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Schritt des Vereinbarens kryptografischer Schlüsselinformationen, die auf dem ersten und zweiten Komparator basieren, durch die erste und die zweite Einheit umfasst: Übertragen eines minimalen Abstandes des ersten Komparators und einer zweiten Zahl, die mathematisch mit dem ersten Komparator zusammenhängt, zu der zweiten Einheit durch die erste Einheit; Verwenden (260) eines ersten Schlüsselinformationssatzes, wenn das Minimum dem ersten Komparator entspricht (245), und Verwenden (250) eines zweiten Schlüsselinformationssatzes, wenn das Minimum der zweiten Zahl entspricht, durch die erste Einheit; Bestimmen (240), ob der zweiten Komparator näher an dem minimalen Abstand oder an einer dritten Zahl liegt, die mathematisch mit dem zweiten Komparator zusammenhängt, durch die zweite Einheit; und Verwenden (260) eines ersten Schlüsselinformationssatzes, wenn der zweite Komparator näher an dem minimalen Abstand liegt, und Verwenden (250) eines zweiten Schlüsselinformationssatzes, wenn der zweite Komparator näher an der dritten Zahl liegt, durch die zweite Einheit.
  4. Verfahren nach Anspruch 1 oder 2, wobei eine zweite Zahl, die mathematisch mit dem ersten Komparator zusammenhängt, eine Zahl ist, die weiter entfernt ist als ein Abstand zu dem Modulo k des ersten Komparators, und eine dritte Zahl, die mathematisch mit dem zweiten Komparator zusammenhängt, eine Zahl ist, die weiter entfernt ist als ein Abstand zu dem Modulo k des zweiten Komparators.
  5. Public Key-Verteilungssystem zum Vereinbaren gemeinsamer kryptografischer Schlüsselinformationen zwischen einer ersten (110) und einer zweiten (120) Einheit über einen unsicheren Kommunikationskanal (130), wobei die zweite Einheit mit einem Public/Private-Key-Paar verbunden ist, das auf einem Public Key-Algorithmus basiert, und das System umfasst: die erste Einheit, die umfasst: eine Einrichtung, die einen ersten Wert x bestimmt (210), eine Einrichtung, die eine gewichtete Summe bestimmt (215), die das Skalarprodukt des ersten Wertes und eines ersten Teils eines Public Key ist, der der zweiten Einheit entspricht, eine Einrichtung, die die gewichtete Summe zu der zweiten Einheit überträgt (220), eine Einrichtung, die einen ersten Komparator bestimmt (225), der auf dem ersten Wert und einem zweiten Teil eines Public Key basiert, der der zweiten Einheit entspricht, eine Einrichtung, die einen Schlüsselinformationssatz auswählt (245), der auf dem ersten Komparator basiert; und die zweite Einheit (120), die umfasst: eine Einrichtung, die einen zweiten Komparator bestimmt (230), der eine annähernd lineare Funktion des ersten Komparators darstellt, und eine Einrichtung, die den Schlüsselinformationssatz auswählt (240), der auf dem zweiten Komparator und dem zweiten Wert basiert.
  6. System nach Anspruch 5, wobei die Einrichtung, die einen Schlüsselinformationssatz auswählt, der auf dem ersten Komparator basiert, umfasst: eine Einrichtung, die zu der zweiten Einheit einen minimalen Abstand des ersten Komparators und einer zweiten Zahl überträgt (131), die mathematisch mit dem ersten Komparator zusammenhängt; und eine Einrichtung, die einen ersten Schlüsselinformationssatz (260) verwendet, wenn das Minimum dem ersten Komparator entspricht, und einen zweiten Schlüsselinformationssatz verwendet (250), wenn das Minimum der zweiten Zahl entspricht.
  7. System nach Anspruch 5, wobei die Einrichtung, die den Schlüsselinformationssatz auswählt, der auf dem zweiten Komparator basiert, umfasst: eine Einrichtung, die bestimmt (240), ob der zweite Komparator näher an dem minimalen Abstand oder einer dritten Zahl liegt, die mathematisch mit dem zweiten Komparator zusammenhängt; und eine Einrichtung, die einen ersten Schlüsselinformationssatz (260) verwendet, wenn der zweite Komparator näher an dem minimalen Abstand liegt, und einen zweiten Schlüsselinformationssatz verwendet (250), wenn der zweite Komparator näher an der dritten Zahl liegt.
  8. System nach Anspruch 6, wobei eine zweite Zahl, die mathematisch mit dem ersten Komparator verbunden ist, eine Zahl ist, die weiter entfernt ist, als ein Abstand zu dem Modulo k des ersten Komparators.
  9. System nach Anspruch 7, wobei eine dritte Zahl, die mathematisch mit dem zweiten Komparator zusammenhängt, eine Zahl ist, die weiter entfernt ist als ein Abstand zu dem Modulo k des zweiten Komparators.
DE60105328T 2000-02-10 2001-02-09 Öffentliche Schlüsselverteilung unter Verwendung einer näherungsweise linearen Funktion Expired - Lifetime DE60105328T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US501181 2000-02-10
US09/501,181 US6839839B1 (en) 2000-02-10 2000-02-10 Public key distribution using an approximate linear function

Publications (2)

Publication Number Publication Date
DE60105328D1 DE60105328D1 (de) 2004-10-14
DE60105328T2 true DE60105328T2 (de) 2005-02-10

Family

ID=23992445

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60105328T Expired - Lifetime DE60105328T2 (de) 2000-02-10 2001-02-09 Öffentliche Schlüsselverteilung unter Verwendung einer näherungsweise linearen Funktion

Country Status (3)

Country Link
US (1) US6839839B1 (de)
EP (1) EP1124349B1 (de)
DE (1) DE60105328T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2368755A (en) * 2000-11-01 2002-05-08 Content Technologies Ltd Distributing public keys using 2D barcodes
JP2003229847A (ja) * 2001-11-28 2003-08-15 Yun-Factory:Kk 鍵交換装置、方法、プログラムおよび該プログラムを記録した記録媒体
US20030154408A1 (en) * 2002-02-13 2003-08-14 Yanong Zhu Method and apparatus for secured unified public communication network based on IP and common channel signaling
US20040068651A1 (en) * 2002-05-21 2004-04-08 Pender Michael J. Optical device for identifying friends and foes using real-time optical encryption and method for producing the same
JP4548223B2 (ja) * 2005-05-27 2010-09-22 日本電気株式会社 擬似ランダム関数計算装置及び方法、並びに回数制限匿名認証システム及び方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218582A (en) 1977-10-06 1980-08-19 The Board Of Trustees Of The Leland Stanford Junior University Public key cryptographic apparatus and method
US5273921A (en) 1991-12-27 1993-12-28 Purdue Research Foundation Methods for fabricating a dual-gated semiconductor-on-insulator field effect transistor
US5297206A (en) 1992-03-19 1994-03-22 Orton Glenn A Cryptographic method for communication and electronic signatures
JP2572003B2 (ja) 1992-03-30 1997-01-16 三星電子株式会社 三次元マルチチャンネル構造を有する薄膜トランジスタの製造方法
US5602047A (en) 1996-06-13 1997-02-11 Industrial Technology Research Institute Process for polysilicon thin film transistors using backside irradiation and plasma doping

Also Published As

Publication number Publication date
EP1124349A2 (de) 2001-08-16
DE60105328D1 (de) 2004-10-14
US6839839B1 (en) 2005-01-04
EP1124349B1 (de) 2004-09-08
EP1124349A3 (de) 2002-10-02

Similar Documents

Publication Publication Date Title
DE69534192T2 (de) Verfahren zur gemeinsamen Nutzung einer geheimen Information, zur Erzeugung einer digitalen Unterschrift und zur Ausführung einer Beglaubigung in einem Kommunikationssystem mit mehreren Informationsverarbeitungseinrichtungen und Kommunikationssystem zur Anwendung dieses Verfahrens
DE69737097T2 (de) Kryptographisches verfahren und vorrichtung mit öffentlichem schlüssel
DE69903854T2 (de) Verfahren zur beschleunigung kryptographischer operationen auf elliptischen kurven
DE69935469T2 (de) Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung
DE60028645T2 (de) Vorrichtung und Verfahren zur Verteilung von Dokumenten
EP2826199B1 (de) Verfahren und system zur gesicherten kommunikation zwischen einem rfid-tag und einem lesegerät
DE60303018T2 (de) Mehrbenutzerschlüsselerzeugung auf polynombasis und Authentisierungsverfahren uns System
DE69416809T2 (de) Verbesserungen der Sicherheit in Datenverarbeitungssystemen
DE69935913T2 (de) Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
DE19514084C1 (de) Verfahren zum rechnergestützten Austausch kryptographischer Schlüssel zwischen einer Benutzercomputereinheit U und einer Netzcomputereinheit N
DE60031304T3 (de) Verfahren zur authentifizierung von softwarebenutzern
DE102005024725A1 (de) System und Verfahren für Chaotische Digitale Signatur, Verschlüsselung und Authentifizierung
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
CH694601A5 (de) Verfahren zur Verifizierung der Echtheit von ausgetauschten Nachrichten.
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
US11451369B2 (en) Method and system for multi-authority controlled functional encryption
DE3631992A1 (de) Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
CN114465708B (zh) 隐私数据处理方法及装置、系统、电子设备、存储介质
US20240163084A1 (en) Method of data transmission, and electronic devic
EP2321927A1 (de) Verfahren zur bestimmung einer kette von schlüsseln, verfahren zur übertragung einer teilkette der schlüssel, computersystem und chipkarte
US11853449B1 (en) Data processing method based on secure multi-party computation, electronic device, and storage medium
Harn et al. (t, n) multi-secret sharing scheme based on bivariate polynomial
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
CN116167088A (zh) 一种两方联邦学习中进行隐私保护的方法、系统及终端
DE60105328T2 (de) Öffentliche Schlüsselverteilung unter Verwendung einer näherungsweise linearen Funktion

Legal Events

Date Code Title Description
8364 No opposition during term of opposition