ShftConjKeyGenerationGarside.h

Go to the documentation of this file.
00001 // Copyright (C) 2005 Alexander Ushakov
00002 // Contents: Definition of class ShftConjKeyInstance. 
00003 // This a version for Dehornoy's authentification protocol which works with Garside normal forms.
00004 // Personally, I believe that it produces more interesting instances.
00005 //
00006 // Principal Authors: Alexander Ushakov
00007 //
00008 // Revision History:
00009 //
00010 
00011 #ifndef _ShftConjKeyGeneration_h_
00012 #define _ShftConjKeyGeneration_h_
00013 
00014 #include "Word.h"
00015 #include "ThRightNormalForm.h"
00016 
00017 #include <vector>
00018 using namespace std;
00019 
00020 
00021 //---------------------------------------------------------------------------//
00022 //-------------------------- ShftConjKeyInstance ----------------------------//
00023 //---------------------------------------------------------------------------//
00024 
00025 
00027 
00031 class ShftConjKeyInstanceGarside
00032 {
00033   
00035   //                                                     //
00036   //  Constructors:                                      //
00037   //                                                     //
00039   
00040  public:
00041 
00043 
00046   ShftConjKeyInstanceGarside( int braid_rank , ThRightNormalForm publicKeyA , ThRightNormalForm privateKey );
00047   
00048   
00050   //                                                     //
00051   //  Accessors:                                         //
00052   //                                                     //
00054 
00055  public:
00056   
00058 
00063   static ShftConjKeyInstanceGarside random( int braid_rank , int baseLenth , int keyLength );
00064 
00066   int  getBraidRank  ( ) const { return theRank; }
00068   ThRightNormalForm getPrivateKey( ) const { return thePrivateKey; }
00070   pair< ThRightNormalForm , ThRightNormalForm > getPublicKey ( ) const { return thePublicKey; }
00071 
00072   
00074   //                                                     //
00075   //  Data members:                                      //
00076   //                                                     //
00078 
00079  private:
00080 
00082   int theRank;
00083 
00085   ThRightNormalForm thePrivateKey;
00086 
00088   pair< ThRightNormalForm , ThRightNormalForm > thePublicKey;
00089 
00090 };
00091 
00092 
00093 //---------------------------------------------------------------------------//
00094 //------------------------------- Algorithms --------------------------------//
00095 //---------------------------------------------------------------------------//
00096 
00097 
00098 ThRightNormalForm shiftedConjugation( const ThRightNormalForm& w , const ThRightNormalForm& c );
00099 
00100 
00101 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

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