Show HN: I made a binary enigma machine for manual encryption

(makerworld.com)

74 points | by chjh 32 days ago

8 comments

  • AndrewOMartin 31 days ago
    The original Enigma machine had a cryptographic weakness in that it would never encode a letter to itself (e.g. an A would never be encoded to an A). Luckily this seems to have been fixed for the binary enigma machine.
    • jagged-chisel 30 days ago
      If, in a binary Enigma, one could not encrypt a 0 as a 0, nor a 1 as 1, “decryption” would be trivial.
      • chjh 24 days ago
        Yeah, I figured my version needed to solve that problem :P
  • majikandy 31 days ago
    I love this, my dissertation at uni was on the Enigma machine and I built a configurable one in software (Java) and it was fascinating to me that once you matched the spec of the real machine you got matching letter for letter encryption and decryption of real messages. The day my outer acceptance tests started working was amazing! The fact this needs no power is brilliant. Makes it surprising now they didn’t come up with it being a pure mechanical version back then and relied on the electrical current. Would love to try this out in the flesh.
  • cantrevealname 31 days ago
    > Or how else are we going to send secure messages in the future?

    That's an intriguing comment. What do you mean by that? Do you mean a future when governments force tech companies to install backdoors in all end-to-end encrypted software we use? Or when AGI writes all of our software, designs all hardware, and AGI decides that it needs to monitor all human communications. Only half joking.

    • 082349872349872 31 days ago
      AGI won't monitor all human communication: only the human communication it deems cute enough to record and post to the group chat with the caption '<3 OMG they almost think they're AGI <3 so adorable <3 I love my humans <3 <3'

      Other than that it'll probably leave us alone (with occasional new enrichment toys when it suspects we've been alone too long)

      • 01HNNWZ0MV43FF 31 days ago
        If you are reading something to decide whether it's interesting, that's monitoring
  • keepamovin 31 days ago
    Not only is it cool, it's cute. Made me smile. Thanks for this gorgeous little thang.
  • robertclaus 31 days ago
    I love the write-up. Very entertaining.

    "it's the perfect blend of simplicity and security for modern communication" "experience encryption like never before!"

  • garyiskidding 31 days ago
    really cool project..!
  • Donaldwide 31 days ago
    [dead]
  • lukan 31 days ago
    My very first (self choosen) real software project in school was a simulated replica of the Enigma, but it is of course way cooler, to have something that you can print out to actually physically put together.

    "Or how else are we going to send secure messages in the future?"

    And you could probably also market it as quantum secure, you know, there probably can't be a bitflip due to cosmic radiation .. (isn't this what quantum computers are doing? /s)

    • SoftTalker 31 days ago
      Early versions of unix included a crypt utility based on simulating an Enigma machine. It's funny to look at old man pages and see the warnings change from

      Methods of attack on such machines are known, but not widely; moreover the amount of work required is likely to be large.

      to

      Methods of attack on such machines are widely known, thus crypt provides minimal security.

      • eichin 31 days ago
        In particular, CBW ("Crypt Breakers Workbench") was a popular curses-based decoder "game" in the late 1980s - it would display a block, you'd start typing known plaintext, and it would constraint-propagate what was possible/impossible given that. (IIRC it took more than one block to recover the key, but it would copy "known wirings" to later pages.) That definitely pushed it into "widely known" and relatively low effort (IIRC crypt(1) is a 256-element rotor, not a 26-element one like actual Enigma; I vaguely recall the symmetry actually made it cryptographically worse :-)
        • Someone 31 days ago
          http://www.theory.physics.ubc.ca/cbw.html leads to https://github.com/AlbertVeli/cbw, which says

          “This git repository is not meant to improve upon cbw, only make it compile on modern UNIX-like systems, like OS X, FreeBSD and GNU/Linux.

          Current status: Compiling but crashing. You are welcome to help out ;-)”

          I didn’t check whether ftp://ftp.isc.org/usenet/comp.sources.unix/volume10/cbw/ still exists. It could have the original sources.