Thingiverse
Enigma encryption device by laurent_despeyroux
by Thingiverse
Last crawled date: 3 years, 4 months ago
This thing is based on the Pringles Enigma by Franklin Heath Ltd that I discover via EscapeTechno's Machine Enigma.
Engima was probably the most advanced cryptographic device of its time. The challenge of decipher it had eventually lead to the realisation of the first computer.
Now, this work being done, I find it very useful to illustrate some concepts like reversibility (ciphering and deciphering are done the very same way) and information in computer science or to show how, in cryptography, a simple tiny device can encode so hard that break it require the resources of a nation !
Files:
Why all files are suffixed with "-30"? Because the radius is a parameter in the code and my first choice was 50mm that implies quite large prints. So I reduce this parameter to 30 (which seem to be near the limits of what I can print for the bigger pieces and for the smaller details). So all the files presented here are done with this value. I keep it because I do not exclude publishing smaller or bigger versions.
Note that "Bague" is the French for "ring": sorry there are many French words into the code and the file names.
Source:
enigma.scad
axis.FCStd
This is my first big project with OpenSCAD, so please, be indulgent with my code. It does not even include the trick I find to make easily an hollowed cylinder sector!
Also note that the threads for the axis and its cover where done with FreeCAD.
The interface and the plug board:
bague-finale-30.stl
spare-letters-30.stl
The "bague-finale-30" object represent the machine's text interface. Detached letters are here to emulate the plug board, by default each letter is inserted in front of the same letter on this ring. To emulate a wire on the plug board, you just have to inverse 2 of this letters (like the "L-P" and "M-O" couples on the illustration below)! Caution don't include a letter in more than one inversion!
When you want to treat (to encrypt or to decrypt) a letter you'll have to search it on this ring before verifying on its right that it isn't substituted. If so, you'll have to search the new letter on the static ring: you'll find the original letter on the right (as illustrated with the red path; the green one illustrate a case without substitution on the letter "N").
The rotors:
bague-[n]-30.stl
rotor-[n]-30.stl
Each rotor has been separated in two parts: the connection pattern in the file beginning by "rotor" and the letter's ring in the file beginning by "bague". This separation permit to change the ring position relatively to the rotor. On each ring a different letter is carved (all the others are in relief).
To find back which rotor is associated with which ring, how to mount its ring and which one is it, there is 3 indications on each rotor:
on the ring side (left) a mark show the tooth on which the 'A' may normally be placed,
on the large side (right)
the letter that should be carved on the corresponding ring
the number identifying the rotor
Note that the teeth's margins are more important here than for the detached letters representing the plug board because they are many teeth to hold the ring and it still must be easy to remove and put back in an another position.
The dividers:
internaldisk-30.stl
You should print 3 of it. This objects are fix relatively to the axis, the reflector and the final ring. They have 2 roles: avoid that rotating a rotor made its neighbour rotate too and display the rotor's states (and the machine's one). In the case below, the rotor's state is "Q" and, as it's the engraved letter, next time you'll rotate it you'll need also to rotate its left neighbour.
The reflectors:
reflector-B-30.stl
reflector-C-30.stl
That's the parts that ultimately link each letter with its cryptographic partner since the rotors only make substitutions: you can make a very minimalistic version with just a reflector and the final ring (without rotor or substitution). By the way it was an historical weakness of this machine that never a letter was represent by itself! Curiously, it seem that there is no version A: just B and C!
The axis:
axis-30.obj
axis-small-30.obj
bouchon-30.obj
"axis-30" object is coupling the "active" parts, letting rotors turn freely around it but not permitting the reflector, the dividers and the final ring to do so. It has 3 straight grooves parallel to its axis forming 3 different angles so that reflectors, the final ring and the dividers can only be inserted into the good position.
"axis-small-30" is a smaller version of "axis-30" to store the spare parts when the enigma machine is build: a reflector and 2 rotors.
"Bouchon" is the French for cover or plug. So, as you guess, the "bouchon-30" objective is closing the axis to maintain the machine's integrity after it's assembling.
Axis are hollowed to manage a discrete storage that is a must have for an enigma !
Usage:
Setup:
First things first, you should choose your reflector and put it on the empty axis. Next you have to choose your rotors and also put them on the axis with theirs dividers and rings as shown above on the exploded view of a simplified enigma (having only 2 rotors). Put the final ring and move the detached letters to mark the substitutions (as for "B-Z" and "C-Y" couples or the lake of it as for the "A" on the illustration above). Screw the stopper and finally place the rotors on the initial states you choose.
Ciphering and deciphering:
Ciphering and deciphering are done the very same way.
First, rotate the rightmost rotor of 1 position; if, doing so, the carved letter leave the status position: rotate 1 position the rotor at the left. the same rule apply to the central rotor.
Search the letter you have to treat (to encrypt or to decrypt) on right most ring (the one with the detached letters). To do so, search this letter on the neighbour ring with fixed ones: if the movable letter at its right is the same you just find it! If not search the letter you find on the movable ring on the fix one and you'll find the letter you search on the movable and rightmost ring.
Follow the line on the rightmost rotor that begin if front of the letter, continue on the central one and the left one, next on the reflector and finaly go back through left, central and right rotor.
Read the result on the rightmost ring!
Restart from point 1 with the next letter.
Doubts:
Rotation generated by the middle rotor:
I think that when the marked letter pass away, the rule is to rotate it's left neighbour (if it exists). Other sources explain that's the rule only for the right one: for the central one, all the rotor should be rotate. With this second rule, as it's rotation is activated by the rotation of the right one, it make the right rotor always skip the position following the marked letter. This second rule reduce the machine's behaviour complexity while, ironically, increasing its mechanical one (such accidents append with the kriegsmarine's version which extra rotors made the next rotor rotate twice when they made a full turn: resulting in the use of only half of the possible machine's states).
I think the misunderstanding come from the fact that with the first rule, as a rotation of the central rotor is triggered by one of the right one and, if the central rotor was on the marked letter, that made the left one rotate so when the central one leave the marked position all the rotors rotate the same but the rotation of the right one is a cause and the rotation of the left one a consequence.
Rotation of the ring relatively to the rotor:
Here also, it is a complexity problem. Make the ring movable relatively to its rotor, ultimately, only change when the ring will trigger the rotation of its left neighbour. That seem me a important price in term of mechanical complexity and risk of confusion compared to the added cryptographic complexity.
Could the Germans win against Turning's team?
Turning and his team partly won the information battle due to the Germans's strictness lead to had constant behaviours on which Turing's team base its deciphering. One of them is that, as far as I know, all German submarines send meteorology data every mornings with the same enigma settings for every submarines. Messages almost always begin with the same first words.
If they, at first, send 3 random letters with the parameters of the day and them use it as the new machine setting for the rest of the message, I hardly see how Tring's team can decipher it!
Turn first read after:
This is curious at first but probably due to electromechanical constraints.
Direction of rotation:
It seem me logic to follow the alphabetical order but I do not remember having read something explicit about it !
More informations:
The best source I find on Internet :Crypto Museum
Engima was probably the most advanced cryptographic device of its time. The challenge of decipher it had eventually lead to the realisation of the first computer.
Now, this work being done, I find it very useful to illustrate some concepts like reversibility (ciphering and deciphering are done the very same way) and information in computer science or to show how, in cryptography, a simple tiny device can encode so hard that break it require the resources of a nation !
Files:
Why all files are suffixed with "-30"? Because the radius is a parameter in the code and my first choice was 50mm that implies quite large prints. So I reduce this parameter to 30 (which seem to be near the limits of what I can print for the bigger pieces and for the smaller details). So all the files presented here are done with this value. I keep it because I do not exclude publishing smaller or bigger versions.
Note that "Bague" is the French for "ring": sorry there are many French words into the code and the file names.
Source:
enigma.scad
axis.FCStd
This is my first big project with OpenSCAD, so please, be indulgent with my code. It does not even include the trick I find to make easily an hollowed cylinder sector!
Also note that the threads for the axis and its cover where done with FreeCAD.
The interface and the plug board:
bague-finale-30.stl
spare-letters-30.stl
The "bague-finale-30" object represent the machine's text interface. Detached letters are here to emulate the plug board, by default each letter is inserted in front of the same letter on this ring. To emulate a wire on the plug board, you just have to inverse 2 of this letters (like the "L-P" and "M-O" couples on the illustration below)! Caution don't include a letter in more than one inversion!
When you want to treat (to encrypt or to decrypt) a letter you'll have to search it on this ring before verifying on its right that it isn't substituted. If so, you'll have to search the new letter on the static ring: you'll find the original letter on the right (as illustrated with the red path; the green one illustrate a case without substitution on the letter "N").
The rotors:
bague-[n]-30.stl
rotor-[n]-30.stl
Each rotor has been separated in two parts: the connection pattern in the file beginning by "rotor" and the letter's ring in the file beginning by "bague". This separation permit to change the ring position relatively to the rotor. On each ring a different letter is carved (all the others are in relief).
To find back which rotor is associated with which ring, how to mount its ring and which one is it, there is 3 indications on each rotor:
on the ring side (left) a mark show the tooth on which the 'A' may normally be placed,
on the large side (right)
the letter that should be carved on the corresponding ring
the number identifying the rotor
Note that the teeth's margins are more important here than for the detached letters representing the plug board because they are many teeth to hold the ring and it still must be easy to remove and put back in an another position.
The dividers:
internaldisk-30.stl
You should print 3 of it. This objects are fix relatively to the axis, the reflector and the final ring. They have 2 roles: avoid that rotating a rotor made its neighbour rotate too and display the rotor's states (and the machine's one). In the case below, the rotor's state is "Q" and, as it's the engraved letter, next time you'll rotate it you'll need also to rotate its left neighbour.
The reflectors:
reflector-B-30.stl
reflector-C-30.stl
That's the parts that ultimately link each letter with its cryptographic partner since the rotors only make substitutions: you can make a very minimalistic version with just a reflector and the final ring (without rotor or substitution). By the way it was an historical weakness of this machine that never a letter was represent by itself! Curiously, it seem that there is no version A: just B and C!
The axis:
axis-30.obj
axis-small-30.obj
bouchon-30.obj
"axis-30" object is coupling the "active" parts, letting rotors turn freely around it but not permitting the reflector, the dividers and the final ring to do so. It has 3 straight grooves parallel to its axis forming 3 different angles so that reflectors, the final ring and the dividers can only be inserted into the good position.
"axis-small-30" is a smaller version of "axis-30" to store the spare parts when the enigma machine is build: a reflector and 2 rotors.
"Bouchon" is the French for cover or plug. So, as you guess, the "bouchon-30" objective is closing the axis to maintain the machine's integrity after it's assembling.
Axis are hollowed to manage a discrete storage that is a must have for an enigma !
Usage:
Setup:
First things first, you should choose your reflector and put it on the empty axis. Next you have to choose your rotors and also put them on the axis with theirs dividers and rings as shown above on the exploded view of a simplified enigma (having only 2 rotors). Put the final ring and move the detached letters to mark the substitutions (as for "B-Z" and "C-Y" couples or the lake of it as for the "A" on the illustration above). Screw the stopper and finally place the rotors on the initial states you choose.
Ciphering and deciphering:
Ciphering and deciphering are done the very same way.
First, rotate the rightmost rotor of 1 position; if, doing so, the carved letter leave the status position: rotate 1 position the rotor at the left. the same rule apply to the central rotor.
Search the letter you have to treat (to encrypt or to decrypt) on right most ring (the one with the detached letters). To do so, search this letter on the neighbour ring with fixed ones: if the movable letter at its right is the same you just find it! If not search the letter you find on the movable ring on the fix one and you'll find the letter you search on the movable and rightmost ring.
Follow the line on the rightmost rotor that begin if front of the letter, continue on the central one and the left one, next on the reflector and finaly go back through left, central and right rotor.
Read the result on the rightmost ring!
Restart from point 1 with the next letter.
Doubts:
Rotation generated by the middle rotor:
I think that when the marked letter pass away, the rule is to rotate it's left neighbour (if it exists). Other sources explain that's the rule only for the right one: for the central one, all the rotor should be rotate. With this second rule, as it's rotation is activated by the rotation of the right one, it make the right rotor always skip the position following the marked letter. This second rule reduce the machine's behaviour complexity while, ironically, increasing its mechanical one (such accidents append with the kriegsmarine's version which extra rotors made the next rotor rotate twice when they made a full turn: resulting in the use of only half of the possible machine's states).
I think the misunderstanding come from the fact that with the first rule, as a rotation of the central rotor is triggered by one of the right one and, if the central rotor was on the marked letter, that made the left one rotate so when the central one leave the marked position all the rotors rotate the same but the rotation of the right one is a cause and the rotation of the left one a consequence.
Rotation of the ring relatively to the rotor:
Here also, it is a complexity problem. Make the ring movable relatively to its rotor, ultimately, only change when the ring will trigger the rotation of its left neighbour. That seem me a important price in term of mechanical complexity and risk of confusion compared to the added cryptographic complexity.
Could the Germans win against Turning's team?
Turning and his team partly won the information battle due to the Germans's strictness lead to had constant behaviours on which Turing's team base its deciphering. One of them is that, as far as I know, all German submarines send meteorology data every mornings with the same enigma settings for every submarines. Messages almost always begin with the same first words.
If they, at first, send 3 random letters with the parameters of the day and them use it as the new machine setting for the rest of the message, I hardly see how Tring's team can decipher it!
Turn first read after:
This is curious at first but probably due to electromechanical constraints.
Direction of rotation:
It seem me logic to follow the alphabetical order but I do not remember having read something explicit about it !
More informations:
The best source I find on Internet :Crypto Museum
Similar models
3dwarehouse
free
The Enigma encryption machine
...ituting letters in a massage for another though electrical connections. #the_enigma_encryption_machine #trae #wwii #wwii_machines
grabcad
free
Ball Bearing
...internal diameter: 50mm
width: 31mm
ball diameter: 24mm
i upload solidworks, parasolid, step & iges files for the community.
cg_trader
$15
Industrial Centrifugal Pump
...r's vane tips. centrifugal industrial pump solidworks tool rotor 3d render mechanical fluid rotate machine industrial machine
thingiverse
free
Vibration a.k.a. ripple a.k.a. shadow a.k.a. ghosting test by orcinus
...ce vibration of the x axis is perpendicular to the y axis, the face that says "x" needs to be parallel with the y axis.
grabcad
free
Rotor
...tion is due to the interaction between the winding's and magnetic fields which produces a torque around the rotor's axis.
thingiverse
free
Enigma machine rotors by henryhollingworth3dmodels
...p if you intend to build this.
more information can be found on my website and if you have any questions feel free to contact me.
cg_trader
$10
WW2 Enigma Machine Model
...nazimachine encrypts crypto cryptography encryption encryptionmachine enigma1 security army amrydevice ww2device ww2machine other
grabcad
free
Rotor
... rotation is due to the interaction between the windings and magnetic fields which produces a torque around the rotor's axis.
grabcad
free
Rotor
... rotation is due to the interaction between the windings and magnetic fields which produces a torque around the rotor's axis.
thingiverse
free
PASCSR by nickfarr
... rules work and a bit about crypto at the same time! it also has some added features that let you begin exploring strong crypto.
Encryption
3ddd
$1
Steampunk Pedant Lamp by ΔlxP
... pedant lamp.
прототип:
https://encrypted-tbn0.gstatic.com/images?q=tbn:and9gcti3pzvqh5-idpy038xbo2whrz2qpeguibgyw7itzvhxk3odkzf
3d_export
$12
sorting and quantitative packaging machine
...has the functions of automatic peeling, real-time photographing, data encryption time display, etc.; single / double channel feeding mode...
thingiverse
free
Enigma encryption machine
...achine
thingiverse
os dejo estas ruedas dentadas que si las montais, podeis tener una prueba magnifica para vuestros scaperooms.
thingiverse
free
Separatist Encryption Module by voyta
...a devastating attack.
i included two versions: one is the whole module and the other is split into two parts for easier printing.
thingiverse
free
encrypted-cervix-port by bolwerK
...e cervix port to the innerbody
with the help of luc and julien, oooooooooooooohttp://constantvzw.org/site/-objets-en-commun-.html
thingiverse
free
Chris Dodd with AACS Encryption Key by CosmoWenman
...news.com/pirate-bay-car-2012-01
cosmowenman.com
twitter.com/cosmowenman
youtube.com/cosmowenman
www.thingiverse.com/cosmowenman
thingiverse
free
My Mighty Cipher Ring by tecdroid
...just because someone asked me about some ideas about encryption devices for his daughter.. .. so i thought it...
3d_sky
free
Steampunk Pedant Lamp by ΔlxP
... pedant lamp. prototype: https://encrypted-tbn0.gstatic.com/images?q=tbn:and9gcti3pzvqh5-idpy038xbo2whrz2qpeguibgyw7itzvhxk3odkzf
thingiverse
free
@dot by nolan330
...the inventors of identity-based encryption, professor matt franklin. identity-based encryption keys are derived from an email address, "x at...
Enigma
3ddd
$1
Enigma stul
...enigma stul
3ddd
enigma
китайский стул компании enigma
turbosquid
$39
Enigma
...
turbosquid
royalty free 3d model enigma for download as max on turbosquid: 3d models for games, architecture, videos. (1225793)
3ddd
$1
Enigma E207
...enigma e207
3ddd
enigma
размеры: 63х81х108см
3ddd
$1
Enigma
...ирина: 237 cm
2-х местный диван, ширина: 170 cm
кресло, ширина: 98 cm
высота: 95 cm
глубина дивана: 109 cm
глубина кресла: 96 cm
3ddd
$1
Chair Enigma By Koket
...кстуры в комплекте.
сайтhttp://bykoket.com/guilty-pleasures/upholstery/enigma-chair.php
отделка черный вельвет (бархат)
3ddd
$1
Enigma Doctor Jet
... enigma , ванна
ванна выпускается в трёх вариантах исполнения.в подиумугловаяостровная
3ddd
$1
Enigma
...ая решетка decodesk. применяется в качестве разделителя пространства, декорации стен, внешней отделки фасадов, подвесных потолков
turbosquid
$9
enigma black coin
...
royalty free 3d model enigma black coin for download as max on turbosquid: 3d models for games, architecture, videos. (1457804)
turbosquid
$9
enigma gold coin
...d
royalty free 3d model enigma gold coin for download as max on turbosquid: 3d models for games, architecture, videos. (1457798)
3ddd
$1
Круглая ванна Doctor Jet Enigma
...ться в подиум.
характеристики:
производитель: doctor jet
страна: италия italy
размер: (d180 h63/66)
материал: акрил
объем: 350 л
Laurent
design_connected
free
Laurent Collection
...laurent collection
designconnected
free 3d model of laurent collection by lambert et fils
3ddd
$1
Saint laurent раковина
...saint laurent раковина
3ddd
saint laurent раковина + текстуры
3ddd
$1
Armchair Laurent Longhi
...armchair laurent longhi
3ddd
longhi
3ds max 2010.v-ray 2.40.03.file formats fbx,obj. armchair laurent-longhi.
3ddd
$1
Arteriors Laurent
...arteriors laurent
3ddd
arteriors home
размеры
высота: 72,5 см
ширина: 65 см
глубина: 57,5 см
3ddd
$1
Auberlet et Laurent
...auberlet et laurent
3ddd
лепной декор на стеновую панель.
3ddd
free
Auberlet et Laurent
...auberlet et laurent
3ddd
лепной декор на стеновую панель
turbosquid
$28
Laurent Suspension Light Collection
...model laurent suspension light collection for download as max on turbosquid: 3d models for games, architecture, videos. (1516646)
turbosquid
$12
Shine By Sho Laurent Sofa
...l shine by sho laurent sofa for download as max, obj, and fbx on turbosquid: 3d models for games, architecture, videos. (1506381)
3ddd
$1
Кресло Loveluxe Laurent
...льца, которое отделывается глянцевым хромом, глянцевым чёрным хромом, глянцевым светлым золотом и матовой сатинированной бронзой.
3ddd
$1
Laurent Bar Stool By Hickory Chair Furniture
...с 4600 полигонов.
сайтhttp://www.hickorychair.com/furniture/all-furniture/suzanne-kasler/i508428-laurent-bar-stool.aspx
Device
3ddd
$1
device
...device
3ddd
device
3ddd
$1
device
...device
3ddd
device
turbosquid
$25
Device
...royalty free 3d model device for download as ma, max, and obj on turbosquid: 3d models for games, architecture, videos. (1431298)
archive3d
free
Device 3D Model
...device 3d model
archive3d
equipment device
device- 3d model for interior 3d visualization.
archive3d
free
Device 3D Model
... model
archive3d
device
device n050608 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archive3d
free
Device 3D Model
...e 3d model
archive3d
device gear
device - 3d model (*.gsm+*.3ds) for interior 3d visualization.
turbosquid
$24
ICG Device
...turbosquid
royalty free 3d model icg device for download as on turbosquid: 3d models for games, architecture, videos. (1692389)
3d_export
$5
rope tighten device
...rope tighten device
3dexport
rope tighten device
3d_export
$5
front clamping device
...front clamping device
3dexport
front clamping device
archive3d
free
Device 3D Model
...e3d
device kitchen ware
device n130208 - 3d model (*.gsm+*.3ds) for interior 3d visualization.