Click here to Skip to main content
15,889,659 members
Home / Discussions / Algorithms
   

Algorithms

 
GeneralRe: hamilton algorithm Pin
soap brain23-Apr-08 0:57
soap brain23-Apr-08 0:57 
GeneralRe: hamilton algorithm Pin
73Zeppelin23-Apr-08 1:05
73Zeppelin23-Apr-08 1:05 
GeneralRe: hamilton algorithm Pin
soap brain23-Apr-08 1:28
soap brain23-Apr-08 1:28 
GeneralRe: hamilton algorithm Pin
Paul Conrad2-Aug-08 11:04
professionalPaul Conrad2-Aug-08 11:04 
GeneralRe: hamilton algorithm Pin
Paul Conrad2-Aug-08 11:02
professionalPaul Conrad2-Aug-08 11:02 
GeneralProcess time of the Skipjack and RC5 [modified] Pin
Cryptogrpahy6-Apr-08 23:02
Cryptogrpahy6-Apr-08 23:02 
GeneralRe: Process time of the Skipjack and RC5 Pin
cp98767-Apr-08 1:21
cp98767-Apr-08 1:21 
GeneralRe: Process time of the Skipjack and RC5 Pin
Cryptogrpahy7-Apr-08 2:09
Cryptogrpahy7-Apr-08 2:09 
Acctually, I'm doing comparison between 5 algorithms in the java imp. The comparison value at the RC5 is too shorter than others (DES, 3DES, Skipjack and Mine "new" ). If you know about RC5 and DES code below , please take a look on the source codes of them. Comeplete resource.

RC5test.java
----------------------------RC5test.java---------------------------------
// RC5 demo worker thread.
import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.*;
class RC5test {



public static void main(String[] args)
{
RC5test aaa = new RC5test();
aaa.runa();
}


public void runa()
{
SecureRandom random = new SecureRandom();
// cyphertext and iv data from the RSA test pseudo-contest "RSA-32/12/8-test"
BigInteger pt1 = new BigInteger(32, random);
long txt;
RC5 rc5 = new RC5_32_12_8();
byte[] key = new byte[rc5.keySize()];

// uncommenting these lines gives the correct key, we'll just start searching close to it
key[0] = (byte)0x82;
key[1] = (byte)0xe5;
key[2] = (byte)0x1b;
key[3] = (byte)0x9f;
key[4] = (byte)0x9c;
key[5] = (byte)0xc7;
key[6] = (byte)0x18;
key[7] = (byte)0xf9;

long stime, fdetime, detime, entime, fentime;
stime = fdetime = detime = entime = fentime = 0;
Random r = new Random();
long pt = (long)r.nextInt();
long cipher = 0;
int i =0;
for(i = 0; i<1000; i++){
stime = System.nanoTime();
rc5.setup(key);

cipher = rc5.encrypt(pt);

entime = System.nanoTime() - stime;
System.out.println("Encryption Cipher: " +String.valueOf(cipher));

stime = System.nanoTime();
txt = rc5.decrypt(cipher);// ^ iv;

detime = System.nanoTime() - stime;
System.out.println("Decryption Cipher: " +String.valueOf(txt));
System.out.println("");

fdetime += detime;
//System.out.println("Decryption: " +String.valueOf(detime));
fentime += entime;
//System.out.println("Encryption: " +String.valueOf(entime));
}
System.out.println("encrypt time: " + fentime/1000 + "ns");
System.out.println("decrypt time: " + fdetime/1000 + "ns");
System.out.println("run for: " + i + " times");
//Host.updateStats(keys, end - start, true);
}
}
----------------------------------------end of the RC5test---------------------------------------



RC5_32_12_8.java
---------------------------------------RC5_32_12_8.java------------------------------------------

// RC5-32/12/8 implementation. Unrolls all important loops.

