## Encryption and decryption of text

rawi
Posts: 40
Joined: Sat Dec 28, 2019 4:50 am
Location: Bavaria, Germany

### Encryption and decryption of text

This program allows to encrypt and decrypt messages.

Application:
At the beginning you are asked for the starting value of the random number generator: SEED?
Take any number between 0 and 1.
The same number has to be used for encryption and decryption.
Then you are asked whether you want to encrypt or to decrypt ENC=1 DEC=2?
Put in 1 for encryption, 2 for decryption.
Then you are asked for a character. You can use any of the following 44 characters:
[Space] * + , - . / : 0 to 9 A to Z.
Only characters are used that can be easily accessed by the keyboard.
After putting in the character and pressing R/S you are shown the encrypted (or decrypted) character and you can input the next character and press R/S

Example: We want to encrypt and decrypt the following phrase: THE CALCULATOR FORUM
XEQ alpha CRYP alpha
-> SEED? We take Pi – 3: PI 3 – R/S
-> ENC = 1 DEC = 2? We want to encrypt, therefore: 1 R/S
-> CHAR? -> T R/S -> K (K is the encryption for T at that place). Next letter overwrites the encryption.
-> H R/S -> N -> E R/S -> / -> (Space) R/S -> D …

The whole phrase encrypted as follows:
KN/DFC/03J1*.71T6T2R

Note that the same character is transformed to different encrypted characters like the first A from Calculator to C and the second to 1. Note that as well the same character in the encrypted phrase can be different characters in the not encrypted phrase like the first “/” stands for E and the second for L. Furthermore space is coded as well so that length of words cannot be used to decipher.

Decryption:
XEQ alpha CRYP alpha
-> SEED? To decrypt we have to take the same number: PI 3 – R/S
-> ENC = 1 DEC = 2? We want to decrypt, therefore:2 R/S
-> CHAR? We type K (the first letter of the encrypted phrase) R/S -> T (the first letter of the not encrypted phrase) -> N R/S -> H -> / R/S -> E D R/S -> (space) …

Note: If no character is shown this stands for space.
Method:
For every character a random number generator is used to encrypt it. So the meaning of a character is position sensitive.
The random number generator is in lines 28-32. It has the form: r(n) = Frac(9821*r(n-1)+0.211327).
It was taken from the HP Standard Programs Book for the HP 34C.

Enjoy!

Code: Select all

01 LBL alpha CRYP alpha
02 alpha SEED? alpha
03 PROMPT
04 STO 00
05 alpha ENC=1 DEC=2? alpha
06 PROMPT
07 STO 01
08 AON
09 alpha CHAR? alpha
10 PROMPT
11 LBL 00
12 ATOX
13 31
14 -
15 1
16 X<>Y
17 X<=Y?
18 GTO 03
19 9
20 -
21 18
22 X<>Y
23 X<=Y?
24 GTO 03
25 6
26 -
27 LBL 03
28 RCL 00
29 9821
30 *
31 .211327
32 +
33 FRC
34 STO 00
35 44
36 *
37 1
38 +
39 INT
40 XEQ IND 01
41 31
42 +
43 32
44 X<>Y
45 X<=Y?
46 GTO 04
47 9
48 +
49 58
50 X<>Y
51 X<=Y?
52 GTO 04
53 6
54 +
55 LBL04
56 XTOA
57 STOP
58 GTO 00
59 LBL 01
60 +
61 44
62 X<>Y
63 X<=Y?
64 RTN
65 X<>Y
66 -
67 RTN
68 LBL 02
69 -
70 X>0?
71 RTN
72 44
73 +
74 RTN
75 END

Attachments
cryp.raw