# Bifid Cypher

Bifid uses a Polybius square to encrypt a message with a chosen alphabet.

To encrypt the message `transpose me`:

```  1 2 3 4 5
1 B G W K Z
2 Q P N D S
3 I O A X E
4 F C L U M
5 T H Y V R```

The message is read by rows and columns:

```TRANSPOSE ME
------------
453222323 43
153352255 55```

and read out row-by-row by making pairs:

`45 32 22 32 34 31 53 35 22 55 55`

And then divided up into pairs and turned back into letters:

```45 32 22 32 34 31 53 35 22 55 55
--------------------------------
M  O  P  O  X  I  Y  E  P  R  R```

and read out: `MOPOXIYEPRR`.

Knowing the secret alphabet, the procedure is simply reversed.

# Nihilist

The Nihilist cypher uses a `5x5` Polybius square using a keyword.

For example, using the keyword `ship`, we obtain the square:

```  1 2 3 4 5
1 S H I P A
2 B C D E F
3 G J K L M
4 N O Q R T
5 U V W X Y```

Given a plain-text `abandon hands` and a key of `move`, the cypher-text is obtained by combining the plain-text with the key:

```plaintext : 15  21 15 41 23 42 41    12 15  41 23 11
key       : 35  42 52 24 35 42 52    24 35  42 52 24
---------------------------------------------------- +
cyphertext: 410 63 67 65 58 84 93    36 410 83 75 35```

Which yields the cypher-text: `410 63 67 65 58 84 93 36 410 83 75 35` and can be sent as-is. In order to reverse the operation, the keyword used to construct the Polybius square has to be known, as well as the key used for encryption.

fuss/csharp/cryptography/cyphers/bifid.txt ยท Last modified: 2017/02/22 18:30 (external edit)

For the copyright, license, warranty and privacy terms for the usage of this website please see the license, privacy and plagiarism pages.