A paper analog


Home Page
Hebern's machines Home Page

Introduction

Hebern's cipher machine was very expensive. However, a simple square of paper allows you to emulate it.

Principles

In the chapter on the mathematical vision of the machine, we noted that a table resembling a Vigenère type table makes it possible to represent the machine. In fact you need several tables. You need one table per rotor. You even need two tables, if you agree to reverse a rotor.

If we want to simplify the decipherment, we also need a table to carry out this operation for each rotor face used.

Table for a single rotor

The abscissa corresponds to the plain letter (in cipher mode) and the ordinate corresponds to the key (the position of the rotor).

Wiring:

	Rotor:    FTQJVAXMWDSNHLRUCOKBPEIGZY

The Table:


	  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
	A F T Q J V A X M W D S N H L R U C O K B P E I G Z Y
	B S P I U Z W L V C R M G K Q T B N J A O D H F Y X E
	C O H T Y V K U B Q L F J P S A M I Z N C G E X W D R
	D G S X U J T A P K E I O R Z L H Y M B F D W V C Q N
	E R W T I S Z O J D H N Q Y K G X L A E C V U B P M F
	F V S H R Y N I C G M P X J F W K Z D B U T A O L E Q
	G R G Q X M H B F L O W I E V J Y C A T S Z N K D P U
	H F P W L G A E K N V H D U I X B Z S R Y M J C O T Q
	I O V K F Z D J M U G C T H W A Y R Q X L I B N S P E
	J U J E Y C I L T F B S G V Z X Q P W K H A M R O D N
	K I D X B H K S E A R F U Y W P O V J G Z L Q N C M T
	L C W A G J R D Z Q E T X V O N U I F Y K P M B L S H
	M V Z F I Q C Y P D S W U N M T H E X J O L A K R G B
	N Y E H P B X O C R V T M L S G D W I N K Z J Q F A U
	O D G O A W N B Q U S L K R F C V H M J Y I P E Z T X
	P F N Z V M A P T R K J Q E B U G L I X H O D Y S W C
	Q M Y U L Z O S Q J I P D A T F K H W G N C X R V B E
	R X T K Y N R P I H O C Z S E J G V F M B W Q U A D L
	S S J X M Q O H G N B Y R D I F U E L A V P T Z C K W
	T I W L P N G F M A X Q C H E T D K Z U O S Y B J V R
	U V K O M F E L Z W P B G D S C J Y T N R X A I U Q H
	V J N L E D K Y V O A F C R B I X S M Q W Z H T P G U
	W M K D C J X U N Z E B Q A H W R L P V Y G S O F T I
	X J C B I W T M Y D A P Z G V Q K O U X F R N E S H L
	Y B A H V S L X C Z O Y F U P J N T W E Q M D R G K I
	Z Z G U R K W B Y N X E T O I M S V D P L C Q F J H A
Notes:
  • In this case, a symmetrical rotor was used. We therefore need a single table for encryption and decryption.
  • The first line corresponds to the rotor wiring.
  • The diagonals contain the alphabet: ABCD...Z.
  • I made this table with a software (Use the -h option to see the syntax).:
    C:\H1_TOOLS> python hebern1_table.py -R =FTQJVAXMWDSNHLRUCOKBPEIGZY
    

Table for a machine with rotor and lampboard

Cablages:

	Rotor:     FQTGXANWCJOIVZPHYBDRKUSLEM
	Lampboard: TYOEUMXDFJQVKWBNSHCILRZAGP

