Implements Length-based attack on AAG protocol. More...
#include <LengthAttack.h>
Public Member Functions | |
LengthAttack_A1 () | |
int | type () |
Returns the algorithm type. | |
findKey_LengthBasedResult | findKey_LengthBased (int N, const vector< Word > &A1, const vector< Word > &A2, const vector< Word > &B, int sec=9999999, ostream &out=cout) |
Attack on an instances of the AAG protocol. | |
Private Member Functions | |
int | sbgpGeneratorsWeight (const vector< Word > &A) |
void | addNewElt (const vector< Word > &A, set< ELT > &checkedElements, set< ELT > &uncheckedElements) |
void | tryElt (int N, const ELT &cur, const vector< Word > &B, set< ELT > &checkedElements, set< ELT > &uncheckedElements) |
bool | check_ifVectorsEqual (int N, const vector< Word > &A1, const vector< Word > &A2) |
Implements Length-based attack on AAG protocol.
This is a very basic version of the length-based attack which implements the best descend LBA where on each step we choose conjugator which gives the maximal decrease among all currently available tuples. See A.Myasnikov. A.Ushakov, "On the length-based attack" for more details.
Definition at line 66 of file LengthAttack.h.
LengthAttack_A1::LengthAttack_A1 | ( | ) | [inline] |
Definition at line 69 of file LengthAttack.h.
void LengthAttack_A1::addNewElt | ( | const vector< Word > & | A, | |
set< ELT > & | checkedElements, | |||
set< ELT > & | uncheckedElements | |||
) | [private] |
bool LengthAttack_A1::check_ifVectorsEqual | ( | int | N, | |
const vector< Word > & | A1, | |||
const vector< Word > & | A2 | |||
) | [private] |
findKey_LengthBasedResult LengthAttack_A1::findKey_LengthBased | ( | int | N, | |
const vector< Word > & | A1, | |||
const vector< Word > & | A2, | |||
const vector< Word > & | B, | |||
int | sec = 9999999 , |
|||
ostream & | out = cout | |||
) | [virtual] |
Attack on an instances of the AAG protocol.
Executes a length-based attack on an instance of the AAG protocol
N | - rank of the braid group (number of strands) | |
A1 | - Alices subgroup generators | |
A2 | - Alices subgroup generators conjugated by Bob's private key | |
B | - Bob's subgroup (Bob's private key belongs to it) | |
sec | - amount of time (in seconds) given to procedure to finish |
Implements LengthAttackBase.
int LengthAttack_A1::sbgpGeneratorsWeight | ( | const vector< Word > & | A | ) | [private] |
void LengthAttack_A1::tryElt | ( | int | N, | |
const ELT & | cur, | |||
const vector< Word > & | B, | |||
set< ELT > & | checkedElements, | |||
set< ELT > & | uncheckedElements | |||
) | [private] |
int LengthAttack_A1::type | ( | ) | [inline, virtual] |
Returns the algorithm type.
Implements LengthAttackBase.
Definition at line 70 of file LengthAttack.h.
References AL1.