LengthAttack_A1 Class Reference

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

#include <LengthAttack.h>

Inheritance diagram for LengthAttack_A1:
LengthAttackBase

List of all members.

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)

Detailed Description

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.


Constructor & Destructor Documentation

LengthAttack_A1::LengthAttack_A1 (  )  [inline]

Definition at line 69 of file LengthAttack.h.


Member Function Documentation

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

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_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.


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