The Table:

	  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
	A M S I X A T W Z O J B F R P N D G Y E H Q L C V U K
	B N C M Z P K R Y F W D L G B X A T O S J I H Q E V U
	C H U R G V L T D K X I A W M Z P Y N F C S J O Q E B
	D E L A Q I P X V M C Z K U R G T B D H N F Y J O W S
	E I Z J C G M Q U H R V E L A P W X S B D T F Y K N O
	F R F H A U J E S L Q O I Z G K M N W X P D T V B Y C
	G D S Z E F O N I J Y C R A V U B K M G X P Q W T H L
	H N R O D Y B C F T H L Z Q E W V U A M G J K P S I X
	I L Y X T W H D P S I R J O K Q E Z U A F V G N C M B
	J T M P K S X G N C L F Y V J O R E Z D Q A B H U W I
	K U G V N M A B H I D T Q F Y L O R X J Z W S E K C P
	L A Q B U Z W S C X P J D T I Y L M F R K N O V H G E
	M J W E R K N H M G F X P C T I U D L V B Y Q S A O Z
	N K O L V B S U A D M G H P C E X I Q W T J N Z Y R F
	O Y I Q W N E Z X U A S G H O M C J K P F B R T L D V
	P C J K B O R M E Z N A S Y U H F V G D W L P I X Q T
	Q F V W Y L U O R B Z N T E S D Q A X K I G C M J P H
	R Q K T I E Y L W R B P O N X J Z M V C A H U F G S D
	S V P C O T I K L W G Y B M F R U Q H Z S E D A N X J
	T G H Y P C V I K A T W U D L E J S R N O X Z B M F Q
	U S T G H Q C V Z P K E X I O F N L B Y M R W U D J A
	V P A S J H Q R G V O M C Y D B I W T U L K E X F Z N
	W Z N F S J L A Q Y U H T X W C K P E I V O M D R B G
	X B D N F I Z J T E S P M K H V G O C Q Y U X L W A R
	Y X B D C R F P O N G U V S Q A Y H J T E M I K Z L W
	Z W X H L D G Y B A E Q N J Z T S F P O U C V R I K M
Note: All diagonals are identical, but actually contain the lampboard wiring (TYPEUMX...AGP).

Table for a complete machine

In the case of a machine with lampboard and keyboard permutations different from the identity, the tables no longer offer any symmetry.

The wirings

	Rotor:     FQTGXANWCJOIVZPHYBDRKUSLEM
	Keyboard:  XAKHSZJLYWGPMIOURDBFTNVCQE
	Lampboard: TYOEUMXDFJQVKWBNSHCILRZAGP

The table for encryption

	  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
	A V M B Z E K J F U C W D R O N Q Y X S T H P L I G A  
	B E N D Y S U W L V Q R A G F X I O Z C K J B H M T P  
	C Q H I D F B X A E O T P W K Z S N G U L C M J R Y V
	D O E Z V H S C K W J X T U M G F D Q L P N R Y A B I
	E K I V U B O R E N Y Q W L H P T S C Z M D A F J X G
	F B R O S X C Q I Y V E M Z L K D W A F J P G T H N U
	G T D C I G L Y R H W N B A J U P M E S O X V Q Z K F
	H S N L F M X H Z I P C V Q T W J A D R B G E K O U Y
	I C L R P A B I J M N D E O S Q V U T Y H F K G X Z W
	J U T F N D I L Y W H G R V C O A Z K M X Q J B P E S
	K K U T H J P D Q C E B O F I L W X N G A Z Y S V R M
	L H A J C R E P D G V S L T X Y N F U Q W K I O B M Z
	M A J X M V Z F P O S H U C G I Y L R W N B T Q E D K
	N Y K G A W F M H R Z U X P D E J Q V O S T C N L I B
	O L Y S X P V A G D T Z C H U M B K W I E F O R Q J N
	P X C A E D T N S Q I M F Y Z H L G B J R W U P K V O
	Q J F N R K H Z T P M O Q E B D G X Y V U I S C W A L
	R G Q P W C D B O S F L Z N R J H V I K Y A X U T M E
	S N V Y L Z J G B X A K U M W R E H O P I S F D C Q T
	T M G W K N Q T U F B I J D A E X R P H V O L Z Y S C
	U D S E Z Y A K X J U V N I P F R B H T C M O W G L Q
	V F P M G U N O C Z X R I Y V B K T J A Q L D E S W H
	W R Z H Q I G U T B D A K X Y C O E S N L V W M F P J
	X W B P T Q R S M A L J G K E V U C F D Z Y H X N O I
	Y Z X U O T W G V L K P Y S N A M J C B F E Q I D H R
	Z I W Q B O M E N K R Y S J A T C P L X G U Z V H F D

