LengthAttack_A3 Class Reference

Implements Length-based attack on AAG protocol. More...

#include <LengthAttack.h>

Inheritance diagram for LengthAttack_A3:
LengthAttackBase

List of all members.

Public Member Functions

 LengthAttack_A3 ()
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

void addProducts (const vector< Word > &elem_set, vector< Word > &ext_set, vector< Word > &ext_set_sg_gens, const Word &sel_gen, int sel_gen_sg)
void addAllProducts (const vector< Word > &elem_set, vector< Word > &ext_set, vector< Word > &ext_set_sg_gens)
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, const vector< Word > &B_sg_gens, set< ELT > &checkedElements, set< ELT > &uncheckedElements, bool is_B_extended, ostream &out)
bool check_ifVectorsEqual (int N, const vector< Word > &A1, const vector< Word > &A2)

Detailed Description

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 on each iteration is extended by conjugators and two-products of the "best" generator. See A.Myasnikov. A.Ushakov, "On the length-based attack" for more details.

Definition at line 143 of file LengthAttack.h.


Constructor & Destructor Documentation

LengthAttack_A3::LengthAttack_A3 (  )  [inline]

Definition at line 146 of file LengthAttack.h.


Member Function Documentation

void LengthAttack_A3::addAllProducts ( const vector< Word > &  elem_set,
vector< Word > &  ext_set,
vector< Word > &  ext_set_sg_gens 
) [private]
void LengthAttack_A3::addNewElt ( const vector< Word > &  A,
set< ELT > &  checkedElements,
set< ELT > &  uncheckedElements 
) [private]
void LengthAttack_A3::addProducts ( const vector< Word > &  elem_set,
vector< Word > &  ext_set,
vector< Word > &  ext_set_sg_gens,
const Word sel_gen,
int  sel_gen_sg 
) [private]
bool LengthAttack_A3::check_ifVectorsEqual ( int  N,
const vector< Word > &  A1,
const vector< Word > &  A2 
) [private]
findKey_LengthBasedResult LengthAttack_A3::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

Parameters:
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
Returns:
- Returns findKey_LengthBasedResult::SUCCESSFULL if the attack succeeds, findKey_LengthBasedResult::FAILED if the attack fails and findKey_LengthBasedResult::TIME_EXPIRED if the time limit is exceeded

Implements LengthAttackBase.

int LengthAttack_A3::sbgpGeneratorsWeight ( const vector< Word > &  A  )  [private]
void LengthAttack_A3::tryElt ( int  N,
const ELT cur,
const vector< Word > &  B,
const vector< Word > &  B_sg_gens,
set< ELT > &  checkedElements,
set< ELT > &  uncheckedElements,
bool  is_B_extended,
ostream &  out 
) [private]
void LengthAttack_A3::tryElt ( int  N,
const ELT cur,
const vector< Word > &  B,
set< ELT > &  checkedElements,
set< ELT > &  uncheckedElements 
) [private]
int LengthAttack_A3::type (  )  [inline, virtual]

Returns the algorithm type.

Implements LengthAttackBase.

Definition at line 147 of file LengthAttack.h.

References AL3.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Mon Sep 26 18:43:48 2011 for CRyptography And Groups (CRAG) by  doxygen 1.6.1