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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? micali.c

?? 應(yīng)用密碼學(xué)這本書的源代碼
?? C
字號(hào):
/*
  Author:  Pate Williams (c) 1997

  The following program implements and tests the
  Micali-Schnorr random bits generator. The test
  suite is according to FIPS 140-1. See "Handbook
  of Applied Cryptography" by Alfred J. Menezes
  et al Section 5.4.4 pages 181 - 183 and 5.37
  Algorithm page 186.
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "lip.h"

#define BIT_STRING_LENGTH 20000l
#define MONOBIT_LO 9654l
#define MONOBIT_HI 10346l
#define POKER_LO 1.03
#define POKER_HI 57.4

void Micali_Schnorr_gen_key(long bit_length, verylong *ze,
                            verylong *zn, verylong *zx0,
                            long *k, long *r)
/* generates the key and seed for the Micali-Schnorr
   pseudorandom bits generator */
{
  long length = bit_length / 2, N;
  verylong zd = 0, zp = 0, zq = 0, zs = 0, zt = 0;
  verylong zphi = 0;

  zrstarts(time(NULL));
  zrandomprime(length, 5l, &zp, zrandomb);
  zrandomprime(length, 5l, &zq, zrandomb);
  zmul(zp, zq, zn);
  zsadd(zp, - 1l, &zs);
  zsadd(zq, - 1l, &zt);
  zmul(zs, zt, &zphi);
  N = z2log(*zn);
  zpstart();
  do {
    zintoz(zpnext(), ze);
    zgcd(*ze, zphi, &zd);
    zsmul(*ze, 80l, &zs);
  } while (zscompare(zd, 1l) != 0 && zscompare(zs, N) > 0);
  *k = N * (1.0 - 2 / (double) ztoint(*ze));
  *r = N - *k;
  zrandomprime(*r, 5l, zx0, zrandomb);
  zfree(&zd);
  zfree(&zp);
  zfree(&zq);
  zfree(&zs);
  zfree(&zt);
  zfree(&zphi);
}

void Micali_Schnorr_next_bits(long k, long r, verylong ze,
                              verylong zn, verylong *zx,
                              verylong *zz)
/* gets the next bits in the sequence */
{
  verylong zx0 = 0, zy = 0;

  zcopy(*zx, &zx0);
  zexpmod(zx0, ze, zn, &zy);
  zhighbits(zy, r, zx);
  zlowbits(zy, k, zz);
  zfree(&zx0);
  zfree(&zy);
}

int FIPS_140_1(char *bit_string)
/* Statistical tests for randomness returns - 3
   if bit_string fails monobit test, - 2 if it
   fails poker test, - 1 if it fails runs test,
   0 if it fails the long run test 1 otherwise */
{
  float X3, sum = 0.0;
  long B[6]= {0}, G[6] = {0}, n[16] = {0};
  long i, index, j, k, max_run = 0, n1 = 0;
  long interval_lo[6] = {2267, 1079, 502, 223, 90, 90};
  long interval_hi[6] = {2733, 1421, 748, 402, 223, 223};

  /* monobit test */
  for (i = 0; i < BIT_STRING_LENGTH; i++)
    if (bit_string[i] == 1) n1++;
  /* poker test */
  i = 0;
  k = BIT_STRING_LENGTH / 4;
  for (j = 0; j < k; j++) {
    index = 8 * bit_string[i + 3] + 4 * bit_string[i + 2]
          + 2 * bit_string[i + 1] + bit_string[i];
    n[index]++;
    i += 4;
  }
  for (i = 0; i < 16; i++) sum += n[i] * n[i];
  X3 = 16.0 * sum / k - k;
  /* runs test */
  i = 0;
  while (i < BIT_STRING_LENGTH) {
    j = 0;
    while (i < BIT_STRING_LENGTH && bit_string[i] == 1) i++, j++;
    if (j <= 6) B[j - 1]++; else B[5]++;
    if (j > max_run) max_run = j;
    while (i < BIT_STRING_LENGTH && bit_string[i] == 0) i++;
 }
  i = 0;
  while (i < BIT_STRING_LENGTH) {
    j = 0;
    while (i < BIT_STRING_LENGTH && bit_string[i] == 0) i++, j++;
    if (j <= 6) G[j - 1]++; else G[5]++;
    if (j > max_run) max_run = j;
    while (i < BIT_STRING_LENGTH && bit_string[i] == 1) i++;
  }
  /* print out results of the tests */
  printf("monobit statistic: %ld\n", n1);
  printf("poker test statistic: %lf\n", X3);
  printf("# blocks\tgaps\n");
  for (i = 0; i < 6; i++)
    printf("%ld %4ld\t\t%4ld\n", i + 1, B[i], G[i]);
  printf("long runs statistic: %ld\n", max_run);
  /* compute return value based on statistics */
  if (n1 <= MONOBIT_LO || n1 >= MONOBIT_HI) return - 3;
  if (X3 <= POKER_LO || X3 >= POKER_HI) return - 2;
  for (i = 0; i < 6; i++) {
    if (B[i] < interval_lo[i] || B[i] > interval_hi[i]) return - 1;
    if (G[i] < interval_lo[i] || G[i] > interval_hi[i]) return - 1;
  }
  if (max_run >= 34) return 0;
  return 1;
}

