[bugfix] fix bitslice bug

This commit is contained in:
zhaoxiaomeng
2018-05-23 10:19:55 +08:00
parent 473eb5ffe4
commit b5c3ca23b4
2 changed files with 0 additions and 84 deletions

View File

@@ -1,55 +0,0 @@
#define SMS4_NUM_ROUNDS_BS 32
typedef struct
{
unsigned __int64 rkh[SMS4_NUM_ROUNDS_BS][4];
unsigned __int64 rkl[SMS4_NUM_ROUNDS_BS][4];
} sms4_key_t_bs;
#define FK_BS00h (0xaaaaaaaaaaaaaaaa)
#define FK_BS00l (0x3333333333333333)
#define FK_BS01h (0xbbbbbbbbbbbbbbbb)
#define FK_BS01l (0x1111111111111111)
#define FK_BS02h (0xbbbbbbbbbbbbbbbb)
#define FK_BS02l (0xaaaaaaaaaaaaaaaa)
#define FK_BS03h (0xcccccccccccccccc)
#define FK_BS03l (0x6666666666666666)
#define FK_BS10h (0x5555555555555555)
#define FK_BS10l (0x6666666666666666)
#define FK_BS11h (0xaaaaaaaaaaaaaaaa)
#define FK_BS11l (0xaaaaaaaaaaaaaaaa)
#define FK_BS12h (0x3333333333333333)
#define FK_BS12l (0x3333333333333333)
#define FK_BS13h (0x5555555555555555)
#define FK_BS13l (0x0000000000000000)
//0x677d9197, 0xb27022dc,
#define FK_BS20h (0x6666666666666666)
#define FK_BS20l (0x7777777777777777)
#define FK_BS21h (0x7777777777777777)
#define FK_BS21l (0xdddddddddddddddd)
#define FK_BS22h (0x9999999999999999)
#define FK_BS22l (0x1111111111111111)
#define FK_BS23h (0x9999999999999999)
#define FK_BS23l (0x7777777777777777)
#define FK_BS30h (0xbbbbbbbbbbbbbbbb)
#define FK_BS30l (0x2222222222222222)
#define FK_BS31h (0x7777777777777777)
#define FK_BS31l (0x0000000000000000)
#define FK_BS32h (0x2222222222222222)
#define FK_BS32l (0x2222222222222222)
#define FK_BS33h (0xdddddddddddddddd)
#define FK_BS33l (0xcccccccccccccccc)
void sms4_set_encrypt_key_bs(sms4_key_t_bs *key,unsigned __int64 *user_keyh,unsigned __int64 *user_keyl);
void SMS4_encrypt_bs(sms4_key_t_bs *key,unsigned __int64 *INh,unsigned __int64 *INl,unsigned __int64 *OUTh,unsigned __int64 *OUTl);

View File

@@ -1,29 +0,0 @@
#include <stdio.h>
#include <time.h>
#include "sm4_bs.h"
unsigned __int64 ukeyh[16]={0x0000000000000000,0x2222222222222222,0x4444444444444444,0x6666666666666666,0x8888888888888888,0xAAAAAAAAAAAAAAAA,0xCCCCCCCCCCCCCCCC,0xEEEEEEEEEEEEEEEE,0xFFFFFFFFFFFFFFFF,0xDDDDDDDDDDDDDDDD,0xBBBBBBBBBBBBBBBB,0x9999999999999999,0x7777777777777777,0x5555555555555555,0x3333333333333333,0x1111111111111111};
unsigned __int64 ukeyl[16]={0x1111111111111111,0x3333333333333333,0x5555555555555555,0x7777777777777777,0x9999999999999999,0xBBBBBBBBBBBBBBBB,0xDDDDDDDDDDDDDDDD,0xFFFFFFFFFFFFFFFF,0xEEEEEEEEEEEEEEEE,0xCCCCCCCCCCCCCCCC,0xAAAAAAAAAAAAAAAA,0x8888888888888888,0x6666666666666666,0x4444444444444444,0x2222222222222222,0x0000000000000000};
unsigned __int64 inh[16]={0x0000000000000000,0x2222222222222222,0x4444444444444444,0x6666666666666666,0x8888888888888888,0xAAAAAAAAAAAAAAAA,0xCCCCCCCCCCCCCCCC,0xEEEEEEEEEEEEEEEE,0xFFFFFFFFFFFFFFFF,0xDDDDDDDDDDDDDDDD,0xBBBBBBBBBBBBBBBB,0x9999999999999999,0x7777777777777777,0x5555555555555555,0x3333333333333333,0x1111111111111111};
unsigned __int64 inl[16]={0x1111111111111111,0x3333333333333333,0x5555555555555555,0x7777777777777777,0x9999999999999999,0xBBBBBBBBBBBBBBBB,0xDDDDDDDDDDDDDDDD,0xFFFFFFFFFFFFFFFF,0xEEEEEEEEEEEEEEEE,0xCCCCCCCCCCCCCCCC,0xAAAAAAAAAAAAAAAA,0x8888888888888888,0x6666666666666666,0x4444444444444444,0x2222222222222222,0x0000000000000000};
void main()
{
clock_t t1,t2;
unsigned int p;
int i,j;
sms4_key_t_bs keybs;
printf("pai:\n");
scanf("%d",&p);
sms4_set_encrypt_key_bs(&keybs,ukeyh,ukeyl);
t1 = clock();
for(i=0;i<p;i++)
{
SMS4_encrypt_bs(&keybs,inh,inl,inh,inl);
}
t2 = clock();
printf(" %f %f %f B/s\n",(double)(t2-t1)/CLOCKS_PER_SEC,(16.0*p)/((double)(t2-t1)/CLOCKS_PER_SEC),(16.0*p*16)/((double)(t2-t1)/CLOCKS_PER_SEC));
for(j=0;j<16;j++){for(i=0;i<16;i++){printf("%x%x,",(unsigned char)(inh[i]>>j*4)&0xf,(unsigned char)(inl[i]>>j*4)&0xf);}printf("\n");}
//68,1e,df,34,d2,06,96,5e,86,b3,e9,4f,53,6e,42,46,
}