DE102018221703A1 - Verifizierung und Identifizierung eines neuronalen Netzes - Google Patents

Verifizierung und Identifizierung eines neuronalen Netzes Download PDF

Info

Publication number
DE102018221703A1
DE102018221703A1 DE102018221703.3A DE102018221703A DE102018221703A1 DE 102018221703 A1 DE102018221703 A1 DE 102018221703A1 DE 102018221703 A DE102018221703 A DE 102018221703A DE 102018221703 A1 DE102018221703 A1 DE 102018221703A1
Authority
DE
Germany
Prior art keywords
neural network
hash code
identification
hash
characteristic properties
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.)
Pending
Application number
DE102018221703.3A
Other languages
English (en)
Inventor
Kay Talmi
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.)
Cariad SE
Original Assignee
Hella GmbH and Co KGaA
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 Hella GmbH and Co KGaA filed Critical Hella GmbH and Co KGaA
Priority to DE102018221703.3A priority Critical patent/DE102018221703A1/de
Priority to US16/712,942 priority patent/US11715005B2/en
Publication of DE102018221703A1 publication Critical patent/DE102018221703A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die Anmeldung betrifft ein Verfahren zum Verifizieren von charakteristischen Eigenschaften eines neuronalen Netzes, umfassend das Erhalten des neuronalen Netzes sowie einer dem neuronalen Netz zugeordneten Identifikation, das Bestimmen der charakteristischen Eigenschaften des neuronalen Netzes, das Berechnen eines ersten Hashcodes anhand einer vorbestimmten Hashfunktion aus den charakteristischen Eigenschaften des neuronalen Netzes, das Erhalten eines der Identifikation zugeordneten zweiten Hashcodes aus einer sicheren Datenbank, sowie das Verifizieren des neuronalen Netzes durch einen Vergleich des ersten Hashcodes und des zweiten Hashcodes. Weiterhin umfasst die Anmeldung ein Computerprogrammprodukt, das in den internen Speicher eines digitalen Computers geladen werden kann und Softwarecodeabschnitte umfasst, mit denen die Schritte gemäß dem beschriebenen Verfahren ausgeführt werden, wenn das Produkt auf einem Computer ausgeführt wird.