int main(void)
{
  char bit_string[BIT_STRING_LENGTH];
  long i = 0, j, k, r;
  verylong ze = 0, zn = 0, zx = 0, zy = 0, zz = 0;

  /* fill the buffer to be tested */
  Micali_Schnorr_gen_key(256l, &ze, &zn, &zx, &k, &r);
  printf("%ld %ld\n", k, r);
  zwriteln(zx);
  while (i < BIT_STRING_LENGTH) {
    Micali_Schnorr_next_bits(k, r, ze, zn, &zx, &zz);
    for (j = 0; j < k; j++) {
      zlowbits(zz, 1l, &zy);
      if (i < BIT_STRING_LENGTH)
        bit_string[i++] = (char) ztoint(zy);
      zrshift(zz, 1l, &zy);
      zcopy(zy, &zz);
    }
  }
  printf("value of FIPS_140_1 = %d\n", FIPS_140_1(bit_string));
  zfree(&ze);
  zfree(&zn);
  zfree(&zx);
  zfree(&zy);
  zfree(&zz);
  return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清不卡在线观看| 国产精品自拍一区| 久久蜜桃香蕉精品一区二区三区| 国产精品中文欧美| 亚洲男人的天堂在线观看| 99精品视频一区二区三区| 一区二区在线观看免费视频播放| 91精品国产一区二区| 成人性生交大合| 五月天亚洲婷婷| 精品免费日韩av| 欧美在线观看视频在线| 国产在线不卡视频| 亚洲综合男人的天堂| 久久久精品人体av艺术| 欧美日韩一区二区三区四区| 国产福利91精品一区| 天堂蜜桃91精品| 亚洲欧洲成人av每日更新| 欧美一二三区在线观看| 色噜噜狠狠成人网p站| 久久99精品国产91久久来源| 夜夜嗨av一区二区三区四季av| 精品久久久久久最新网址| 欧美午夜精品久久久久久超碰| 国产.精品.日韩.另类.中文.在线.播放 | 在线播放亚洲一区| 91麻豆精品秘密| 日韩国产高清影视| 亚洲男人都懂的| 国产精品欧美精品| 精品成人在线观看| 制服丝袜亚洲色图| 欧美日韩国产免费一区二区 | 久久久精品国产免大香伊| 色综合久久中文字幕| 成人免费视频网站在线观看| 青青草原综合久久大伊人精品| 国产精品―色哟哟| 久久免费看少妇高潮| 精品国产乱码久久久久久夜甘婷婷| 欧美系列日韩一区| 色悠悠久久综合| 91在线视频观看| 国内成人免费视频| 精油按摩中文字幕久久| 日本成人中文字幕| 亚洲成精国产精品女| 一区二区三区免费看视频| 亚洲婷婷综合久久一本伊一区| 久久久久久**毛片大全| 久久久久国产成人精品亚洲午夜| 日韩三级在线观看| 日韩欧美一区二区在线视频| 91精品国产aⅴ一区二区| 欧美日韩精品免费观看视频| 欧日韩精品视频| 色欧美片视频在线观看| 日本道精品一区二区三区| 成人黄页在线观看| 成人av高清在线| 色综合咪咪久久| 欧美视频一区二区三区| 欧美日韩免费电影| 91精品国产入口在线| 欧美一级日韩免费不卡| 精品国产3级a| 国产丝袜在线精品| 日韩一区日韩二区| 亚洲一区二区三区美女| 免费成人在线视频观看| 国产原创一区二区| 国产伦精品一区二区三区在线观看| 国产剧情一区二区| 91色.com| 欧美一区二区三区公司| 久久综合狠狠综合久久综合88 | 91久久精品午夜一区二区| 91黄视频在线| 欧美一级免费大片| 久久久影院官网| 日韩理论电影院| 午夜精品久久一牛影视| 久久精品99国产精品日本| 国产99精品国产| 欧美午夜一区二区三区| 日韩欧美成人激情| 中文乱码免费一区二区| 亚洲高清视频在线| 精品夜夜嗨av一区二区三区| 成人91在线观看| 欧美日韩国产高清一区| 精品欧美久久久| 亚洲蜜臀av乱码久久精品蜜桃| 免费在线看成人av| 99riav一区二区三区| 欧美二区在线观看| 日本一区二区免费在线 | www国产精品av| 亚洲素人一区二区| 麻豆视频一区二区| 91浏览器入口在线观看| 欧美一级片免费看| 亚洲麻豆国产自偷在线| 精品一区二区在线免费观看| 国产美女一区二区三区| 精品视频1区2区3区| 亚洲国产精华液网站w| 亚洲综合成人在线视频| 精品一区二区三区日韩| 欧美丝袜自拍制服另类| 久久免费看少妇高潮| 午夜精品免费在线| 99久久精品国产网站| 日韩三级高清在线| 亚洲人成伊人成综合网小说| 美女精品一区二区| 99re在线视频这里只有精品| 欧美一级黄色录像| 日韩av成人高清| 欧美精品1区2区| 午夜精品一区二区三区免费视频| 在线日韩一区二区| 亚洲欧洲无码一区二区三区| 国产成人在线网站| 国产无遮挡一区二区三区毛片日本| 久久91精品久久久久久秒播| 欧美高清dvd| 首页国产丝袜综合| 欧美日韩国产高清一区| 视频在线在亚洲| 5566中文字幕一区二区电影| 日一区二区三区| 884aa四虎影成人精品一区| 午夜精品久久久久久久久| 欧美区在线观看| 欧美bbbbb| 久久影院电视剧免费观看| 国产乱码精品1区2区3区| 久久久99久久| 成人国产精品免费观看动漫 | 国产欧美日韩中文久久| 国产成人av电影| 中文字幕一区二区三区av| 91婷婷韩国欧美一区二区| 一区二区三区鲁丝不卡| 欧美日韩情趣电影| 日本不卡中文字幕| 久久久久97国产精华液好用吗| 成人看片黄a免费看在线| 亚洲视频在线一区二区| 欧美三级电影一区| 日本不卡一区二区三区| 久久精品日产第一区二区三区高清版 | 8v天堂国产在线一区二区| 久久成人精品无人区| 国产喷白浆一区二区三区| 91麻豆精品视频| 日本伊人午夜精品| 久久久无码精品亚洲日韩按摩| 99精品国产91久久久久久 | 精品影院一区二区久久久| 国产日韩欧美高清在线| 在线亚洲欧美专区二区| 男人的天堂久久精品| 国产精品久久久久久一区二区三区| 在线视频欧美区| 国产在线精品免费| 一区二区三区在线视频观看58| 欧美一区二区高清| 99在线视频精品| 免费高清在线一区| 亚洲欧美综合另类在线卡通| 欧美绝品在线观看成人午夜影视| 久久99热这里只有精品| 自拍视频在线观看一区二区| 欧美福利视频一区| 国产aⅴ综合色| 日韩激情视频在线观看| 中文字幕成人av| 欧美剧情片在线观看| 成人免费黄色在线| 日韩av电影免费观看高清完整版| 国产精品女人毛片| 欧美zozo另类异族| 日本精品一区二区三区高清| 国产真实乱对白精彩久久| 亚洲精品菠萝久久久久久久| 精品第一国产综合精品aⅴ| 色香蕉久久蜜桃| 国产 欧美在线| 麻豆传媒一区二区三区| 一区二区高清视频在线观看| 久久久久久麻豆| 69久久夜色精品国产69蝌蚪网| www.日本不卡| 国产麻豆欧美日韩一区| 日本中文一区二区三区| 亚洲一区二区黄色| 亚洲同性gay激情无套|