class RC5_32_12_8 implements RC5 {
private static final int w = 32; /* word size in bits */
private static final int r = 12; /* number of rounds */
private static final int b = 8; /* number of bytes in key */
private static final int c = 2; /* number words in key = ceil(8*b/w)*/
private static final int t = 26; /* size of table S = 2*(r+1) words */
// static int[] initS = new int[t];
static int initS0, initS1, initS2, initS3, initS4, initS5, initS6, initS7, initS8, initS9;
static int initS10, initS11, initS12, initS13, initS14, initS15, initS16, initS17, initS18, initS19;
static int initS20, initS21, initS22, initS23, initS24, initS25;
// int[] S = new int[t]; /* expanded key table */
int S0, S1, S2, S3, S4, S5, S6, S7, S8, S9;
int S10, S11, S12, S13, S14, S15, S16, S17, S18, S19;
int S20, S21, S22, S23, S24, S25;
private static final int P = 0xb7e15163, Q = 0x9e3779b9; /* magic constants */

static {
initS0 = P;
// for (int i = 1; i < t; i++) {
// initS[i] = initS[i-1] + Q;
// }
initS1 = initS0 + Q;
initS2 = initS1 + Q;
initS3 = initS2 + Q;
initS4 = initS3 + Q;
initS5 = initS4 + Q;
initS6 = initS5 + Q;
initS7 = initS6 + Q;
initS8 = initS7 + Q;
initS9 = initS8 + Q;
initS10 = initS9 + Q;
initS11 = initS10 + Q;
initS12 = initS11 + Q;
initS13 = initS12 + Q;
initS14 = initS13 + Q;
initS15 = initS14 + Q;
initS16 = initS15 + Q;
initS17 = initS16 + Q;
initS18 = initS17 + Q;
initS19 = initS18 + Q;
initS20 = initS19 + Q;
initS21 = initS20 + Q;
initS22 = initS21 + Q;
initS23 = initS22 + Q;
initS24 = initS23 + Q;
initS25 = initS24 + Q;
}

public int keySize()
{
return b;
}

// int ROTL(int x, int y)
// {
// return (x << (y & (w-1))) | (x >>> (w - (y & (w-1))));
// }
//
// int ROTR(int x, int y)
// {
// return (x >>> (y & (w-1))) | (x << (w - (y & (w-1))));
// }

public long encrypt(long pt)
{
int A = (int)(pt & 0xffffffffL) + S0;
int B = (int)(pt >>> 32) + S1;
// for (int i = 1; i <= r; i++) {
// int x = A ^ B;
// int y = B & (w-1);
// A = /*ROTL(A ^ B, B)*/ ((x << y) | (x >>> (w-y))) + S[2*i];
// x = B ^ A;
// y = A & (w-1);
// B = /*ROTL(B ^ A, A)*/ ((x << y) | (x >>> (w-y))) + S[2*i+1];
// }
int x, y;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S2 ; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S3 ;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S4 ; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S5 ;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S6 ; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S7 ;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S8 ; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S9 ;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S10; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S11;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S12; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S13;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S14; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S15;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S16; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S17;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S18; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S19;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S20; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S21;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S22; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S23;
x = A ^ B; y = B & (w-1); A = ((x << y) | (x >>> (w-y))) + S24; x = B ^ A; y = A & (w-1); B = ((x << y) | (x >>> (w-y))) + S25;
return ((long)B << 32) + (A & 0xffffffffL);
}

public long decrypt(long ct)
{
int A = (int)(ct & 0xffffffffL);
int B = (int)(ct >>> 32);
// for (int i = r; i > 0; i--) {
// int x = B - S[2*i+1];
// int y = A & (w-1);
// B = /*ROTR(B - S[2*i+1], A)*/ ((x >>> y) | (x << (w-y))) ^ A;
// x = A - S[2*i];
// y = B & (w-1);
// A = /*ROTR(A - S[2*i], B)*/ ((x >>> y) | (x << (w-y))) ^ B;
// }
int x, y;
x = B - S25; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S24; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S23; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S22; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S21; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S20; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S19; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S18; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S17; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S16; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S15; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S14; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S13; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S12; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S11; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S10; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S9 ; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S8 ; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S7 ; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S6 ; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S5 ; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S4 ; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
x = B - S3 ; y = A & (w-1); B = ((x >>> y) | (x << (w-y))) ^ A; x = A - S2 ; y = B & (w-1); A = ((x >>> y) | (x << (w-y))) ^ B;
return ((long)(B - S1) << 32) + ((A - S0) & 0xffffffffL);
}

public void setup(byte[] K)
{
int i, j, k, u=w/8, A, B;
/* Initialize L, then S, then mix key into S */
// for (i=b-1,L[c-1]=0; i!=-1; i--) L[i/u] = (L[i/u]<<8)+(K[i]&0xff);
int L0 = ((K[3] & 0xff) << 24) | ((K[2] & 0xff) << 16) | ((K[1] & 0xff) << 8) | (K[0] & 0xff);
int L1 = ((K[7] & 0xff) << 24) | ((K[6] & 0xff) << 16) | ((K[5] & 0xff) << 8) | (K[4] & 0xff);
// for (A=B=i=j=k=0; k<3*t; k++) { /* 3*t > 3*c */
// int x = S[i] + (A+B);
// A = S[i] = /*ROTL(S[i]+(A+B),3);*/ (x << 3) | (x >>> 29);
// x = L[j] + (A+B);
// int y = (A+B) & (w-1);
// B = L[j] = /*ROTL(L[j]+(A+B),(A+B));*/ (x << y) | (x >>> (w-y));
// /*i = (i+1) % t;*/ i++; if (i >= t) i = 0;
// /*j = (j+1) % c;*/ j++; if (j >= c) j = 0;
// }
A = B = 0;
int x, y;
x = initS0 + (A+B); A = S0 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS1 + (A+B); A = S1 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS2 + (A+B); A = S2 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS3 + (A+B); A = S3 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS4 + (A+B); A = S4 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS5 + (A+B); A = S5 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS6 + (A+B); A = S6 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS7 + (A+B); A = S7 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS8 + (A+B); A = S8 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS9 + (A+B); A = S9 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS10 + (A+B); A = S10 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS11 + (A+B); A = S11 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS12 + (A+B); A = S12 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS13 + (A+B); A = S13 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS14 + (A+B); A = S14 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS15 + (A+B); A = S15 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS16 + (A+B); A = S16 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS17 + (A+B); A = S17 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS18 + (A+B); A = S18 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS19 + (A+B); A = S19 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS20 + (A+B); A = S20 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS21 + (A+B); A = S21 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS22 + (A+B); A = S22 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS23 + (A+B); A = S23 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = initS24 + (A+B); A = S24 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = initS25 + (A+B); A = S25 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));

