Ausführen eines Algorithmus für Daten aus der Ferne und Sicherstellen, dass die Antwort nicht manipuliert wurde


8

Ich habe jahrelang über dieses spezielle Computer- / Krypto- / Datenbankproblem nachgedacht und möchte nur wissen, ob es bereits Lösungen dafür gibt. Um ehrlich zu sein, weiß ich nicht einmal genau, zu welchem ​​Bereich dieses Problem gehört.

Kurz gesagt: Person A verfügt über eine Datenliste, eine andere Person (B) über einen Algorithmus, der jedem Element in dieser Liste eine Bewertung gibt und dann alle diese Bewertungen summiert, um eine Gesamtbewertung für die gesamte Liste bereitzustellen. Wie können wir den Algorithmus in der Datenliste ausführen, damit die Daten extrem sicher sind (vorzugsweise niemals Person A verlassen), aber damit Person B sicher sein kann, dass der Algorithmus ordnungsgemäß ausgeführt wurde und nicht manipuliert wurde.

Hier ein Beispiel: Anna und Bob leben in einem großen Dorf. Anna hat auf ihrem Computer eine Liste aller Dinge, die sie im Dorf getan hat, sowohl gute als auch schlechte. Bob hat einen sehr einfachen Bewertungsalgorithmus für solche Listen erstellt, der für jedes Element in der Liste ausgeführt wird, ihm eine Bewertung gibt und dann alle diese Zahlen addiert, um Anna eine endgültige Bewertung zu geben. Diese Punktzahl zeigt Bob, wie nützlich Anna für die Dorfgemeinschaft ist und ist spezifisch für Bobs Meinung. (Dies ist mehr als ein Beispiel, da dies tatsächlich das System ist, das ich erstellen möchte.)

Anna möchte Bob jedoch nicht ihre Liste geben, da er dann Zugriff auf möglicherweise peinliche Informationen hat (jeder hat Skelette in seinem Schrank). Bob vertraut Anna jedoch nicht, dass sie seine Algorithmen selbst ausführt, da sie möglicherweise nur lügt und Bob sagt, dass die Punktzahl sehr hoch war, so dass Bob ihr eher hilft.

Es gibt einige Lösungen, an die ich bereits gedacht habe, aber alle haben Probleme:

A. Suchen Sie eine zufällige Person, um die Daten zu übernehmen, den Algorithmus auszuführen und die Punktzahl zurückzusenden. Es kann jedoch schwierig sein, sicherzustellen, dass diese zufällige Person Anna nicht kennt, und versuchen, ihr zu helfen oder eine Kopie der Daten zu erstellen und es später zu versuchen um es zurückzuverfolgen und Anna zu erpressen.

B. Lassen Sie Anna den Algorithmus ausführen, aber codieren Sie beispielsweise einen Prüfcode in die Bewertungen, anstatt ein Ereignis mit 1 zu bewerten, und bewerten Sie es als 1.0000000000797, sodass Bob dies später als Prüfcode verwenden kann, um festzustellen, ob der angegebene Wert vorliegt Punktzahl ist korrekt. Diese Überprüfung könnte jedoch auch von Bob missbraucht werden, um anzuzeigen, welche spezifischen Dinge Anna getan hat. Ich kann mir auch vorstellen, dass ein solches System für das Reverse Engineering trivial wäre, damit Anna eine falsche Bewertung mit einem korrekten Checkcode abgeben kann, wenn man bedenkt, dass Anna vollen Zugriff auf Bobs Algorithmus haben muss, um es auszuführen.

C. Das Dorf erstellt einen sicheren Server, auf dem solche Daten und Algorithmen zusammen ausgeführt werden können. Anna und Bob vertrauen jedoch niemandem wirklich genug, um dies zu tun, und erstellen keine Kopie der Daten oder ändern die Ergebnisse, es sei denn, es gibt eine grundlegend sichere Architektur dafür. Ich würde es auch vorziehen, wenn dies ein P2P-System wäre.


