AAGChallengeGeneration.h
Go to the documentation of this file.00001 
00002 #include "BraidGroup.h"
00003 #include "ThRightNormalForm.h"
00004 
00005 #include <iterator>
00006 #include <iostream>
00007 #include <fstream>
00008 #include "ShortBraidForm.h"
00009 
00010 #ifndef AAG_Challenge
00011 #define AAG_Challenge
00012 
00013 using namespace std;
00014 
00015 #include "LengthAttack.h"
00016 #include "AAGKeyGeneration.h"
00017 
00018 namespace AAGChallenge
00019 {
00020   
00021   
00022   
00023   
00024   
00025   vector<Word> getDpSubgroup( int N, int Pgens, 
00026                               const vector<Word>& Prelts, 
00027                               const pair< vector<Word>, vector<Word> >& genComps, int conjLen );
00028   
00029   
00030   
00031   
00032   
00033   
00034   Word getDelta( int i,int c );
00035   
00036   
00037   
00038   
00039   
00040   
00041   pair< vector<Word>,vector<Word> >  getSgGenComponentsRandom( int Pgens, int c, int k, int len );
00042   pair< vector<Word>,vector<Word> >  getSgGenComponentsSquares( int Pgens, int c, int k );
00043 
00044   
00045   
00046   
00047   
00048   
00049   
00050   
00051   Word randomSubgroupWord( int N,const vector<Word>& sg );
00052   
00053   
00054   
00055   
00056   
00057   
00058   Word specialSubgroupWord( const Word& a, const Word& t, int n );
00059   Word specialSubgroupWordRandom( const Word& a, const Word& t, int len );
00060 
00061   
00062   
00063   
00064   
00065   
00066   vector<Word> generateSubgroup( int c, int k, int comp_len  );
00067   
00068   Word generateKeyDecomp(  int n );
00069 
00070 }
00071 
00072 #endif