Cryptography ( Codebreaking ) - Deciphering messages encrypted with Lorenz SZ40 cipher machine

Cryptography ( Codebreaking ) - Deciphering messages encrypted with Lorenz SZ40 cipher machine

Cryptography ( Codebreaking ) - Deciphering messages encrypted with Lorenz SZ40 cipher machine

The Vernam cipher implemented by the Lorenz SZ40 machines utilizes the Boolean "exclusive or" ( XOR ) function.

Note: Tests only

33 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

A set of KNL server ( 64 cores ) tests...

 [ Intel C++ compiler build messages on Linux ]

  icpc @./BuildCfg/IccXxx.Bin64.cfg -o GccTestApp64.out

  *** ScaLib Message: Compiling with Intel C++ compiler v17.0.4 ***
  *** ScaLib Message: Configuration - Desktop - _POS64_GCC - RELEASE ***
  *** ScaLib Message: Compiling for Intel Processing Unit ( 64-bit x86_64 ) ***
  *** ScaLib Message: Default IRT-Domain MIC-AVX512 ***
  *** ScaLib Message: Classic Processing Model ***
  *** ScaLib Message: Declaration of IRT-Domains ***
  *** ScaLib Message: Multibyte Character Set ***
  *** ScaLib Message: Support of HRT-Functions Enabled ***
  *** ScaLib Message: Support of IRT-Domains Enabled ***

 

 [ Number of OpenMP Threads :    8 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 08 16 08 08 04 12 14 08 04 16 02 08 05 16 08 12 04 08 16 16 08 08 14 08 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 08 16 08 08 04 12 14 08 04 16 02 08 05 16 08 12 04 08 16 16 08 08 14 08 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: @UDDK,BGVULR%CRT\(SYX@KZ
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 8
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: '@UDD' - Crib: 'HELL' - Keys: 08 16 08 08 - Offset:  0
   Cipher: 'K,BG' - Crib: 'O LO' - Keys: 04 12 14 08 - Offset:  4
   Cipher: 'VULR' - Crib: 'RENZ' - Keys: 04 16 02 08 - Offset:  8
   Cipher: '%CRT' - Crib: ' SZX' - Keys: 05 16 08 12 - Offset: 12
   Cipher: '\(SY' - Crib: 'X CI' - Keys: 04 08 16 16 - Offset: 16
   Cipher: 'X@KZ' - Crib: 'PHER' - Keys: 08 08 14 08 - Offset: 20
   Cipher: 'X@KZ' - Crib: 'WINT' - Keys: 15 09 05 14 - Offset: 20
  Deallocates Memory
  Test Completed in 310169 ms

 

 [ Number of OpenMP Threads :   16 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 12 08 08 16 08 08 08 16 08 08 08 16 12 16 08 04 09 16 14 16 08 16 08 16 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 12 08 08 16 08 08 08 16 08 08 08 16 12 16 08 04 09 16 14 16 08 16 08 16 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: DMD\G(D_ZMFJ,CR\Q0MYXXMB
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 16
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: 'DMD\' - Crib: 'HELL' - Keys: 12 08 08 16 - Offset:  0
   Cipher: 'G(D_' - Crib: 'O LO' - Keys: 08 08 08 16 - Offset:  4
   Cipher: 'ZMFJ' - Crib: 'RENZ' - Keys: 08 08 08 16 - Offset:  8
   Cipher: ',CR\' - Crib: ' SZX' - Keys: 12 16 08 04 - Offset: 12
   Cipher: 'Q0MY' - Crib: 'X CI' - Keys: 09 16 14 16 - Offset: 16
   Cipher: 'XXMB' - Crib: 'PHER' - Keys: 08 16 08 16 - Offset: 20
  Deallocates Memory
  Test Completed in 161136 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :   32 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 12 16 06 16 08 16 16 16 16 16 16 12 08 12 16 08 05 16 02 16 08 08 14 13 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 12 16 06 16 08 16 16 16 16 16 16 12 08 12 16 08 05 16 02 16 08 08 14 13 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: DUJ\G0\_BU^V(_JP]0AYX@K_
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 32
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: 'DUJ\' - Crib: 'HELL' - Keys: 12 16 06 16 - Offset:  0
   Cipher: 'G0\_' - Crib: 'O LO' - Keys: 08 16 16 16 - Offset:  4
   Cipher: 'BU^V' - Crib: 'RENZ' - Keys: 16 16 16 12 - Offset:  8
   Cipher: '(_JP' - Crib: ' SZX' - Keys: 08 12 16 08 - Offset: 12
   Cipher: ']0AY' - Crib: 'X CI' - Keys: 05 16 02 16 - Offset: 16
   Cipher: 'X@K_' - Crib: 'PHER' - Keys: 08 08 14 13 - Offset: 20
   Cipher: 'X@K_' - Crib: 'RENZ' - Keys: 10 05 05 05 - Offset: 20
   Cipher: 'X@K_' - Crib: 'WINT' - Keys: 15 09 05 11 - Offset: 20
  Deallocates Memory
  Test Completed in 80065 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :   64 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 16 08 16 16 08 10 08 08 16 05 16 02 04 06 15 16 16 05 08 08 16 16 08 12 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 16 08 16 16 08 10 08 08 16 05 16 02 04 06 15 16 16 05 08 08 16 16 08 12 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: XM\\G*DGB@^X$UUHH%KA@XM^
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 64
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: 'XM\\' - Crib: 'HELL' - Keys: 16 08 16 16 - Offset:  0
   Cipher: 'G*DG' - Crib: 'O LO' - Keys: 08 10 08 08 - Offset:  4
   Cipher: 'B@^X' - Crib: 'RENZ' - Keys: 16 05 16 02 - Offset:  8
   Cipher: '$UUH' - Crib: ' SZX' - Keys: 04 06 15 16 - Offset: 12
   Cipher: 'H%KA' - Crib: 'O LO' - Keys: 07 05 07 14 - Offset: 16
   Cipher: 'H%KA' - Crib: 'X CI' - Keys: 16 05 08 08 - Offset: 16
   Cipher: '@XM^' - Crib: 'PHER' - Keys: 16 16 08 12 - Offset: 20
  Deallocates Memory
  Test Completed in 41307 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :  128 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 16 08 16 08 12 08 16 08 08 10 16 16 10 16 16 08 16 16 10 16 04 16 08 15 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 16 08 16 08 12 08 16 08 08 10 16 16 10 16 16 08 16 16 10 16 04 16 08 15 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: XM\DC(\GZO^J*CJPH0IYTXM]
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 128
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: 'XM\D' - Crib: 'HELL' - Keys: 16 08 16 08 - Offset:  0
   Cipher: 'C(\G' - Crib: 'O LO' - Keys: 12 08 16 08 - Offset:  4
   Cipher: 'ZO^J' - Crib: 'RENZ' - Keys: 08 10 16 16 - Offset:  8
   Cipher: '*CJP' - Crib: ' SZX' - Keys: 10 16 16 08 - Offset: 12
   Cipher: 'H0IY' - Crib: 'X CI' - Keys: 16 16 10 16 - Offset: 16
   Cipher: 'TXM]' - Crib: 'PHER' - Keys: 04 16 08 15 - Offset: 20
  Deallocates Memory
  Test Completed in 42451 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :  256 ]

  Sub-Test 01 - Generates KeySet values
   Keys         : 05 02 16 04 08 08 16 14 16 16 08 04 08 16 16 12 08 03 16 05 04 08 04 04 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 05 02 16 04 08 08 16 14 16 16 08 04 08 16 16 12 08 03 16 05 04 08 04 04 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: MG\HG(\ABUF^(CJTP#SLT@AV
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 256
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: 'MG\H' - Crib: 'HELL' - Keys: 05 02 16 04 - Offset:  0
   Cipher: 'G(\A' - Crib: 'O LO' - Keys: 08 08 16 14 - Offset:  4
   Cipher: 'BUF^' - Crib: 'RENZ' - Keys: 16 16 08 04 - Offset:  8
   Cipher: '(CJT' - Crib: ' SZX' - Keys: 08 16 16 12 - Offset: 12
   Cipher: 'P#SL' - Crib: 'X CI' - Keys: 08 03 16 05 - Offset: 16
   Cipher: 'T@AV' - Crib: 'WINT' - Keys: 03 09 15 02 - Offset: 20
   Cipher: 'T@AV' - Crib: 'PHER' - Keys: 04 08 04 04 - Offset: 20
   Cipher: 'T@AV' - Crib: 'RENZ' - Keys: 06 05 15 12 - Offset: 20
  Deallocates Memory
  Test Completed in 43021 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :  512 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 12 08 08 16 08 10 16 16 16 08 08 08 08 08 08 16 02 08 16 08 16 16 12 16 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 12 08 08 16 08 10 16 16 16 08 08 08 08 08 08 16 02 08 16 08 16 16 12 16 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: DMD\G*\_BMFR([RHZ(SA@XIB
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 512
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: 'DMD\' - Crib: 'HELL' - Keys: 12 08 08 16 - Offset:  0
   Cipher: 'G*\_' - Crib: 'O LO' - Keys: 08 10 16 16 - Offset:  4
   Cipher: 'BMFR' - Crib: 'RENZ' - Keys: 16 08 08 08 - Offset:  8
   Cipher: '([RH' - Crib: ' SZX' - Keys: 08 08 08 16 - Offset: 12
   Cipher: 'Z(SA' - Crib: 'X CI' - Keys: 02 08 16 08 - Offset: 16
   Cipher: '@XIB' - Crib: 'PHER' - Keys: 16 16 12 16 - Offset: 20
  Deallocates Memory
  Test Completed in 42787 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads : 1024 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 08 08 08 12 08 01 16 08 08 14 04 08 16 06 16 16 16 08 08 08 16 04 04 08 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 08 08 08 12 08 01 16 08 08 14 04 08 16 06 16 16 16 08 08 08 16 04 04 08 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: @MD@G!\GZKJR0UJHH(KA@LAZ
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 1024
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: '@MD@' - Crib: 'HELL' - Keys: 08 08 08 12 - Offset:  0
   Cipher: 'G!\G' - Crib: 'O LO' - Keys: 08 01 16 08 - Offset:  4
   Cipher: 'ZKJR' - Crib: 'RENZ' - Keys: 08 14 04 08 - Offset:  8
   Cipher: 'ZKJR' - Crib: 'WINT' - Keys: 13 02 04 06 - Offset:  8
   Cipher: '0UJH' - Crib: ' SZX' - Keys: 16 06 16 16 - Offset: 12
   Cipher: 'H(KA' - Crib: 'O LO' - Keys: 07 08 07 14 - Offset: 16
   Cipher: 'H(KA' - Crib: 'X CI' - Keys: 16 08 08 08 - Offset: 16
   Cipher: '@LAZ' - Crib: 'PHER' - Keys: 16 04 04 08 - Offset: 20
  Deallocates Memory
  Test Completed in 42839 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads : 2048 ]

  Application - GccTestApp - POS64_GCC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
   Keys         : 16 08 08 04 04 08 08 12 10 08 16 12 16 16 08 08 06 08 08 08 12 08 06 12 
  Sub-Test 02 - Displays KeySet values
   Min Key value: 01
   Max Key value: 16
   Keys         : 16 08 08 04 04 08 08 12 10 08 16 12 16 16 08 08 06 08 08 08 12 08 06 12 
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
   Plain  Text: HELLO LORENZ SZXX CIPHER
   Cipher Text: XMDHK(DCXM^V0CRP^(KA\@C^
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 2048
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441 where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
   Cipher: 'XMDH' - Crib: 'HELL' - Keys: 16 08 08 04 - Offset:  0
   Cipher: 'K(DC' - Crib: 'O LO' - Keys: 04 08 08 12 - Offset:  4
   Cipher: 'XM^V' - Crib: 'RENZ' - Keys: 10 08 16 12 - Offset:  8
   Cipher: 'XM^V' - Crib: 'WINT' - Keys: 15 04 16 02 - Offset:  8
   Cipher: '0CRP' - Crib: ' SZX' - Keys: 16 16 08 08 - Offset: 12
   Cipher: '^(KA' - Crib: 'X CI' - Keys: 06 08 08 08 - Offset: 16
   Cipher: '\@C^' - Crib: 'PHER' - Keys: 12 08 06 12 - Offset: 20
   Cipher: '\@C^' - Crib: 'RENZ' - Keys: 14 05 13 04 - Offset: 20
   Cipher: '\@C^' - Crib: 'WINT' - Keys: 11 09 13 10 - Offset: 20
  Deallocates Memory
  Test Completed in 42878 ms
  > Test1155 End <
  Tests: Completed

 

For evaluation here are an Ivy Bridge ( IVB ) set of tests since that Intel architecture is widely used on super-computing systems. Take into account that in most cases processing on a KNL server with 16 OpenMP threads is almost the same as processing on an IVB system with 8 OpenMP threads.

Shortly speaking in terms of processing speed on these two architectures:

16 threads on KNL ~= 8 threads on IVB

 [ Intel C++ compiler build messages on Windows 7 ]

  Compiling with Intel(R) C++ Compiler XE 13.1.0.149 [Intel(R) 64]... (Intel C++ Environment)
  Stdphf.cpp
  *** ScaLib Message: Compiling with Intel C++ compiler v13.1.2 ***
  *** ScaLib Message: Configuration - Desktop - _NOS64_ICC - RELEASE ***
  *** ScaLib Message: Compiling for Intel Processing Unit ( 64-bit ) ***
  *** ScaLib Message: Compiling for AMD Processing Unit ( 64-bit ) ***
  *** ScaLib Message: Default IRT-Domain AVX ***
  *** ScaLib Message: Classic Processing Model ***
  *** ScaLib Message: Declaration of IRT-Domains ***
  *** ScaLib Message: Unicode Character Set ***
  *** ScaLib Message: Support of HRT-Functions Enabled ***
  *** ScaLib Message: Support of IRT-Domains Enabled ***
  Compiling with Intel(R) C++ Compiler XE 13.1.0.149 [Intel(R) 64]... (Intel C++ Environment)
  IccTestApp.cpp
  Linking... (Intel C++ Environment)
  ipo: warning #11072: ignoring invalid linker directive 'NODEFAULTLIB:libcpmt.lib'
  xilink: executing 'link'
  Creating library x64\Release/IccTestApp64.lib and object x64\Release/IccTestApp64.exp
  Embedding manifest... (Microsoft VC++ Environment)
  IccTestApp - 0 error(s), 1 warning(s), 0 remark(s)

 

 [ Number of OpenMP Threads :   4 ]

  Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
          Keys         : 06 10 11 14 11 07 04 12 02 16 13 16 15 04 04 04 04 01 04 04 08 07 15 12
  Sub-Test 02 - Displays KeySet values
          Min Key value: 01
          Max Key value: 16
          Keys         : 06 10 11 14 11 07 04 12 02 16 13 16 15 04 04 04 04 01 04 04 08 07 15 12
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
          Plain  Text: HELLO LORENZ SZXX CIPHER
          Cipher Text: NOGBD'HCPUCJ/W^\\!GMXOJ^
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 4
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441       where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
          Cipher: 'NOGB' - Crib: 'HELL' - Keys: 06 10 11 14 - Offset:  0
          Cipher: 'D'HC' - Crib: 'O LO' - Keys: 11 07 04 12 - Offset:  4
          Cipher: 'PUCJ' - Crib: 'RENZ' - Keys: 02 16 13 16 - Offset:  8
          Cipher: '/W^\' - Crib: ' SZX' - Keys: 15 04 04 04 - Offset: 12
          Cipher: '\!GM' - Crib: 'X CI' - Keys: 04 01 04 04 - Offset: 16
          Cipher: 'XOJ^' - Crib: 'PHER' - Keys: 08 07 15 12 - Offset: 20
          Cipher: 'XOJ^' - Crib: 'WINT' - Keys: 15 06 04 10 - Offset: 20
          Cipher: 'XOJ^' - Crib: 'RENZ' - Keys: 10 10 04 04 - Offset: 20
  Deallocates Memory
  Test Completed in 281660 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :   8 ]

  Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
          Keys         : 09 09 05 07 16 04 02 13 02 09 01 10 07 10 12 14 04 06 16 14 11 02 03 14
  Sub-Test 02 - Displays KeySet values
          Min Key value: 01
          Max Key value: 16
          Keys         : 09 09 05 07 16 04 02 13 02 09 01 10 07 10 12 14 04 06 16 14 11 02 03 14
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
          Plain  Text: HELLO LORENZ SZXX CIPHER
          Cipher Text: ALIK_$NBPLOP'YVV\&SG[JF\
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 8
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441       where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
          Cipher: 'ALIK' - Crib: 'HELL' - Keys: 09 09 05 07 - Offset:  0
          Cipher: '_$NB' - Crib: 'X CI' - Keys: 07 04 13 11 - Offset:  4
          Cipher: '_$NB' - Crib: 'O LO' - Keys: 16 04 02 13 - Offset:  4
          Cipher: 'PLOP' - Crib: 'RENZ' - Keys: 02 09 01 10 - Offset:  8
          Cipher: 'PLOP' - Crib: 'WINT' - Keys: 07 05 01 04 - Offset:  8
          Cipher: ''YVV' - Crib: ' SZX' - Keys: 07 10 12 14 - Offset: 12
          Cipher: '\&SG' - Crib: 'X CI' - Keys: 04 06 16 14 - Offset: 16
          Cipher: '[JF\' - Crib: 'RENZ' - Keys: 09 15 08 06 - Offset: 20
          Cipher: '[JF\' - Crib: 'PHER' - Keys: 11 02 03 14 - Offset: 20
          Cipher: '[JF\' - Crib: 'WINT' - Keys: 12 03 08 08 - Offset: 20
  Deallocates Memory
  Test Completed in 195219 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :  16 ]

  Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
          Keys         : 02 08 06 15 15 12 15 03 14 12 05 07 03 05 01 01 04 12 09 01 02 03 16 12
  Sub-Test 02 - Displays KeySet values
          Min Key value: 01
          Max Key value: 16
          Keys         : 02 08 06 15 15 12 15 03 14 12 05 07 03 05 01 01 04 12 09 01 02 03 16 12
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
          Plain  Text: HELLO LORENZ SZXX CIPHER
          Cipher Text: JMJC@,CL\IK]#V[Y\,JHRKU^
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 16
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441       where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
          Cipher: 'JMJC' - Crib: 'HELL' - Keys: 02 08 06 15 - Offset:  0
          Cipher: '@,CL' - Crib: 'O LO' - Keys: 15 12 15 03 - Offset:  4
          Cipher: '\IK]' - Crib: 'PHER' - Keys: 12 01 14 15 - Offset:  8
          Cipher: '\IK]' - Crib: 'RENZ' - Keys: 14 12 05 07 - Offset:  8
          Cipher: '#V[Y' - Crib: ' SZX' - Keys: 03 05 01 01 - Offset: 12
          Cipher: '\,JH' - Crib: 'X CI' - Keys: 04 12 09 01 - Offset: 16
          Cipher: 'RKU^' - Crib: 'PHER' - Keys: 02 03 16 12 - Offset: 20
  Deallocates Memory
  Test Completed in 193597 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :  32 ]

  Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
          Keys         : 09 15 04 01 08 03 09 10 14 03 01 04 07 03 04 09 16 08 15 16 13 09 03 08
  Sub-Test 02 - Displays KeySet values
          Min Key value: 01
          Max Key value: 16
          Keys         : 09 15 04 01 08 03 09 10 14 03 01 04 07 03 04 09 16 08 15 16 13 09 03 08
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
          Plain  Text: HELLO LORENZ SZXX CIPHER
          Cipher Text: AJHMG#EE\FO^'P^QH(LY]AFZ
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 32
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441       where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
          Cipher: 'AJHM' - Crib: 'HELL' - Keys: 09 15 04 01 - Offset:  0
          Cipher: 'G#EE' - Crib: 'O LO' - Keys: 08 03 09 10 - Offset:  4
          Cipher: '\FO^' - Crib: 'PHER' - Keys: 12 14 10 12 - Offset:  8
          Cipher: '\FO^' - Crib: 'WINT' - Keys: 11 15 01 10 - Offset:  8
          Cipher: '\FO^' - Crib: 'RENZ' - Keys: 14 03 01 04 - Offset:  8
          Cipher: ''P^Q' - Crib: ' SZX' - Keys: 07 03 04 09 - Offset: 12
          Cipher: 'H(LY' - Crib: 'X CI' - Keys: 16 08 15 16 - Offset: 16
          Cipher: ']AFZ' - Crib: 'PHER' - Keys: 13 09 03 08 - Offset: 20
          Cipher: ']AFZ' - Crib: 'WINT' - Keys: 10 08 08 14 - Offset: 20
  Deallocates Memory
  Test Completed in 200695 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads :  64 ]

  Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
          Keys         : 11 03 14 07 08 14 07 13 13 05 15 01 12 16 01 07 15 11 06 12 03 15 02 04
  Sub-Test 02 - Displays KeySet values
          Min Key value: 01
          Max Key value: 16
          Keys         : 11 03 14 07 08 14 07 13 13 05 15 01 12 16 01 07 15 11 06 12 03 15 02 04
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
          Plain  Text: HELLO LORENZ SZXX CIPHER
          Cipher Text: CFBKG.KB_@A[,C[_W+EESGGV
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 64
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441       where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
          Cipher: 'CFBK' - Crib: 'HELL' - Keys: 11 03 14 07 - Offset:  0
          Cipher: 'G.KB' - Crib: 'O LO' - Keys: 08 14 07 13 - Offset:  4
          Cipher: '_@A[' - Crib: 'PHER' - Keys: 15 08 04 09 - Offset:  8
          Cipher: '_@A[' - Crib: 'RENZ' - Keys: 13 05 15 01 - Offset:  8
          Cipher: '_@A[' - Crib: 'WINT' - Keys: 08 09 15 15 - Offset:  8
          Cipher: ',C[_' - Crib: ' SZX' - Keys: 12 16 01 07 - Offset: 12
          Cipher: 'W+EE' - Crib: 'X CI' - Keys: 15 11 06 12 - Offset: 16
          Cipher: 'SGGV' - Crib: 'PHER' - Keys: 03 15 02 04 - Offset: 20
          Cipher: 'SGGV' - Crib: 'RENZ' - Keys: 01 02 09 12 - Offset: 20
          Cipher: 'SGGV' - Crib: 'WINT' - Keys: 04 14 09 02 - Offset: 20
  Deallocates Memory
  Test Completed in 188730 ms
  > Test1155 End <
  Tests: Completed

 

 [ Number of OpenMP Threads : 128 ]

  Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
  Tests: Start
  > Test1155 Start <
  Sub-Test 01 - Generates KeySet values
          Keys         : 16 02 07 04 07 07 10 05 06 04 02 16 11 14 10 12 03 07 14 02 13 16 14 15
  Sub-Test 02 - Displays KeySet values
          Min Key value: 01
          Max Key value: 16
          Keys         : 16 02 07 04 07 07 10 05 06 04 02 16 11 14 10 12 03 07 14 02 13 16 14 15
  Sub-Test 03.1 - Displays PlainSet and CipherSet messages
          Plain  Text: HELLO LORENZ SZXX CIPHER
          Cipher Text: XGKHH'FJTALJ+]PT['MK]XK]
  Sub-Test 04.3 - Deciphers CipherSet message
  Number of OpenMP Threads : 128
  Number of Characters (N) : 27
  Length of Sub-String (L) : 4
  Number of Cases to Verify: 531441       where NofCV = N^L
  Memory Allocated         : 0.002 GB
  Generating DataSet
  Identification
          Cipher: 'XGKH' - Crib: 'HELL' - Keys: 16 02 07 04 - Offset:  0
          Cipher: 'H'FJ' - Crib: 'O LO' - Keys: 07 07 10 05 - Offset:  4
          Cipher: 'H'FJ' - Crib: 'X CI' - Keys: 16 07 05 03 - Offset:  4
          Cipher: 'TALJ' - Crib: 'RENZ' - Keys: 06 04 02 16 - Offset:  8
          Cipher: '+]PT' - Crib: ' SZX' - Keys: 11 14 10 12 - Offset: 12
          Cipher: '['MK' - Crib: 'X CI' - Keys: 03 07 14 02 - Offset: 16
          Cipher: ']XK]' - Crib: 'PHER' - Keys: 13 16 14 15 - Offset: 20
  Deallocates Memory
  Test Completed in 192771 ms
  > Test1155 End <
  Tests: Completed

 

 [ Summary - KNL server ]

  Number of OpenMP Threads :    8  Test Completed in 310169 ms
  Number of OpenMP Threads :   16  Test Completed in 161136 ms
  Number of OpenMP Threads :   32  Test Completed in  80065 ms
  Number of OpenMP Threads :   64  Test Completed in  41307 ms  Best time
  Number of OpenMP Threads :  128  Test Completed in  42451 ms  Oversubscription / Processing Saturation
  Number of OpenMP Threads :  256  Test Completed in  43021 ms  Oversubscription / Processing Saturation
  Number of OpenMP Threads :  512  Test Completed in  42787 ms  Oversubscription / Processing Saturation
  Number of OpenMP Threads : 1024  Test Completed in  42839 ms  Oversubscription / Processing Saturation
  Number of OpenMP Threads : 2048  Test Completed in  42878 ms  Oversubscription / Processing Saturation

 

 [ Summary - IVB workstation ]

  Number of OpenMP Threads :    4  Test Completed in 281660 ms
  Number of OpenMP Threads :    8  Test Completed in 195219 ms  Not Best time ( but it should be... )
  Number of OpenMP Threads :   16  Test Completed in 193597 ms  Oversubscription / Processing Saturation
  Number of OpenMP Threads :   32  Test Completed in 200695 ms  Oversubscription / Processing Saturation
  Number of OpenMP Threads :   64  Test Completed in 188730 ms  Oversubscription / Best time
  Number of OpenMP Threads :  128  Test Completed in 192771 ms  Oversubscription / Processing Saturation
  Number of OpenMP Threads :  256  Not tested
  Number of OpenMP Threads :  512  Not tested
  Number of OpenMP Threads : 1024  Not tested
  Number of OpenMP Threads : 2048  Not tested

 

Here is an example how processing duplicates of deciphered text segments look like...

 Application - ScaLibTestApp - NOS64_MSC ( 64-bit ) - Release
 Tests: Start
 > Test1155 Start <
 Sub-Test 01 - Generates KeySet values
      Keys         : 16 13 03 10 10 02 12 11 10 06 01 04 03 04 04 14 06 04 14 16 12 10 09 06
 Sub-Test 02 - Displays KeySet values
      Min Key value: 01
      Max Key value: 16
      Keys         : 16 13 03 10 10 02 12 11 10 06 01 04 03 04 04 14 06 04 14 16 12 10 09 06
 Sub-Test 03.1 - Displays PlainSet and CipherSet messages
      Plain  Text: HELLO LORENZ SZXX CIPHER
      Cipher Text: XHOFE"@DXCO^#W^V^$MY\BLT
 Sub-Test 04.3 - Deciphers CipherSet message
 Number of OpenMP Threads : 8
 Number of Characters (N) : 27
 Length of Sub-String (L) : 4
 Number of Cases to Verify: 531441       where NofCV = N^L
 Memory Allocated         : 0.002 GB
 Generating DataSet
 Identification
      Cipher: 'XHOF' - Crib: 'HELL' - Keys: 16 13 03 10 - Offset: 0
      Cipher: 'HOFE' - Crib: 'FALL' - Keys: 14 14 10 09 - Offset: 1
      Cipher: '@DXC' - Crib: 'LORE' - Keys: 12 11 10 06 - Offset: 6
      Cipher: '@DXC' - Crib: 'CIPH' - Keys: 03 13 08 11 - Offset: 6
      Cipher: 'XCO^' - Crib: 'WINT' - Keys: 15 10 01 10 - Offset: 8
      Cipher: 'W^V^' - Crib: 'SZXX' - Keys: 04 04 14 06 - Offset: 13
      Cipher: 'MY\B' - Crib: 'CIPH' - Keys: 14 16 12 10 - Offset: 18
      Cipher: 'Y\BL' - Crib: 'SPRI' - Keys: 10 12 16 05 - Offset: 19
      Cipher: 'Y\BL' - Crib: 'SUMM' - Keys: 10 09 15 01 - Offset: 19
 Deallocates Memory
 Test Completed in 509296 ms
 > Test1155 End <
 Tests: Completed

 //

    Offsets:        000000000011111111112222
                    012345678901234567890123

    Plain  Text:    HELLO LORENZ SZXX CIPHER

    Cipher Text:    XHOFE"@DXCO^#W^V^$MY\BLT

    Deciphered Segments:

                    HELL??
                    ?FALL?
                          LORE???
                          CIPH???
                          ??WINT?
                                 SZXX?
                                      CIPH??
                                      ?SPRI?
                                      ?SUMM?

 

Here are a couple of examples on a Total Number of Keys Verified for a segment of German text SPRUCHNUMMER ( English translation: Message Number )...

Intel C++ compiler

Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
Tests: Start
> Test1155 Start <
Number of Characters : 36
Length of Sub-String : 4
Number of Cases to Verify: 1679616 where NofCV = N^L
Memory Allocated : 0.15 GB
Number of OpenMP Threads : 8
Identification Started
ThreadId 3 - Cipher: JSH5 - Plain: CHNU - Dictionary: CHNU - Keys: 009 027 006 096 - K-Value: 1611012873
ThreadId 3 - Cipher: JSH5 - Plain: SPRU - Dictionary: SPRU - Keys: 025 003 026 096 - K-Value: 1612317465
ThreadId 3 - Cipher: JSH5 - Plain: MMER - Dictionary: MMER - Keys: 007 030 013 103 - K-Value: 1728912903
ThreadId 0 - Cipher: NZYZ - Plain: MMER - Dictionary: MMER - Keys: 003 023 028 008 - K-Value: 136058627
ThreadId 0 - Cipher: NZYZ - Plain: SPRU - Dictionary: SPRU - Keys: 029 010 011 015 - K-Value: 252381725
ThreadId 0 - Cipher: NZYZ - Plain: CHNU - Dictionary: CHNU - Keys: 013 018 023 015 - K-Value: 253170189
ThreadId 0 - Cipher: Y5GL - Plain: CHNU - Dictionary: CHNU - Keys: 026 125 009 025 - K-Value: 420052250
ThreadId 0 - Cipher: Y5GL - Plain: SPRU - Dictionary: SPRU - Keys: 010 101 021 025 - K-Value: 420832522
ThreadId 0 - Cipher: Y5GL - Plain: MMER - Dictionary: MMER - Keys: 020 120 002 030 - K-Value: 503478292
Number of Keys Verified : 51539607552
Identification Completed
Deallocates Memory
Test Completed in 15725 ms
> Test1155 End <
Tests: Completed

Microsoft C++ compiler

Application - ScaLibTestApp - NOS64_MSC ( 64-bit ) - Release
Tests: Start
> Test1155 Start <
Number of Characters : 36
Length of Sub-String : 4
Number of Cases to Verify: 1679616 where NofCV = N^L
Memory Allocated : 0.15 GB
Number of OpenMP Threads : 8
Identification Started
ThreadId 3 - Cipher: JSH5 - Plain: CHNU - Dictionary: CHNU - Keys: 009 027 006 096 - K-Value: 1611012873
ThreadId 3 - Cipher: JSH5 - Plain: SPRU - Dictionary: SPRU - Keys: 025 003 026 096 - K-Value: 1612317465
ThreadId 3 - Cipher: JSH5 - Plain: MMER - Dictionary: MMER - Keys: 007 030 013 103 - K-Value: 1728912903
ThreadId 0 - Cipher: NZYZ - Plain: MMER - Dictionary: MMER - Keys: 003 023 028 008 - K-Value: 136058627
ThreadId 0 - Cipher: NZYZ - Plain: SPRU - Dictionary: SPRU - Keys: 029 010 011 015 - K-Value: 252381725
ThreadId 0 - Cipher: NZYZ - Plain: CHNU - Dictionary: CHNU - Keys: 013 018 023 015 - K-Value: 253170189
ThreadId 0 - Cipher: Y5GL - Plain: CHNU - Dictionary: CHNU - Keys: 026 125 009 025 - K-Value: 420052250
ThreadId 0 - Cipher: Y5GL - Plain: SPRU - Dictionary: SPRU - Keys: 010 101 021 025 - K-Value: 420832522
ThreadId 0 - Cipher: Y5GL - Plain: MMER - Dictionary: MMER - Keys: 020 120 002 030 - K-Value: 503478292
Number of Keys Verified : 51539607552
Identification Completed
Deallocates Memory
Test Completed in 24415 ms
> Test1155 End <
Tests: Completed

MinGW C++ compiler

Application - MgwTestApp - NOS64_MGW ( 64-bit ) - Release
Tests: Start
> Test1155 Start <
Number of Characters : 36
Length of Sub-String : 4
Number of Cases to Verify: 1679616 where NofCV = N^L
Memory Allocated : 0.15 GB
Number of OpenMP Threads : 8
Identification Started
ThreadId 3 - Cipher: JSH5 - Plain: CHNU - Dictionary: CHNU - Keys: 009 027 006 096 - K-Value: 1611012873
ThreadId 3 - Cipher: JSH5 - Plain: SPRU - Dictionary: SPRU - Keys: 025 003 026 096 - K-Value: 1612317465
ThreadId 3 - Cipher: JSH5 - Plain: MMER - Dictionary: MMER - Keys: 007 030 013 103 - K-Value: 1728912903
ThreadId 0 - Cipher: NZYZ - Plain: MMER - Dictionary: MMER - Keys: 003 023 028 008 - K-Value: 136058627
ThreadId 0 - Cipher: NZYZ - Plain: SPRU - Dictionary: SPRU - Keys: 029 010 011 015 - K-Value: 252381725
ThreadId 0 - Cipher: NZYZ - Plain: CHNU - Dictionary: CHNU - Keys: 013 018 023 015 - K-Value: 253170189
ThreadId 0 - Cipher: Y5GL - Plain: CHNU - Dictionary: CHNU - Keys: 026 125 009 025 - K-Value: 420052250
ThreadId 0 - Cipher: Y5GL - Plain: SPRU - Dictionary: SPRU - Keys: 010 101 021 025 - K-Value: 420832522
ThreadId 0 - Cipher: Y5GL - Plain: MMER - Dictionary: MMER - Keys: 020 120 002 030 - K-Value: 503478292
Number of Keys Verified : 51539607552
Identification Completed
Deallocates Memory
Test Completed in 33417 ms
> Test1155 End <
Tests: Completed

Intel C++ compiler

Application - IccTestApp - NOS64_ICC ( 64-bit ) - Release
Tests: Start
> Test1155 Start <
Number of Characters : 36
Length of Sub-String : 5
Number of Cases to Verify: 60466176 where NofCV = N^L
Memory Allocated : 6.31 GB
Number of OpenMP Threads : 8
Identification Started
ThreadId 0 - Cipher: JSH5N - Plain: HNUMM - Dictionary: HNUMM - Keys: 002 029 029 120 003 - K-Value: 2015173890
ThreadId 0 - Cipher: GLFRG - Plain: SPRUC - Dictionary: SPRUC - Keys: 020 028 020 007 004 - K-Value: 118758420
ThreadId 0 - Cipher: GLFRG - Plain: HNUMM - Dictionary: HNUMM - Keys: 015 002 019 031 010 - K-Value: 521339407
ThreadId 2 - Cipher: ZYZY5 - Plain: ERxxx - Dictionary: ERxxx - Keys: 031 011 034 033 077 - K-Value: 555879199
ThreadId 0 - Cipher: JSH5N - Plain: SPRUC - Dictionary: SPRUC - Keys: 025 003 026 096 013 - K-Value: 1612317465
ThreadId 3 - Cipher: ZYZY5 - Plain: SPRUC - Dictionary: SPRUC - Keys: 009 009 008 012 118 - K-Value: 201853193
ThreadId 1 - Cipher: JSH5N - Plain: ERxxx - Dictionary: ERxxx - Keys: 015 001 048 077 054 - K-Value: 1294991631
ThreadId 3 - Cipher: ZYZY5 - Plain: HNUMM - Dictionary: HNUMM - Keys: 018 023 015 020 120 - K-Value: 336533266
ThreadId 1 - Cipher: GLFRG - Plain: ERxxx - Dictionary: ERxxx - Keys: 002 030 062 042 063 - K-Value: 708713986
Number of Keys Verified : 13194139533312
Identification Completed
Deallocates Memory
Test Completed in 4499708 ms
> Test1155 End <
Tests: Completed

Microsoft C++ compiler

Application - ScaLibTestApp - NOS64_MSC ( 64-bit ) - Release
Tests: Start
> Test1155 Start <
Number of Characters : 36
Length of Sub-String : 5
Number of Cases to Verify: 60466176 where NofCV = N^L
Memory Allocated : 6.31 GB
Number of OpenMP Threads : 8
Identification Started
ThreadId 0 - Cipher: JSH5N - Plain: HNUMM - Dictionary: HNUMM - Keys: 002 029 029 120 003 - K-Value: 2015173890
ThreadId 0 - Cipher: GLFRG - Plain: SPRUC - Dictionary: SPRUC - Keys: 020 028 020 007 004 - K-Value: 118758420
ThreadId 0 - Cipher: GLFRG - Plain: HNUMM - Dictionary: HNUMM - Keys: 015 002 019 031 010 - K-Value: 521339407
ThreadId 2 - Cipher: ZYZY5 - Plain: ERxxx - Dictionary: ERxxx - Keys: 031 011 034 033 077 - K-Value: 555879199
ThreadId 0 - Cipher: JSH5N - Plain: SPRUC - Dictionary: SPRUC - Keys: 025 003 026 096 013 - K-Value: 1612317465
ThreadId 3 - Cipher: ZYZY5 - Plain: SPRUC - Dictionary: SPRUC - Keys: 009 009 008 012 118 - K-Value: 201853193
ThreadId 1 - Cipher: JSH5N - Plain: ERxxx - Dictionary: ERxxx - Keys: 015 001 048 077 054 - K-Value: 1294991631
ThreadId 3 - Cipher: ZYZY5 - Plain: HNUMM - Dictionary: HNUMM - Keys: 018 023 015 020 120 - K-Value: 336533266
ThreadId 1 - Cipher: GLFRG - Plain: ERxxx - Dictionary: ERxxx - Keys: 002 030 062 042 063 - K-Value: 708713986
Number of Keys Verified : 13194139533312
Identification Completed
Deallocates Memory
Test Completed in 6599825 ms
> Test1155 End <
Tests: Completed

MinGW C++ compiler

Application - MgwTestApp - NOS64_MGW ( 64-bit ) - Release
Tests: Start
> Test1155 Start <
Number of Characters : 36
Length of Sub-String : 5
Number of Cases to Verify: 60466176 where NofCV = N^L
Memory Allocated : 6.31 GB
Number of OpenMP Threads : 8
Identification Started
ThreadId 0 - Cipher: JSH5N - Plain: HNUMM - Dictionary: HNUMM - Keys: 002 029 029 120 003 - K-Value: 2015173890
ThreadId 0 - Cipher: GLFRG - Plain: SPRUC - Dictionary: SPRUC - Keys: 020 028 020 007 004 - K-Value: 118758420
ThreadId 0 - Cipher: GLFRG - Plain: HNUMM - Dictionary: HNUMM - Keys: 015 002 019 031 010 - K-Value: 521339407
ThreadId 2 - Cipher: ZYZY5 - Plain: ERxxx - Dictionary: ERxxx - Keys: 031 011 034 033 077 - K-Value: 555879199
ThreadId 0 - Cipher: JSH5N - Plain: SPRUC - Dictionary: SPRUC - Keys: 025 003 026 096 013 - K-Value: 1612317465
ThreadId 3 - Cipher: ZYZY5 - Plain: SPRUC - Dictionary: SPRUC - Keys: 009 009 008 012 118 - K-Value: 201853193
ThreadId 1 - Cipher: JSH5N - Plain: ERxxx - Dictionary: ERxxx - Keys: 015 001 048 077 054 - K-Value: 1294991631
ThreadId 3 - Cipher: ZYZY5 - Plain: HNUMM - Dictionary: HNUMM - Keys: 018 023 015 020 120 - K-Value: 336533266
ThreadId 1 - Cipher: GLFRG - Plain: ERxxx - Dictionary: ERxxx - Keys: 002 030 062 042 063 - K-Value: 708713986
Number of Keys Verified : 13194139533312
Identification Completed
Deallocates Memory
Test Completed in 8879156 ms
> Test1155 End <
Tests: Completed

A note for Eric M:

Eric, Please take a look at Posts 21 and 22 first, and if you have time, take a look at all the rest performance results. Even if the Vernam cipher strength realized in Lorenz SZ4x cipher machines is only 5-bit ( looks like simple! / characters and key-numbers are from 0 to 32 ) deciphering still could be a challenging process even with modern hardware! Once again, it is very-very simple in essence, just XOR, but number of key verifications significant.

Another Undocumented property of the Vernam cipher are Processing Duplicates ( deciphered duplicates of the same Crib ) and that is why codebreakers at the Bletchley Park in UK in 1940th had to recover initial rotor settings of the Lorenz SZ4x cipher machines. They had hundreds of messages every day and manual processing was Not possible in a timely manner and that is why the whole process, Key recovering and Deciphering, was almost fully automated only with Colossus computing machine.

An example of Processing Duplicates is as follows ( from Post 4 ):

...
Cipher: '@UDD' - Crib: 'HELL' - Keys: 08 16 08 08 - Offset: 0
Cipher: 'K,BG' - Crib: 'O LO' - Keys: 04 12 14 08 - Offset: 4
Cipher: 'VULR' - Crib: 'RENZ' - Keys: 04 16 02 08 - Offset: 8
Cipher: '%CRT' - Crib: ' SZX' - Keys: 05 16 08 12 - Offset: 12
Cipher: '\(SY' - Crib: 'X CI' - Keys: 04 08 16 16 - Offset: 16
Cipher: 'X@KZ' - Crib: 'PHER' - Keys: 08 08 14 08 - Offset: 20
_____________________________Correct Identification of a segment of Plain text
Cipher: 'X@KZ' - Crib: 'WINT' - Keys: 15 09 05 14 - Offset: 20
_____________________________Also Correct Identification of a segment of Plain text but this is a Duplicate and result needs to be Removed
...

This is because:

Crib: 'PHER' XOR ( Keys: 08 08 14 08 ) = 'X@KZ' = Crib: 'WINT' XOR ( Keys: 15 09 05 14 ), where 'X@KZ' is a Cipher segment of a text.

Leave a Comment

Please sign in to add a comment. Not a member? Join today