Was ist, wenn Bobs Bewertungsalgorithmus zum Beispiel die binäre Darstellung ist, ob Anna jedes der Dinge auf der Liste getan hat oder nicht? (Also 1 * <hat Anna etwas getan 1> + 2 * <hat Anna etwas getan 2> + 4 * <hat Anna etwas getan 3> ...) Dann hat Bob Zugriff auf Annas Daten, nur basierend auf der Ausgabe von Bewertungsalgorithmus.
TLW

1
Ich frage mich, ob homomorphe Verschlüsselung hier eine Rolle spielt. Es löst jedoch das umgekehrte Problem - es ermöglicht einem anderen System, Daten zu berechnen, ohne die Werte zu lernen, mit denen es arbeitet.
Alan Wolfe

@TLW Ich bin mir nicht ganz sicher, ob ich verstehe, was Sie sagen ... wer führt den Algorithmus in dieser Situation aus und wie können wir trotzdem sicher sein, dass der Endwert nicht abgefangen und manipuliert wird?
Robin A

Antworten:


9

In der Krypto-Community wird diese Aufgabe als delegierte Berechnung oder überprüfbare Delegierung bezeichnet. Sie möchten, dass der Server (die "Cloud") die Arbeit für Sie erledigt, aber Sie möchten auch, dass die Cloud Ihnen einen Beweis dafür liefert, dass sie die Berechnung tatsächlich durchgeführt hat (und nicht nur eine zufällige Ausgabe ausgegeben hat und weggelaufen ist) mit deinem Geld).

Ein Hinweis aus meinem Kopf ist "Berechnung delegieren: interaktive Beweise für Muggel" (Goldwasser, Kalai und Rothblum, J. ACM (62), 2015). Andere Lösungen existieren wahrscheinlich, schauen Sie hinein.


1

Es gibt ein neues Feld der homomorphen Verschlüsselung , das im Allgemeinen Ihren Anforderungen entspricht:

Homomorphe Verschlüsselung ist eine Form der Verschlüsselung, mit der Berechnungen für Chiffretext durchgeführt werden können, wodurch ein verschlüsseltes Ergebnis generiert wird, das beim Entschlüsseln mit dem Ergebnis von Operationen übereinstimmt, die am Klartext ausgeführt werden.

Die Verarbeitungseinheit kann "nichts" über den Chiffretext wissen, er wird nur als zufällige Daten angezeigt, er kann nur die Berechnung beschädigen und der Client benötigt eine Möglichkeit, beschädigte Daten / Berechnungen zu erkennen / zu verteidigen. Dies kann mit Message Digests und fehlertolerantem Computing erfolgen .

Homomorphe Verschlüsselung wurde erst in jüngster Zeit als theoretisch möglich demonstriert, befindet sich also eher in konzeptionellen Phasen und scheint in der Praxis bisher nicht viel implementiert zu sein, aber schließlich besteht die Idee darin, dass sie sich als eine Fähigkeit herausstellen könnte (z. B. ähnlich wie bei anderen Standarddiensten wie Virtualisierung) auf großen standardisierten Rechenclustern, z. B. Amazon ECC oder Google Compute Engine .


Dies beantwortet nicht die gestellte Frage. Durch die homomorphe Verschlüsselung kann B (an sich) nicht überprüfen, ob der Algorithmus ordnungsgemäß ausgeführt wurde und die Daten nicht manipuliert wurden. Homomorphe Verschlüsselung gewährleistet nur Vertraulichkeit, nicht Integrität, aber die Frage betrifft die Integrität.
DW

die Frage ist , über „einen Algorithmus auf Daten laufen die Ferne“ , die das ist raison d'etre der homomorphe Verschlüsselung und die Antwort - Adressen , die direkt zusammen mit den zusätzlichen Anliegen der Manipulation , die Nachricht verdaut und fehlertolerante Rechentechniken Adresse.
vzn
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.