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

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

?? ideatest.java

?? MPI for java for Distributed Programming
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************                                                                         **             Java Grande Forum Benchmark Suite - MPJ Version 1.0         **                                                                         **                            produced by                                  **                                                                         **                  Java Grande Benchmarking Project                       **                                                                         **                                at                                       **                                                                         **                Edinburgh Parallel Computing Centre                      **                                                                         * *                email: epcc-javagrande@epcc.ed.ac.uk                     **                                                                         **                  Original version of this code by                       **                 Gabriel Zachmann (zach@igd.fhg.de)                      **                                                                         **      This version copyright (c) The University of Edinburgh, 2001.      **                         All rights reserved.                            **                                                                         ***************************************************************************//*** Class IDEATest** This test performs IDEA encryption then decryption. IDEA stands* for International Data Encryption Algorithm. The test is based* on code presented in Applied Cryptography by Bruce Schnier,* which was based on code developed by Xuejia Lai and James L.* Massey.**/package jgf_mpj_benchmarks.section2.crypt;import java.util.*;import jgf_mpj_benchmarks.jgfutil.*; import mpi.*;class IDEATest{// Declare class data. Byte buffer plain1 holds the original// data for encryption, crypt1 holds the encrypted data, and// plain2 holds the decrypted data, which should match plain1// byte for byte.int array_rows; int p_array_rows;int ref_p_array_rows;int rem_p_array_rows;byte [] plain1 = null;       // Buffer for plaintext data.byte [] crypt1 = null;       // Buffer for encrypted data.byte [] plain2 = null;       // Buffer for decrypted data.byte [] p_plain1 = null;byte [] p_crypt1 = null;byte [] p_plain2 = null;short [] userkey;     // Key for encryption/decryption.int [] Z;             // Encryption subkey (userkey derived).int [] DK;            // Decryption subkey (userkey derived).void Do() throws MPIException{  // temporary array for MPI  int m_length;  MPI.COMM_WORLD.Barrier();  // Start the stopwatch.         if(JGFCryptBench.rank==0) {    JGFInstrumentor.startTimer("Section2:Crypt:Kernel"); 		  }  // broadcast information  if(JGFCryptBench.rank==0) {    for (int i = 0; i < p_array_rows; i++) {     p_plain1[i] = plain1[i];     }    for(int k=1;k<JGFCryptBench.nprocess;k++){     if(k==JGFCryptBench.nprocess-1) {       m_length = rem_p_array_rows;     } else {       m_length = p_array_rows;     }     MPI.COMM_WORLD.Ssend(plain1,(p_array_rows*k),m_length,MPI.BYTE,k,k);    }  } else {    MPI.COMM_WORLD.Recv(p_plain1,0,p_array_rows,MPI.BYTE,0,JGFCryptBench.rank);  }  cipher_idea(p_plain1, p_crypt1, Z);     // Encrypt plain1.  cipher_idea(p_crypt1, p_plain2, DK);    // Decrypt.  MPI.COMM_WORLD.Barrier();  if(JGFCryptBench.rank==0) {    for(int k=0; k<p_array_rows;k++){       plain2[k] = p_plain2[k];    }    for(int k=1;k<JGFCryptBench.nprocess;k++) {      MPI.COMM_WORLD.Recv(plain2,(p_array_rows*k),p_array_rows,MPI.BYTE,k,k);    }  } else {    MPI.COMM_WORLD.Ssend(p_plain2,0,p_array_rows,MPI.BYTE,0,JGFCryptBench.rank);  }  MPI.COMM_WORLD.Barrier();  // Stop the stopwatch.  if(JGFCryptBench.rank==0) {    JGFInstrumentor.stopTimer("Section2:Crypt:Kernel");  }}/** buildTestData** Builds the data used for the test -- each time the test is run.*/void buildTestData(){    // Create three byte arrays that will be used (and reused) for    // encryption/decryption operations.    if(JGFCryptBench.rank==0) {      plain1 = new byte [array_rows];      crypt1 = new byte [array_rows];      plain2 = new byte [array_rows];    }     p_plain1 = new byte [p_array_rows];    p_crypt1 = new byte [p_array_rows];    p_plain2 = new byte [p_array_rows];    Random rndnum = new Random(136506717L);  // Create random number generator.    // Allocate three arrays to hold keys: userkey is the 128-bit key.    // Z is the set of 16-bit encryption subkeys derived from userkey,    // while DK is the set of 16-bit decryption subkeys also derived    // from userkey. NOTE: The 16-bit values are stored here in    // 32-bit int arrays so that the values may be used in calculations    // as if they are unsigned. Each 64-bit block of plaintext goes    // through eight processing rounds involving six of the subkeys    // then a final output transform with four of the keys; (8 * 6)    // + 4 = 52 subkeys.    userkey = new short [8];  // User key has 8 16-bit shorts.    Z = new int [52];         // Encryption subkey (user key derived).    DK = new int [52];        // Decryption subkey (user key derived).    // Generate user key randomly; eight 16-bit values in an array.    for (int i = 0; i < 8; i++)    {        // Again, the random number function returns int. Converting        // to a short type preserves the bit pattern in the lower 16        // bits of the int and discards the rest.      userkey[i] = (short) rndnum.nextInt();    }    // Compute encryption and decryption subkeys.    calcEncryptKey();    calcDecryptKey();    // Fill plain1 with "text."    // do on process 0 for reference     if(JGFCryptBench.rank==0) {          for (int i = 0; i < array_rows; i++)      {        plain1[i] = (byte) i;         // Converting to a byte        // type preserves the bit pattern in the lower 8 bits of the        // int and discards the rest.      }    }}/** calcEncryptKey** Builds the 52 16-bit encryption subkeys Z[] from the user key and* stores in 32-bit int array. The routing corrects an error in the* source code in the Schnier book. Basically, the sense of the 7-* and 9-bit shifts are reversed. It still works reversed, but would* encrypted code would not decrypt with someone else's IDEA code.*/private void calcEncryptKey(){    int j;                       // Utility variable.    for (int i = 0; i < 52; i++) // Zero out the 52-int Z array.        Z[i] = 0;    for (int i = 0; i < 8; i++)  // First 8 subkeys are userkey itself.    {        Z[i] = userkey[i] & 0xffff;     // Convert "unsigned"                                        // short to int.    }    // Each set of 8 subkeys thereafter is derived from left rotating    // the whole 128-bit key 25 bits to left (once between each set of    // eight keys and then before the last four). Instead of actually    // rotating the whole key, this routine just grabs the 16 bits    // that are 25 bits to the right of the corresponding subkey    // eight positions below the current subkey. That 16-bit extent    // straddles two array members, so bits are shifted left in one    // member and right (with zero fill) in the other. For the last    // two subkeys in any group of eight, those 16 bits start to    // wrap around to the first two members of the previous eight.    for (int i = 8; i < 52; i++)    {        j = i % 8;        if (j < 6)        {            Z[i] = ((Z[i -7]>>>9) | (Z[i-6]<<7)) // Shift and combine.                    & 0xFFFF;                    // Just 16 bits.            continue;                            // Next iteration.        }        if (j == 6)    // Wrap to beginning for second chunk.        {            Z[i] = ((Z[i -7]>>>9) | (Z[i-14]<<7))                    & 0xFFFF;            continue;        }         // j == 7 so wrap to beginning for both chunks.        Z[i] = ((Z[i -15]>>>9) | (Z[i-14]<<7))                    & 0xFFFF;    }}/** calcDecryptKey** Builds the 52 16-bit encryption subkeys DK[] from the encryption-* subkeys Z[]. DK[] is a 32-bit int array holding 16-bit values as* unsigned.*/private void calcDecryptKey(){    int j, k;                 // Index counters.    int t1, t2, t3;           // Temps to hold decrypt subkeys.    t1 = inv(Z[0]);           // Multiplicative inverse (mod x10001).    t2 = - Z[1] & 0xffff;     // Additive inverse, 2nd encrypt subkey.    t3 = - Z[2] & 0xffff;     // Additive inverse, 3rd encrypt subkey.    DK[51] = inv(Z[3]);       // Multiplicative inverse (mod x10001).    DK[50] = t3;    DK[49] = t2;    DK[48] = t1;    j = 47;                   // Indices into temp and encrypt arrays.    k = 4;    for (int i = 0; i < 7; i++)    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩一级| 欧美日韩在线播放| 欧美在线999| 久久嫩草精品久久久精品| 亚洲精品午夜久久久| 激情图区综合网| 在线综合视频播放| 亚洲精品国产视频| 高清不卡一区二区| 欧美一区二区大片| 五月天欧美精品| 91香蕉视频mp4| 国产精品视频一二三区| 国产麻豆精品一区二区| 精品国产伦一区二区三区观看体验 | 国产精品久久久久久久久果冻传媒| 日韩精品一级二级 | 性做久久久久久免费观看欧美| 国产91丝袜在线18| 久久网这里都是精品| 免费的成人av| 欧美色国产精品| 亚洲123区在线观看| 欧美午夜精品一区| 一区二区欧美精品| 色成人在线视频| 亚洲另类一区二区| 91久久精品一区二区三区| 亚洲综合小说图片| 欧美日韩色一区| 日韩在线一区二区三区| 9191久久久久久久久久久| 日韩综合在线视频| 91精品欧美久久久久久动漫| 亚洲不卡在线观看| 日韩欧美亚洲国产另类| 蜜桃av噜噜一区二区三区小说| 欧美一级日韩免费不卡| 日韩成人伦理电影在线观看| 欧美成人a视频| 国产精品乡下勾搭老头1| 亚洲国产精品黑人久久久| 99久久综合国产精品| 亚洲激情第一区| 欧美福利视频导航| 久久99国产精品久久| 国产农村妇女毛片精品久久麻豆| 粉嫩久久99精品久久久久久夜| 中文字幕一区不卡| 欧美日韩一级大片网址| 麻豆精品视频在线观看免费| 国产亚洲一本大道中文在线| 99精品国产热久久91蜜凸| 亚洲午夜激情网站| 欧美精品一区二区三区高清aⅴ| 粉嫩一区二区三区在线看| 亚洲日本va午夜在线电影| 欧美日韩国产美| 国产一区二区三区四区五区入口 | 亚洲女同女同女同女同女同69| 欧美性生活影院| 国产一区二区三区在线观看免费 | 日韩av电影免费观看高清完整版| 欧美va在线播放| 色综合久久久久网| 精品一区二区免费在线观看| 亚洲欧美一区二区久久| 日韩一区和二区| 色婷婷av一区二区三区gif| 美腿丝袜在线亚洲一区| 亚洲男人的天堂网| 欧美精品一区二区三区在线| 欧美无砖专区一中文字| 国产69精品久久777的优势| 亚洲18色成人| 亚洲蜜臀av乱码久久精品蜜桃| 精品久久久影院| 欧美视频完全免费看| 不卡的看片网站| 蜜臀a∨国产成人精品| 亚洲综合在线电影| 中文字幕亚洲成人| 久久久久久久综合日本| 91精品国产手机| 91久久精品日日躁夜夜躁欧美| 国产福利精品导航| 青椒成人免费视频| 亚洲一区二区美女| 亚洲精品美腿丝袜| 国产精品美女久久久久久| 精品国产第一区二区三区观看体验 | 日韩欧美中文字幕精品| 在线一区二区视频| 91麻豆产精品久久久久久 | 中文字幕乱码亚洲精品一区| 日韩无一区二区| 欧美日韩不卡在线| 欧美性猛交xxxxxxxx| 色欧美片视频在线观看在线视频| 国产成人综合网站| 国产成人精品亚洲日本在线桃色 | 久久精品人人爽人人爽| 精品国产网站在线观看| 欧美tickling挠脚心丨vk| 日韩一区二区三区视频在线 | 欧美性高清videossexo| 97精品视频在线观看自产线路二| 成人免费电影视频| 国产高清不卡一区二区| 成人免费毛片app| 丰满少妇久久久久久久| 成人免费看黄yyy456| 94-欧美-setu| 91黄色免费版| 欧美精品免费视频| 欧美xxxxx牲另类人与| 国产亚洲综合av| 日韩一区欧美一区| 亚洲黄色免费网站| 香蕉久久一区二区不卡无毒影院| 婷婷久久综合九色国产成人| 亚洲国产精品久久一线不卡| 日日摸夜夜添夜夜添国产精品| 亚洲成人av免费| 麻豆国产91在线播放| 高清久久久久久| 色婷婷一区二区| 欧美精品久久久久久久久老牛影院| 91精品国产综合久久精品图片| 欧美videossexotv100| 国产午夜三级一区二区三| 中文字幕av一区二区三区免费看| 亚洲欧洲三级电影| 亚洲成人av电影在线| 日韩av一区二区三区四区| 国内精品免费在线观看| 91污在线观看| 日韩欧美在线综合网| 国产精品美女www爽爽爽| 亚洲国产日韩综合久久精品| 韩国三级中文字幕hd久久精品| 成人免费视频视频在线观看免费| 欧美性xxxxx极品少妇| 精品人伦一区二区色婷婷| 综合久久久久久| 全国精品久久少妇| eeuss鲁一区二区三区| 欧美日韩另类一区| 国产亚洲欧美激情| 偷拍一区二区三区| 成人午夜伦理影院| 日韩欧美国产综合一区| 亚洲色欲色欲www| 另类小说色综合网站| 96av麻豆蜜桃一区二区| 精品久久久网站| 亚洲国产视频一区| 不卡视频在线观看| 4438成人网| 亚洲一区欧美一区| 成人动漫中文字幕| 日韩欧美国产精品| 偷拍与自拍一区| 色综合久久中文字幕| 国产日本欧美一区二区| 美女被吸乳得到大胸91| 欧美午夜影院一区| 亚洲女人的天堂| 波多野结衣精品在线| 精品久久久久久久人人人人传媒 | 亚洲制服丝袜一区| 丁香网亚洲国际| 欧美成人vr18sexvr| 调教+趴+乳夹+国产+精品| 99精品桃花视频在线观看| 日本一区二区三区视频视频| 免费一级片91| 在线不卡中文字幕播放| 一区二区激情小说| 成人av免费在线| 国产精品无遮挡| 国产伦精品一区二区三区免费迷| 欧美高清www午色夜在线视频| 亚洲伊人伊色伊影伊综合网| 91视视频在线观看入口直接观看www | 欧美久久一区二区| 亚洲午夜一二三区视频| 一本色道久久综合狠狠躁的推荐| 国产人久久人人人人爽| 国产精品自产自拍| 欧美精品一区二区三区蜜桃视频| 久久精品国产亚洲高清剧情介绍| 91精品国产综合久久久久久久| 婷婷综合久久一区二区三区| 欧美日本在线播放| 日本欧美韩国一区三区| 日韩一区二区三区电影在线观看 | 亚洲国产aⅴ天堂久久| 在线观看三级视频欧美| 一个色综合网站|