Version 0.01

1. Place the executable file 'greedy' in a directory of your choice.
2. Open a console window.
3. Navigate to your chosen directory.
4. Type
     ./greedy 0 0 0 optimal 1 1 1 1 [Enter]
   in the console window.
5. You should now see some program output resembling

   ******************
   * Greedy Trivium *
   ******************

   Key =  00000000000000000000
   IV  =  00000000000000000000

   Using key bits: YES
   Using  IV bits: YES

   Using stored optimal bit set of size 5: Key = { 34, 43, 76 } IV = { 31, 64 }

   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size  5  ->  711 / 1152 zero bits = 61.72%, xor = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008083A04354B381EBC74EAFB75916B395275AA09EDCEEB6DE4C0DAD6E965A14DDC4DB34A70CFF100B739B2EBD4293F61BD15E33E03116DADA, Key bit set = { 34, 43, 76 }, IV bit set = { 31, 64 }
   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size  6  ->  732 / 1152 zero bits = 63.54%, xor = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103008E0E8CF01DB09FF49BF37E18E44F65B9593F76610A4C847B1C45714CC92719E47FA33A4A8CA5132057B5D1E5F3696AC7325A8, Key bit set = { 34, 43, 76,  7 }, IV bit set = { 31, 64 }
   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size  7  ->  741 / 1152 zero bits = 64.32%, xor = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020C0C0006A20011208FDC57371741F34667AE5B3498FDFA94A7F7F27B94C18A55838D437921D2F7BCD9FF9F978EB53228EA0BB86, Key bit set = { 34, 43, 76,  7 }, IV bit set = { 31, 64, 46 }
   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size  8  ->  766 / 1152 zero bits = 66.49%, xor = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004002202CBC7318AEF252FA862192073AA7FB57A589EFF8BC86855001EC648CF30FC61FF35726869C56AC9BA8AF2DD3715F, Key bit set = { 34, 43, 76,  7 }, IV bit set = { 31, 64, 46, 34 }
   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size  9  ->  791 / 1152 zero bits = 68.66%, xor = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080404818971E34D5CE7E8F46AE4DBE1C1CD41EA166B5DF080C9729D441BD70F93109E16D1B2F17A2C4BABA41C5AC, Key bit set = { 34, 43, 76,  7, 49 }, IV bit set = { 31, 64, 46, 34 }
   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size 10  ->  792 / 1152 zero bits = 68.75%, xor = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010208542A4F2D2ED3EBF974EC900B4EE0F83BD865F3EDFE6C58A6373C27B135ACF64C1157686BDE6DB9C1CC29, Key bit set = { 34, 43, 76,  7, 49, 61 }, IV bit set = { 31, 64, 46, 34 }
   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size 11  ->  817 / 1152 zero bits = 70.92%, xor = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000961E532DBF05490A1F8A54DD9EEA584898048584457D2CEB997C09DBA034A42043DB20362E0AEA73E0B0, Key bit set = { 34, 43, 76,  7, 49, 61, 16 }, IV bit set = { 31, 64, 46, 34 }
   [Tue 17:16:56, 0 days  0 h  0 min  0 sec] Bit set size 12  ->  819 / 1152 zero bits = 71.09%, xor = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008A8D847F6812DD592AB94EBA9DD8D35EDB876D520735B4DBBD23CCBBF72C0E4B02DAAE8C6805B9CEDBD, Key bit set = { 34, 43, 76,  7, 49, 61, 16 }, IV bit set = { 31, 64, 46, 34, 67 }
   [Tue 17:16:57, 0 days  0 h  0 min  1 sec] Bit set size 13  ->  836 / 1152 zero bits = 72.57%, xor = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0C5F609F3F2275624D5D9985AF844A5A11708D16E4263E1084C4ABDAA9C20099EC73D6703E5BFD9, Key bit set = { 34, 43, 76,  7, 49, 61, 16, 52 }, IV bit set = { 31, 64, 46, 34, 67 }
   [Tue 17:16:59, 0 days  0 h  0 min  3 sec] Bit set size 14  ->  842 / 1152 zero bits = 73.09%, xor = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004484E370DCAC3BF7102C88A484598511ED6AE4E16A2A2054733399CE1E32A519BC92A661F679B4, Key bit set = { 34, 43, 76,  7, 49, 61, 16, 52 }, IV bit set = { 31, 64, 46, 34, 67, 43 }
   [Tue 17:17:01, 0 days  0 h  0 min  5 sec] Bit set size 15  ->  863 / 1152 zero bits = 74.91%, xor = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080105EEE0E50CAF42CBF2B6B6EF4C3981F8449807F988A072FCC16E6E6D805C0E1A332AD3E, Key bit set = { 34, 43, 76,  7, 49, 61, 16, 52 }, IV bit set = { 31, 64, 46, 34, 67, 43,  4 }
   [Tue 17:17:04, 0 days  0 h  0 min  8 sec] Bit set size 16  ->  873 / 1152 zero bits = 75.78%, xor = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006645814E34C69EDD86CB9D8716E99B794A5846F00211BA23F1DE0845F2DDF69C303547, Key bit set = { 34, 43, 76,  7, 49, 61, 16, 52 }, IV bit set = { 31, 64, 46, 34, 67, 43,  4,  1 }
   ...

6. Stop the program with Ctrl+C after a while
7. You should now find the file greedy.txt in the directory, containing the above console output.
8. You should also find the file greedy.tex in the directory, containing a TeX-plot of the data.


See the usage legend below for other parameter values .

Usage: greedy <cipher> <keyFill> <ivFill> <startingSet> <allowKeyBits> <allowIvBits> <strategy> <numParallellBits>
<cipher>
   0 Trivium
   1 Rabbit
   2 Edon80
   3 AES-128
   4 AES-256
   5 DES
   6 Grain-128
   7 Grain v1
   8 TEA
   9 XTEA
  10 SEED
  11 PRESENT
  12 SMS4
  13 Camellia
  14 RC5
  15 RC6
  16 HIGHT
  17 HC-128
  18 HC-256
  19 MICKEY v2
  20 Salsa20/12
  21 SOSEMANUK
<keyFill> 0 for zeros, 1 for ones, 2 for random
<ivFill>  0 for zeros, 1 for ones, 2 for random
<startingSet>  "empty" for empty set, "optimal" for small optimal set
<allowKeyBits> 0 for NO, 1 for YES
<allowIvBits>  0 for NO, 1 for YES
<strategy>
  1 for Add best bit
  2 for Add best 2-bit set
  3 for Add best 3-bit set
<numParallellBits> 0 for single core job, 1 for double, 2 for quadruple,...
