home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 100 / 31 / crypt1.doc < prev    next >
Text File  |  1984-04-14  |  21KB  |  465 lines

  1.  
  2.  
  3.                                                            PAGE 1
  4.  
  5.  
  6.  
  7.                              PC-CRYP1
  8.  
  9.                DATA ENCRYPTION AND DECRYPTION PROGRAM
  10.  
  11.                         COPYRIGHT 1984 BY
  12.                         JAMES T. DEMBERGER
  13.                       7280 60TH AVENUE NORTH
  14.                      ST PETERSBURG, FL  33709
  15.                        COMPUSERVE 74425,1642
  16.  
  17.      THIS IS A USER SUPPORTED PROGRAM.  IF YOU USE PC-CRYP1 AND FIND IT
  18. OF VALUE, YOUR CONTRIBUTION ($5 SUGGESTED) WILL BE APPRECIATED.  YOU
  19. ARE ENCOURAGED TO COPY AND SHARE THIS PROGRAM WITH OTHER USERS SO LONG
  20. AS THE PROGRAM IS NOT DISTRIBUTED IN MODIFIED FORM AND THIS NOTICE IS
  21. NOT BYPASSED OR REMOVED.
  22.  
  23.                                  INDEX
  24.  
  25.                         INTRODUCTION         1
  26.                         SYSTEM REQUIREMENTS  1
  27.                         SYSTEM SETUP         2
  28.                         VERNAM ENCRYPTION    2
  29.                         RUNNING PC-CRYP1     3
  30.                         PROCESSING FILES     5
  31.                         DOUBLE ENCRYPTION    7
  32.                         MISCELLANEOUS        7
  33.  
  34.                               INTRODUCTION
  35.  
  36.      THE PROGRAM HAS TWO MAIN FUNCTIONS:  DEMONSTRATION OF THE
  37. ENCRYPTION AND DECRYPTION PROCESS USING TEST CHARACTER STRINGS AND THE
  38. ENCRYPTION AND DECRYPTION OF SEQUENTIAL DATA FILES IN CHARACTER OR
  39. ASCII FORMAT.  THE PROGRAM ASSUMES THAT A FILE TO BE ENCRYPT IS A
  40. SEQUENTIAL FILE OF RECORDS THAT CAN BE READ WITH THE STATEMENT LINE
  41. INPUT #1, STRING.VARIABLE.NAME$.  ENCRYPTION AND DECRYPTION OF DATA
  42. FROM SEQUENTIAL OR RANDOM FILES WITH RECORDS THAT HAVE MORE THAN ONE
  43. STRING FIELD OR BOTH STRING AND NUMERIC FIELDS WILL REQUIRE MERGING
  44. SUBROUTINES USED BY THIS PROGRAM INTO THE PROGRAMS USED TO PROCESS
  45. THESE FILES.  ALL ENCRYPTION, DECRYPTION AND FILE OR RECORD PROCESSING
  46. IS DONE BY SUBROUTINES.  ALL THE VARIABLE NAMES USED IN THE PROGRAM
  47. HAVE EXPLICITLY ASSIGNED ATTRIBUTES (%,!,#,$) AND ONE OF THE CHARACTERS
  48. IN A NAME IS A PERIOD.  THERE IS LITTLE LIKELYHOOD THAT YOU WILL HAVE
  49. ANY DUPLICATION OF NAMES WHEN THE SUBROUTINES ARE MERGED INTO OTHER
  50. PROGRAMS.
  51.  
  52.                               SYSTEM REQUIREMENTS
  53.  
  54.      THE PROGRAM IS WRITTEN IN IBM PC BASIC AND RUNS ON AN IBM PC WITH
  55. 64 K OR MORE OF MEMORY, AN IBM OR MX-80 PRINTER, EITHER A COLOR OR
  56. MONOCHROME DISPLAY AND ONE OR MORE DISK DRIVES.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.                                                                PAGE 2
  70.                              SYSTEM SETUP
  71.  
  72.      PC-CRYP1 MAY BE RUN AS INTERPRETED OR COMPILED BASIC.  INTERPRETED
  73. BASIC WILL ENCRYPT OR DECRYPT STRINGS AT A RATE OF APPROXIMATELY 12
  74. CHARACTERS PER SECOND WHILE COMPILED BASIC WILL ENCRYPT OR DECRYPT
  75. STRINGS AT A RATE OF APPROXIMATELY 350 CHARACTERS PER SECOND.  COPY
  76. PC-CRYP1.BAS TO A SYSTEM OR DATA DISKETTE IF YOU ARE ONLY INTERESTED IN
  77. SEEING HOW THE PROGRAM RUNS.  COMPILE PC-CRYP1.BAS AND COPY THE .EXE
  78. FILE TO A DATA OR SYSTEM DISKETTE IF YOU WANT TO TAKE ADVANTAGE OF THE
  79. FASTER ENCRYPTION AND DECRYPTION RATE.
  80.  
  81.                           VERNAM ENCRYPTION
  82.  
  83.      BACK IN 1917, GILBERT S. VERNAM DEVELOPED AN ENCRYPTION PROCESS
  84. FOR MESSAGES PUNCHED IN PAPER TAPE USING BAUDOT OR FIVE CHANNEL
  85. TELETYPE CODE.  HE USED THE ELECTRO-MECHANICAL EQUIVALENT OF A LOGICAL
  86. EXCLUSIVE OR OPERATION (XOR) ON EACH CHARACTER CODE IN A MESSAGE TAPE
  87. AND A CORRESPONDING CHARACTER CODE IN A KEY TAPE TO PRODUCE A THIRD
  88. TAPE WITH THE ENCRYPT MESSAGE.  DECRYPTION USED THE SAME PROCESS EXCEPT
  89. THAT A TAPE WITH THE ENCRYPT MESSAGE AND A COPY THE KEY TAPE WERE XORED
  90. TO PRODUCE THE DECRYPT MESSAGE.  THE PROGRAM USES ESSENTIALLY THE SAME
  91. PROCESS EVEN TO THE EXTENT OF USING A FIVE BIT PATTERN TO ENCRYPT AND
  92. DECRYPT DATA.
  93.  
  94.      ONE PROBLEM WITH THE ORIGINAL VERNAM PROCESS RELATED TO THE KEY
  95. TAPES.  FOR A SECURE SYSTEM, THE CHARACTERS IN THE KEY TAPES HAD TO BE
  96. IN RANDOM ORDER AND THE NUMBER OF CHARACTERS IN A KEY TAPE HAD TO
  97. EXCEED THE NUMBER OF CHARACTERS IN THE MESSAGE TO BE ENCRYPT.  THE
  98. SOLUTION TO THE LENGTH PROBLEM WAS TO USE THE XORED OUTPUT OF TWO
  99. TAPES, ONE WITH 999 CHARACTERS AND THE OTHER WITH 1000 CHARACTERS, TO
  100. CREATE A KEY WITH AN EFFECTIVE LENGTH OF 999,000 CHARACTERS.  THE
  101. PROGRAM GENERATES AS MANY RANDOM CHARACTERS AS ARE REQUIRED FOR ANY
  102. PRACTICAL MESSAGE LENGTH.  THERE IS NO NEED TO STORE THE RANDOMLY
  103. GENERATED CHARACTERS SINCE THE GENERATION PROCESS WILL CONSISTENTLY
  104. PRODUCE THE SAME CHARACTERS IN THE SAME SEQUENCE.
  105.  
  106.      ANOTHER PROBLEM RELATED TO SIX OF THE 32 TELETYPE CODES.  THESE
  107. SIX CODES WERE TELETYPE CONTROL CODES (SHIFT UP, SHIFT DOWM ETC.) AND
  108. REQUIRED SPECIAL CONSIDERATION.  XORING TWO EIGHT BIT ASCII CODES
  109. CREATES THE SAME PROBLEM IN THAT THE RESULTING VALUE MAY BE A DISPLAY,
  110. PRINTER OR COMMUNICATIONS CONTROL CODE.  THE FIVE BIT CODE WITH BINARY
  111. VALUES FROM 0 THRU 31 USED BY VERNAM OFFERS A SOLUTION TO THIS PROBLEM.
  112. XORING ANY NUMBER FROM 0 THRU 31 WITH ANY OF THE ASCII CODES 32 THRU
  113. 255 NEVER RESULTS IN A VALUE LESS THAN 32.  THE PROGRAM USES ONLY XOR
  114. VALUES OR CODES FROM 0 THRU 31; ENCRYPTION WILL NOT PRODUCE ANY CODES
  115. THAT CORRESPOND TO CONTROL CODES FOR THE DISPLAY, PRINTER OR A
  116. COMMUNICATIONS LINK.
  117.  
  118.      THE PROGRAM'S COUNTERPART OF THE TWO KEY TAPES IS A SET OF THREE
  119. COUNTERS THAT ARE USED AS INDEXES OR POINTERS TO A CODE LIST, IN RANDOM
  120. ORDER, OF 103 CODES THAT RANGE IN VALUE FROM 0 THRU 31.  THE COUNTERS
  121. ARE RESET TO 1 WHEN THEY REACH A MAXIMUM COUNT OF 97, 101 AND 103
  122. RESPECTIVELY.  THE EFFECTIVE KEY LENGTH IS 1,009,091; THE LEAST COMMON
  123. MULTIPLE OF THE PRIME NUMBERS 97, 101 AND 103.  THE COUNTERS POINT TO
  124. THE THREE CODES THAT ARE XORED WITH AN ASCII CHARACTER CODE FOR
  125. ENCRYPTION AND DECRYPTION.
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.                                                                PAGE 3
  136.                             RUNNING PC-CRYP1
  137.  
  138. USING INTERPRETED BASIC - FROM DOS READY KEY [DR:]BASIC [DR:]PC-CRYP1
  139.      THEN PRESS THE ENTER KEY.
  140.  
  141. USING COMPILED BASIC - FROM DOS READY KEY [DR:]PC-CRYP1 THEN PRESS THE
  142.      ENTER KEY.
  143.  
  144.      A DEFAULT OPTION IS SHOWN FOR THE RESPONSE TO MOST PROMPTS
  145. DISPLAYED BY THE PROGRAM.  AS AN EXAMPLE, A PROMPT FOR A YES OR NO
  146. RESPONSE WILL DISPLAY "Y/N".  PRESS ENTER TO TAKE THE NO DEFAULT OPTION
  147. INDICATED BY THE UPPERCASE N.  EITHER A LOWER CASE Y OR AN UPPERCASE Y
  148. MUST BE PRESSED FOR THE YES RESPONSE.  IF ONLY LOWER CASE OPTIONS OR NO
  149. OPTION IS SHOWN, AN ENTRY OTHER THAN THE ENTER KEY MUST BE USED.
  150.  
  151.      THE FIRST DISPLAY IS A "USERWARE" COMMERCIAL THAT IS REPLACED BY
  152. THE FOLLOWING DISPLAY:
  153.  
  154.                         SELECT NEW PASSWORD
  155.  
  156.             PRESS V FOR A VISIBLE DISPLAY OF PASSWORD OR
  157.                 PRESS ENTER FOR NON-VISIBLE DISPLAY _
  158.  
  159.                    OLD PASSWORD IS
  160.  
  161.                    ENTER NEW PASSWORD _
  162.  
  163.      ALL ENCRYPTION AND DECRYPTION IS CONTROLLED BY THE SEED USED FOR
  164. THE RANDOM CODE GENERATION AND THE INITIAL VALUES FOR THE THREE
  165. COUNTERS USED AS POINTERS TO THE 103 RANDOM CODES.  THE ASCII CODES FOR
  166. THE CHARACTERS IN THE PASSWORD ARE USED TO COMPUTE THE SEED NUMBER AND
  167. THE INITIAL SETTINGS FOR THE THREE COUNTERS.  A SEED NUMBER FROM 0 TO
  168. 32767 IS COMPUTED USING THE ASCII CODES FOR THE FIRST FIVE CHARACTERS
  169. OF THE PASSWORD.  THE INITIAL SETTING FOR THE COUNTERS (0 THRU 99) IS
  170. COMPUTED FROM THE LAST SIX CHARACTERS OF THE PASSWORD.  IF THE LENGTH
  171. OF THE PASSWORD ENTERED IN RESPONSE TO THE PROMPT HAS LESS THAN ELEVEN
  172. CHARACTERS, THE CHARACTERS ARE REPEATED UNTIL THEY CREATE A STRING OF
  173. ELEVEN OR MORE CHARACTERS.  PASSWORDS MAY BE MORE THAN ELEVEN
  174. CHARACTERS LONG HOWEVER ONLY THE LEFT-MOST ELEVEN CHARACTERS OR SPACES
  175. ARE USED TO COMPUTE THE SEED NUMBER AND THE INITIAL VALUES FOR THE
  176. COUNTERS.
  177.  
  178.      FOR SECURITY, PASSWORDS MAY BE KEYED IN A NON-DISPLAY MODE.  PRESS
  179. V FOR THE FIRST PROMPT FOR A VISIBLE DISPLAY OF THE PASSWORDS.  UPPER
  180. OR LOWER CASE LETTERS, NUMBERS, SPACES OR SYMBOLS MAY BE USED WHEN
  181. KEYING PASSWORDS.  THE RANDOMIZE AND RND FUNCTIONS DO NOT, IN SOME
  182. CASES, GENERATE THE SAME SEQUENCE OF RANDOM NUMBERS ON DIFFERENT
  183. SYSTEMS OR ON SIMILAR SYSTEMS WITH DIFFERENT VERSIONS OF BASIC.  THE
  184. PROGRAM USES A ROUTINE FOR GENERATION OF RANDOM NUMBERS THAT RESULTS IN
  185. IDENTICAL RANDOM VALUES FOR THE CODE LIST REGARDLESS OF THE SYSTEM OR
  186. THE VERSION OF BASIC THAT IS USED TO RUN THE PROGRAM.  THE RANDOM CODE
  187. VALUES ARE DISPLAYED AS THEY ARE GENERATED THEN THE PROGRAM PROMPTS FOR
  188. THE PC-CRYP1 MENU.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.                                                                PAGE 4
  202.                        PC-CRYP1 MENU
  203.  
  204.                P  SELECT NEW PASSWORD
  205.                F  PROCESS FILES
  206.                S  ENCRYPT & DECRYPT TEST STRINGS
  207.                T  TIMER ON/OFF
  208.                X  EXIT/END PROGRAM
  209.  
  210.      THE PROGRAM SELECTED THE FIRST OPTION BEFORE THE MENU DISPLAY
  211. SINCE THE SECOND AND THIRD OPTION CANNOT BE USED UNLESS A PASSWORD HAS
  212. BEEN ENTERED.  USE THE SELECT NEW PASSWORD OPTION TO CHANGE TO A
  213. DIFFERENT PASSWORD.  THE PROCESS FILES OPTION IS COVERED IN DETAIL IN
  214. THE NEXT SECTION.
  215.  
  216.      THE ENCRYPT & DECRYPT TEST STRINGS OPTION DISPLAYS A SUBMENU FROM
  217. WHICH YOU MAY SELECT FOUR DIFFERENT TYPES OF STRINGS FOR ENCRYPTION AND
  218. DECRYPTION.  THE ORIGINAL, ENCRYPT AND DECRYPT STRINGS ARE DISPLAYED.
  219. THIS OPTION IS PRIMARILY USED TO LOOK AT THE PATTERN OF CHARACTERS
  220. PRODUCED WHEN YOU ENCRYPT STRINGS OF UPPER CASE, LOWER CASE AND NUMERIC
  221. CHARACTERS.  KEYBOARD INPUT OF TEST RECORDS ACCEPTS ASCII CODES ENTERED
  222. WITH THE ALT KEY AND NUMERIC KEYS.
  223.  
  224.      TURNING THE TIMER ON ACTIVATES STATEMENTS THAT ACCUMULATE THE
  225. TOTAL NUMBER OF CHARACTERS ENCRYPT OR DECRYPT AND THE TOTAL TIME
  226. REQUIRED.  THE PROGRAM USES THESE TOTALS TO COMPUTE AND DISPLAY THE
  227. THRUPUT IN CHARACTERS PER SECOND.  INTERPRETED BASIC HAS A THRUPUT OF
  228. APPROXIMATELY 12 CHARACTERS PER SECOND; COMPILED BASIC HAS A THRUPUT OF
  229. APPROXIMATELY 350 CHARACTERS PER SECOND.
  230.  
  231.      A SINGLE SUBROUTINE WITH TWO ENTRY POINTS OR LINES, ONE FOR
  232. ENCRYPTION AND THE OTHER FOR DECRYPTION, PERFORMS THE ACTUAL ENCRYPTION
  233. AND DECRYPTION.  THE VARIABLE CTR.SET% MUST TO SET EQUAL TO 1 BEFORE
  234. USING THE SUBROUTINE FOR ENCRYPTION OR DECRYPTION OF A FILE OR OF A
  235. GROUP OF RECORDS.  CTR.SET% IS USED AS A FLAG OR SWITCH THAT, WHEN SET
  236. EQUAL TO 1, CAUSES THE THREE COUNTERS TO BE RESET TO THE INITIAL VALUES
  237. COMPUTED FROM THE PASSWORD IN USE.  IF THE SUBROUTINE IS USED IN OTHER
  238. PROGRAMS, DO NOT SET CTR.SET%=1 EXCEPT FOR THE FIRST RECORD OF A FILE
  239. OR FOR THE FIRST STRING OR RECORD OF A GROUP OF STRINGS OR RECORDS.  IN
  240. SOME CASES, A CHARACTER ENCRYPTS TO THE SAME CHARACTER.  THIS IS NOT
  241. AN ERROR; IT MAKES ANY ATTEMPT AT UNAUTHORIED DECRYPTION MORE RATHER
  242. THAN LESS DIFFICULT.  CHARACTER STRINGS OR RECORDS TO BE ENCRYPT MAY
  243. HAVE CHARACTERS WITH CHARACTER CODES 0 THRU 255.  CHARACTERS WITH ASCII
  244. CODES FROM 0 THRU 31 ARE NOT ENCRYPT.
  245.  
  246.      THE ENCRYPTION/DECRYPTION SUBROUTINE USES ASCII CODE 7 OR CONTROL
  247. G AS AN ESCAPE ENCRYPTION CODE.  THE FIRST CONTROL G SENT TO THE
  248. ENCRYPTION/DECRYPTION SUBROUTINE TURNS ENCRYPTION/DECRYPTION OFF, THE
  249. SECOND CONTROL G TURNS ENCRYPTION/DECRYPTION BACK ON.  FOR EXAMPLE,
  250. PRINTER CONTROL SEQUENCES, INSTRUCTIONS OR MESSAGES PRECEEDED AND
  251. FOLLOWED BY CONTROL G WILL NOT BE ENCRYPT.  THE ESCAPE ENCRYPTION CODE
  252. IS PRIMARILY USED WITH KEYBOARD INPUT TO PREPARE HEADER MESSAGE FILES
  253. CONTAINING INFORMATION THAT IS TO ESCAPE ENCRYPTION.  HOLD THE CTRL KEY
  254. AND PRESS THE LETTER G KEY TO ENTER THE ASCII 7 ESCAPE CODE.  ANY FILES
  255. OR RECORDS THAT USE CONTROL G AS A BELL (OR BEEP) CODE MUST BE CHANGED
  256. TO USE TWO CONSECUTIVE CONTROL G'S SO THAT ENCRYPTION/DECRYPTION WILL
  257. CONTINUE AFTER THE BELL CODES.
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.                                                                PAGE 5
  268.                              PROCESS FILES
  269.  
  270.      THE PROCESS DISKETTE FILES OPTION DISPLAYS THE FOLLOWING
  271. PROMPTS:
  272.  
  273.           ENTER INPUT  DR:FILENAME.EXT OR KEYBD  _
  274.           ENTER OUTPUT DR:FILENAME.EXT OR NOFILE _
  275.                     ENCRYPT OR DECRYPT? E/D _
  276.           USE LOWER CASE TO UPPER CASE CONVERT? Y/N _
  277.           USE SPACE TO ^(94) & ~(126) CONVERT? Y/N _
  278.                     PRINT INPUT TEXT? Y/N _
  279.                     PRINT OUTPUT TEXT? Y/N _
  280.  
  281.      ENTER KEYBD FOR THE INPUT FILE PROMPT TO ENTER RECORDS FROM THE
  282. KEYBOARD RATHER THAN FROM A DISKETTE FILE.  KEYBOARD INPUT IS PRIMARILY
  283. USED TO PREPARE HEADER RECORDS THAT CONTAIN DATA PRECEEDED AND FOLLOWED
  284. BY CONTROL G ESCAPE ENCRYPTION CODES.  RECORDS INPUT FROM THE KEYBOARD
  285. MAY NOT BE LONGER THAN 79 CHARACTERS.  ENTER NOFILE FOR THE OUTPUT FILE
  286. PROMPT IF YOU WANT TO PRINT THE OUTPUT FILE BUT NOT WRITE IT TO
  287. DISKETTE.
  288.  
  289.      A YES RESPONSE TO THE USE LOWER CASE TO UPPER CASE CONVERT? Y/N
  290. PROMPT WILL RESULT IN ALL LOWER CASE LETTERS BEING ENCODED AS UPPER
  291. CASE LETTERS.  THIS PROMPT IS NOT DISPLAYED IF DECRYPTION IS SELECTED
  292. SINCE THE CONVERSION IS NOT REVERSIBLE.
  293.  
  294.      A Y(ES) OR ENTER RESPONSE TO THE "USE SPACE TO ^(94) & ~(126)
  295. CONVERT?  Y/N" PROMPT WILL RESULT IN ASCII CODES 94 AND 126 BEING USED
  296. AS SUBSTITUTE CODES FOR A SPACE (ASCII CODE 32) WHEN ENCRYPTING DATA.
  297. 94 IS USED AS A SUBSTITUTE FOR 32 WHEN THE PRECEEDING CHARACTER HAS AN
  298. ASCII CODE LESS THAN 96; 126 IS USED AS THE SUBSTITUTE CHARACTER WHEN
  299. THE PRECEEDING CHARACTER HAS AN ASCII CODE GREATER THAN 95.  THESE
  300. SUBTITUTIONS ARE MADE TO PREVENT CREATION OF A PATTERN IN THE ENCRYPT
  301. DATA THAT WOULD INDICATE THE SPACES BETWEEN WORDS.  DECRYPTION DOES NOT
  302. REVERSE THIS SUBSTITUTION; ANY ASCII CODE 94 OR 126 THAT WAS IN A
  303. STRING OR RECORD BEFORE ENCRYPTION WILL BE REPLACED BY A BLANK IN THE
  304. DECRYPT STRING OR RECORD.  THESE TWO CHARACTER CODES SELDOM APPEAR IN
  305. ORDINARY TEXT; THEIR LOSS MAY NOT EVEN BE NOTICED.
  306.  
  307.      WITH MINOR EXCEPTIONS, MOST SEQUENTIAL FILES IN ASCII FORMAT MAY
  308. BE USED AS INPUT FOR ENCRYPTION.  THE EXCEPTIONS ARE THOSE FILES THAT
  309. CONTAIN ASCII CODES 7, 94 OR 126.  USE OF THESE CODES HAVE CERTAIN
  310. LIMITATIONS OUTLINE IN THE PRECEEDING PARAGRAPHS.  ASCII CODE 126 IS
  311. ALSO USED AS A SUBSTITUTE FOR THE NON-PRINTING ASCII CODES 7 AND 127
  312. WHEN PRINTING ENCRYPT DATA.
  313.  
  314.      SEQUENTIAL FILES PRODUCED BY SOME WORD PROCESSOR PROGRAMS HAVE
  315. RECORDS THAT CONTAIN FORMAT OR PRINTER CONTROL SEQUENCES THAT USE ASCII
  316. CODES 0 THRU 31.  PRINTER CONTROL CODES THAT USE AN ESCAPE CODE (ASCII
  317. 27) FOLLOWED BY A CHARACTER CODE WILL BE CHANGED, WHEN ENCRYPT, TO
  318. OTHER PRINTER CONTROL CODES.  PRINTING AN ENCRYPT FILE THAT HAS PRINTER
  319. CONTROL CODES MAY RESULT IN TURNING ON DOUBLE STRIKE MODE INSTEAD OF
  320. TURNING OFF EMPHASIZED MODE, ETC.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.                                                                PAGE 6
  334.  
  335.      AN "*C_T_R   R_E_S_E_T*" RECORD IS WRITTEN AS THE LAST RECORD OF
  336. ENCRYPT FILES.  HEADER RECORD FILES AND DATA FILES, ENCRYPT WITH THE
  337. SAME CODE NUMBER OR PASSWORD, MAY BE COMBINED OR CONCANTINATED WITH THE
  338. DOS COPY /A COMMAND.  THE COUNTER RESET RECORD AT THE END OF EACH OF
  339. THE FILES THAT WERE COMBINED FORCES A RESET OF THE COUNTERS AT THE
  340. BEGINNING OF EACH SECTION OF THE COMBINED FILE WHEN IT IS DECRYPT.
  341.  
  342.      AN ENCRYPT DATA FILE MAY BE SENT TO ANOTHER SYSTEM FOR DECRYPTION
  343. USING A COMMUNICATIONS LINK, AS A DISKETTE FILE OR AS PRINTED COPY.
  344. KEYBOARD INPUT OF ENCRYPT DATA FROM A PRINTED COPY SHOULD BE USED ONLY
  345. AS A LAST RESORT SINCE IT IS VERY DIFFICULT TO KEY LONG STRINGS OF
  346. UNRELATED CHARACTERS WITHOUT ERRORS.  ANY OF SEVERAL SCHEMES MAY BE
  347. USED TO INSURE THAT THE RECEIVING OPERATOR KNOWS THE PASSWORD REQUIRED
  348. FOR DECRYPTION.  ONE SCHEME USES AS A PASSWORD AN ELEVEN DIGIT NUMBER
  349. (A PASSNUMBER?) KNOWN TO BOTH THE SENDER AND RECEIVER.  FOR THE SECOND
  350. AND EACH SUCCEEDING MESSAGE, EACH DIGIT OF THE NUMBER IS INCREASED BY
  351. ONE.  FOR EXAMPLE, PASSWORD 12345123456 WILL CHANGE TO 23456234567 FOR
  352. THE SECOND MESSAGE.
  353.  
  354.      THE FOLLOWING STEPS OUTLINE ANOTHER SCHEME THAT ENCODES THE
  355. PASSWORD AND MAKES IT A PART OF AN ENCRYPT DATA FILE.
  356.  
  357. STEP A  SENDER AND RECEIVER AGREE ON A KEY NUMBER TO BE USED TO
  358.         ENCODE THE PASSWORD.  FOR EXAMPLE, THE SENDER'S SOCIAL
  359.         SECURITY NUMBER (123 45 6789) MIGHT BE USED.
  360. STEP B  ASSUME THAT THE SENDER USES PASSWORD 11111223344
  361.         TO ENCRYPT A FILE.
  362. STEP C  SENDER ADDS (WITHOUT CARRY) THE KEY NUMBER, REPEATED AS
  363.         NECESSARY, TO THE PASSWORD NUMBERS USED FOR ENCRYPTION.
  364.                11111223344
  365.                12345678912
  366.                23456891256
  367. STEP D  THE SENDER CREATES A HEADER MESSAGE FILE WITH THE
  368.         NUMBER 23456891256, PRECEEDED AND FOLLOWED BY A
  369.         CONTROL G ESCAPE ENCRYPTION CODE, USING THE SAME
  370.         PASSWORD TO ENCRYPT THIS FILE AS WAS USED TO ENCRYPT
  371.         THE DATA FILE.  THE DATA FILE IS CONCANTINATED TO
  372.         THE HEADER MESSAGE FILE AND THE COMBINED FILE IS SENT
  373.         TO THE RECEIVER.
  374. STEP E  RECEIVER RECOVERS THE PASSWORD TO BE USED FOR
  375.         DECRYPTION BY SUBTRACTING (WITHOUT CARRY) THE KEY NUMBER
  376.         FROM THE NUMBER FOUND IN THE HEADER MESSAGE.
  377.                23456891256
  378.                12345678912
  379.                11111223344
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.                                                                PAGE 7
  400.                            DOUBLE ENCRYPTION
  401.  
  402.      UNAUTHORIZED DECRYPTION CAN BE MADE EVEN MORE IMPROBABLE IF THE
  403. ENCRYPT DATA IS ENCRYPT A SECOND TIME.  A NO (PRESS N KEY) RESPONSE TO
  404. THE "USE SPACE TO ^(94) & ~(126) CONVERT?  Y/N" PROMPT MUST BE USED
  405. WHEN ENCRYPT DATA IS ENCRYPT A SECOND TIME AND WHEN THE DOUBLE ENCRYPT
  406. DATA IS BEING DECRYPT.  A PASSWORD DIFFERENT FROM THAT USED FOR THE
  407. FIRST ENCRYPTION MUST BE USED FOR THE SECOND ENCRYPTION.  THIS SAME
  408. PASSWORD MUST BE USED TO DECRYPT THE DOUBLE ENCRYPT DATA; THE RESULTING
  409. SINGLE ENCRYPT DATA IS DECRYPT WITH THE PASSWORD THAT WAS USED FOR THE
  410. FIRST ENCRYPTION.  THE FOLLOWING STEPS OUTLINE THE FILES AND CONVERSION
  411. PROMPT RESPONSES REQUIRED FOR DOUBLE ENCRYPTION AND DECRYPTION:
  412.  
  413. STEP A    PASSWORD USED FOR THIS STEP MUST BE USED FOR STEP D.
  414.        1  INPUT FILE - TEXT FILE TO BE ENCRYPT
  415.        2  ENCRYPT OR DECRYPT? E/D - PRESS E KEY
  416.        3  LOWER TO UPPER CASE CONVERT? - EITHER YES OR NO
  417.        4  SPACE CONVERT? - YES
  418.        5  OUTPUT FILE - SINGLE ENCRYPT FILE FOR INPUT STEP B 1
  419. STEP B    PASSWORD USED FOR THIS STEP MUST BE USED FOR STEP C.
  420.        1  INPUT FILE - SINGLE ENCRYPT FILE FROM STEP A 5
  421.        2  ENCRYPT OR DECRYPT? E/D - PRESS E KEY
  422.        3  LOWER TO UPPER CASE CONVERT? - NO
  423.        4  SPACE CONVERT? - NO
  424.        5  OUTPUT FILE - DOUBLE ENCRYPT FILE FOR INPUT STEP C 1
  425. STEP C    PASSWORD FOR THIS STEP MUST BE THE SAME AS USED FOR STEP B.
  426.        1  INPUT FILE - DOUBLE ENCRTPT FILE FROM STEP B 5
  427.        2  ENCRYPT OR DECRYPT? E/D - PRESS D KEY
  428.        3  LOWER TO UPPER CASE CONVERT? - NOT DISPLAYED
  429.        4  SPACE CONVERT? - NO
  430.        5  OUTPUT FILE - SINGLE ENCRYPT FILE FOR INPUT STEP D 1
  431. STEP D    PASSWORD FOR THIS STEP MUST BE THE SAME AS USED FOR STEP A.
  432.        1  INPUT FILE - SINGLE ENCRYPT FILE FROM STEP C 5
  433.        2  ENCRYPT OR DECRYPT? E/D - PRESS D KEY
  434.        3  LOWER TO UPPER CASE CONVERT? - NOT DISPLAYED
  435.        4  SPACE CONVERT? - YES
  436.        5  OUTPUT FILE - COPY OF FILE INPUT AT STEP A 1, FILE MAY
  437.             BE UPPER CASE ONLY IF RESPONSE AT STEP A 3 WAS YES
  438.  
  439.                            MISCELLANEOUS
  440.  
  441.      ALWAYS KEEP A RECORD OF THE PASSWORD USED TO ENCRYPT ANY FILE THAT
  442. CONTAIN CRITICAL DATA.  IF THE PASSWORD USED TO ENCRYPT A FILE IS NOT
  443. KNOWN, THE FILE IS NOTHING MORE THAN COMPUTER GENERATED GARBAGE.
  444.  
  445.      A DISKETTE WITH BOTH THE SOURCE AND THE COMPILED VERSIONS OF PC-
  446. CRYP1 AND THE DOCUMENTATION FILE IS AVAILABLE FROM THE AUTHOR.  SEND
  447. A DISKETTE IN A STAMPED SELF-ADDRESSED MAILER FOR A FREE COPY OF THE
  448. DISTRIBUTION DISKETTE OR JUST SEND YOU NAME AND ADDRESS AND $10.00 AND
  449. I'LL SUPPLY THE DISKETTE, MAILER AND POSTAGE.
  450.  
  451. VERSION 3.1  30 JANUARY 1984
  452.  
  453.  
  454.  
  455.         This disk copy was originally provided by "The Public Library",
  456.         the software library of the Houston Area League of PC Users.
  457.         Disks in the Public Libray are updated monthly.  Check with us
  458.         for the latest versions of all programs.
  459.  
  460.         Programs are available from the Public Library at $2 per disk
  461.         on user-provided disks.  To get a listing of the disks in the
  462.         Public Library, send a self-addressed, stamped envelope to
  463.  
  464.              Nelson Ford,  P.O.Box 61565,  Houston, TX 77208.
  465.