Kann man mit One-Time-Pad auch Ja/Nein sagen?
Wäre trick(·) hart? Also unbrechbar?
byte trick(bool y) { // y==true --> Ja
byte by = popPad();
if (y) return by;
for (;;) {
byte bn = popPad();
if (bn!=by) return bn;
}
}
popPad(void) liefert das nächste Byte vom One-Time-Pad.
oder müsste man es so machen?
byte trick(bool y) { // y==true --> Ja
byte by = popPad();
byte bn; do bn=popPad(); while (bn==by);
return y ? by : bn;
}
oder geht das auch nicht?
3 Antworten
Auf jeden fall, Der zweite Code reicht aus, um Ja/Nein zu senden
und was ist mit dem ersten? der braucht viel weniger Zufallsbytes... oder verrät man dadurch was?
ich glaub ja: wenn man „JA JA“ sagt und der Angreifer weiß von dem zweiten JA, dann könnte er die erste Frage schonmal mit „nein“ beantworten... oder? aber die zweite kann er dann nicht mehr sicher beantworten...
Klar kann man mit einem OTP auch Ja oder Nein senden.
Da die Nachricht kurz ist kann man allerdings mit gar nicht all zu kleiner Wahrscheinlichkeit eine Kollision finden auch wenn man nicht sagen kann ob ja oder nein gesendet wird.
Die Wahrscheinlichkeit zufällig ja zu schicken wenn man den Code nicht kennt ist ja immerhin 1/256.
Die Wahrscheinlichkeit ein gültiges Paket zu schicken ist somit 2/256
Wenn du nur Ja/Nein sendest ist es offentsichtlich was du immer sagst da sich die Textlänge ja immer wiederholt.
naja... ich würde schon die Länge der Antwort „pad-den“... so wie in dem Psemdocode... immer ein Byte, in dem die Antwort versteckt ist...
ja... ok... wenn einem 1/128 zu viel ist, kann man ja 16bit benutzen.... oder?