亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? saferp.c

?? 該壓縮包中包括 tom的加密函數庫及pdf說明 ,以及Rinick s ECC:橢圓曲線非對稱加密密鑰生成器
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* LibTomCrypt, modular cryptographic library -- Tom St Denis * * LibTomCrypt is a library that provides various cryptographic * algorithms in a highly modular and flexible manner. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@gmail.com, http://libtomcrypt.org *//**    @file saferp.c   SAFER+ Implementation by Tom St Denis */#include "tomcrypt.h"#ifdef SAFERPconst struct ltc_cipher_descriptor saferp_desc ={    "safer+",    4,    16, 32, 16, 8,    &saferp_setup,    &saferp_ecb_encrypt,    &saferp_ecb_decrypt,    &saferp_test,    &saferp_done,    &saferp_keysize,    NULL, NULL, NULL, NULL, NULL, NULL, NULL};/* ROUND(b,i)  * * This is one forward key application.  Note the basic form is  * key addition, substitution, key addition.  The safer_ebox and safer_lbox  * are the exponentiation box and logarithm boxes respectively.   * The value of 'i' is the current round number which allows this  * function to be unrolled massively.  Most of SAFER+'s speed  * comes from not having to compute indirect accesses into the  * array of 16 bytes b[0..15] which is the block of data*/extern const unsigned char safer_ebox[], safer_lbox[];#define ROUND(b, i)                                                                        \    b[0]  = (safer_ebox[(b[0] ^ skey->saferp.K[i][0]) & 255] + skey->saferp.K[i+1][0]) & 255;    \    b[1]  = safer_lbox[(b[1] + skey->saferp.K[i][1]) & 255] ^ skey->saferp.K[i+1][1];            \    b[2]  = safer_lbox[(b[2] + skey->saferp.K[i][2]) & 255] ^ skey->saferp.K[i+1][2];            \    b[3]  = (safer_ebox[(b[3] ^ skey->saferp.K[i][3]) & 255] + skey->saferp.K[i+1][3]) & 255;    \    b[4]  = (safer_ebox[(b[4] ^ skey->saferp.K[i][4]) & 255] + skey->saferp.K[i+1][4]) & 255;    \    b[5]  = safer_lbox[(b[5] + skey->saferp.K[i][5]) & 255] ^ skey->saferp.K[i+1][5];            \    b[6]  = safer_lbox[(b[6] + skey->saferp.K[i][6]) & 255] ^ skey->saferp.K[i+1][6];            \    b[7]  = (safer_ebox[(b[7] ^ skey->saferp.K[i][7]) & 255] + skey->saferp.K[i+1][7]) & 255;    \    b[8]  = (safer_ebox[(b[8] ^ skey->saferp.K[i][8]) & 255] + skey->saferp.K[i+1][8]) & 255;    \    b[9]  = safer_lbox[(b[9] + skey->saferp.K[i][9]) & 255] ^ skey->saferp.K[i+1][9];            \    b[10] = safer_lbox[(b[10] + skey->saferp.K[i][10]) & 255] ^ skey->saferp.K[i+1][10];         \    b[11] = (safer_ebox[(b[11] ^ skey->saferp.K[i][11]) & 255] + skey->saferp.K[i+1][11]) & 255; \    b[12] = (safer_ebox[(b[12] ^ skey->saferp.K[i][12]) & 255] + skey->saferp.K[i+1][12]) & 255; \    b[13] = safer_lbox[(b[13] + skey->saferp.K[i][13]) & 255] ^ skey->saferp.K[i+1][13];         \    b[14] = safer_lbox[(b[14] + skey->saferp.K[i][14]) & 255] ^ skey->saferp.K[i+1][14];         \    b[15] = (safer_ebox[(b[15] ^ skey->saferp.K[i][15]) & 255] + skey->saferp.K[i+1][15]) & 255;        /* This is one inverse key application */#define iROUND(b, i)                                                                       \    b[0]  = safer_lbox[(b[0] - skey->saferp.K[i+1][0]) & 255] ^ skey->saferp.K[i][0];            \    b[1]  = (safer_ebox[(b[1] ^ skey->saferp.K[i+1][1]) & 255] - skey->saferp.K[i][1]) & 255;    \    b[2]  = (safer_ebox[(b[2] ^ skey->saferp.K[i+1][2]) & 255] - skey->saferp.K[i][2]) & 255;    \    b[3]  = safer_lbox[(b[3] - skey->saferp.K[i+1][3]) & 255] ^ skey->saferp.K[i][3];            \    b[4]  = safer_lbox[(b[4] - skey->saferp.K[i+1][4]) & 255] ^ skey->saferp.K[i][4];            \    b[5]  = (safer_ebox[(b[5] ^ skey->saferp.K[i+1][5]) & 255] - skey->saferp.K[i][5]) & 255;    \    b[6]  = (safer_ebox[(b[6] ^ skey->saferp.K[i+1][6]) & 255] - skey->saferp.K[i][6]) & 255;    \    b[7]  = safer_lbox[(b[7] - skey->saferp.K[i+1][7]) & 255] ^ skey->saferp.K[i][7];            \    b[8]  = safer_lbox[(b[8] - skey->saferp.K[i+1][8]) & 255] ^ skey->saferp.K[i][8];            \    b[9]  = (safer_ebox[(b[9] ^ skey->saferp.K[i+1][9]) & 255] - skey->saferp.K[i][9]) & 255;    \    b[10] = (safer_ebox[(b[10] ^ skey->saferp.K[i+1][10]) & 255] - skey->saferp.K[i][10]) & 255; \    b[11] = safer_lbox[(b[11] - skey->saferp.K[i+1][11]) & 255] ^ skey->saferp.K[i][11];         \    b[12] = safer_lbox[(b[12] - skey->saferp.K[i+1][12]) & 255] ^ skey->saferp.K[i][12];         \    b[13] = (safer_ebox[(b[13] ^ skey->saferp.K[i+1][13]) & 255] - skey->saferp.K[i][13]) & 255; \    b[14] = (safer_ebox[(b[14] ^ skey->saferp.K[i+1][14]) & 255] - skey->saferp.K[i][14]) & 255; \    b[15] = safer_lbox[(b[15] - skey->saferp.K[i+1][15]) & 255] ^ skey->saferp.K[i][15];/* This is a forward single layer PHT transform.  */#define PHT(b)                                               \    b[0]  = (b[0] + (b[1] = (b[0] + b[1]) & 255)) & 255;     \    b[2]  = (b[2] + (b[3] = (b[3] + b[2]) & 255)) & 255;     \    b[4]  = (b[4] + (b[5] = (b[5] + b[4]) & 255)) & 255;     \    b[6]  = (b[6] + (b[7] = (b[7] + b[6]) & 255)) & 255;     \    b[8]  = (b[8] + (b[9] = (b[9] + b[8]) & 255)) & 255;     \    b[10] = (b[10] + (b[11] = (b[11] + b[10]) & 255)) & 255; \    b[12] = (b[12] + (b[13] = (b[13] + b[12]) & 255)) & 255; \    b[14] = (b[14] + (b[15] = (b[15] + b[14]) & 255)) & 255;    /* This is an inverse single layer PHT transform */#define iPHT(b)                                               \    b[15] = (b[15] - (b[14] = (b[14] - b[15]) & 255)) & 255;  \    b[13] = (b[13] - (b[12] = (b[12] - b[13]) & 255)) & 255;  \    b[11] = (b[11] - (b[10] = (b[10] - b[11]) & 255)) & 255;  \    b[9]  = (b[9] - (b[8] = (b[8] - b[9]) & 255)) & 255;      \    b[7]  = (b[7] - (b[6] = (b[6] - b[7]) & 255)) & 255;      \    b[5]  = (b[5] - (b[4] = (b[4] - b[5]) & 255)) & 255;      \    b[3]  = (b[3] - (b[2] = (b[2] - b[3]) & 255)) & 255;      \    b[1]  = (b[1] - (b[0] = (b[0] - b[1]) & 255)) & 255;      \/* This is the "Armenian" Shuffle.  It takes the input from b and stores it in b2 */#define SHUF(b, b2)                                              \    b2[0] = b[8]; b2[1] = b[11]; b2[2] = b[12]; b2[3] = b[15];   \    b2[4] = b[2]; b2[5] = b[1]; b2[6] = b[6]; b2[7] = b[5];      \    b2[8] = b[10]; b2[9] = b[9]; b2[10] = b[14]; b2[11] = b[13]; \    b2[12] = b[0]; b2[13] = b[7]; b2[14] = b[4]; b2[15] = b[3];/* This is the inverse shuffle.  It takes from b and gives to b2 */#define iSHUF(b, b2)                                               \    b2[0] = b[12]; b2[1] = b[5]; b2[2] = b[4]; b2[3] = b[15];      \    b2[4] = b[14]; b2[5] = b[7]; b2[6] = b[6]; b2[7] = b[13];      \    b2[8] = b[0]; b2[9] = b[9]; b2[10] = b[8]; b2[11] = b[1];      \    b2[12] = b[2]; b2[13] = b[11]; b2[14] = b[10]; b2[15] = b[3];/* The complete forward Linear Transform layer.   * Note that alternating usage of b and b2.   * Each round of LT starts in 'b' and ends in 'b2'.   */#define LT(b, b2)             \    PHT(b);  SHUF(b, b2);     \    PHT(b2); SHUF(b2, b);     \    PHT(b);  SHUF(b, b2);     \    PHT(b2); /* This is the inverse linear transform layer.  */#define iLT(b, b2)            \    iPHT(b);                  \    iSHUF(b, b2); iPHT(b2);   \    iSHUF(b2, b); iPHT(b);    \    iSHUF(b, b2); iPHT(b2);    #ifdef LTC_SMALL_CODE    static void _round(unsigned char *b, int i, symmetric_key *skey) {   ROUND(b, i);}static void _iround(unsigned char *b, int i, symmetric_key *skey){   iROUND(b, i);}static void _lt(unsigned char *b, unsigned char *b2){   LT(b, b2);}static void _ilt(unsigned char *b, unsigned char *b2){   iLT(b, b2);}   #undef ROUND#define ROUND(b, i) _round(b, i, skey)#undef iROUND#define iROUND(b, i) _iround(b, i, skey)#undef LT#define LT(b, b2) _lt(b, b2)#undef iLT#define iLT(b, b2) _ilt(b, b2)#endif/* These are the 33, 128-bit bias words for the key schedule */static const unsigned char safer_bias[33][16] = {{  70, 151, 177, 186, 163, 183,  16,  10, 197,  55, 179, 201,  90,  40, 172, 100},{ 236, 171, 170, 198, 103, 149,  88,  13, 248, 154, 246, 110, 102, 220,   5,  61},{ 138, 195, 216, 137, 106, 233,  54,  73,  67, 191, 235, 212, 150, 155, 104, 160},{  93,  87, 146,  31, 213, 113,  92, 187,  34, 193, 190, 123, 188, 153,  99, 148},{  42,  97, 184,  52,  50,  25, 253, 251,  23,  64, 230,  81,  29,  65,  68, 143},{ 221,   4, 128, 222, 231,  49, 214, 127,   1, 162, 247,  57, 218, 111,  35, 202},{  58, 208,  28, 209,  48,  62,  18, 161, 205,  15, 224, 168, 175, 130,  89,  44},{ 125, 173, 178, 239, 194, 135, 206, 117,   6,  19,   2, 144,  79,  46, 114,  51},{ 192, 141, 207, 169, 129, 226, 196,  39,  47, 108, 122, 159,  82, 225,  21,  56},{ 252,  32,  66, 199,   8, 228,   9,  85,  94, 140,  20, 118,  96, 255, 223, 215},{ 250,  11,  33,   0,  26, 249, 166, 185, 232, 158,  98,  76, 217, 145,  80, 210},{  24, 180,   7, 132, 234,  91, 164, 200,  14, 203,  72, 105,  75,  78, 156,  53},{  69,  77,  84, 229,  37,  60,  12,  74, 139,  63, 204, 167, 219, 107, 174, 244},{  45, 243, 124, 109, 157, 181,  38, 116, 242, 147,  83, 176, 240,  17, 237, 131},{ 182,   3,  22, 115,  59,  30, 142, 112, 189, 134,  27,  71, 126,  36,  86, 241},{ 136,  70, 151, 177, 186, 163, 183,  16,  10, 197,  55, 179, 201,  90,  40, 172},{ 220, 134, 119, 215, 166,  17, 251, 244, 186, 146, 145, 100, 131, 241,  51, 239},{  44, 181, 178,  43, 136, 209, 153, 203, 140, 132,  29,  20, 129, 151, 113, 202},{ 163, 139,  87,  60, 130, 196,  82,  92,  28, 232, 160,   4, 180, 133,  74, 246},{  84, 182, 223,  12,  26, 142, 222, 224,  57, 252,  32, 155,  36,  78, 169, 152},{ 171, 242,  96, 208, 108, 234, 250, 199, 217,   0, 212,  31, 110,  67, 188, 236},{ 137, 254, 122,  93,  73, 201,  50, 194, 249, 154, 248, 109,  22, 219,  89, 150},{ 233, 205, 230,  70,  66, 143,  10, 193, 204, 185, 101, 176, 210, 198, 172,  30},{  98,  41,  46,  14, 116,  80,   2,  90, 195,  37, 123, 138,  42,  91, 240,   6},{  71, 111, 112, 157, 126,  16, 206,  18,  39, 213,  76,  79, 214, 121,  48, 104},{ 117, 125, 228, 237, 128, 106, 144,  55, 162,  94, 118, 170, 197, 127,  61, 175},{ 229,  25,  97, 253,  77, 124, 183,  11, 238, 173,  75,  34, 245, 231, 115,  35},{ 200,   5, 225, 102, 221, 179,  88, 105,  99,  86,  15, 161,  49, 149,  23,   7},{  40,   1,  45, 226, 147, 190,  69,  21, 174, 120,   3, 135, 164, 184,  56, 207},{   8, 103,   9, 148, 235,  38, 168, 107, 189,  24,  52,  27, 187, 191, 114, 247},{  53,  72, 156,  81,  47,  59,  85, 227, 192, 159, 216, 211, 243, 141, 177, 255},{  62, 220, 134, 119, 215, 166,  17, 251, 244, 186, 146, 145, 100, 131, 241,  51}}; /**    Initialize the SAFER+ block cipher    @param key The symmetric key you wish to pass    @param keylen The key length in bytes    @param num_rounds The number of rounds desired (0 for default)    @param skey The key in as scheduled by this function.    @return CRYPT_OK if successful */int saferp_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey){   unsigned x, y, z;   unsigned char t[33];   static const int rounds[3] = { 8, 12, 16 };   LTC_ARGCHK(key  != NULL);   LTC_ARGCHK(skey != NULL);   /* check arguments */   if (keylen != 16 && keylen != 24 && keylen != 32) {      return CRYPT_INVALID_KEYSIZE;   }   /* Is the number of rounds valid?  Either use zero for default or    * 8,12,16 rounds for 16,24,32 byte keys     */   if (num_rounds != 0 && num_rounds != rounds[(keylen/8)-2]) {      return CRYPT_INVALID_ROUNDS;   }   /* 128 bit key version */   if (keylen == 16) {       /* copy key into t */       for (x = y = 0; x < 16; x++) {            t[x] = key[x];            y ^= key[x];        }       t[16] = y;       /* make round keys */       for (x = 0; x < 16; x++) {           skey->saferp.K[0][x] = t[x];       }       /* make the 16 other keys as a transformation of the first key */       for (x = 1; x < 17; x++) {           /* rotate 3 bits each */           for (y = 0; y < 17; y++) {               t[y] = ((t[y]<<3)|(t[y]>>5)) & 255;           }           /* select and add */           z = x;           for (y = 0; y < 16; y++) {               skey->saferp.K[x][y] = (t[z] + safer_bias[x-1][y]) & 255;               if (++z == 17) { z = 0; }           }       }       skey->saferp.rounds = 8;   } else if (keylen == 24) {       /* copy key into t */       for (x = y = 0; x < 24; x++) {            t[x] = key[x];            y ^= key[x];        }       t[24] = y;       /* make round keys */       for (x = 0; x < 16; x++) {           skey->saferp.K[0][x] = t[x];       }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人激情av| 欧美国产综合色视频| 日韩经典中文字幕一区| 欧美日韩一区精品| 午夜精品123| 日韩欧美久久久| 久久99国产精品麻豆| 精品处破学生在线二十三| 久久99国产精品麻豆| 国产三级精品视频| 色嗨嗨av一区二区三区| 天堂影院一区二区| 2欧美一区二区三区在线观看视频| 国内国产精品久久| 亚洲色图欧洲色图| 欧美性受xxxx黑人xyx| 日本在线观看不卡视频| 2021国产精品久久精品| 成人一级片网址| 亚洲综合丁香婷婷六月香| 日韩一区二区三区观看| 国产成人免费在线观看| 亚洲国产精品久久艾草纯爱| 欧美大肚乱孕交hd孕妇| 成人黄色小视频| 日韩精品一级中文字幕精品视频免费观看| 欧美一区三区二区| 成人激情综合网站| 三级影片在线观看欧美日韩一区二区 | 蜜臀久久99精品久久久久久9| 久久久美女毛片| 欧洲在线/亚洲| 国产专区欧美精品| 亚洲一区二区三区影院| 久久久久久久综合色一本| 91麻豆高清视频| 久99久精品视频免费观看| 中文字幕佐山爱一区二区免费| 欧美精品777| 成人99免费视频| 日韩电影免费在线看| 综合久久给合久久狠狠狠97色| 欧美一区二区视频在线观看2020| av动漫一区二区| 精品在线免费视频| 亚洲第一主播视频| 国产精品美女久久久久aⅴ| 91精品黄色片免费大全| 99re6这里只有精品视频在线观看| 视频一区二区中文字幕| 亚洲免费观看在线观看| 欧美国产一区视频在线观看| 欧美一区二区在线免费观看| 91网站在线观看视频| 国产成人午夜精品5599| 日韩国产高清影视| 亚洲国产成人高清精品| 亚洲欧洲99久久| 国产午夜三级一区二区三| 7777精品伊人久久久大香线蕉| 91伊人久久大香线蕉| 国产成人午夜精品影院观看视频 | 中文字幕中文在线不卡住| 欧美成人一区二区三区片免费 | 国产成人在线观看免费网站| 精品一区二区在线视频| 一区二区三区精品视频| 亚洲欧美日韩在线| 亚洲精品免费在线| 亚洲免费观看高清完整| 亚洲女厕所小便bbb| 最新久久zyz资源站| 国产精品美女久久福利网站| 亚洲国产岛国毛片在线| 国产亚洲精品超碰| 欧美韩日一区二区三区四区| 国产女人aaa级久久久级| 国产亚洲1区2区3区| 久久久久久久久久久电影| 久久亚洲二区三区| 久久免费视频色| 国产午夜亚洲精品午夜鲁丝片| 久久久91精品国产一区二区三区| 久久奇米777| 久久精品夜色噜噜亚洲a∨| 精品国产伦一区二区三区观看方式| 欧美一区二区三区日韩视频| 日韩欧美专区在线| 久久久久亚洲蜜桃| 国产精品人成在线观看免费| 中文字幕一区在线| 亚洲精品免费一二三区| 国产在线精品视频| 一区二区三区在线视频免费观看| 国产日韩三级在线| 久久蜜臀中文字幕| 国产日韩欧美精品一区| 日韩一区在线免费观看| 亚洲免费观看高清完整版在线观看熊| 一区二区三区在线免费播放| 亚洲国产三级在线| 免费看欧美美女黄的网站| 国产美女精品人人做人人爽| 成人av免费观看| 在线观看免费视频综合| 欧美不卡一区二区三区四区| 国产精品色噜噜| 亚洲在线中文字幕| 麻豆freexxxx性91精品| 国产91精品欧美| 91麻豆蜜桃一区二区三区| 在线成人av影院| 国产免费成人在线视频| 一区二区三区免费看视频| 日韩国产精品久久久| 成人精品视频.| 91精品在线麻豆| 中文字幕欧美国产| 日韩av一区二区三区四区| 国产成人免费高清| 欧美性一级生活| 日本一二三四高清不卡| 天天操天天干天天综合网| 国产精品资源网站| 欧美日韩一本到| 国产欧美日韩另类一区| 五月婷婷综合网| 成人综合婷婷国产精品久久蜜臀 | 国产成人亚洲综合a∨猫咪| 色视频欧美一区二区三区| 日韩一区二区电影| 亚洲色图欧洲色图| 国产一区二区三区免费观看| 精品视频免费在线| 日韩毛片精品高清免费| 国产在线精品免费| 日韩欧美一区在线观看| 亚洲精品国产无天堂网2021| 国产麻豆精品在线观看| 欧美一区二区三区电影| 亚洲国产精品欧美一二99| a在线欧美一区| 国产亚洲一区二区三区| 美女网站视频久久| 欧美男男青年gay1069videost | 欧美日韩中文一区| 国产精品久久久久影院| 国产在线视视频有精品| 日韩一级免费观看| 三级在线观看一区二区| 欧美日韩一区在线观看| 亚洲人成电影网站色mp4| 从欧美一区二区三区| 久久久精品免费免费| 蜜桃视频一区二区| 91精品国产品国语在线不卡| 亚洲一区二区三区激情| 色哟哟国产精品免费观看| 国产精品你懂的在线欣赏| 国产一区二区久久| 国产欧美日韩精品在线| 国产成人亚洲精品青草天美| 国产欧美日本一区二区三区| 国产福利一区在线观看| 国产精品嫩草影院av蜜臀| av资源网一区| 亚洲精品高清视频在线观看| 91在线码无精品| 亚洲黄色录像片| 欧美亚洲综合久久| 亚洲国产成人va在线观看天堂| 欧美丝袜第三区| 婷婷国产在线综合| 日韩三级免费观看| 韩国午夜理伦三级不卡影院| 亚洲精品一区二区三区在线观看| 久久国产精品无码网站| 精品成人在线观看| 丁香亚洲综合激情啪啪综合| 国产精品久久三区| 色综合一区二区| 亚洲国产综合在线| 日韩一级片网站| 国产精品亚洲一区二区三区在线 | 亚洲激情中文1区| 欧美日韩中文国产| 激情五月婷婷综合网| 亚洲国产精品成人综合色在线婷婷 | 国产精品激情偷乱一区二区∴| 99视频精品在线| 午夜精品一区在线观看| 日韩亚洲欧美在线观看| 国产成人8x视频一区二区| 中文字幕一区在线观看视频| 欧美日韩在线观看一区二区 | 经典三级一区二区| 国产精品福利一区| 91精品久久久久久久91蜜桃 | 久久电影网站中文字幕| 国产欧美视频一区二区三区|