LengthAttack_A2 Class Reference

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

#include <LengthAttack.h>

Inheritance diagram for LengthAttack_A2:
LengthAttackBase

List of all members.

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)

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


Constructor & Destructor Documentation

LengthAttack_A2::LengthAttack_A2 (  )  [inline]

Definition at line 106 of file LengthAttack.h.


Member Function Documentation

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

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


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