Das Bit-Commitment nach Blum
Man nehme den Münzwurf als Beispiel.
Alice möchte gegenüber Bob ein Commitment abgeben. Die möglichen Nachrichten Kopf oder Zahl, also oder [2] [3]:
| Bob: | Alice: |
|---|---|
| Setup: Alice wählt zwei Primzahlen und via Multiplikation beider erhält sie sie wählt ein |
|
| Commiten: Alice wählt ihr Nachrichtenbit wählt eine Zufallszahl erstellt das Commitment sendet , und an Bob |
|
| empfängt , und | |
| Aufdecken: Alice sendet , , und an Bob |
|
| Bob empfängt , , und | |
| Bob testet ob und Primzahlen sind und ob gilt: , und |
Erklärung:
- sind positive Ganzzahlen kleiner als und Modulo
- aus nehme man alle Quadrate und definiere sie als Gruppe
- Man bilde das Jakobi-Symbol:
- durch erhält man alle Nichtquadrate aus
darf kein Quadrat sein,denn die Auflösung ist wie folgt:
: , also ein Quadrat
: , also kein Quadrat
wenn ein Quadrat wäre,könnte über keine Aussage getroffen werden
Um festzustellen, ob v tatsächlich ein Quadrat ist, benötigt Bob und . Diese können nicht aus gewonnen werden.
Da gilt:
: , also ein Quadrat
: , also kein Quadrat
ist Alice an ihr Commitment unconditional gebunden.
Bob könnte das Jacobi-Symbol nur berechnen, wenn er und kennen würde. Wenn er allerdings herausfinden könnte ob zufälliges Element in ein Quadrat ist, könnte er auf schließen. Das würde aber enorme Rechenleistung fordern, weswegen das Verfahren computational hiding ist.