-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich auf Verfahren, die verschlüsselte biometrische Informationen bereitstellen, die gespeichert und zur Authentifizierung mit unverminderter Erkennungsleistung verwendet werden können.
-
Im Gegensatz zu deterministischen Passwörtern ändern sich biometrische Merkmale ständig aufgrund von Faktoren wie Änderungen im Aufnahmeverfahren (Abtastrauschen, Schatten, Positionsänderungen usw.) oder natürlichen Gründen (Verletzung, Bart, Alter usw.). Im Gegensatz zu Passwörtern werden biometrische Informationen daher nicht bei jeder Abtastung exakt übereinstimmen und können daher nicht wie Passwörter behandelt werden, z. B. gespeichert, verzerrt oder mittels eines Hash-Verfahrens geschützt werden. Derzeit gibt es keine praktische Methode, biometrische Informationen zu verschlüsseln und ihren Nutzwert für die Authentifizierung zu erhalten. Ein Grund für diese Nichtverfügbarkeit ist z. B. die inakzeptable Reduzierung der Erkennungsleistung in Kombination mit unbeweisbaren Sicherheitsansprüchen. Folglich werden biometrische Informationen derzeit in verschiedenen Datenbanken gespeichert, die anfällig für Angriffe sind.
-
Dementsprechend besteht ein Bedarf an Techniken, die verschlüsselte biometrische Informationen bereitstellen, die gespeichert und zur Authentifizierung mit unverminderter Erkennungsleistung verwendet werden können.
-
ZUSAMMENFASSUNG
-
Ausführungsformen der vorliegenden Systeme und Verfahren können verschlüsselte biometrische Informationen bereitstellen, die gespeichert und zur Authentifizierung mit unverminderter Erkennungsleistung verwendet werden können. Ausführungsformen können Vorteile gegenüber aktuellen Techniken anbieten. Zum Beispiel können Ausführungsformen Sicherheitsansprüche bieten, die mit aktuellen kryptographischen Lösungen, wie symmetrischen und asymmetrischen Methoden, verglichen werden können, da Ausführungsformen bekannte und akzeptierte kryptographische Module enthalten können. Außerdem kann die Verminderung der Erkennungsleistungsraten als Kompromiss mit den Anforderungen an Speicher und Geschwindigkeit beschrieben werden; und für industriell akzeptable Leistungsanforderungen können die Ausführungsformen beides erreichen.
-
Zum Beispiel kann in einer Ausführungsform ein Verfahren zur biometrischen Authentifizierung, das in einem Computer implementiert ist, der einen Prozessor, einen durch den Prozessor zugänglichen Speicher und Computerprogrammanweisungen aufweist, die in dem Speicher gespeichert und durch den Prozessor ausführbar sind, das Speichern einer Vielzahl von verschlüsselten trainierten Gewichten eines neuronalen Netzwerkklassifizierers aufweisen. Dabei können die Gewichte unter Verwendung biometrischer Informationen trainiert werden, die mindestens ein biometrisches Merkmal einer Person darstellen. Das Verfahren kann weiterhin ein Empfangen verschlüsselter biometrischer Informationen aufweisen, die durch Aufnehmen mindestens eines biometrischen Merkmals der Person gewonnen werden und Verschlüsselung der aufgenommenen biometrischen Informationen, Erhalten eines Übereinstimmungs-Score unter Verwendung des verschlüsselten trainierten neuronalen Netzwerkklassifizierers, wobei der Übereinstimmungs-Score eine Wahrscheinlichkeit angibt, dass die empfangenen verschlüsselten biometrischen Informationen mit den gespeicherten verschlüsselten biometrischen Informationen übereinstimmen, und Authentifizieren der Person, wenn die Wahrscheinlichkeit, dass die empfangenen verschlüsselten biometrischen Informationen mit den gespeicherten verschlüsselten biometrischen Informationen übereinstimmen, einen Schwellenwert überschreitet.
-
In Ausführungsformen können die trainierten Gewichte mit homomorpher Verschlüsselung, einer mehrseitigen Berechnung oder einer Kombination aus beidem verschlüsselt werden. Das Erhalten des Übereinstimmungs-Score kann aufweisen: Erhalten eines verschlüsselten Übereinstimmungs-Score unter Verwendung des verschlüsselten, trainierten neuronalen Netzwerkklassifizierers, Übermitteln des verschlüsselten Match-Scores an ein Client-Gerät, Empfangen eines unverschlüsselten Übereinstimmungs-Score von dem Client-Gerät, Ermitteln, dass der Client den Übereinstimmungs-Score unter Verwendung eines Zero-Knowledge-Proof korrekt entschlüsselt hat, und Vergleichen des unverschlüsselten Übereinstimmungs-Score mit dem Schwellenwert. Das Erhalten des Match-Score kann aufweisen: Erhalten eines verschlüsselten Übereinstimmungs-Score unter Verwendung des verschlüsselten trainierten neuronalen Netzwerkklassifizierers, Multiplizieren des verschlüsselten Übereinstimmungs-Score mit einer ersten verschlüsselten geheimen Ganzzahl, Verschlüsseln einer Vielzahl von zusätzlichen geheimen Ganzzahlen, Übermitteln des multiplizierten verschlüsselten Übereinstimmungs-Score und mindestens einiger der Vielzahl von verschlüsselten zusätzlichen geheimen Ganzzahlen an ein Client-Gerät, Empfangen eines entschlüsselten multiplizierten Übereinstimmungs-Score und entschlüsselter zusätzlicher geheimer Ganzzahlen von dem Client-Gerät, Verifizieren der Korrektheit der entschlüsselten zusätzlichen geheimen Ganzzahlen, und Dividieren des unverschlüsselten Übereinstimmungs-Score durch die erste verschlüsselte geheime Ganzzahl, um den Übereinstimmungs-Score zu erhalten. Der multiplizierte verschlüsselte Übereinstimmungs-Score und die verschlüsselten zusätzlichen geheimen Ganzzahlen können in einer geheimen zufälligen Reihenfolge an das Client-Gerät übermittelt werden. Die verschlüsselten biometrischen Informationen können von einem Client-Gerät empfangen werden, das kommunikativ mit einem Gerät zur Erfassung biometrischer Informationen verbunden ist. Die Entschlüsselung kann auf dem Client-Gerät unter Verwendung eines privaten Schlüssels durchgeführt werden. Einige der Schichten des neuronalen Netzwerkklassifizierers können mit öffentlich zugänglichen nicht-privaten biometrischen Informationen trainiert werden, und einige Schichten des neuronalen Netzwerkklassifizierers können mit privaten biometrischen Informationen der Person wieder trainiert werden.
-
In einer Ausführungsform kann ein System zur biometrischen Authentifizierung einen Prozessor, einen Speicher, auf den der Prozessor zugreifen kann, und Computerprogrammanweisungen aufweisen, die in dem Speicher gespeichert und von dem Prozessor ausführbar sind, um Folgendes durchzuführen: Speichern mehrerer verschlüsselter trainierter Gewichte eines neuronalen Netzwerkklassifizierers, wobei die Gewichte unter Verwendung biometrischer Informationen trainiert wurden, die mindestens ein biometrisches Merkmal einer Person darstellen, Empfangen verschlüsselter biometrischer Informationen, die durch Aufnehmen mindestens eines biometrischen Merkmals der Person und Verschlüsselung des aufgenommenen biometrischen Merkmals erhalten wurden, Erhalten eines Übereinstimmungs-Score unter Verwendung des verschlüsselten trainierten neuronalen Netzwerkklassifizierers, wobei der Übereinstimmungs-Score eine Wahrscheinlichkeit angibt, dass die empfangenen verschlüsselten biometrischen Informationen mit den gespeicherten verschlüsselten biometrischen Informationen übereinstimmen, und Authentifizieren der Person, wenn die Wahrscheinlichkeit, dass empfangene verschlüsselte biometrische Informationen mit den gespeicherten verschlüsselten biometrischen Informationen übereinstimmen, einen Schwellenwert überschreitet.
-
In einer Ausführungsform kann ein Computerprogrammprodukt zur biometrischen Authentifizierung einen nicht-transitorischen computerlesbaren Speicher mit darin ausgeführten Programmanweisungen aufweisen, wobei die Programmanweisungen durch einen Computer ausführbar sind, um den Computer zu bewirken, ein Verfahren durchzuführen, das Folgendes aufweist: Speichern mehrerer verschlüsselter trainierter Gewichte eines neuronalen Netzwerkklassifizierers, wobei die Gewichte unter Verwendung biometrischer Informationen trainiert wurden, die mindestens ein biometrisches Merkmal einer Person darstellen, Empfangen verschlüsselter biometrischer Informationen, die durch Aufnehmen mindestens eines biometrischen Merkmals der Person und Verschlüsselung des abgetasteten biometrischen Merkmals erhalten wurden, Erhalten eines Übereinstimmungs-Score unter Verwendung des verschlüsselten trainierten neuronalen Netzwerkklassifizierers, wobei der Übereinstimmungs-Score eine Wahrscheinlichkeit angibt, dass die empfangenen verschlüsselten biometrischen Informationen mit den gespeicherten verschlüsselten biometrischen Informationen übereinstimmen, und Authentifizieren der Person, wenn die Wahrscheinlichkeit, dass empfangene verschlüsselte biometrische Informationen mit den gespeicherten verschlüsselten biometrischen Informationen übereinstimmen, einen Schwellenwert überschreitet.
-
Figurenliste
-
Die Einzelheiten der vorliegenden Erfindung, sowohl in Bezug auf ihre Struktur und Betrieb, können am besten durch Bezugnahme auf die beigefügten Zeichnungen, in denen gleiche Bezugszahlen und Bezeichnungen sich auf gleiche Elemente beziehen, verstanden werden.
- 1 veranschaulicht ein beispielhaftes System, in dem die Ausführungsformen der vorliegenden Systeme und Methoden implementiert werden können.
- 2 ist ein beispielhaftes Flussdiagramm eines Prozesses, der Ausführungsformen der vorliegenden Verfahren implementieren kann, und der in Ausführungsformen der vorliegenden Systeme implementiert werden kann.
- 3 ist ein beispielhaftes Flussdiagramm eines Prozesses, der Ausführungsformen der vorliegenden Verfahren implementieren kann und der in Ausführungsformen der vorliegenden Systeme implementiert werden kann.
- 4 ist ein beispielhaftes Blockdiagramm eines Computersystems/Rechengeräts, in dem Prozesse, die in den hier beschriebenen Ausführungsformen involviert sind, implementiert werden können.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Systeme und Verfahren können verschlüsselte biometrische Informationen bereitstellen, die gespeichert und zur Authentifizierung mit unverminderter Erkennungsleistung verwendet werden können. Ausführungsformen können Vorteile gegenüber aktuellen Techniken bieten. Zum Beispiel können Ausführungsformen Sicherheitsansprüche bieten, die mit aktuellen kryptografischen Lösungen, wie symmetrischen und asymmetrischen Verfahren, verglichen werden können, da Ausführungsformen bekannte und akzeptierte kryptografische Module enthalten können. Außerdem kann die Reduzierung der Erkennungsleistungsraten als Kompromiss mit den Anforderungen an Speicher und Geschwindigkeit beschrieben werden, und für industriell akzeptable Leistungsanforderungen können die Ausführungsformen beides erreichen.
-
Unter Ausnutzung der Fortschritte bei der homomorphen Verschlüsselung können Ausführungsformen ein System aufweisen, das ein verschlüsseltes benutzerspezifisches neuronales Klassifizierungsnetzwerk pro Person speichert. Biometrische Daten, die an den Server gesendet werden, können verschlüsselt sein und während des Authentifizierungsprozesses verschlüsselt bleiben. Nach Beendigung des Authentifizierungsvorgangs kann der Server über einen verschlüsselte Übereinstimmungs-Score verfügen. Dieser Score kann nur von dem Benutzer entschlüsselt werden, der den privaten Schlüssel besitzt, der dann über ein spezielles Protokoll an den Server übermittelt werden kann, mit dem der Server den Benutzer entweder authentifiziert oder zurückweisen kann.
-
Ein beispielhaftes System 100, in dem Ausführungsformen der vorliegenden Systeme und Verfahren implementiert werden können, ist in 1 dargestellt. In diesem Beispiel kann das System 100 einen Server 102, ein Client-Gerät 104 und ein Gerät 106 zur Erfassung biometrischer Informationen aufweisen. Der Server 102 kann Funktionen wie Anmeldung und Authentifizierung von Benutzern des Systems durchführen und eine Vielzahl von verschlüsselten neuronalen Netzwerken 108 enthalten. Das Client-Gerät 104 kann ein beliebiges Computergerät sein, das in der Lage ist, Softwareprogramme auszuführen, und kann Allzweck-Computergeräte wie ein Personal Computer, ein Laptop, ein Smartphone, ein Tablet-Computer usw. sein sowie Spezial-Computergeräte wie eingebettete Prozessoren, Systeme auf einem Chip usw. aufweisen, die in Standard- oder proprietären Geräten wie Eingabegeräten, Kiosken, Geldautomaten usw. enthalten sein können. Das Client-Gerät 104 kann eine oder mehrere Client-Anwendungen 110 aufweisen und ausführen. Das Gerät 106 zur Erfassung biometrischer Informationen kann ein beliebiges Gerät sein, das biologische, physiologische und/oder physische biometrische Informationen erfassen kann, wie z. B. einen Fingerabdruck, einen Netzhaut-Scan, Handvenen, Gesichtserkennung, DNA, Handflächenabdruck, Handgeometrie, Iriserkennung, Netzhaut und Geruch/Duft, usw. Der Server 102 kann kommunikativ mit dem Client-Gerät 104 und dem Gerät 106 zur Erfassung biometrischer Informationen verbunden sein. Das Client-Gerät 104 kann kommunikativ und/oder physisch mit dem Gerät 106 zur Erfassung biometrischer Informationen verbunden sein.
-
Ein beispielhaftes Flussdiagramm eines Prozesses 200 für den Betrieb des Systems 100 ist in 2 dargestellt. Es ist am besten in Verbindung mit 1 zu sehen. In diesem Beispiel kann der Prozess 200 zwei Phasen aufweisen, nämlich die Anmeldephase 202 und die Verifizierungsphase 204. Die Anmeldephase 202 kann bei 206 beginnen, in der das Gerät 106 zur Erfassung biometrischer Informationen ein oder mehrere biometrische Merkmale einer Person vornimmt und die Aufnahm ein biometrische Informationen umwandeln kann, die an das Client-Gerät 104 übermittelt, 112 werden. Auf dem Client-Gerät 104 kann die Client-Anwendung 110 einen neuronalen Netzwerkklassifikator trainieren 208, um die biometrischen Merkmale der Person unter Verwendung der biometrischen Informationen zu identifizieren. In Ausführungsformen kann der neuronalen Netzwerk -Klassifikator oder eine Teilmenge der Schichten des neuronalen Netzwerk-Klassifikators mit öffentlich zugänglichen nicht-privaten biometrischen Informationen trainiert werden, und andere Schichten des neuronalen Netzwerk-Klassifikators können mit privaten biometrischen Informationen einer bestimmten Person erneut trainiert werden. Um die Speicher- und Geschwindigkeitsanforderungen zu reduzieren, kann beispielsweise das gesamte neuronale Netzwerkmodell (NN-Modell) unter Verwendung öffentlich verfügbarer biometrischer Daten (die keinen Einschränkungen hinsichtlich der Privatsphäre unterliegen) trainiert werden. Die Gewichte z. B. der ersten paar Schichten können fixiert oder gespeichert werden und dann, während der Anmeldung, können die restlichen Schichten mit privaten, personenspezifischen, biometrischen Daten erneut trainiert werden. So brauchen z. B. nur die letzten paar Schichten verschlüsselt zu werden. Während der Verifizierung können die biometrischen Merkmale zunächst in die unverschlüsselten NN-Schichten eingespeist werden, dann können sie verschlüsselt und an das verschlüsselte Modell gesendet werden. Die trainierten Gewichte können verschlüsselt werden, 201, z. B. mit homomorpher Verschlüsselung, und an den Server 102 übermittelt 114 werden, der das verschlüsselte neuronale Netzwerk 108 für diese Person speichern kann. Die homomorphe Verschlüsselung ermöglicht die Berechnung auf verschlüsselten Daten, so dass die Ergebnisse der Berechnung auf den verschlüsselten Daten bei der Entschlüsselung die gleichen sind, wie wenn die Berechnung auf den unverschlüsselten oder Klartextdaten durchgeführt worden wäre.
-
Die Verifizierungsphase 204 kann bei 212 beginnen, in der die biometrischen Merkmale erneut erfasst oder aufgenommen werden und wobei die biometrische Informationen an das Client-Gerät 104 übermittelt, 116, werden können. Das Client-Gerät 110 kann die biometrischen Informationen verarbeiten, die biometrischen Informationen verschlüsseln und die verschlüsselten biometrischen Informationen an den Server 102 übermitteln 118. Bei 214 kann der Server 102 die verschlüsselten Gewichte und die empfangenen biometrischen Informationsmerkmale verwenden, um das neuronale Netzwerk einzusetzen und einen verschlüsselten Übereinstimmungs-Score zu erhalten. Der Server 102 muss jetzt wissen, ob dieser Übereinstimmungs-Score einen Schwellenwert überschreitet oder nicht. Da nur das Client-Gerät 104 den Übereinstimmungs-Score entschlüsseln kann, kann ein Prozess 216 verwendet werden, bei dem das Client-Gerät 104 den Übereinstimmungs-Score unter Verwendung eines privaten Schlüssels entschlüsselt und diesen auf eine vertrauenswürdige sichere Weise an den Server übermittelt. In Ausführungsformen kann der verschlüsselte Übereinstimmungs-Score von dem Benutzer, der einen privaten Schlüssel besitzt, unter Verwendung eines Zero-Knowledge-Beweises (Zero-Knowledge-Proof) entschlüsselt werden. Ebenso kann verifiziert werden, dass der Benutzer, der möglicherweise nicht vertrauenswürdig ist, den Übereinstimmungs-Score unter Verwendung eines Zero-Knowledge-Beweises korrekt entschlüsselt hat. Beispiele für solche Zero-Knowledge-Beweise können, ohne darauf beschränkt zu sein, eine Ausführung einer Multiplikation ohne eine weitere Addition, andere allgemeine Funktionen, f (secret_numberi), Techniken wie Vickery Auktionen, etc. aufweisen. Eine Vickery- oder Höchstbietende-Auktion ist „Nullwissend“. So kann z. B. der zweithöchste Bietende als Schwellenwert mit nachfolgenden als Null-Wissen-Beweis berücksichtigt werden, wobei der gegebene Score der höchste Bieter ist.
-
Ein beispielhaftes Flussdiagramm des Prozesses 216 ist in 3 dargestellt. Es ist am besten in Verbindung mit 1 zu sehen. Der Prozess 216 kann bei 302 beginnen, in dem der Server 102 den verschlüsselten Übereinstimmungs-Score mit einer verschlüsselten geheimen Ganzzahl R1 multiplizieren kann. Server 102 kann auch N-1 andere geheime Ganzzahlen R2, ..., RN verschlüsseln. Server 102 kann die multiplizierten Werte inklusive des multiplizierten verschlüsselten Übereinstimmungs-Score und der multiplizierten (verschlüsselten) Zahlen an das Client-Gerät 104 übermitteln. Die multiplizierten Werte können in einer geheimen Zufallsreihenfolge übermittelt 120 werden. Das Client-Gerät 104 kann die multiplizierten Werte entschlüsseln. Das Client-Gerät 104 kann den entschlüsselten Wert zurück an den Server 102 übermitteln, 122, der die Korrektheit von R2, ..., RN verifizieren kann. Für den verbleibenden Wert kann dieser Wert durch R1 geteilt werden, um den entschlüsselten Übereinstimmungs-Score zu erhalten. Server 102 kann dann den entschlüsselten Übereinstimmungs-Score mit einem Schwellenwert vergleichen, um zu ermitteln, ob es eine Übereinstimmung gibt. Wenn es eine Übereinstimmung gibt, kann die Person authentifiziert werden. Das Client-Gerät 104 kann die multiplizierten Werte entschlüsseln. Das Client-Gerät 104 kann den entschlüsselten Wert zurück an den Server 102 übermitteln, 122, der die Korrektheit von R2, ..., RN verifizieren kann. Für den verbleibenden Wert kann dieser Wert durch R1 geteilt werden, um den entschlüsselten Übereinstimmungs-Score zu erhalten. Server 102 kann dann den entschlüsselten Match-Score mit einem Schwellenwert vergleichen, um zu ermitteln, ob es eine Übereinstimmung gibt. Wenn es eine Übereinstimmung gibt, kann die Person authentifiziert werden.
-
Ein beispielhaftes Blockdiagramm eines Computersystems/eines Rechnergeräts 402, in dem die Prozesse der hier beschriebenen Ausführungsformen implementiert sein können, ist in 4 dargestellt. Das Computersystem/Rechengerät 402 kann mit einem oder mehreren programmierten Allzweck-Computersystemen, wie eingebetteten Prozessoren, Systemen auf einem Chip, Personal Computern, Workstations, Serversystemen und Minicomputern oder Großrechnern, mobilen Geräten, wie Smartphones oder Tablets, oder in verteilten, vernetzten Rechenumgebungen implementiert werden. Das Computersystem/Rechengerät 402 kann einen oder mehrere Prozessoren (CPUs) 402A-402N, eine Ein-/Ausgabeschaltung 404, einen Netzwerkadapter 406 und einen Speicher 408 enthalten. Die CPUs 402A-402N führen Programmanweisungen aus, um die Funktionen der vorliegenden Kommunikationssysteme und -verfahren auszuführen. Typischerweise sind die CPUs 402A-402N ein oder mehrere Mikroprozessoren, wie z. B. ein INTEL CORE® Prozessor oder ein ARM® Prozessor. 4 zeigt eine Ausführungsform, bei der das Computersystem/Rechengerät 402 als ein einziges Multiprozessor-Computersystem/Rechengerät implementiert ist, bei dem sich mehrere Prozessoren 402A-402N Systemressourcen teilen, wie z. B. den Speicher 408, die Eingabe-/Ausgabeschaltung 404 und den Netzwerkadapter 406. Die vorliegenden Kommunikationssysteme und -verfahren aufweisen jedoch auch Ausführungsformen auf, in denen das Computersystem/Rechengerät 402 als eine Vielzahl von Netzwerkcomputersystemen implementiert ist, bei denen es sich um Einprozessor-Computersysteme/Rechengeräte, Multiprozessor-Computersysteme/Rechengeräte oder eine Mischung davon handeln kann.
-
Die Eingabe-/Ausgabeschaltung 404 bietet die Fähigkeit, Daten in das Computersystem/Rechengerät 402 einzugeben bzw. Daten von diesem auszugeben. Beispielsweise kann die Eingabe-/Ausgabeschaltung Eingabegeräte wie Tastaturen, Mäuse, Touchpads, Trackballs, Scanner, Analog-Digital-Wandler usw., Ausgabegeräte wie Videoadapter, Monitore, Drucker, biometrische Informationserfassungsgeräte usw. und Eingabe-/Ausgabegeräte wie Modems usw. aufweisen. Der Netzwerkadapter 406 verbindet das Gerät 400 mit einem Netzwerk 410. Das Netzwerk 410 kann ein beliebiges öffentliches oder proprietäres LAN oder WAN sein, einschließlich, ohne auf das Internet beschränkt zu sein.
-
Der Speicher 408 speichert Programmanweisungen, die von der CPU 402 ausgeführt werden, und Daten, die von der CPU 402 verwendet und verarbeitet werden, um die Funktionen des Computersystems/Computergeräts 402 auszuführen. Der Speicher 408 kann z. B. elektronische Geräte wie RAM (Random-Access Memory), ROM (Read-Only Memory), PROM (Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), Flash-Speicher usw. sowie elektromechanische Geräte wie Magnetplattenlaufwerke, Bandlaufwerke, optische Plattenlaufwerke usw. aufweisen, die eine integrierte Laufwerkselektronik (IDE)-Schnittstelle oder eine Variation oder Verbesserung davon, wie z.B. Enhanced IDE (EIDE) oder Ultra-Direct-Memory-Access (UDMA), oder eine auf Small Computer System Interface (SCSI) basierende Schnittstelle oder eine Variation oder Verbesserung davon, wie z.B. Fast-SCSI, Wide-SCSI, Fast- und Wide-SCSI, usw., oder Serial Advanced Technology Attachment (SATA) oder eine Variation oder Verbesserung davon oder eine Fiber-Channel-Abitrated-Loop (FC-AL)-Schnittstelle aufweisen.
-
Der Inhalt des Speichers 408 kann je nach der Funktion, für die das Computersystem/Rechengerät 402 programmiert ist, variieren. In dem in 4 gezeigten Beispiel werden beispielhafte Speicherinhalte gezeigt, die Routinen und Daten für Ausführungsformen der oben beschriebenen Prozesse darstellen. Ein Fachmann würde jedoch erkennen, dass diese Routinen zusammen mit den Speicherinhalten, die sich auf diese Routinen beziehen, nicht in einem System oder Gerät enthalten sein müssen, sondern auf der Grundlage bekannter technischer Überlegungen auf eine Vielzahl von Systemen oder Geräten verteilt sein können. Die vorliegenden Kommunikationssysteme und -verfahren können beliebige und alle derartigen Anordnungen aufweisen.
-
In dem in 4 gezeigten Beispiel ist der Speicher 408 zwar der Kompaktheit halber so dargestellt, dass er Speicherinhalte für einen Server 412 und Speicherinhalte für ein Client-Gerät 414 enthält, aber typischerweise enthält das Computersystem/Rechengerät 400 nur einen solchen Speicherinhalt. In diesem Beispiel kann der Server 412 Anmeldungsroutinen 416, Verifizierungsroutinen 418 und verschlüsselte neuronale Netzwerkdaten 420 enthalten. Ebenso kann in diesem Beispiel das Client-Gerät 414 Anmeldungsroutinen 422, Verifizierungsroutinen 424 und Verifizierungsdaten 426 enthalten. Die Anmeldungsroutinen 416 können Software-Routinen zur Durchführung von Server-Anmeldungsprozessen, wie oben beschrieben, enthalten. Die Verifizierungsroutinen 418 können Software-Routinen zur Durchführung von Server-Verifizierungsprozessen enthalten, wie es oben beschrieben ist. Verschlüsselte neuronale Netzwerkdaten 420 können - wie oben beschrieben - verschlüsselte Daten enthalten, die trainierte neuronale Netzwerke darstellen,. Anmeldungsroutinen 422 können Software-Routinen zur Durchführung von Client-Geräte-Anmeldungsprozessen, wie oben beschrieben, aufweisen. Verifizierungsroutinen 424 können - wie oben beschrieben - Software-Routinen zur Durchführung von Client-Geräte-Verifizierungsprozessen enthalten. Verifizierungsdaten 426 können verschlüsselte und entschlüsselte Daten enthalten, die von dem Client-Gerät während des Verifizierungsprozesses verwendet werden, wie es oben beschrieben ist. Das Betriebssystem 428 kann die gesamte Systemfunktionalität bereitstellen.
-
Wie in 4 gezeigt, können die vorliegenden Kommunikationssysteme und Verfahren können eine Implementierung auf einem System oder Systemen aufweisen, die Multiprozessor-, Multitasking-, Multiprozess- und / oder Multithread-Computing bereitstellen, sowie die Implementierung auf Systemen, die nur Single-Prozessor, Single-Thread-Computing vorhalten. Multi-Prozessor-Computing beinhaltet die Durchführung von Berechnungen mit mehr als einem Prozessor. Multi-Tasking-Computing beinhaltet die Ausführung von Berechnungen unter Verwendung von mehr als einer Betriebssystem-Task. Eine Task ist ein Betriebssystemkonzept, das sich auf die Kombination aus einem ausgeführten Programm und den vom Betriebssystem verwendeten Kontrollinformationen bezieht. Jedes Mal, wenn ein Programm ausgeführt wird, erstellt das Betriebssystem eine neue Task für dieses Programm. Die Task ist wie ein Umschlag für das Programm, indem das Programm mit einer Task-Nummer identifiziert und andere Kotrollinformationen an ihn anhängt. Viele Betriebssysteme, einschließlich Linux, UNIX®, OS/2® und Windows®, sind in der Lage, viele Tasks gleichzeitig auszuführen und werden als Multitasking-Betriebssysteme bezeichnet. Die Task ist wie ein Umschlag für das Programm, indem sie das Programm mit einer Task-Nummer identifiziert und andere Kontrollinformationen an sie anhängt. Multitasking ist die Fähigkeit eines Betriebssystems, mehr als eine ausführbare Datei zur gleichen Zeit auszuführen. Jede ausführbare Datei wird in ihrem eigenen Adressraum ausgeführt, was bedeutet, dass die ausführbaren Dateien keine Möglichkeit haben, ihren Speicher gemeinsam zu nutzen. Dies hat Vorteile, denn es ist unmöglich, dass ein Programm die Ausführung eines der anderen Programme, die auf dem System laufen, beeinträchtigt. Allerdings haben die Programme - außer über das Betriebssystem (oder durch das Lesen von Dateien, die im Dateisystem gespeichert sind) - keine Möglichkeit, Informationen auszutauschen. MultiProzess-Computing ist dem Multi-Tasking-Computing ähnlich, da die Begriffe Task und Prozess oft austauschbar verwendet werden, obwohl einige Betriebssysteme zwischen den beiden unterscheiden.
-
Die vorliegende Erfindung kann ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailebene der Integration sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) mit darauf enthaltenen computerlesbaren Programmanweisungen aufweisen, die einen Prozessor veranlassen, Aspekte der vorliegenden Erfindung auszuführen. Das computerlesbare Speichermedium kann ein tatsächliches Gerät sein, das Befehle für die Verwendung durch ein Befehlsausführungsgerät verwalten und speichern kann.
-
Das computerlesbare Speichermedium kann - ohne darauf beschränkt zu sein - z. B. ein elektronisches Speichergerät, ein magnetisches Speichergerät, ein optisches Speichergerät, ein elektromagnetisches Speichergerät, ein Halbleiter-Speichergerät oder jede geeignete Kombination der vorgenannten sein. Eine nicht erschöpfende Liste spezifischerer Beispiele für das computerlesbare Speichermedium weist Folgendes auf: eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Festwertspeicher (SRAM), einen tragbaren Compact-Disc-Festwertspeicher (CD-ROM), eine Digital Versatile Disk (DVD), einen Memory-Stick, eine Diskette, eine mechanisch kodiertes Gerät, wie z.B. Lochkarten oder erhabene Strukturen in einer Nut, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination der Vorgenannten. Ein computerlesbares Speichermedium, wie es hier verwendet wird, ist nicht auf transitorische Signale per se wie z.B. Radiowellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die durch ein Glasfaserkabel laufen), oder elektrische Signale, die durch einen Kabel übertragen werden, beschränkt.
-
Hierin beschriebene computerlesbare Programmanweisungen können von einem computerlesbaren Speichermedium oder einem externen Computer oder einem externen Speichergerät über ein Netzwerk, z. B. das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk, auf entsprechende Rechen-/Verarbeitungsgeräte heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, optische Übertragungsfasern, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jedem Rechen-/Bearbeitungsgerät empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb des jeweiligen Rechen-/Bearbeitungsgeräts weiter.
-
Computerlesbare Programmanweisungen zur Ausführung von Operationen der vorliegenden Erfindung können Instruktionssatz-Architektur-(ISA)-Befehle, Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandsdaten, Konfigurationsdaten für integrierte Schaltkreise oder entweder Quellcode oder Objektcode sein, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, einschließlich einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen und prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernte Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (z. B. über das Internet unter Verwendung eines Internetdienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, die beispielsweise programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) aufweisen, die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen verwenden, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Flussdiagrammabbildungen und/oder Blockdiagramme von Verfahren, Geräten (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammdarstellungen und/oder Blockdiagramme sowie Kombinationen von Blöcken in den Flussdiagrammdarstellungen und/oder Blockdiagrammen durch computerlesbare Programmanweisungen implementiert werden können.
-
Diese computerlesbaren Programmanweisungen können einem Prozessor eines Allzweckcomputers, eines Spezialcomputers oder eines anderen programmierbaren Datenverarbeitungsgeräts zur Verfügung gestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder des anderen programmierbaren Datenverarbeitungsgeräts ausgeführt werden, Mittel zum Implementieren der im Flussdiagramm und/oder im Blockdiagramm angegebenen Funktionen/Aktionen schaffen, Block oder Blöcke. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, ein programmierbares Datenverarbeitungsgerät und/oder andere Geräte anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium, in dem Anweisungen gespeichert sind, einen Herstellungsgegenstand aufweist, der Anweisungen enthält, die Aspekte der in dem Flussdiagramm und/oder dem Blockdiagrammblock oder den Blöcken spezifizierten Funktion/Aktion implementieren.
-
Die computerlesbaren Programmanweisungen können auch auf einen Computer, ein anderes programmierbares Datenverarbeitungsgerät oder ein anderes Gerät geladen werden, um eine Reihe von Betriebsschritten zu veranlassen, die auf dem Computer, einem anderen programmierbaren Gerät oder einem anderen Gerät ausgeführt werden, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einem anderen programmierbaren Gerät oder einem anderen Gerät ausgeführt werden, die im Flussdiagramm und/oder im Blockdiagrammblock oder in den Blöcken angegebenen Funktionen/Aktionen implementieren.
-
Die Flussdiagramme und Blockdiagramme in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Flussdiagramm oder in den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das/der eine oder mehrere ausführbare Anweisungen zur Implementierung der angegebenen logischen Funktion(en) aufweist. In einigen alternativen Implementierungen können die in den Blöcken angegebenen Funktionen in einer anderen als der in den Figuren angegebenen Reihenfolge auftreten. So können z. B. zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, abhängig von der jeweiligen Funktionalität. Es wird auch darauf hingewiesen, dass jeder Block der Blockdiagramme und/oder der Flussdiagramm-Darstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der Flussdiagramm-Darstellung durch spezielle Hardware-basierte Systeme implementiert werden können, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von spezieller Hardware und Computeranweisungen ausführen.
-
Obwohl spezifische Ausführungsformen der vorliegenden Erfindung beschrieben wurden, wird der Fachmann verstehen, dass es andere Ausführungsformen gibt, die den beschriebenen Ausführungsformen gleichwertig sind. Dementsprechend ist es zu verstehen, dass die Erfindung nicht durch die spezifischen dargestellten Ausführungsformen, sondern nur durch den Umfang der angehängten Ansprüche begrenzt werden soll.