資源簡介
SHA-3候選算法原理與實現SHA-3候選算法原理與實現SHA-3候選算法原理與實現SHA-3候選算法原理與實現

代碼片段和文件信息
#include?
#include?
#include?“stdint.h“
#include?
#define?U8TO32(p) \
??(((uint32_t)((p)[0])?<24)?|?((uint32_t)((p)[1])?<16)?| \
???((uint32_t)((p)[2])?<?8)?|?((uint32_t)((p)[3])??????))
#define?U32TO8(p?v) \
??(p)[0]?=?(uint8_t)((v)?>>?24);?(p)[1]?=?(uint8_t)((v)?>>?16); \
??(p)[2]?=?(uint8_t)((v)?>>??8);?(p)[3]?=?(uint8_t)((v)??????);?
typedef?struct??{?
??uint32_t?h[8]?s[4]?t[2];
??int?buflen?nullt;
??uint8_t??buf[64];
}?state;
//置換數組
const?uint8_t?sigma[][16]?=?{
??{?0?1?2?3?4?5?6?7?8?9101112131415?}
??{1410?4?8?91513?6?112?0?211?7?5?3?}
??{11?812?0?5?215131014?3?6?7?1?9?4?}
??{?7?9?3?113121114?2?6?510?4?015?8?}
??{?9?0?5?7?2?4101514?11112?6?8?313?}
??{?212?610?011?8?3?413?7?51514?1?9?}
??{12?5?1151413?410?0?7?6?3?9?2?811?}
??{1311?71412?1?3?9?5?015?4?8?6?210?}
??{?61514?911?3?0?812?213?7?1?410?5?}
??{10?2?8?4?7?6?1?51511?914?31213?0?}
??{?0?1?2?3?4?5?6?7?8?9101112131415?}
??{1410?4?8?91513?6?112?0?211?7?5?3?}
??{11?812?0?5?215131014?3?6?7?1?9?4?}
??{?7?9?3?113121114?2?6?510?4?015?8?}};
const?uint32_t?cst[16]?=?{
??0x243F6A880x85A308D30x13198A2E0x03707344
??0xA40938220x299F31D00x082EFA980xEC4E6C89
??0x452821E60x38D013770xBE5466CF0x34E90C6C
??0xC0AC29B70xC97C50DD0x3F84D5B50xB5470917};
const?uint8_t?padding[]?=
??{0x800000000000000000000000000000000
???0000000000000000?0000000000000000};
//blake256壓縮函數
void?blake256_compress(?state?*S?const?uint8_t?*block?)?{
??uint32_t?v[16]?m[16]?i;
#define?ROT(xn)?(((x)<<(32-n))|(?(x)>>(n)))
#define?G(abcde) \
??v[a]?+=?(m[sigma[i][e]]?^?cst[sigma[i][e+1]])?+?v[b]; \
??v[d]?=?ROT(?v[d]?^?v[a]16); \
??v[c]?+=?v[d]; \
??v[b]?=?ROT(?v[b]?^?v[c]12); \
??v[a]?+=?(m[sigma[i][e+1]]?^?cst[sigma[i][e]])+v[b]; \
??v[d]?=?ROT(?v[d]?^?v[a]?8); \
??v[c]?+=?v[d]; \
??v[b]?=?ROT(?v[b]?^?v[c]?7);
??for(i=0;?i<16;++i)??m[i]?=?U8TO32(block?+?i*4);
??for(i=0;?i8;++i)??v[i]?=?S->h[i];
??v[?8]?=?S->s[0]?^?0x243F6A88;
??v[?9]?=?S->s[1]?^?0x85A308D3;
??v[10]?=?S->s[2]?^?0x13198A2E;
??v[11]?=?S->s[3]?^?0x03707344;
??v[12]?=??0xA4093822;
??v[13]?=??0x299F31D0;
??v[14]?=??0x082EFA98;
??v[15]?=??0xEC4E6C89;
??if?(S->nullt?==?0)?{?
????v[12]?^=?S->t[0];
????v[13]?^=?S->t[0];
????v[14]?^=?S->t[1];
????v[15]?^=?S->t[1];
??}
??for(i=0;?i<14;?++i)?{
????G(?0?4?812?0);
????G(?1?5?913?2);
????G(?2?61014?4);
????G(?3?71115?6);
????G(?3?4?91414);???
????G(?2?7?81312);
????G(?0?51015?8);
????G(?1?6111210);
??}
??
??for(i=0;?i<16;++i)??S->h[i%8]?^=?v[i];?
??for(i=0;?i<8?;++i)??S->h[i]?^=?S->s[i%4];?
}
//blake256初始化,為鏈接變量、鹽、計數器賦初始值
void?blake256_init(?state?*S?)?{
??S->h[0]=0x6A09E667;
??S->h[1]=0xBB67AE85;
??S->h[2]=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-10-02?10:07??第十三章??SHA-3候選算法原理與實現\
?????目錄???????????0??2017-10-02?10:07??第十三章??SHA-3候選算法原理與實現\blake\
?????文件????????6997??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\blake256.c
?????文件????????3423??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\blake\blake256.dsp
?????文件?????????524??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\blake\blake256.dsw
?????文件???????50176??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\blake256.ncb
?????文件???????53760??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\blake256.opt
?????文件?????????754??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\blake256.plg
?????目錄???????????0??2017-10-02?10:07??第十三章??SHA-3候選算法原理與實現\blake\Debug\
?????文件??????221331??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\Debug\blake256.exe
?????文件??????235720??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\Debug\blake256.ilk
?????文件???????16873??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\Debug\blake256.obj
?????文件??????190032??2013-10-09?16:47??第十三章??SHA-3候選算法原理與實現\blake\Debug\blake256.pch
?????文件??????549888??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\Debug\blake256.pdb
?????文件????????1539??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\blake\Debug\test.obj
?????文件???????58368??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\Debug\vc60.idb
?????文件???????53248??2013-10-09?16:48??第十三章??SHA-3候選算法原理與實現\blake\Debug\vc60.pdb
?????文件????????8288??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\blake\stdint.h
?????文件??????????83??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\blake\test.c
?????文件??????139962??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\blake\test.txt
?????目錄???????????0??2017-10-02?10:07??第十三章??SHA-3候選算法原理與實現\Groestl\
?????目錄???????????0??2017-10-02?10:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\
?????文件?????????187??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\api.h
?????文件???????????0??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\crypto_hash.h
?????文件??????????93??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\crypto_uint32.h
?????文件??????????97??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\crypto_uint64.h
?????文件??????????91??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\crypto_uint8.h
?????目錄???????????0??2017-10-02?10:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\Debug\
?????文件???????50176??2013-10-07?18:07??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\Debug\hash.bsc
?????文件??????237724??2013-10-09?16:49??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\Debug\hash.exe
?????文件??????233488??2013-10-09?16:49??第十三章??SHA-3候選算法原理與實現\Groestl\Groestl256\Debug\hash.ilk
............此處省略120個文件信息
評論
共有 條評論