Cryptography ft. Python - The One-Time Pad

Поделиться
HTML-код
  • Опубликовано: 4 фев 2025
  • Write the one-time pad yourself in Python? Sure :)
    ❤❤❤ Early access to tutorials, polls, live events and downloads ❤❤❤
    ❤❤❤ www.patreon.co... ❤❤❤
    ❤❤❤ Not up for Patreon? ❤❤❤
    ❤❤❤ www.paypal.me/... ❤❤❤
    🌍 Website
    🌍 the-morpheus.de
    ¯\_(ツ)_/¯ Join the community ¯\_(ツ)_/¯
    ** the-morpheus.d... **
    ** / themorpheustuts **
    ( ͡° ͜ʖ ͡°) More news? More code?
    ℱ / themorpheustutorials
    🐦 / themorpheustuts
    🐙 github.com/The...
    You order from Amazon? Order through me, costs you zero and you help me out
    "-(¯`-.-'¯)-" amzn.to/2slBSgH
    Video requests?
    🎁 docs.google.co...
    Questions? Feedback? Write me!
    ✉ www.patreon.co...
    ✉ / themorpheustutorials
    ✉ the-morpheus.d...
    or just write a comment :)
    Playlist: • Kryptographie

Комментарии • 39

  • @florian2119
    @florian2119 4 года назад +3

    Danke, endlich mal wieder ein Anspruchsvolleres Video

  • @hackandcode1337
    @hackandcode1337 4 года назад +7

    GEIL! Genau für sowas hab ich dich abonniert :D

    • @florian2119
      @florian2119 4 года назад +1

      Ich auch! Marcus

    • @spaghetti7504
      @spaghetti7504 4 года назад

      @@florian2119 Ich auch! Marcus und Florian.

    • @hackandcode1337
      @hackandcode1337 4 года назад

      Ich habs zwar schon auf discord erwähnt aber ich werde mit K geschrieben 😂

  • @ffy291
    @ffy291 4 года назад +9

    Endlich wieder Python richtig gutes Video

  • @spaghetti7504
    @spaghetti7504 4 года назад +7

    Praktische Sachen = Gut ,da man nicht nur das Thema (Kryptographie) lernt sondern auch Wege um Probleme (wie z.B. "Wie mach ich das jetzt?") zu lösen. Außerdem lernt man auch noch ein wenig von der Programmiersprache.

  • @johnblack8178
    @johnblack8178 4 года назад

    Danke für das Video, ich versuche alles in Racket nachzumachen :D

  • @dragonminz602
    @dragonminz602 4 года назад +9

    Sehr interessant, ich freu mich auf mehr!
    Könnte man den key künstlicher verlängern indem man den key hasht und dann den gehashten key und den key wieder hasht etc oder wirds dann sehr unsicher?

    • @DTheHAge
      @DTheHAge 4 года назад

      Ja, kannst du. Wird auch nicht viel unsicherer. Block-Chiffren (zB AES) heißen deswegen Block-Chiffre weil der Key in einem "Block-System" verlängert wird.

    • @dragonminz602
      @dragonminz602 4 года назад +1

      @@DTheHAge A ok, vielen Dank, dann werd ich da mal rein schaun

    • @f.-l.j.5680
      @f.-l.j.5680 4 года назад +1

      @DTheHAge sie werden blockchiffren genannt, da die zu verschlüsselnde Nachricht in Blöcken verschlüsselt werden.
      AES kann in verschiedenen Modi verwendet werden dazu zählen die blockschifren oder auch Stromchiffren modi.
      Für das OTP ist an sich eine Stromchiffre von Nöten, wenn du einen Text mit beliebiger Länge verschlüsseln willst, die Stromchiffre kannst du aber theoretisch natürlich auch in Blöcken erzeugen.
      Also ja du kannst es mit Erweiterung des Schlüssels durch hasches machen, ich bin mir aber gerade nicht sicher, ob es nicht dadurch theoretische Angriffsmöglichkeiten auf den Schlüssel gibt.

    • @axelneumann8443
      @axelneumann8443 4 года назад +1

      Ein weiteres Problem ist wahrscheinlich die Laufzeit. Hashwerte sind üblicherweise nicht sehr lang deshalb musst du die Hashfunktion oft auswerten. Andererseits muss die Hashfunktion so sein dass das Verfahren sicher ist.

    • @dragonminz602
      @dragonminz602 4 года назад

      @@axelneumann8443 Ja, das stimmt natürlich auch

  • @flinkiklug6666
    @flinkiklug6666 4 года назад +2

    Gerne mehr Kryptographie in Phyton da lernt man (ich zumindest) viel dazu

  • @user-iq7xy8is3f
    @user-iq7xy8is3f 4 года назад

    Haha hast du dich an die Playlist erinnert ;)

  • @LukieHZX
    @LukieHZX 4 года назад +11

    Das mit den Schlüssel generieren, währe cool. Ich habe auch schon mal einen Passwort-Generator gemacht.

    • @florian2119
      @florian2119 4 года назад +3

      Nja, ist ja nicht schwer zu implementieren

    • @ms4643
      @ms4643 4 года назад +5

      def generate_key(length: int):
      with open("/dev/urandom", "rb") as f:
      return f.read(length)

  • @MrLolipop947
    @MrLolipop947 4 года назад

    Voll cool! Danke dir, gerne mehr davon :)

  • @thepaulcraft957
    @thepaulcraft957 4 года назад +1

    Unbedingt mehr davon!

  • @huydang6059
    @huydang6059 2 года назад

    Der XOR-Operator verknüpft ja bitweise, aber warum funktioniert das mit einzelnen Bytes? Muss man das Byteobjekt nicht weiter runterbrechen?

  • @joelwirz7312
    @joelwirz7312 4 года назад

    Was für eine Eingabefeld benutzt du :) (Bin Anfänger)

  • @albertunruh1793
    @albertunruh1793 4 года назад +6

    Alle die auch die Schlüsselgeneratoren sehen möchten, diesen Kommentar hochliken...

    • @TheMorpheusTutorials
      @TheMorpheusTutorials  4 года назад +4

      Keine Sorge, ich mach das eher von den views und likes aufm video abhängig 😅

    • @albertunruh1793
      @albertunruh1793 4 года назад

      @@TheMorpheusTutorials soso, also nur auf proviet aus und nicht auf die wünsche der zuschauer ;) nanana

  • @cytronic7111
    @cytronic7111 4 года назад +1

    Kann mir jemand sagen in welchem Programm Morpheus den Code schreibt?

    • @ms4643
      @ms4643 4 года назад

      PyCharm

  • @jonmickel2005
    @jonmickel2005 4 года назад +3

    Unbedingt mehr praktische Kryptographie

  • @derdragongamer99tm73
    @derdragongamer99tm73 4 года назад

    Könntest du vielleicht ein video über wireshark machen? :)

  • @donaldduck6198
    @donaldduck6198 4 года назад +1

    Alternativ zu "encode()" sollte auch "ord()" und "chr()" gehen

  • @oj0024
    @oj0024 4 года назад +1

    Erstaunlich wie umständlich das Ganze in python ist.
    Normalerweise hat doch python die one liner...
    Heute ist es wohl c:
    while (*msg && *key) *msg++ ^= *key++;

    • @ms4643
      @ms4643 4 года назад +2

      Geht auch in Python als one-line: return bytes([pb ^ key[i] for i, pb in enumerate(plaintext)])

    • @f.-l.j.5680
      @f.-l.j.5680 4 года назад

      Alternativ etwas besser lesbar (meiner Meinung nach) :
      return bytes(map (lambda x,y: x^y,mag,key))

  • @saschavloggt6232
    @saschavloggt6232 4 года назад

    Ich hätte wenn sowohl die Nachricht als auch der Schlüssel Klartextzeichen sind ne buchstabenweise Addition gemacht.
    Quasi ich hätte jetzt gesagt ok ... ich schreib mir das Alphabet in Großbuchstaben einmal auf und nummeriere durch, das Gleiche mit den Kleinbuchstaben und dann noch eventuelle Sonderzeichen.
    Und hätte jetzt gesagt ok ... An welcher Stelle in meinem Alphabet ist denn das H von Hallo - ist an 8. An welcher Stelle in meinem Alphabet ist denn das p von p@ssword ... Funfact, das wäre an bei der Aufteilung 42 - wer hätte es gedacht. :-D
    8 + 42 sind 50 .... was ist denn an der 50. Stelle ... ist das kleine x. Also: Ciphertext beginnt mit einem x.
    Hint: Wenn man am Ende von seinem Alphabet angekommen ist, kann man auch wieder von vorne anfangen, durchzuzählen - es geht da ja weder um den Schlüssel (den man ja nur einmal verwenden soll) noch um den Klartext - es geht um den Output vom Verfahren. :-)
    So hätte ich dann jede Zeichenstelle vom Klartext mit der entsprechenden Zeichenstelle vom Schlüssel aufaddiert.

    • @saschavloggt6232
      @saschavloggt6232 4 года назад

      Abgesehen davon dass ich OneTimePad wenn überhaupt nur für Verschlüsselungen von Daten nehmen würde, die meine Netzwerkkarte eh nie verlassen werden ... aber dann bräuchte ich halt doppelt so viel Speicherplatz (auch Festplatten wollen bezahlt werden - auch wenn Speicherplatz günstig ist, gratis sind sie nicht zu haben) - und das macht das ganze Verfahren für mich unattraktiv ...

  • @langleywright2647
    @langleywright2647 2 месяца назад

    .