YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

German subtitles

← cs387_unit1_07_q_One-Time-Pad

Get Embed Code
3 Languages

Subtitles translated from English Showing Revision 3 created 05/08/2012 by Retired user.

  1. Lasst uns das etwas genauer definieren.
  2. Wir definieren, dass unsere Nachrichtenmenge
  3. Zeichenketten aus 0 und 1 sind, daher verwenden wir Bits, und von einer festen Länge.
  4. n ist die Zahl, die die maximale Länge einer Nachricht gibt.
  5. Unsere Nachricht wird ausgewählt aus allen binären Zeichenketten der Länge n.
  6. Unser Schlüssel wird ebenfalls aus der Menge aller binären Zeichenketten der Länge n gewählt.
  7. Um dann zu verschlüsseln -- unsere Verschlüsselungsfunktion
  8. -- wir denken uns unsere Nachricht als diese Bitfolge
  9. und der Schlüssel ist auch eine Bitfolge.
  10. Das Ergebnis der Verschlüsselung ist der Geheimtext,
  11. der ist eine Bitfolge,
  12. auch der Länge n, wo jedes Bit des Geheimtextes
  13. gleich dem entsprechenden Nachrichten-Bit XOR
  14. dem entsprechenden Schlüssel-Bit ist.
  15. Versuchen wir ein Beispiel.
  16. Für dieses Beispiel gebe ich euch den Geheimtext
  17. und den Schlüssel und die Nachricht.
  18. Angenommen, unsere Nachricht ist die Zeichenkette 'CS',
  19. aber unser Nachrichtenraum ist in Bits.
  20. Als erstes müssen wir diese Zeichenketten in Bits konvertieren,
  21. das können wir in Python mit ord machen,
  22. das nimmt einen String der Länge 1 und verwandelt ihn in
  23. eine Dezimalzahl.
  24. Dann müssen wir diese Dezimalzahl in Bits umwandeln,
  25. in eine Binärzahl.
  26. Und das müssen wir mit jedem Buchstaben des Strings tun.
  27. Wir konvertieren ihn in ein Zeichen und konvertieren das in Bits,
  28. ich zeige Euch den Code dafür.
  29. Den interessanteren Code zu schreiben überlassen wir euch.
  30. Hier konvertieren wir in Bits.
  31. Das ist ziemlich geradlinig, aber nicht der kürzeste Weg.
  32. Wir machen ein Bitarray als Ergebnis für jede Dezimalzahl,
  33. wenn sie durch 2 teilbar ist, kommt eine 0 an den Anfang des Ergebnisses,
  34. wenn sie nicht durch 2 teilbar ist, wird es eine 1.
  35. Und dann teilen wir die Zahl durch 2, wenn wir fortschreiten.
  36. Das füllt alle Stellen.
  37. Wir wollen dass unsere Bits eine bestimmte Länge haben,
  38. drum haben wir ein Padding,
  39. und für alle Buchstaben verwenden wir 7 Bits.
  40. Wir füllen das Ergebnis mit führenden Nullen auf,
  41. bis wir diese Größe erreicht haben.
  42. Wir können das sehen, wenn wir ord aufrufen, dann sehen wir,
  43. dass die Zahl zu dem Buchstaben C 67 ist.
  44. Wenn wir das zu Bits konvertieren, und 7 als Padding verwenden,
  45. dann reicht das für 128 verschiedene Werte,
  46. das ist genug für die Werte der ASCII-Zeichen,
  47. die wir von ord erhalten.
  48. Wir können diese Bits als Liste ansehen,
  49. und wir können sie ein bisschen einfacher als String betrachten,
  50. wenn wir die display_bits-Prozedur verwenden, die das gerade in einen String verwandelt hat.
  51. Nun möchten wir mehr als ein Zeichen konvertieren.
  52. Dafür haben wir eine stringtobits-Prozedur,
  53. die alle Zeichen des Strings durchläuft,
  54. jedes mittels converttobits in Bits umwandelt,
  55. und alle zum Ergebnis konkateniert.
  56. Nun können wir stringtobits
  57. auf unseren 2-Buchstaben-String anwenden und erhalten14 Bits als Ergebnis.
  58. Wenn das unsere Nachricht ist, dann ist der Wert von m, das, was wir hier haben.
  59. Das ist unsere Nachricht.
  60. Da sind 14 Bits, n ist 14.
  61. Das heißt, um das mit einem One-Time Pad zu verschlüsseln,
  62. brauchen wir einen Schlüssel, der auch 14 Bits hat.
  63. Last uns unseren Schlüssel wählen.
  64. Wir denken uns jetzt einfach einen zufälligen Schlüssel aus.
  65. Zufällige Werte zu finden ist tatsächlich sehr wichtig in der Kryptographie,
  66. und darüber reden wir in einer späteren Unit.
  67. Jetzt lasst uns einfach einen erfinden.
  68. So, wenn das unser Schlüssel ist,
  69. dann ist der Geheimtext gerade das Ergebnis von XOR
  70. von jedem Bit der Nachricht mit dem zugehörigen Bit des Schlüssels.
  71. Das ist unser Geheimtext.
  72. Die Frage ist: als Lauscher
  73. habt ihr nur diesen Geheimtext gesehen, ihr wisst nichts
  74. über die Nachricht oder den Schlüssel, und ihr ratet
  75. mögliche Werte für den Schlüssel, um herauszukriegen, was die Nachricht ist.
  76. Welcher Wert für den Schlüssel
  77. würde euch zu der falschen Annahme verleiten, dass die Nachricht
  78. eigentlich BS war, statt CS?