Level 4:vigenere cipher encryption, can fight word frequency statistics, need to know the password, this problem know the key length 6.
Http://www.simonsingh.net/The_Black_Chamber/crackingprinciple.html
This site explains how to hack vigenere cipher encryption.
http://smurfoncrack.com/pygenere/pygenere.php
Directly copy the ciphertext to the above page, you can guess the password "Frekey".
Use this password to uncover the secret text.
Level 5: Encrypts the same level 4, but does not know the key length.
With the Level 4 decryption site, you can manually specify the key length for testing. You can also use the following Vigenere Cipher Decryption Tool Web page to automatically guess the solution:
Http://www.simonsingh.net/The_Black_Chamber/vigenere_square_tool.html
The key is: Keylen
Decrypt the text with the key.
Level 6:LFSR Encryption
Inverse encryption algorithm:
Calculation function for Magic value: FLSR cs:reg_2543 initial value is 1.
Public LFSR LFSR proc near var_2= word ptr-2 push RBP mov RBP, RSP mov [rbp+var_2], 0 movzx eax, cs:reg_2543 mov edx, eax and edx, 1 movzx eax, cs:reg_2543 movzx eax, Ax and eax, 2 sar eax, 1 xor eax, edx mov [rbp+var_2], ax movzx eax, Cs:reg_ 2543 shr ax, 1 mov edx, eax movzx eax, [rbp+var_2] shl eax, 3 or eax, edx mov cs:reg_2543, ax movzx eax, cs:reg_2543 movzx EAX, ax pop RBP retn LFSR end
the ELF x86_64 program, the encryption algorithm is: C--and capital--- -0x41-+key[i] (0-9 cycles)--+magic--- -0x41 until value -0x1a --+0x41
Clear Text test:
AAAAAAAAAABBBBBBBBBB bbbbbbbbbbaaaaaaaaaa Abababababababababab
Eictdgyiyzluiotjsgyz Fjduehzjzakthnsirfxy Ejcudhyjyakuhosjrgxz
The same characters can be found in different positions, the ciphertext is different, but the same characters are in the same position as the ciphertext. is actually a two-dimensional cipher table of [letter * position].
Decryption can be used in plaintext attacks, generate a 26*20 password table, and then check the table decryption.
You can also use a known algorithm to decrypt the program directly:
#include <stdio.h>short reg = 1;char* a_en = "Eictdgyiyzluiotjsgyz"; char* a_pl = "aaaaaaaaaabbbbbbbbbb";char* b_en = "FJDUEHZJZAKTHNSIRFXY"; char* krypton7 = "Pnuklylwrqkgkbe"; main () { short a = 0; int b, c; int i, j; char * key[10]; short magic[20]; for (i=0, j=0; i<20; i++, j++) { / Algorithm simulation of/LFSR function b = reg; b &= 1; c = reg; c &= 2; c = c >> 1; a = b ^ c; b = reg; b = b >> 1; c = a; c = c << 3; a = b | c;// printf ("magic: %hx\n", a); reg = a; magic[ i] = a; //Compute key and verify it if (j >= 10) j = 0; key[j] = a_en[i] - a; while (key[j] < 0x41) key[j] += 0x1A; key[j] -= a_pl[i]; printf ("magic: %hx\tkey[%d]: %hhx\ N ", a, j, key[j]); } //decryption Test for (i=0, j=0; i<20; i++, j++) { &nbSp; if (j >= 10) j = 0; b = b_en[i] - magic[i]; while (b < 0x41) b += 0x1A; b -= (int) key[j]; while (b < 0x41) b += 0x1a; printf ("%c", b); } printf ("\ n"); //decryption Krypton7 for (I=0, j=0; i<strlen (krypton7 ); i++, j++) { if (j >= 10) j = 0; b = krypton7[i] - magic[i]; while (b < 0x41) b += 0x1A; b -= (int) key[j]; while (b < 0x41) b += 0x1A; printf ("%c", b); Jia } printf ("\ n");}
This article is from the "Everything is a Dog" blog, please be sure to keep this source http://cugou.blog.51cto.com/9637775/1585519
Krypton Series 4-7