Implements Length-based attack on AAG protocol. More...
#include <LengthAttack.h>
Public Member Functions | |
LengthAttack_A2 () | |
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) |
void | tryElt (int N, const ELT &cur, const vector< Word > &B, set< ELT > &checkedElements, set< ELT > &uncheckedElements, ostream &out) |
bool | check_ifVectorsEqual (int N, const vector< Word > &A1, const vector< Word > &A2) |
Implements Length-based attack on AAG protocol.
This is an implementation of the generalised length-based attack. This is an LBA with backtracking in which the set of elements in Alice~s public set is extended by all conjugators. See A.Myasnikov. A.Ushakov, "On the length-based attack" for more details.
Definition at line 103 of file LengthAttack.h.
LengthAttack_A2::LengthAttack_A2 | ( | ) | [inline] |
Definition at line 106 of file LengthAttack.h.
void LengthAttack_A2::addNewElt | ( | const vector< Word > & | A, | |
set< ELT > & | checkedElements, | |||
set< ELT > & | uncheckedElements | |||
) | [private] |
bool LengthAttack_A2::check_ifVectorsEqual | ( | int | N, | |
const vector< Word > & | A1, | |||
const vector< Word > & | A2 | |||
) | [private] |
findKey_LengthBasedResult LengthAttack_A2::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_A2::sbgpGeneratorsWeight | ( | const vector< Word > & | A | ) | [private] |
void LengthAttack_A2::tryElt | ( | int | N, | |
const ELT & | cur, | |||
const vector< Word > & | B, | |||
set< ELT > & | checkedElements, | |||
set< ELT > & | uncheckedElements, | |||
ostream & | out | |||
) | [private] |
void LengthAttack_A2::tryElt | ( | int | N, | |
const ELT & | cur, | |||
const vector< Word > & | B, | |||
set< ELT > & | checkedElements, | |||
set< ELT > & | uncheckedElements | |||
) | [private] |
int LengthAttack_A2::type | ( | ) | [inline, virtual] |
Returns the algorithm type.
Implements LengthAttackBase.
Definition at line 107 of file LengthAttack.h.
References AL2.