Description

  • Die vorliegende Anmeldung betrifft ein Verfahren zur Identifikation, Verifikation und/oder Ermittlung der Leitungsmerkmale eines neuronalen Netzes.
  • Neuronale Netze (NN), auch als künstliche neuronale Netze bezeichnet, sind computerimplementierte Systeme, die eine Anzahl von sogenannten Schichten und Gewichten aufweisen. Die Schichten bilden die Grundstruktur des Netzes und weisen „Knoten“ auf, wobei die Knoten unterschiedlicher Schicht verknüpft sein können und die Kommunikation zwischen den Knoten durch die Gewichte reguliert wird. Die Gewichte können somit als eine Art Filter verstanden werden. Die Schichten, Knoten und Verknüpfungen der Knoten werden auch als „Architektur“ des neuronalen Netzes bezeichnet
  • Wenn ein neuronales Netz trainiert wird, dann werden zunächst die Gewichte mit vorgegebenen Werten initialisiert und dann in der Trainingsphase unter Verwendung von Trainings- und Testdaten (Eingangsdaten) in vielen Iterationen verfeinert.
  • Beim Training eines neuronalen Netzes wird häufig ein Backpropagation-Algorithmus verwendet, der in folgenden Phasen abläuft. Zunächst wird ein Eingabemuster angelegt und vorwärts durch das Netz propagiert, d.h. es werden sukzessive für die Knoten der verschiedenen Schichten Werte anhand einer verwendeten Funktion und der Eingabewerte und Gewichte für den jeweiligen Knoten berechnet. Die Ausgabe des Netzes wird dann mit dem bekannten, gewünschten Ausgabewert verglichen. Die Differenz der beiden Werte wird als Fehler des Netzes bezeichnet. Der Fehler wird nun wieder über die Ausgabe- zur Eingabeschicht zurück propagiert. Dabei werden die Gewichtungen der Verbindungen abhängig von ihrem Einfluss auf den Fehler geändert. Dadurch geschieht eine Annäherung an die gewünschte Ausgabe bei wiederholter Eingabe der Eingabewerte des Trainingsdatensatzes.
  • Das fertig trainierte neuronale Netz wird dann zur Berechnung (Vorhersage) von Ausgabewerten zu vorher unbekannten Eingabewerten verwendet.
  • Die Leistungsmerkmale eines neuronalen Netzes sind die Architektur (umfassend beispielsweise die Anzahl der Schichten, Anzahl der Knoten der verschiedenen Schichten, Verknüpfungen zwischen den Knoten etc.), sowie die Gewichte. Insbesondere die Leitungsmerkmale am Ende der Trainingsphase sind von Bedeutung, wenn das durch einen Anbieter trainierte und optimierte neuronale Netz anderen Anwendern zur Verfügung gestellt wird.
  • Bei der Verwendung neuronaler Netze ist es wünschenswert, dass die Herkunft und Leitungsmerkmale eines neuronalen Netzes für den Anwender nachvollziehbar bzw. verifizierbar sind. Insbesondere ist es wünschenswert, dass ein Anwender auf einfache Art erkennen kann, wenn ein neuronales Netz durch einen anderen Benutzer verändert wurde und somit evtl. nicht mehr den Herstellerangaben entspricht.
  • Aus der WO 2016/043734 A1 ist ein Verfahren bekannt, bei dem ein neuronales Netz anhand eines vordefinierten „Wächter-Datensatzes“ verifiziert werden kann.
  • Aus US 2016/0283842 A1 ist weiterhin ein Verfahren zum Trainieren eines neuronalen Netzes bekannt, bei dem die Gewichte in einer kodierten Form gespeichert werden um unberechtigte Zugriffe auf das neuronale Netz zu verhindern.
  • Es besteht aber weiterhin ein Bedarf an einfachen, kostengünstigen Verfahren zur Absicherung und Verifizierung neuronaler Netze, um unberechtigte Zugriffe und/oder Änderungen zu verhindern oder zumindest zu erkennen.
  • Diese Aufgabe wird durch die Merkmale der unabhängigen Ansprüche der vorliegenden Schutzrechtsanmeldung gelöst. Weitere vorteilhafte Ausführungsbeispiele sind durch die abhängigen Ansprüche definiert.
  • Das beschriebene Verfahren weißt die folgenden Schritte auf:
    • - Erhalten des neuronalen Netzes sowie einer dem neuronalen Netz zugeordneten Identifikation,
    • - Bestimmen der charakteristischen Eigenschaften des neuronalen Netzes,
    • - Berechnen eines ersten Hashcodes anhand einer vorbestimmten Hashfunktion aus den charakteristischen Eigenschaften des neuronalen Netzes,
    • - Erhalten eines der Identifikation zugeordneten zweiten Hashcodes aus einer sicheren Datenbank, und
    • - Verifizieren des neuronalen Netzes durch einen Vergleich des ersten Hashcodes und des zweiten Hashcodes.
  • Für ein neuronales Netz wird somit ein Hashcode, auch als Hashwert bezeichnet, berechnet und an zentraler Stelle, beispielsweise in einer zentralen, sicheren Datenbank, zusammen mit einer Identifikation des zugeordneten neuronalen Netzes gespeichert.
  • Wenn nun eine Kopie des neuronalen Netzes verwendet werden soll, so kann der Hashcode der Kopie des neuronalen Netzes berechnet und mit dem an der zentralen Stelle für das zugehörige originale neuronale Netz gespeichertem Hashcode vergleichen werden. Wenn die beiden Hashcodes übereinstimmen, so wird davon ausgegangen, dass die Kopie des neuronalen Netzes dieselben Charakteristiken wie das originale neuronale Netz aufweist und dass keine Manipulation vorliegt.
  • Hashfunktionen können zur Sicherstellung von Datenintegrität verwendet werden. Hierbei werden charakteristische Werte eines Datensatzes (oder ggf. der gesamte Datensatz) durch eine Funktion (Hashfunktion) auf einen kleineren numerischen Wert abgebildet. Ein erster solcher Hashcode wird nach Erstellung des Datensatzes berechnet und dann an einer geschützten Stelle abgelegt.
  • Wenn später ein Nutzer den Datensatz verwenden will, kann der Nutzer ebenfalls den Hashcode des erhaltenen Datensatzes berechnen und diesen dann mit dem an der geschützten Stelle für diesen Datensatz abgelegten Wert vergleichen. Wenn die Werte übereinstimmen wird davon ausgegangen, dass der vom Nutzer verwendete Datensatz dem ursprünglichen Datensatz entspricht. Wenn die beiden Hashcodes jedoch nicht übereinstimmen, so wird darauf geschlossen, dass der Datensatz manipuliert wurde. Der Nutzer kann somit eine Manipulation erkennen und den Datensatz dann entsprechend nicht verwenden.
  • Bei Hashfunktionen ist im Allgemeinen zu beachten, dass diese im Allgemeinen nicht injektiv sind, das heißt dass mehreren verschiedenen Datensätzen derselbe Hashcode zugeordnet wird. Allerdings ist die Wahrscheinlichkeit gering, dass dieses zufällig passiert.
  • Eine Untergruppe von Hashfunktionen bilden kryptographische Hashfunktionen, die besondere Sicherheitseigenschaften haben. Insbesondere sind kryptographische Hashfunktionen kollisionsresistent, so dass es praktisch unmöglich ist für einen gegebenen Eingabewert einen zweiten Eingabewert zu finden, so dass die beiden Eingabewerte auf denselben Hashcode abgebildet werden. Kollisionen sind zwar auch bei kryptographischen Hashfunktionen prinzipiell möglich, aber das bewusste, absichtliche Generieren von kollidierenden Eingabewerten ist nur unter sehr hohen Rechenkosten möglich und somit praktisch ausgeschlossen. Vorzugsweise wird bei dem beschriebenen Verfahren eine kollisionsresistente Hashfunktion verwendet.
  • Das neuronale Netz kann vorzugsweise durch Herunterladen aus dem Internet, aus einer internetbasierten digitalen Vertriebsplattform, wie beispielsweise einem Appstore oder als Anhang einer Email erhalten werden. Auch andere digitale Übertragungsmöglichkeiten, beispielsweise unter Verwendung physischer digitaler Datenträger (CDs, USB Sticks, Speicherkarten etc.) sind möglich.
  • Weiterhin kann die Datenbank sich vorzugsweise auf einem zentralen sicheren Server oder in einer Cloud befinden. Die Datenbank kann weiterhin unter Verwendung eines „distributed Ledger“, beispielsweise eines Blockchain Algorithmus, registriert sein.
  • Vorzugsweise kann sich der Nutzer die charakteristischen Informationen des neuronalen Netzwerkes, die auch im Hashcode gespeichert bzw. abgebildet sind, anzeigen lassen. Somit ist das neuronale Netz keine Blackbox mehr, sondern die charakteristischen Informationen werden in einer transparenten Weise dem Nutzer zur Verfügung gestellt. Somit kann der Nutzer nachvollziehen wie das neuronale Netz trainiert wurde und welche Architektur bzw. Gewichte es aufweist. Somit können die in vielen Softwareprodukten, wie beispielsweise Fahrerassistentzsystemen für autonomes Fahren, eingesetzten neuronalen Netze verstanden und verifiziert werden.
  • Die beim Erstellen des Hashcodes verwendeten charakteristischen Daten des neuronalen Netzes können vorzugsweise auch Informationen zum Anbieter, Ersteller oder Entwickler des neuronalen Netzes beinhalten. Somit ändert sich der Hashcode sobald der eingetragenen Anbieter geändert wird. Es kann somit verhindert werden, dass jemand das neuronales Netz eines anderen Anbieters als eigenes Produkt verkauft.
  • Weiterhin ist es möglich, dass das Verfahren vor dem Erhalten des neuronalen Netzes und der zugeordneten Identifikation aus der Datenbank zusätzlich die folgenden Schritte umfasst:
    • - Hochladen eines trainierten neuronalen Netzes auf eine der sicheren Datenbank zugeordneten Plattform,
    • - Zuordnen einer Identifikation zu dem trainierten neuronalen Netz;
    • - Bestimmen der charakteristischen Eigenschaften des trainierten neuronalen Netzes,
    • - Berechnen eines Hashcodes anhand der vordefinierten Hashfunktion aus den charakteristischen Eigenschaften des trainierten neuronalen Netzes, und
    • - Speichern des berechneten Hashcodes des trainierten neuronalen Netzes zusammen mit der Identifikation des trainierten neuronalen Netzes in der sicheren Datenbank;
    • - wobei beim Herunterladen des neuronalen Netzes aus der Datenbank oder Plattform die charakteristischen Informationen des neuronalen Netzes, die im Hashcode gespeichert bzw. abgebildet sind, angezeigt werden.
  • Somit ist es möglich, dass ein vom Anbieter trainiertes neuronales Netz von diesem Anbieter zwecks Identifizierung und Verifizierung auf die entsprechende Plattform, welche der Datenbank zugeordnet ist, hochgeladen werden kann. Die für eine spätere Verifizierung notwendigen Werte, also die charakteristischen Eigenschaften und der daraus berechnete Hashcode, werden dann auf der Plattform oder direkt in der sicheren Datenbank berechnet. Somit ist die nachfolgende Verifizierung möglich, auch wenn das neuronale Netz später über einen anderen internetbasierten Anbieter vertrieben wird. Durch die Identifikation kann das heruntergeladene neuronale Netz mit den in der sicheren Datenbank gespeicherten Information abgeglichen werden.
  • Das beschrieben Verfahren kann auch als ein Computerprogrammprodukt implementiert werden. Das Computerprogrammprodukt ist hierbei dazu vorgesehen, in den internen Speicher eines digitalen Computers geladen zu werden und umfasst Softwarecodeabschnitte, mit denen die Schritte gemäß dem beschriebenen Verfahren ausgeführt werden, wenn das Produkt auf einem Computer ausgeführt wird. Somit kann die Verifizierung eines heruntergeladenen neuronalen Netzes automatisch oder semiautomatisch anhand von wenigen Knopfdrücken des Anwenders erfolgen.
  • Die Erfindung ist nachfolgend anhand der Figuren beschrieben. Es zeigen
    • 1: eine schematische Darstellung eines neuronalen Netzes,
    • 2 ein Ablaufdiagram des erfindungsgemäßen Verfahrens, und
    • 3 eine exemplarische Tabelle mit Werten, die beim Berechnen des Hashcodes verwendet werden können.
  • 1 zeigt ein neuronales Netz 100 welches aus einer Eingabeschicht 101, einer Ausgabeschicht 103 sowie einer dazwischenliegenden verborgenen Schicht 102 besteht. Zwischen den Knoten der Eingabeschicht 101 und den Knoten der verborgenen Schicht 102 bestehen unidirektionale Verbindungen 104 und zwischen den Knoten der verborgenen Schicht 102 und den Knoten der Ausgabeschicht 103 bestehen ebenfalls unidirektionale Verbindungen 105. Das neuronale Netz kann alternativ auch mehrere verborgene Schichten und mehr oder weniger Knoten pro Schicht umfassen.
  • Weiterhin alternativ kann das neuronale Netz auch ein rekurrentes bzw. rückgekoppeltes neuronale Netz sein, also ein Netz welches zusätzliche Verbindungen von Knoten einer Schicht zu Knoten derselben oder einer vorangegangenen Schicht auszeichnen.
    Jede der Verbindungen 104, 105 kann mit einem Gewicht assoziiert sein, wobei das jeweilige Gewicht beeinflusst in welchem Umfang der Wert des jeweiligen Startknoten der unidirektionalen Verbindung den zu berechnenden Wert des zugeordneten Endknotens beeinflusst. Zusätzlich ist jedem Knoten der verborgenen Schicht 102 und jedem Knoten der Ausgabeschicht 103 jeweils eine Aktivierungsfunktion zugeordnet, die angibt wie der Wert des Knotens aus den gewichteten Werten der jeweiligen Eingabeknoten berechnet wird.
  • Das neuronale Netz wird anhand vordefinierter Werte initialisiert. Diese Werte können Informationen zur Architektur (Anzahl der Schichten, Anzahl der Knoten pro Schicht, Verbindungen zwischen den Knoten), sowie Informationen zu den verwendeten Aktivierungsfunktionen und den initialen Gewichten beinhalten.
  • Danach wird das neuronale Netz unter Verwendung eines Trainingdatensatzes „trainiert“, d.h. die Gewichte des neuronalen Netzes werden anhand der Trainingsdaten so optimiert, dass (bei überwachtem Lernen) die Eingabewerte möglichst genau auf die im Trainingsdatensatz vorgegebenen Ausgabewerte abgebildet werden, oder so dass (bei unüberwachtem Lernen) Muster der Eingabedaten besonders gut erkannt werden. Hierbei können für maschinelles Lernen übliche Verfahren wie Cross-Validierung verwendet werden, zur Optimierung bezüglich einer festgelegten Fehlermetrik.
  • Das Trainieren des neuronalen Netzes kann vorzugsweise unter Verwendung des in der Einleitung beschriebenen Backpropagations-Algorithmus und mit einer Vielzahl an Iterationen der Trainingsdaten erfolgen.
  • Das fertig trainierte neuronale Netz kann dann zur Vorhersage bzw. Berechnung von Ausgabewerten für neue, vorher unbekannte Eingabewerte verwendet werden.
  • Wenn das neuronale Netz fertig trainiert ist wird gemäß das hier beschriebenen Verfahrens durch den Ersteller oder Anbieter des neuronalen Netzes unter Verwendung einer vordefinierten Hashfunktion ein Hashcode für charakteristische Werte des trainierten neuronalen Netzes berechnet. Die charakteristischen Werte umfassen hierbei die Architektur des neuronalen Netzes, die verwendeten Gewichte sowie eine Identifikation des Anbieters des neuronalen Netzes. Weiterhin können optional Details zum verwendeten Trainingsverfahren und/oder Trainingsdatensatz bei der Berechnung des Hashcodes verwendet werden, beispielsweise können Metadaten des neuronalen Netzes eine Internetadresse an der die verwendeten Daten zu finden sind umfassen.
  • Die bei der Berechnung des Hashcodes verwendeten Daten sind jeweils aus dem neuronalen Netz entnehmbar.
  • Beispielsweise könnte der Hashwert auf Grundlage der folgenden Daten berechnet werden: Anzahl der Schichten, Anzahl der Knoten pro Schicht, Summe der Knoten, Summe der Gewichte etc. Alternativ können auch manche der verschiedenen Werte konkateniert werden, so dass vorzugsweise ein ganzzahliger Hashwert entsteht. Weitere Details zur Berechnung des Hashwertes sind nachfolgend mit Bezug auf 3 offenbart.
  • Der berechnete Hashcode wird dann zusammen mit einer Identifikation des neuronalen Netzes in einer sicheren Datenbank gespeichert, wobei diese sichere Datenbank beispielsweise Teil eines Blockchain Netzwerks ist.
  • Alternativ könnte die Berechnung des Hashcodes nach der Speicherung des neuronalen Netzes direkt in der Datenbank stattfinden, als zusätzliche Service der Datenbank.
  • 2 zeigt nun die Verifizierung 200 des neuronalen Netzes durch einen Anwender. Das Verifizierungsverfahren umfasst die folgenden Schritte:
    • Voraussetzung für das beschriebene Verfahren ist, dass der Hersteller das trainierte neuronale Netz samt Hashcode in der sicheren Datenbank gespeichert hat. Die Datenbank ordnet dem neuronalen Netz eine Identifikation zu.
  • Schritt 201: Erhalten des neuronalen Netzes sowie einer dem neuronalen Netz zugeordneten Identifikation, wobei das neuronale Netz von dem Anwender aus dem Internet heruntergeladen, beispielsweise von einer Webseite oder aus einer internetbasierten Vertriebsplattform, wie beispielsweise einem Appstore, wird oder auf eine andere Art digital an den Anwender übertragen wird, beispielsweise per Email oder durch einen digitalen Datenträger. Die dem Netzwerk zugeordnete Identifikation kann beispielsweise eine Internetadresse umfassen an der das neuronale Netz vom Anwender zur Verfügung gestellt wird, oder die Identifikation kann eine durch ein Blockchain Netzwerk oder einen anderen externen Anbieter vergebenen Identifikation sein.
  • Schritt 202: Bestimmen der charakteristischen Eigenschaften des neuronalen Netzes. Der Anwender kann nun aus dem neuronalen Netz die charakteristischen Eigenschaften wie Gewichte und strukturelle Merkmale (Architektur des Netzes) sowie Herstellerangaben extrahieren. Hierbei handelt es sich um Daten, die direkt aus dem neuronalen Netz entnommen werden können, die beispielsweise ausgegeben werden, wenn das neuronale Netz unter Verwendung bestimmter, vordefinierter Parameter ausgeführt wird. Im Normalfall ist für die Extraktion der Daten kein zusätzlicher Schlüssel erforderlich, zur Erhöhung der Sicherheit kann aber optional ein Schlüssel verwendet werden.
  • Schritt 203: Berechnen eines ersten Hashcodes anhand einer vorbestimmten Hashfunktion aus den charakteristischen Eigenschaften des neuronalen Netzes. Aus den extrahierten charakteristischen Eigenschaften des neuronalen Netzes kann der Anwender nun unter Verwendung einer vordefinierten Hashfunktion einen Hashcode der charakteristischen Eigenschaften berechnen. Hierbei wird vorzugsweise eine kollisionsresistente Hashfunktion verwendet, die es praktisch unmöglich macht einen zweiten Eingabewert zu finden, der denselben Hashcode wie ein vorgegebener Eingabewert ergibt.
  • Schritt 204: Erhalten eines der Identifikation zugeordneten zweiten Hashcodes aus einer sicheren Datenbank. Der Anwender lädt nun den der Identifikation des neuronalen Netzes zugeordneten Hashcode aus der sicheren Datenbank herunter. Die sichere Datenbank ist, beispielsweise durch einen Blockchain Algorithmus oder andere geeignete Sicherheitsverfahren, derart abgesichert, dass eine Authentizität des in dieser Datenbank gespeicherten Werte angenommen werden kann.
  • Schritt 205: Verifizieren des neuronalen Netzes durch einen Vergleich des ersten Hashcodes und des zweiten Hashcodes. Der vom Anwender für das vorliegende neuronale Netz berechnete Hashcode wird nun mit dem aus der sicheren Datenbank erhaltenen Hashcode verglichen. Wenn die beiden Hashcodes übereinstimmen, so kann aufgrund der Kollisionsresistenz der Hashfunktion und der Sicherheit der sicheren Datenbank davon ausgegangen werden, dass das vorliegende neuronale Netz dem vom Anbieter angebotenem neuronalen Netz entspricht und dass das neuronale Netz nicht manipuliert oder gehackt wurde.
  • Wenn die beiden Hashcodes jedoch nicht übereinstimmen, so liegt eine unerlaubte Veränderung des neuronalen Netzes vor und das neuronale Netz wird in diesem Fall durch den Anwender nicht weiterverwendet. Weiterhin kann der Anwender dem Anbieter melden, dass das neuronale Netz manipuliert wurde.
  • 3 zeigt eine Tabelle 300, die verschiedene numerische Werte zeigt, die bei der Berechnung des Hashcodes berücksichtigt werden können. So können Informationen über die Architektur des neuronalen Netzes (Anzahl der Schichten, Anzahl der Knoten insgesamt, Anzahl der Knoten in den einzelnen Schichten, Struktur des Graphs etc.) berücksichtigt werden. Weiterhin werden die Gewichte berücksichtigt. Da die Gewichte meist reelle Zahlen zwischen 0 und 1 sind, die üblicherweise normiert sind, können die Gewichte entweder gerundet oder (partiell) aufsummiert werden. Beispielsweise können die größten oder kleinsten Gewichte pro Schicht summiert werden, oder es werden jeweils die ersten zwei Nachkommastellen berücksichtigt etc. Des weiteren können Informationen zum Anbieter, beispielsweise in Form einer Registrierungsnummer, verwendet werden. Die verschiedenen numerischen Werte können dann durch die Hashfunktion kombiniert werden, beispielsweise anhand einer gewichteten Summe und/oder durch Konkatenation der einzelnen Werte. Auch ist es möglich die „Rohdaten“ zunächst vorzuverarbeiten, beispielsweise durch Diskretisierung, Summierung und/oder Konkatenation, und die resultierende Zahl dann durch eine bekannte Hashfunktion in einen Hashcode zu überführen. Bekannte kryptographische Hashfunktionen sind beispielsweise das Merkle-Damgärd-Verfahren, SHA, Whirlpool oder andere Hashfunktionen, wie sie beispielsweise auf „https://de.wikipedia.org/wiki/Kryptographische_Hashfunktion“ beschrieben sind.
  • Alternativ kann als Hashcode auch ein nicht-numerischer Wert, beispielsweise eine Zeichenkette verwendet werden.
  • Das beschrieben Verfahren kann als ein Computerprogrammprodukt implementiert werden, wobei das Computerprogrammprodukt in den internen Speicher eines digitalen Computers geladen werden kann und Softwarecodeabschnitte umfasst, mit denen die Schritte gemäß dem beschriebenen Verfahren ausgeführt werden, wenn das Produkt auf einem Computer ausgeführt wird. Somit ist eine automatische oder semiautomatische Verifizierung des heruntergeladenen neuronalen Netzes möglich.
  • Wenn die bei der Erstellung des Hashcodes verwendeten charakteristischen Werte Angaben zum Anbieter umfassen, so kann durch das beschriebene Verfahren eine unberechtigte Nutzung bzw. ein unberechtigter Verkauf des neuronalen Netzes nachgewiesen und ggf. verhindert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • WO 2016/043734 A1 [0008]
    • US 2016/0283842 A1 [0009]

