![]() |
A52HackTool 1.3.0
Turnkey & easy to use tool for cracking the GSM A5/2 cipher
|
Constants definition for A5/2 cipher. These are not to be modified, as one single change could have desastrous consequences on the global process. More...
Go to the source code of this file.
Defines | |
#define | SECRETKEY_BITS 64 |
Secret Key length. | |
#define | FRAMEID_BITS 22 |
Frame Id length. | |
#define | REGS_TOTAL_VARS (REGS_SIMPLE_VARS + REGS_PROD_VARS + 1) |
Total Amount of Variables (including constant "1") | |
#define | TOTAL_MATRICES (1<<(R4_BITS-1)) |
Number of possible values of the fourth LFSR (R4) | |
#define | PROCESSING_THREADS (1<<5) |
Number of threads used for both matrices generation and attack (must be a power of 2) | |
#define | THREAD_CHUNKSIZE (TOTAL_MATRICES/PROCESSING_THREADS) |
Amount of data that will be processed by each thread. | |
#define | RESOLUTION_MATRIX_INT_WIDTH ((REGS_TOTAL_VARS+31)/32) |
A matrix of integers will be used for faster decryption. The last integer of the line will be half-loaded with two bytes. | |
#define | R1_BITS 19 |
LFSR capacity. | |
#define | R2_BITS 22 |
LFSR capacity. | |
#define | R3_BITS 23 |
LFSR capacity. | |
#define | R4_BITS 17 |
LFSR capacity. | |
#define | REGS_BITS (R1_BITS+R2_BITS+R3_BITS+R4_BITS) |
LFSR capacity. | |
#define | R4_CLOCKTAP_R1 10 |
Clocking Unit Tap. | |
#define | R4_CLOCKTAP_R2 3 |
Clocking Unit Tap. | |
#define | R4_CLOCKTAP_R3 7 |
Clocking Unit Tap. | |
#define | R1_OUTTAP_1 12 |
Output Tap. | |
#define | R1_OUTTAP_2 14 |
Output Tap to be xored with 1. | |
#define | R1_OUTTAP_3 15 |
Output Tap. | |
#define | R2_OUTTAP_1 9 |
Output Tap. | |
#define | R2_OUTTAP_2 13 |
Output Tap. | |
#define | R2_OUTTAP_3 16 |
Output Tap to be xored with 1. | |
#define | R3_OUTTAP_1 13 |
Output Tap to be xored with 1. | |
#define | R3_OUTTAP_2 16 |
Output Tap. | |
#define | R3_OUTTAP_3 18 |
Output Tap. | |
#define | R1_SHIFTTAP_1 13 |
Shift Tap. | |
#define | R1_SHIFTTAP_2 16 |
Shift Tap. | |
#define | R1_SHIFTTAP_3 17 |
Shift Tap. | |
#define | R1_SHIFTTAP_4 18 |
Shift Tap. | |
#define | R2_SHIFTTAP_1 20 |
Shift Tap. | |
#define | R2_SHIFTTAP_2 21 |
Shift Tap. | |
#define | R3_SHIFTTAP_1 7 |
Shift Tap. | |
#define | R3_SHIFTTAP_2 20 |
Shift Tap. | |
#define | R3_SHIFTTAP_3 21 |
Shift Tap. | |
#define | R3_SHIFTTAP_4 22 |
Shift Tap. | |
#define | R4_SHIFTTAP_1 11 |
Shift Tap. | |
#define | R4_SHIFTTAP_2 16 |
Shift Tap. | |
#define | R1_INITIAL_CONST_POS 15 |
Location of Constant Value defined at the end of KeySetup Phase. | |
#define | R2_INITIAL_CONST_POS 16 |
Location of Constant Value defined at the end of KeySetup Phase. | |
#define | R3_INITIAL_CONST_POS 18 |
Location of Constant Value defined at the end of KeySetup Phase. | |
#define | R4_INITIAL_CONST_POS 10 |
Location of Constant Value defined at the end of KeySetup Phase. | |
#define | R1_SIMPLE_VARS (R1_BITS - 1) |
Simple Variables (exactly one location of each register is set to constant "1" at the beginning, thus reducing the number of variables to R{1,2,3}_SIMPLE_VARS = (R{1,2,3}_BITS-1)) | |
#define | R2_SIMPLE_VARS (R2_BITS - 1) |
Simple Variables (exactly one location of each register is set to constant "1" at the beginning, thus reducing the number of variables to R{1,2,3}_SIMPLE_VARS = (R{1,2,3}_BITS-1)) | |
#define | R3_SIMPLE_VARS (R3_BITS - 1) |
Simple Variables (exactly one location of each register is set to constant "1" at the beginning, thus reducing the number of variables to R{1,2,3}_SIMPLE_VARS = (R{1,2,3}_BITS-1)) | |
#define | REGS_SIMPLE_VARS (R1_SIMPLE_VARS + R2_SIMPLE_VARS + R3_SIMPLE_VARS) |
Simple Variables (exactly one location of each register is set to constant "1" at the beginning, thus reducing the number of variables to R{1,2,3}_SIMPLE_VARS = (R{1,2,3}_BITS-1)) | |
#define | R1_PROD_VARS ((R1_SIMPLE_VARS * (R1_SIMPLE_VARS-1)) / 2) |
Product Variables (products may be done at the register level when outputing keystream) | |
#define | R2_PROD_VARS ((R2_SIMPLE_VARS * (R2_SIMPLE_VARS-1)) / 2) |
Product Variables (products may be done at the register level when outputing keystream) | |
#define | R3_PROD_VARS ((R3_SIMPLE_VARS * (R3_SIMPLE_VARS-1)) / 2) |
Product Variables (products may be done at the register level when outputing keystream) | |
#define | REGS_PROD_VARS (R1_PROD_VARS + R2_PROD_VARS + R3_PROD_VARS) |
Product Variables (products may be done at the register level when outputing keystream) |
Constants definition for A5/2 cipher. These are not to be modified, as one single change could have desastrous consequences on the global process.