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

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

?? idea.c

?? 該源碼屬于應用密碼學里國際加密標準算法IDEA的實現
?? C
字號:
/******************************************************************************//*                                                                            *//* I N T E R N A T I O N A L  D A T A  E N C R Y P T I O N  A L G O R I T H M *//*                                                                            *//******************************************************************************//* Author:       Richard De Moliner (demoliner@isi.ee.ethz.ch)                *//*               Signal and Information Processing Laboratory                 *//*               Swiss Federal Institute of Technology                        *//*               CH-8092 Zuerich, Switzerland                                 *//* Created:      April 23, 1992                                               *//* Changes:      November 16, 1993 (support of ANSI-C and C++)                *//* System:       SUN SPARCstation, SUN acc ANSI-C-Compiler, SUN-OS 4.1.3      *//******************************************************************************/#include "idea.h"#define mulMod        0x10001 /* 2**16 + 1                                    */#define ones           0xFFFF /* 2**16 - 1                                    *//******************************************************************************//* Multiplication in the multiplicative group, a = a * b                      *//* pre:  0 <= a <= 0xFFFF.                                                    *//*       0 <= b <= 0xFFFF.                                                    *//* post: 'a' and 'b' have been modified.                                      *//*       a = a * b; where '*' is multiplication in the multiplicative group.  *//* note: This implementation of '*' is not complete. To bee complete the      *//*       result has to bee masked (MUL(a, b); a &= ones;).                    */#define Mul(a, b)                                                              \  if (a == 0) a = mulMod - b;                                                  \  else if (b == 0) a = mulMod - a;                                             \  else {                                                                       \    a *= b;                                                                    \    if ((a & ones) >= (b = a >> 16)) a -= b;                                   \    else a += mulMod - b;                                                      \  } /* Mul *//******************************************************************************//* Encryption and decryption algorithm IDEA. Depending on the value of 'key'  *//* 'Idea_Crypt' either encrypts or decrypts 'dataIn'. The result is stored    *//* in 'dataOut'.                                                              *//* pre:  'dataIn'  contains the plain/cipher-text block.                      *//*       'key'     contains the encryption/decryption key.                    *//* post: 'dataOut' contains the cipher/plain-text block.                      */#ifdef ANSI_C  void Idea_Crypt (Idea_Data dataIn, Idea_Data dataOut, Idea_Key key)#else  Idea_Crypt (dataIn, dataOut, key)  Idea_Data dataIn;  Idea_Data dataOut;  Idea_Key key;#endif{ register u_int32 x0, x1, x2, x3, t0, t1, t2;  int round;  x0 = (u_int32)*dataIn++; x1 = (u_int32)*dataIn++;  x2 = (u_int32)*dataIn++; x3 = (u_int32)*dataIn;  for (round = Idea_nofRound; round > 0; round--) {    t1 = (u_int32)*key++;    x1 += (u_int32)*key++;    x2 += (u_int32)*key++; x2 &= ones;    t2 = (u_int32)*key++;    Mul(x0, t1); x0 &= ones;    Mul(x3, t2);    t0 = (u_int32)*key++;    t1 = x0 ^ x2;    Mul(t0, t1); t0 &= ones;    t1 = (u_int32)*key++;    t2 = (x1 ^ x3) + t0 & ones;    Mul(t1, t2); t1 &= ones;    t0 += t1;    x0 ^= t1; x3 ^= t0; x3 &= ones;    t0 ^= x1; x1 = x2 ^ t1; x2 = t0;  }  t0 = (u_int32)*key++;  Mul(x0, t0);  *dataOut++ = (u_int16)(x0 & ones);  *dataOut++ = (u_int16)((u_int32)*key++ + x2 & ones);  *dataOut++ = (u_int16)((u_int32)*key++ + x1 & ones);  t0 = (u_int32)*key;  Mul(x3, t0);  *dataOut = (u_int16)(x3 & ones);} /* Idea_Crypt *//******************************************************************************//* Multiplicative Inverse by Extended Stein Greatest Common Divisor Algorithm.*//* pre:  0 <= x <= 0xFFFF.                                                    *//* post: x * MulInv(x) == 1, where '*' is multiplication in the               *//*                           multiplicative group.                            */#ifdef ANSI_C  static u_int16 MulInv (u_int16 x)#else  static u_int16 MulInv (x)  u_int16 x;#endif{ register int32 n1, n2, N, a1, a2, b1, b2;  if (x <= 1) return x;  n1 = N = (int32)x; n2 = mulMod;  a1 = b2 = 1; a2 = b1 = 0;  do {    while ((n1 & 1) == 0) {      if (a1 & 1)        if (a1 < 0) { a1 += mulMod; b1 -= N; }        else { a1 -= mulMod; b1 += N; }      n1 >>= 1; a1 >>= 1; b1 >>= 1;    }    if (n1 < n2)      do {        n2 -= n1; a2 -= a1; b2 -= b1;        if (n2 == 0) return (u_int16)(a1 < 0 ? a1 + mulMod : a1);        while ((n2 & 1) == 0) {          if (a2 & 1)            if (a2 < 0) { a2 += mulMod; b2 -= N; }            else { a2 -= mulMod; b2 += N; }          n2 >>= 1; a2 >>= 1; b2 >>= 1;        }      } while (n1 <= n2);    n1 -= n2; a1 -= a2; b1 -= b2;  } while (n1);  return (u_int16)(a2 < 0 ? a2 + mulMod : a2);} /* MulInv *//******************************************************************************//* Additive Inverse.                                                          *//* pre:  0 <= x <= 0xFFFF.                                                    *//* post: x + AddInv(x) == 0, where '+' is addition in the additive group.     */#define AddInv(x)  (-x & ones)/******************************************************************************//* Inverts a decryption/encrytion key to a encrytion/decryption key.          *//* pre:  'key'    contains the encryption/decryption key.                     *//* post: 'invKey' contains the decryption/encryption key.                     */#ifdef ANSI_C  void Idea_InvertKey (Idea_Key key, Idea_Key invKey)#else  Idea_InvertKey (key, invKey)  Idea_Key key;  Idea_Key invKey;#endif{ register u_int16 t, *in, *out;  register int lo, hi, i;  in = key; out = invKey;  lo = 0; hi = 6 * Idea_nofRound;  t = MulInv(in[lo]); out[lo++] = MulInv(in[hi]); out[hi++] = t;  t = AddInv(in[lo]); out[lo++] = AddInv(in[hi]); out[hi++] = t;  t = AddInv(in[lo]); out[lo++] = AddInv(in[hi]); out[hi++] = t;  t = MulInv(in[lo]); out[lo++] = MulInv(in[hi]); out[hi] = t;  for (i = (Idea_nofRound - 1) / 2 ; i != 0 ; i --) {    t = in[lo]; out[lo++] = in[hi -= 5]; out[hi ++] = t;    t = in[lo]; out[lo++] = in[hi]; out[hi] = t;    t = MulInv(in[lo]); out[lo++] = MulInv(in[hi -= 5]); out[hi++] = t;    t = AddInv(in[lo]); out[lo++] = AddInv(in[++hi]); out[hi--] = t;    t = AddInv(in[lo]); out[lo++] = AddInv(in[hi]); out[hi++] = t;    t = MulInv(in[lo]); out[lo++] = MulInv(in[++hi]); out[hi] = t;  }#if (Idea_nofRound % 2 == 0)  t = in[lo]; out[lo++] = in[hi -= 5]; out[hi++] = t;  t = in[lo]; out[lo++] = in[hi]; out[hi] = t;  out[lo] = MulInv(in[lo]); lo++;  t = AddInv(in[lo]); out[lo] = AddInv(in[lo + 1]); lo++; out[lo++] = t;  out[lo] = MulInv(in[lo]);#else  out[lo] = in[lo]; lo++;  out[lo] = in[lo];#endif} /* Idea_InvertKey *//******************************************************************************//* Expands a user key of 128 bits to a full encryption key                    *//* pre:  'userKey' contains the 128 bit user key                              *//* post: 'key'     contains the encryption key                                */#ifdef ANSI_C  void Idea_ExpandUserKey (Idea_UserKey userKey, Idea_Key key)#else  Idea_ExpandUserKey (userKey, key)  Idea_UserKey userKey;  Idea_Key key;#endif{ register int i;#if (Idea_keyLen <= Idea_userKeyLen)  for (i = 0; i < Idea_keyLen; i++) key[i] = userKey[i];#else  for (i = 0; i < Idea_userKeyLen; i++) key[i] = userKey[i];  for (i = Idea_userKeyLen; i < Idea_keyLen; i++)    if ((i & 7) < 6)      key[i] = (key[i - 7] & 127) << 9 | key[i - 6] >> 7;    else if ((i & 7) == 6)      key[i] = (key[i - 7] & 127) << 9 | key[i - 14] >> 7;     else      key[i] = (key[i - 15] & 127) << 9 | key[i - 14] >> 7; #endif} /* Idea_ExpandUserKey *//******************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区在线视频| 欧美三级蜜桃2在线观看| 欧美一级夜夜爽| 亚洲成人7777| 欧美人妖巨大在线| 午夜精品视频一区| 欧美一区二区三区在线视频| 亚洲狠狠爱一区二区三区| 91啪在线观看| 一区二区日韩av| 欧美一a一片一级一片| 亚洲精品成人a在线观看| 色综合天天综合给合国产| 日韩视频在线观看一区二区| 天天综合色天天综合| 欧美日韩免费电影| 日韩成人一级片| 日韩精品中文字幕一区二区三区| 青青草国产精品97视觉盛宴| 欧美成人一区二区三区| 91精品国产综合久久精品| 奇米一区二区三区| 国产精品卡一卡二卡三| 欧美日韩在线直播| 国产精品中文字幕日韩精品| 夜夜操天天操亚洲| 久久久久国产免费免费| 欧美日韩视频不卡| 成人免费毛片a| 日本成人在线视频网站| 日韩理论片网站| 精品久久久久香蕉网| 色综合天天性综合| 国产主播一区二区三区| 亚洲va欧美va人人爽| 国产农村妇女毛片精品久久麻豆 | 国产在线精品国自产拍免费| 亚洲九九爱视频| 久久久五月婷婷| 7777精品伊人久久久大香线蕉经典版下载| 国产精品综合在线视频| 日韩精品国产欧美| 国产精品进线69影院| 2023国产一二三区日本精品2022| 91黄色激情网站| av电影一区二区| 精品一区二区三区在线观看| 亚洲一区二区av电影| 亚洲三级在线观看| 欧美国产日韩a欧美在线观看| 日韩欧美一级片| 51午夜精品国产| 在线观看网站黄不卡| 99精品视频在线观看免费| 国内外精品视频| 老司机精品视频线观看86| 亚洲国产日韩a在线播放性色| 亚洲人成在线观看一区二区| 国产精品嫩草影院com| 久久色视频免费观看| 欧美大片在线观看一区| 在线成人av影院| 欧美日韩一区不卡| 欧美色倩网站大全免费| 色欧美片视频在线观看| 91视视频在线直接观看在线看网页在线看| 国产乱国产乱300精品| 久久国产人妖系列| 久久精品99久久久| 精一区二区三区| 国产精品一区不卡| 国产成人综合亚洲网站| 精品一区二区免费| 国产精品影视网| 国产成人福利片| 成人美女视频在线观看| 成人av免费在线播放| 99久久精品国产麻豆演员表| caoporen国产精品视频| 日本韩国一区二区| 在线观看av一区二区| 欧美性猛交xxxx黑人交 | 欧美片网站yy| 日韩精品一区二区三区老鸭窝| 精品久久久久久久久久久久久久久久久| 欧美一区二区三区四区久久| 欧美成人a视频| 国产亚洲自拍一区| 国产精品午夜免费| 一区二区久久久| 五月婷婷色综合| 精品一区二区三区免费视频| 国产麻豆9l精品三级站| 成人av免费在线观看| 欧美午夜精品久久久久久超碰| 欧美日韩国产一级片| 精品区一区二区| 国产精品久久久久影院亚瑟| 亚洲狼人国产精品| 麻豆精品久久久| 成人黄色电影在线| 欧美久久免费观看| 久久日韩精品一区二区五区| 亚洲人吸女人奶水| 免费成人结看片| 99视频精品免费视频| 欧美日韩免费电影| 国产亚洲精品免费| 夜夜嗨av一区二区三区四季av | 久久综合给合久久狠狠狠97色69| 国产女主播视频一区二区| 亚洲人成人一区二区在线观看 | 91亚洲精华国产精华精华液| 欧美日韩精品系列| 国产精品丝袜黑色高跟| 亚洲成a人片在线观看中文| 国产伦精品一区二区三区免费| 92国产精品观看| 日韩视频在线你懂得| 亚洲欧美日韩系列| 国产一区二区主播在线| 色8久久精品久久久久久蜜| 久久综合狠狠综合久久激情| 亚洲国产色一区| av在线这里只有精品| 日韩欧美国产高清| 洋洋成人永久网站入口| 高清beeg欧美| 欧美一区二区三区公司| 最好看的中文字幕久久| 精品一区二区综合| 欧美日韩不卡在线| 最新日韩av在线| 国产精品一区二区在线播放 | 日韩欧美国产一二三区| 亚洲一区二区视频| 成人的网站免费观看| 精品久久久影院| 免费观看日韩av| 欧美日韩欧美一区二区| 日韩美女啊v在线免费观看| 国产老女人精品毛片久久| 制服丝袜亚洲色图| 亚洲一区av在线| 在线观看亚洲精品视频| 最新久久zyz资源站| 国产精品自拍网站| 欧美电影免费观看高清完整版| 午夜精品福利一区二区蜜股av| 99久久精品国产一区| 国产精品久久久久久久裸模| 国产一区二区成人久久免费影院 | 久久综合色一综合色88| 日韩精品1区2区3区| 欧美日韩电影在线| 午夜久久久久久久久久一区二区| 色久综合一二码| 一区二区三区蜜桃| 在线视频欧美区| 亚洲成在人线免费| 欧美精品自拍偷拍动漫精品| 天堂在线一区二区| 日韩一区二区免费视频| 免费成人美女在线观看.| 欧美电影免费提供在线观看| 韩国av一区二区三区在线观看| 日韩一级二级三级精品视频| 奇米色777欧美一区二区| 日韩午夜av电影| 精品一区二区成人精品| 久久免费国产精品| 国产成人免费在线| 国产精品传媒视频| 91高清在线观看| 亚洲大尺度视频在线观看| 91麻豆精品国产91久久久久久| 免费人成精品欧美精品| 久久毛片高清国产| 本田岬高潮一区二区三区| 亚洲女女做受ⅹxx高潮| 欧美日韩精品一区二区三区四区| 日韩av一二三| 国产视频一区二区在线| 95精品视频在线| 性欧美大战久久久久久久久| 欧美变态口味重另类| 丰满少妇在线播放bd日韩电影| 国产精品福利一区| 欧美日韩一区在线| 久草精品在线观看| 中文字幕日韩欧美一区二区三区| 在线看不卡av| 精品在线免费观看| 综合亚洲深深色噜噜狠狠网站| 欧美日韩国产成人在线免费| 国产呦萝稀缺另类资源| 亚洲人成网站在线| 欧美电影免费观看高清完整版在线观看 | 一区二区三区精品| 欧美v国产在线一区二区三区|