Claims (8)

  1. Verfahren zum Verifizieren von charakteristischen Eigenschaften eines neuronalen Netzes, umfassend - Erhalten des neuronalen Netzes sowie einer dem neuronalen Netz zugeordneten Identifikation, - Bestimmen der charakteristischen Eigenschaften des neuronalen Netzes, - Berechnen eines ersten Hashcodes anhand einer vorbestimmten Hashfunktion aus den charakteristischen Eigenschaften des neuronalen Netzes, - Erhalten eines der Identifikation zugeordneten zweiten Hashcodes aus einer sicheren Datenbank, und - Verifizieren oder Ablehnen des neuronalen Netzes durch einen Vergleich des ersten Hashcodes und des zweiten Hashcodes.
  2. Verfahren gemäß Anspruch 1, wobei das neuronale Netz durch Herunterladen aus dem Internet, von einer internetbasierten Vertriebsplattform oder als Anhang einer Email erhalten wird.
  3. Verfahren gemäß einem der Ansprüche 1 oder 2 wobei die sichere Datenbank Teil eines Blockchain Netzwerkes ist.
  4. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die charakteristischen Eigenschaften des neuronalen Netzes die Architektur und die Gewichte des neuronalen Netzes umfassen.
  5. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die charakteristischen Eigenschaften eine Identifikation des Anbieters des neuronalen Netzes umfassen.
  6. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die vordefinierte Hashfunktion eine kollisionsresistente Hashfunktion ist.
  7. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei das Verfahren, vor dem Erhalten des neuronalen Netzes und der zugeordneten Identifikation aus der Datenbank zusätzlich die folgenden Schritte umfasst: - Hochladen eines trainierten neuronalen Netzes auf eine der sicheren Datenbank zugeordneten Plattform, - Zuordnen einer Identifikation zu dem trainierten neuronalen Netz; - Bestimmen der charakteristischen Eigenschaften des trainierten neuronalen Netzes, - Berechnen eines Hashcodes anhand der vordefinierten Hashfunktion aus den charakteristischen Eigenschaften des trainierten neuronalen Netzes, und - Speichern des berechneten Hashcodes des trainierten neuronalen Netzes zusammen mit der Identifikation des trainierten neuronalen Netzes in der sicheren Datenbank; - wobei beim Herunterladen des neuronalen Netzes aus der Datenbank oder Plattform die charakteristischen Informationen des neuronalen Netzes, die im Hashcode gespeichert bzw. abgebildet sind, angezeigt werden.
  8. Computerprogrammprodukt, das in den internen Speicher eines digitalen Computers geladen werden kann und Softwarecodeabschnitte umfasst, mit denen die Schritte gemäß einem der vorhergehenden Ansprüche ausgeführt werden, wenn das Produkt auf einem Computer ausgeführt wird.