x = S0 + (A+B); A = S0 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S1 + (A+B); A = S1 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S2 + (A+B); A = S2 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S3 + (A+B); A = S3 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S4 + (A+B); A = S4 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S5 + (A+B); A = S5 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S6 + (A+B); A = S6 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S7 + (A+B); A = S7 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S8 + (A+B); A = S8 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S9 + (A+B); A = S9 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S10 + (A+B); A = S10 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S11 + (A+B); A = S11 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S12 + (A+B); A = S12 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S13 + (A+B); A = S13 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S14 + (A+B); A = S14 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S15 + (A+B); A = S15 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S16 + (A+B); A = S16 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S17 + (A+B); A = S17 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S18 + (A+B); A = S18 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S19 + (A+B); A = S19 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S20 + (A+B); A = S20 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S21 + (A+B); A = S21 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S22 + (A+B); A = S22 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S23 + (A+B); A = S23 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S24 + (A+B); A = S24 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S25 + (A+B); A = S25 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));

x = S0 + (A+B); A = S0 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S1 + (A+B); A = S1 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S2 + (A+B); A = S2 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S3 + (A+B); A = S3 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S4 + (A+B); A = S4 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S5 + (A+B); A = S5 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S6 + (A+B); A = S6 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S7 + (A+B); A = S7 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S8 + (A+B); A = S8 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S9 + (A+B); A = S9 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S10 + (A+B); A = S10 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S11 + (A+B); A = S11 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S12 + (A+B); A = S12 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S13 + (A+B); A = S13 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S14 + (A+B); A = S14 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S15 + (A+B); A = S15 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S16 + (A+B); A = S16 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S17 + (A+B); A = S17 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S18 + (A+B); A = S18 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S19 + (A+B); A = S19 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S20 + (A+B); A = S20 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S21 + (A+B); A = S21 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S22 + (A+B); A = S22 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S23 + (A+B); A = S23 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
x = S24 + (A+B); A = S24 = (x << 3) | (x >>> 29); x = L0 + (A+B); y = (A+B) & (w-1); B = L0 = (x << y) | (x >>> (w-y));
x = S25 + (A+B); A = S25 = (x << 3) | (x >>> 29); x = L1 + (A+B); y = (A+B) & (w-1); B = L1 = (x << y) | (x >>> (w-y));
}
}
------------------------------------------end of the RC5_32_12_8.java-------------------------------


RC5.java
-------------------------------------------RC5.java------------------------------------------------

// Generic RC5 interface to support different implementations.
// Assumes 32 bit RC5 word size.

interface RC5 {
public int keySize();
public long encrypt(long pt);
public long decrypt(long ct);
public void setup(byte[] K);
}

