Learn Encryption Techniques with BASIC and C++
(Publisher: Wordware Publishing, Inc.)
Author(s): Gil Held
ISBN: 1556225989
Publication Date: 10/01/98
Index
A
- alphabet,
- cipher, 230
- ciphertext, 18, 25
- displacement, 27
- keyword-based mixed, 95
- numeric-based transposition, 142
- plaintext, 18, 25
- reverse ciphertext, 31
- alphabetic relationships, 25-27
- alternative, 133
- common, 134
- alphabetic shift key, 30
- combining with keyword-based mixed alphabet, 104
- using, 33
- authentication, 370-371
B
- backslash character, (\), 58
- BASIC subroutines, 354-355
- Baudot code, 274-275
- binary random number sequences, 274
C
- C++ language, 19
- Caesar cipher, 16, 24
- challenge message, 366
- checkInput function, 100
- cipher alphabet, 230
- cipher disk, 222
- cipher system, 2-4
- cipher systems,
- substitution, 15-17
- transposition, 15, 17-18
- types of, 15-18
- cipher,
- Caesar, 16, 24
- Playfair, 218-219
- Vigenere, 223-229
- ciphers, 2-4
- ciphertext, 6
- converting to, 39-47
- ciphertext alphabet, 18, 25
- cleartext, see plaintext
- code positions, 307
- code system, 2-4
- codes, 2-4
- CONVERTSTORE subroutine, 58-60, 354
- createAlphabet function, 100
- createCipher function, 42, 94
- cryptology, 1-2
D
- DCONVERTSTORE subroutine, 129-130, 354
- decipher function, 94
- DECIPHER subroutine, 84, 354
- DECIPHER.EXE execution, 364-366
- decipherment, 3, 6-8, 32-33
- reducing probability of, 232-233
- decipherment process, 6-8
- decoding, 3
- decrypt function, 335
- decryptFile function, 335
- decryptKeyboardText function, 335
- Diffie-Hellman concept, 372-373
- digital signature, 370
- displacement, 26-27, 31
- displacement alphabet, 27
- DMSGFILE subroutine, 82-84, 128-129, 264, 354
- DO UNTIL loop, 59
- DPCONVERTSTORE subroutine, 264-265
- DPRTOUT subroutine, 85, 354
E
- electronic mail systems, 18-19
- ENCIPHER subroutine, 282
- ENCIPHER.EXE execution, 362-364
- encipherment, 3, 5, 31-32
- RSA, 386-387
- encipherment process, 5-6
- encoding, 3
- encryptFile function, 322
- encryption systems,
- private key based, 10-12
- public key based, 10-12
- types of, 10
- encryptKeyboardText function, 322
- errors, limiting, 47
- Euclidean algorithm, 382-384
- exponentiation, 387-390
F
- Fermats theorem, 391
- formatData function, 94
- FORMCIPHER subroutine, 34, 354
- formCipheredMessage function, 42
- FOR-NEXT statement, 35, 41
- frequency analysis, 136, 217, 221
G
- getFileToDecipher function, 94
- getKeyword function, 100
- getMessage function, 42
- getShiftKey function, 42, 94
- GOSUB statement, 67
- greatest common divisor, 382
- GROUPBY5 subroutine, 47-48, 354
- modified, 63-64
I
- INITIALIZE subroutine, 33, 96, 354
- modified, 105, 356-358
- INPUT statement, 34
- INT function, 279
- interval extraction, 143-144
- interval function, 187
- INTERVAL subroutine, 151-152, 354
K
- Kerckhoffs method, 234
- key, 4, 8-10
- distribution, 11, 13-14
- generation, 11, 13, 391
- management, 12-14
- key space, 8-10
- keyword phrase, 96
- KEYWORD subroutine, 96, 98-99, 354, 358-359
- keyword-based mixed alphabet, 95
- combining with alphabetic shift key, 104
- constructing, 95-96
- keyword-based monoalphabetic substitution,
- deciphering process, 125-133
- enciphering process, 106-125
- weaknesses of, 135-136
L
- LEN statement, 40
- LTRIM$ statement, 58
M
- MAGIC, 17
- Manhattan Project, 143
- matrix-based systems,
- automating, 144-216
- decipherment of, 211-216
- encipherment of, 144-211
- matrix-based transposition, 137-144
- mnemonic key, 98
- modular addition, 375-377
- modular arithmetic, 375-380
- finding multiplicative inverse in, 380
- modular multiplication, 378-380
- modular subtraction, 378
- modulo arithmetic, 6-8
- modulo 9 arithmetic, 376
- modulo 26 arithmetic, 291
- encipherment/decipherment, 291-292
- monoalphabetic substitution, 23
- transposition-based, 137-144
- monoalphabetic unilateral substitution, 23
- MSGDCIPHER subroutine, 354
- MSGENCIPHER subroutine, 40-41, 354
- MSGFILE subroutine, 57-58, 354
- multiple-line messages, processing, 56-57
- multiplicative inverses, 380
N
- numeric transposition, 141-143
- numeric-based transposition alphabet, 142
- numericExtraction function, 187
O
- Oite, 48
- one-time pad, 277-278
P
- PA-K2, 48
- PCONVERTSTORE subroutine, 237-238
- periodic polyalphabetic substitution, 230-233
- PFORMCIPHER subroutine, 236-237
- modified, 360
- plaintext, 3, 5
- plaintext alphabet, 18, 25
- Playfair cipher, 218-219
- pocket cipher, 229
- polyalphabetic substitution systems, 221-234
- periodic, 230-233
- simple, 223-229
- weaknesses of, 234
- prime numbers, 381
- large, 391-392
- locating, 391-392
- Mersenne primes, 381
- Sophie Germain primes, 381
- twin primes, 381
- PRINTIT subroutine, 224
- printResults function, 42
- private key based encryption, 10-12
- private key encryption, 371
- private key generation, RSA, 386
- probability of decipherment, reducing, 232-233
- probable word attack, 229
- program listings
- ASCII.CPP, 309-310
- CIPHER1.BAS, 33-34
- CIPHER1.CPP, 35-39
- CIPHER2.BAS, 39-40
- CIPHER2.CPP, 42-47
- CIPHER3.BAS, 49-50
- CIPHER3.CPP, 51-56
- CIPHER4.BAS, 64-67
- CIPHER4.CPP, 70-81
- CIPHER5.BAS (main portion), 105
- CIPHER5.CPP, 109-125
- CIPHER6.BAS, 184-185
- CIPHER6.CPP, 187-211
- CIPHERTR.BAS (main portion), 148-149
- CIPHERTR.CPP, 161-183
- combining random number sequence and three-numeric key, 304
- COUNT.CPP, 240-245
- DCIPHER4.BAS (main portion), 86
- DCIPHER4.CPP, 88-94
- DCIPHER5.BAS (main portion), 127-128
- DCIPHER5.CPP, 132-133
- DCIPHER6.BAS (main portion), 212
- DCIPHER6.CPP (decipher function),215-216
- DPOLY2.BAS (main portion), 263
- DPOLY2.CPP, 267-269
- DPOLY2.CPP (decipher and getFileToDecipher functions), 269-271
- DRANDOM2.BAS, 292-293
- DRANDOM2.CPP, 295-299
- DRANDOM3.BAS (main portion), 332
- DRANDOM3.CPP, 336-345
- ENCIPHER.BAS (main portion), 356
- POLY1.BAS, 224-225
- POLY1.CPP, 226-228
- POLY2.BAS (main portion), 235-236
- POLY2.CPP, 246-262
- POSITION.BAS, 313
- POSITION.CPP, 314-317
- random number generator, 301-302
- RANDOM1.BAS, 280
- RANDOM1.CPP, 283-285
- RANDOM2.BAS, 281
- RANDOM2.CPP, 286-291
- RANDOM3.BAS (statements in main portion), 319
- RANDOM3.CPP, 322-331
- ROTOR.BAS, 347-348
- RTEST.BAS, 318
- SHIFT.BAS, 28
- SHIFT.CPP, 29-30
- TRANSPORT.CPP, 153-161
- using ASCII character values, 308
- WORD.BAS, 96-97
- WORD.CPP, 100-103
- PRTOUT subroutine, 35, 60-63, 354
- pseudo-random number generator, creating, 305-306
- pseudo-random number sequences, 273, 276
- generating, 276-279
- pseudo-random sequence, 16
- public key based encryption, 10-12
- public key encryption, 369-370
- advantages, 373
- disadvantages, 373-374
- general operation of, 369-370
- public key generation, RSA, 386
- PURPLE, 17
Q
- QuickBASIC language, 19
R
- random number generation, 277-279
- alternative process for, 345-351
- random number generator, creating, 305
- random number sequences, 273
- generating, 275
- random numbers, 273
- extending security of, 301, 303
- RANDOMIZE SEED1 statement, 349
- RANDOMIZE SEED2 statement, 349
- RANDOMIZE statement, 278-279
- RCONVERTSTORE subroutine, 319-321, 354
- modified, 360-361
- RDCONVERTSTORE subroutine, 332-333, 355
- REM statement, 98
- repetition period, 231
- RESTORE statement, 106
- reverse ciphertext alphabet, 31
- RND function, 276-277
- ROTOR subroutine, 350
- RSA, 385-387
S
- SETUP subroutine, 354, 361-362
- simple transposition, 140-141
- six-position code, 310-312
- slash character (/), 58
- subroutines,
- CONVERTSTORE, 58-60, 354
- DCONVERTSTORE, 129-130, 354
- DECIPHER, 84, 354
- DMSGFILE, 82-84, 128-129, 264, 354
- DPRTOUT, 85, 354
- ENCIPHER, 282
- FORMCIPHER, 34-35, 354
- GROUPBY5, 47-48, 354
- GROUPBY5, modified, 63-64
- INITIALIZE, 33, 96, 354
- INITIALIZE, modified, 105, 356-358
- INTERVAL, 151-152, 354
- KEYWORD, 96, 98-99, 354, 358-359
- MSGDCIPHER, 354
- MSGENCIPHER, 40-41, 354
- MSGFILE, 57-58, 354
- PCONVERTSTORE, 237-238
- PFORMCIPHER, 236-237
- PFORMCIPHER, modified, 360
- PRINTIT, 224
- PRTOUT, 35, 60-63, 354
- RCONVERTSTORE, 319-321, 354
- RCONVERTSTORE, modified, 360-361
- RDCONVERTSTORE, 332-333, 355
- ROTOR, 350
- SETUP, 354, 361-362
- SPCONVERTSTORE, 264-265
- TABLE, 224
- TRANSPORT, 145-148, 354
- substitution cipher systems, 15-17
- symmetric key system, see private key based encryption
T
- TABLE subroutine, 224
- totient function, 384-385
- TRANSPORT subroutine, 145-148, 354
- transposition,
- matrix-based, 137-144
- simple, 140-141
- transposition cipher systems, 15, 17-18
- transposition-based monoalphabetic substitution, 137-144
U
- unilateral substitution, 23-24
- UUDECODE, 18
- UUENCODE, 18
V
- Vigenére cipher system, 223-229
- basic tableau, 223-224
- encipherment, 228-229
W
- WHILE-WEND loop, 62