DE102018221703.3A 2018-12-13 2018-12-13 Verifizierung und Identifizierung eines neuronalen Netzes Pending DE102018221703A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102018221703.3A DE102018221703A1 (de) 2018-12-13 2018-12-13 Verifizierung und Identifizierung eines neuronalen Netzes
US16/712,942 US11715005B2 (en) 2018-12-13 2019-12-12 Verification and identification of a neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018221703.3A DE102018221703A1 (de) 2018-12-13 2018-12-13 Verifizierung und Identifizierung eines neuronalen Netzes

Publications (1)

Publication Number Publication Date
DE102018221703A1 true DE102018221703A1 (de) 2020-06-18

Family

ID=70859395

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018221703.3A Pending DE102018221703A1 (de) 2018-12-13 2018-12-13 Verifizierung und Identifizierung eines neuronalen Netzes

Country Status (2)

Country Link
US (1) US11715005B2 (de)
DE (1) DE102018221703A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797843B2 (en) * 2019-03-06 2023-10-24 Samsung Electronics Co., Ltd. Hashing-based effective user modeling
DE102019106625A1 (de) * 2019-03-15 2020-09-17 HELLA GmbH & Co. KGaA Verfahren und Vorrichtung zum Ermitteln einer Gefahrenquelle auf einer Fahrbahn
EP4123508A1 (de) * 2021-07-22 2023-01-25 Siemens Aktiengesellschaft Verfahren zur überprüfung der integrität eines neuronalen netzes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484347B1 (en) * 2012-06-19 2013-07-09 Kaspersky Lab Zao System and method for malware detection in peer-to-peer computer networks
WO2016043734A1 (en) 2014-09-17 2016-03-24 Hewlett Packard Enterprise Development Lp Neural network verification
US20160283842A1 (en) 2014-03-06 2016-09-29 Progress, Inc. Neural network and method of neural network training
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
DE102016221700A1 (de) * 2016-11-04 2018-05-09 Bundesdruckerei Gmbh Verfahren zur Offline-Echtheitsprüfung eines virtuellen Dokuments

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959292A (zh) * 2011-09-23 2014-07-30 陶氏益农公司 用于近红外光谱分析的化学计量
US20180336463A1 (en) * 2017-05-18 2018-11-22 General Electric Company Systems and methods for domain-specific obscured data transport
CN107545181B (zh) * 2017-08-16 2021-04-27 上海策赢网络科技有限公司 程序运行方法、终端及计算机可读存储介质
KR20190088292A (ko) * 2018-01-18 2019-07-26 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 복수의 플랫폼을 지원하는 화상 형성 장치에서 동일 또는 유사한 서비스를 제공하는 앱들의 제어
US11526745B2 (en) * 2018-02-08 2022-12-13 Intel Corporation Methods and apparatus for federated training of a neural network using trusted edge devices
US11454968B2 (en) * 2018-02-28 2022-09-27 Micron Technology, Inc. Artificial neural network integrity verification
CN109698822A (zh) * 2018-11-28 2019-04-30 众安信息技术服务有限公司 基于公有区块链和加密神经网络的联合学习方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484347B1 (en) * 2012-06-19 2013-07-09 Kaspersky Lab Zao System and method for malware detection in peer-to-peer computer networks
US20160283842A1 (en) 2014-03-06 2016-09-29 Progress, Inc. Neural network and method of neural network training
WO2016043734A1 (en) 2014-09-17 2016-03-24 Hewlett Packard Enterprise Development Lp Neural network verification
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
DE102016221700A1 (de) * 2016-11-04 2018-05-09 Bundesdruckerei Gmbh Verfahren zur Offline-Echtheitsprüfung eines virtuellen Dokuments