-----------------------------------------------end of the RC5.java----------------------------------


DES.java
--------------------------------------------DES.java------------------------------------------------
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.math.*;
import java.security.SecureRandom;/** * * @author ~Tan~ */public class DES{
public static void main(String args[]) { long proc, proc2, fproc;
long dec, dec2, fdec; fproc = fdec =0; try {
SecureRandom random = new SecureRandom();
BigInteger message = new BigInteger(32, random);
byte[] encrypted = message.toString().getBytes();
byte[] raw, decrypted;
SecretKeySpec keySpec;
int i;
for(i=0; i<1000; i++){
// Generate a DES key
proc2 = System.nanoTime();
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
SecretKey key = keyGen.generateKey();

//encryption
raw = key.getEncoded();

keySpec = new SecretKeySpec(raw, "DES");

Cipher cipher = Cipher.getInstance("DES");

cipher.init(Cipher.ENCRYPT_MODE, keySpec);

encrypted = cipher.doFinal(encrypted);
proc = System.nanoTime() - proc2;

//decryption dec2 = System.nanoTime();
cipher.init(Cipher.DECRYPT_MODE, keySpec);
decrypted = cipher.doFinal(encrypted);
dec = System.nanoTime() - dec2;

fproc+=proc;
fdec+=dec;


}
fproc/=1000;
fdec/=1000;
//System.out.println("input msg is: " + message.toString());
System.out.println("input msg is: " + message.bitLength() + " bit");
//System.out.println("DES key generation takes: " + des + "ns");
System.out.println("DES key encryption takes: " + fproc + "ns");
//System.out.println("encrypted become: " + encrypted.toString());
System.out.println("DES key decryption takes: " + fdec + "ns");
//System.out.println("decrypted become: " + new String(decrypted));



} catch (Exception e) {
}
} }

--------------------------------------end of the DES.java ------------------------------------------
GeneralRe: Process time of the Skipjack and RC5 Pin
cp98767-Apr-08 15:49
cp98767-Apr-08 15:49 
GeneralRe: Process time of the Skipjack and RC5 Pin
Cryptogrpahy8-Apr-08 2:44
Cryptogrpahy8-Apr-08 2:44 
GeneralRe: Process time of the Skipjack and RC5 Pin
cp98768-Apr-08 18:20
cp98768-Apr-08 18:20 
GeneralNumber of answers for complex numbers Pin
MarkB7772-Apr-08 16:45
MarkB7772-Apr-08 16:45 
GeneralRe: Number of answers for complex numbers Pin
cp98762-Apr-08 17:10
cp98762-Apr-08 17:10 
GeneralRe: Number of answers for complex numbers Pin
MarkB7772-Apr-08 17:20
MarkB7772-Apr-08 17:20 
GeneralRe: Number of answers for complex numbers Pin
Luc Pattyn3-Apr-08 4:37
sitebuilderLuc Pattyn3-Apr-08 4:37 
GeneralRe: Number of answers for complex numbers Pin
CPallini2-Apr-08 21:46
mveCPallini2-Apr-08 21:46 
GeneralDeadline reminder for Pallab_GT Pin
CPallini30-Mar-08 22:06
mveCPallini30-Mar-08 22:06 
GeneralRe: Deadline reminder for Pallab_GT Pin
cp987630-Mar-08 23:55
cp987630-Mar-08 23:55 
GeneralRe: Deadline reminder for Pallab_GT Pin
CPallini31-Mar-08 0:04
mveCPallini31-Mar-08 0:04 
GeneralRe: Deadline reminder for Pallab_GT Pin
El Corazon31-Mar-08 8:25
El Corazon31-Mar-08 8:25 
GeneralRe: Deadline reminder for Pallab_GT Pin
CPallini31-Mar-08 10:10
mveCPallini31-Mar-08 10:10 
GeneralRe: Deadline reminder for Pallab_GT [modified] Pin
El Corazon31-Mar-08 10:31
El Corazon31-Mar-08 10:31 
GeneralRe: Deadline reminder for Pallab_GT Pin
CPallini31-Mar-08 10:45
mveCPallini31-Mar-08 10:45 
GeneralRe: Deadline reminder for Pallab_GT Pin
El Corazon31-Mar-08 11:03
El Corazon31-Mar-08 11:03 
GeneralRe: Deadline reminder for Pallab_GT Pin
cp987631-Mar-08 12:37
cp987631-Mar-08 12:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.