The table for decryption

The abscissa corresponds to the ciphered letter and the ordinate corresponds to the key (the position of the rotor).
	  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
	A Z C J L E H Y U X G F W B O N V P M S T I A K R Q D
	B L V S C A N M W P U T H X B Q Z J K E Y F I G O D R
	C H F U D I E R B C W N T V Q J L A X P K S Z M G Y O
	D X Y G Q B P O E Z J H S N U A T R V F L M D I K W C
	E V E R U H W Z N B X A M T I F O K G Q P D C L Y J S
	F R A F P K S V X H T O N L Y C U G B D W Z J Q E I M
	G M L C B R Z E I D N Y F Q K T P W H S A O V J U G X
	H Q T K R V D U G I P W C E B X J M S A N Y L O F Z H
	I E F A K L U W T G H V B I J M D O C N R Q P Z X S Y
	J P W N E Y C K J F V R G S D O X U L Z B A M I T H Q
	K T K I G J M S D N E A O Z R L F H Y W C B X P Q V U
	L B X D H F Q I A V C U L Y P W G S E K M R J T N O Z
	M A U M Y X G N K O B Z Q D T I H W R J V L E S C P F
	N D Z V N O F C H Y P B X G W S M Q I T U K R E L A J
	O G P L I T U H M S Y Q A O Z V E X W C J N F R D B K
	P C R B E D L Q O J S X P K G Z W I T H F V Y U A M N
	Q Y N W O M B P F U A E Z J C K I L D V H T S X Q R G
	R U G E F Z J A P R O S K Y M H C B N I X W Q D V T L
	S J H X W P V G Q T F K D M A R S Y O U Z L B N I C E
	T N J Z M O I B S K L D V A E U R F Q Y G H T C P X W
	U F Q T A C O X R M I G Y U L V N Z P B S J K W H E D
	V S O H V W A D Z L R P U C F G B T K X Q E N Y J M I
	W K I O J Q X F C E Z L T W S P Y D A R H G U V M N B
	X I B Q S N R L V Z K M J H X Y C E F G D P O A W U T
	Y O S R X U T G Y W Q J I P N D K V Z M E C H F B L A
	Z N D P Z G Y T X A M I R F H E Q C J L O U W B S K V

An example of use

Using my simulator

If we encrypt the word "GOOD" with the key "G", we obtain the cryptogram "HQOH".

If we use my simulator, we must indicate the files which contain the wiring of the rotor, lampboard and keyboard. We must also indicate the key. It is possible to directly indicate the wiring as an argument (preceded by "=").

	C:\H1_TOOLS> echo GOOD | python hebern1_tui.py -R cw5rev -L RFS -K LFS -E G
	HQOH

	C:\H1_TOOLS> echo GOOD | python hebern1_tui.py ^
	-R =FQTGXANWCJOIVZPHYBDRKUSLEM ^
	-L =TYOEUMXDFJQVKWBNSHCILRZAGP ^
	-K =XAKHSZJLYWGPMIOURDBFTNVCQE -E G
	HQOH

Using the tables

This is an encryption, so we use the first table. On the other hand, the machine advances before encryption, we will therefore read the encrypted letter in the line "H" (which follows the "G" line). At the intersection of column "G", we read the numerical letter "H".

Next, we look at the intersection of line "I" (the rotor has moved forward) and column "O", we obtain the numerical letter "Q".

Next, we look at the intersection of row "J" and column "O", we get the letter "O".

Finally, the intersection of row "K" and column "D" gives the letter "H".

In conclusion, the plaintext "GOOD" is encrypted as "HQOH".