Also Published As

Publication number Publication date
US11715005B2 (en) 2023-08-01
US20200193295A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
EP3602385B1 (de) Hashwerte für die bidirektionale verkettete blockchain
EP3631671B1 (de) Bidirektional verkettete blockchain-struktur
DE102018221703A1 (de) Verifizierung und Identifizierung eines neuronalen Netzes
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE102014206943A1 (de) Schlüsselerzeugungsvorrichtung und Verfahren zum Erzeugen eines Schlüssels
EP2940924A1 (de) PUF basierende Ableitung eines gerätespezifischen Wertes
WO2019057444A1 (de) Bidirektional verkettete erweiterte blockchain-struktur
WO2019091901A1 (de) Verfahren zum verknuepfen eines ersten datenblocks mit einem zweiten datenblock, verfahren zum ueberpruefen der integritaet einer blockchain-struktur, vorrichtung und computerprogrammprodukt
WO2021008836A1 (de) Vorrichtung und computerimplementiertes verfahren für die verarbeitung digitaler sensordaten und trainingsverfahren dafür
DE112020003431T5 (de) Automatisches umwandeln eines programms, das in einer prozeduralen programmiersprache geschrieben ist, in einen datenflussgraphen, sowie zugehörige systeme und verfahren
DE102018200100A1 (de) Persönliche Dokumentenblockchain-Struktur
WO2018122269A1 (de) Bitsequenzbasiertes datenklassifikationssystem
EP3520349A1 (de) Verfahren zum manipulationssicheren bewerten von komponenteneigenschaften eines feldgeräts
DE112016007411T5 (de) Fuzzy-eingabe für autoencoder
DE102020211679A1 (de) Computer-implementiertes system und verfahren mit einem digitalen zwilling und einer graphen-basierten struktur
EP3340250B1 (de) Bauteilidentifikation bei der fehlerbehandlung von medizinischen geräten
Lamata et al. Obtaining OWA operators starting from a linear order and preference quantifiers
EP3617912A1 (de) Verfahren und vorrichtung zum rechnergestützten generieren einer komponente für ein technisches system
DE69819543T2 (de) Verfahren und gerät zur bearbeitung einer anfrage gemäss einer booleanregel
EP0919036A1 (de) Verfahren zur automatischen maschinellen erzeugung von fertigungsunterlagen
DE112020003614T5 (de) Validierungs- und empfehlungsmaschine
WO2020043430A1 (de) Einrichtung und verfahren zum bereitstellen einer orakel-transaktion in einem verteilten datenbanksystem
DE102019119087A1 (de) Komponentenbasierte verarbeitung von eingangsgrössen
EP3494507B1 (de) Verfahren zur prüfung der verfügbarkeit und integrität eines verteilt gespeicherten datenobjekts
WO2021249941A1 (de) Verfahren und vorrichtung zur automatischen untersuchung eines verhaltens einer technischen einrichtung

Legal Events

Date Code Title Description
R163 Identified publications notified
R081 Change of applicant/patentee

Owner name: CARIAD SE, DE

Free format text: FORMER OWNER: HELLA GMBH & CO. KGAA, 59557 LIPPSTADT, DE

Owner name: CAR.SOFTWARE ESTONIA AS, EE

Free format text: FORMER OWNER: HELLA GMBH & CO. KGAA, 59557 LIPPSTADT, DE

R082 Change of representative

Representative=s name: PFENNING, MEINIG & PARTNER MBB PATENTANWAELTE, DE

R081 Change of applicant/patentee

Owner name: CARIAD SE, DE

Free format text: FORMER OWNER: CAR.SOFTWARE ESTONIA AS, TALLINN, EE

R012 Request for examination validly filed
R082 Change of representative

Representative=s name: PFENNING, MEINIG & PARTNER MBB PATENTANWAELTE, DE