🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: sci.crypt
Article #5678

Internet Draft implement -- misty1

#5678
From: Hironobu Suzuki
Date: Mon, 12 Jan 1998 00:00
500 lines
16754 bytes

I've quickly hacked C codes for Internet Draft of 'MISTY1'.

Codes had developed on GNU/Linux 2.0.29 + gcc 2.7.2.1.

HAPPY HACKING.

						--hironobu

See Also.
--------------------------------------------------------------------------
INTERNET-DRAFT                                                   H. Ohta
Expires in six months                                          M. Matsui
                                         Mitsubishi Electric Corporation
                                                           December 1997


            A Description of the MISTY1 Encryption Algorithm

                     <draft-ohta-misty1desc-00.txt>
--------------------------------------------------------------------------


===============================( cut here )=======================
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	misty
# This archive created: Mon Jan 12 23:43:04 1998
export PATH; PATH=/bin:$PATH
if test ! -d 'misty'
then
	echo shar: creating directory "'misty'"
	mkdir 'misty'
fi
echo shar: entering directory "'misty'"
cd 'misty'
echo shar: extracting "'draft-ohta-misty1desc-00.txt'" '(0 character)'
if test -f 'draft-ohta-misty1desc-00.txt'
then
	echo shar: will not over-write existing file "'draft-ohta-misty1desc-00.txt'"
else
sed 's/^	X//' << \2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp > 'draft-ohta-misty1desc-00.txt'
2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp
if test 0 -ne "`wc -c < 'draft-ohta-misty1desc-00.txt'`"
then
	echo shar: error transmitting "'draft-ohta-misty1desc-00.txt'" '(should have been 0 character)'
fi
fi # end of overwriting check
if test ! -d 'src'
then
	echo shar: creating directory "'src'"
	mkdir 'src'
fi
echo shar: entering directory "'src'"
cd 'src'
echo shar: extracting "'test2.c'" '(741 characters)'
if test -f 'test2.c'
then
	echo shar: will not over-write existing file "'test2.c'"
else
sed 's/^	X//' << \2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp > 'test2.c'
	X#include <sys/time.h>
	Xtypedef unsigned long u4;
	Xtypedef unsigned char byte;
	X
	X
	X/* 1Mbyte == 131072 blocks*/
	X#define LOOP  131072
	Xmain()
	X{
	X  u4  ek[32];
	X  u4  t[]= {0x01234567, 0x89abcdef};
	X  u4  Key[]= {0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff};
	X  u4  c[2];
	X  int i;
	X  int ds,dms;
	X  double df;
	X  struct timeval  t1, t2;
	X  struct timezone tz;
	X
	X  gettimeofday(&t1,&tz);
	X  misty1_keyinit(ek,Key);
	X  for(i=0;i<LOOP;i++) {
	X    misty1_encrypt_block(ek,t,c);
	X  }
	X  gettimeofday(&t2,&tz);
	X
	X  ds = t2.tv_sec - t1.tv_sec;
	X  dms = t2.tv_usec - t1.tv_usec;
	X  ds -= (dms < 0)? (1):(0);
	X  dms += (dms < 0)? (1000000):(0);
	X  printf("Time: %d.%3.3dsec\t",ds,dms/1000);
	X  df = ds*1000 + (dms/1000);
	X  printf("Rate: %0.0fKbps\n",((LOOP * 8)/df)*8 );
	X
	X}
	X
2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp
if test 741 -ne "`wc -c < 'test2.c'`"
then
	echo shar: error transmitting "'test2.c'" '(should have been 741 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'misty1.c'" '(9701 characters)'
if test -f 'misty1.c'
then
	echo shar: will not over-write existing file "'misty1.c'"
else
sed 's/^	X//' << \2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp > 'misty1.c'
	X/*
	X * Presented by H2NP.
	X * 
	X *   Name: MISTY1 module -- C source code version.
	X *   See Also: Internet Draft -- 
	X *             A Description of the MISTY1 Encryption Algorithm
	X *   Document File: draft-ohta-misty1desc-00.txt
	X *
	X *   Author: Hironobu SUZUKI
	X *   EMAIL: hironobu@h2np.suginami.tokyo.jp
	X *   URL: http://www.pp.iij4u.or.jp/~h2np
	X *   Copyright Notice: Copyright (C) 1998, Hironobu SUZUKI.
	X *   Copyright Condition: GNU GENERAL PUBLIC LICENSE Version 2
	X *   Date: 11 January 1998
	X *
	X */
	X
	Xtypedef unsigned long u4;
	Xtypedef unsigned char byte;
	X#define MISTY1_KEYSIZE 32
	X
	Xstatic byte  s7[] =
	X{
	X  0x1b, 0x32, 0x33, 0x5a, 0x3b, 0x10, 0x17, 0x54, 0x5b, 0x1a, 0x72, 0x73, 0x6b, 0x2c, 0x66, 0x49,
	X  0x1f, 0x24, 0x13, 0x6c, 0x37, 0x2e, 0x3f, 0x4a, 0x5d, 0x0f, 0x40, 0x56, 0x25, 0x51, 0x1c, 0x04,
	X  0x0b, 0x46, 0x20, 0x0d, 0x7b, 0x35, 0x44, 0x42, 0x2b, 0x1e, 0x41, 0x14, 0x4b, 0x79, 0x15, 0x6f,
	X  0x0e, 0x55, 0x09, 0x36, 0x74, 0x0c, 0x67, 0x53, 0x28, 0x0a, 0x7e, 0x38, 0x02, 0x07, 0x60, 0x29,
	X  0x19, 0x12, 0x65, 0x2f, 0x30, 0x39, 0x08, 0x68, 0x5f, 0x78, 0x2a, 0x4c, 0x64, 0x45, 0x75, 0x3d,
	X  0x59, 0x48, 0x03, 0x57, 0x7c, 0x4f, 0x62, 0x3c, 0x1d, 0x21, 0x5e, 0x27, 0x6a, 0x70, 0x4d, 0x3a,
	X  0x01, 0x6d, 0x6e, 0x63, 0x18, 0x77, 0x23, 0x05, 0x26, 0x76, 0x00, 0x31, 0x2d, 0x7a, 0x7f, 0x61,
	X  0x50, 0x22, 0x11, 0x06, 0x47, 0x16, 0x52, 0x4e, 0x71, 0x3e, 0x69, 0x43, 0x34, 0x5c, 0x58, 0x7d
	X};
	Xstatic u4  s9[] =
	X{
	X  0x1c3, 0x0cb, 0x153, 0x19f, 0x1e3, 0x0e9, 0x0fb, 0x035, 0x181, 0x0b9, 0x117, 0x1eb, 0x133, 0x009, 0x02d, 0x0d3,
	X  0x0c7, 0x14a, 0x037, 0x07e, 0x0eb, 0x164, 0x193, 0x1d8, 0x0a3, 0x11e, 0x055, 0x02c, 0x01d, 0x1a2, 0x163, 0x118,
	X  0x14b, 0x152, 0x1d2, 0x00f, 0x02b, 0x030, 0x13a, 0x0e5, 0x111, 0x138, 0x18e, 0x063, 0x0e3, 0x0c8, 0x1f4, 0x01b,
	X  0x001, 0x09d, 0x0f8, 0x1a0, 0x16d, 0x1f3, 0x01c, 0x146, 0x07d, 0x0d1, 0x082, 0x1ea, 0x183, 0x12d, 0x0f4, 0x19e,
	X  0x1d3, 0x0dd, 0x1e2, 0x128, 0x1e0, 0x0ec, 0x059, 0x091, 0x011, 0x12f, 0x026, 0x0dc, 0x0b0, 0x18c, 0x10f, 0x1f7,
	X  0x0e7, 0x16c, 0x0b6, 0x0f9, 0x0d8, 0x151, 0x101, 0x14c, 0x103, 0x0b8, 0x154, 0x12b, 0x1ae, 0x017, 0x071, 0x00c,
	X  0x047, 0x058, 0x07f, 0x1a4, 0x134, 0x129, 0x084, 0x15d, 0x19d, 0x1b2, 0x1a3, 0x048, 0x07c, 0x051, 0x1ca, 0x023,
	X  0x13d, 0x1a7, 0x165, 0x03b, 0x042, 0x0da, 0x192, 0x0ce, 0x0c1, 0x06b, 0x09f, 0x1f1, 0x12c, 0x184, 0x0fa, 0x196,
	X  0x1e1, 0x169, 0x17d, 0x031, 0x180, 0x10a, 0x094, 0x1da, 0x186, 0x13e, 0x11c, 0x060, 0x175, 0x1cf, 0x067, 0x119,
	X  0x065, 0x068, 0x099, 0x150, 0x008, 0x007, 0x17c, 0x0b7, 0x024, 0x019, 0x0de, 0x127, 0x0db, 0x0e4, 0x1a9, 0x052,
	X  0x109, 0x090, 0x19c, 0x1c1, 0x028, 0x1b3, 0x135, 0x16a, 0x176, 0x0df, 0x1e5, 0x188, 0x0c5, 0x16e, 0x1de, 0x1b1,
	X  0x0c3, 0x1df, 0x036, 0x0ee, 0x1ee, 0x0f0, 0x093, 0x049, 0x09a, 0x1b6, 0x069, 0x081, 0x125, 0x00b, 0x05e, 0x0b4,
	X  0x149, 0x1c7, 0x174, 0x03e, 0x13b, 0x1b7, 0x08e, 0x1c6, 0x0ae, 0x010, 0x095, 0x1ef, 0x04e, 0x0f2, 0x1fd, 0x085,
	X  0x0fd, 0x0f6, 0x0a0, 0x16f, 0x083, 0x08a, 0x156, 0x09b, 0x13c, 0x107, 0x167, 0x098, 0x1d0, 0x1e9, 0x003, 0x1fe,
	X  0x0bd, 0x122, 0x089, 0x0d2, 0x18f, 0x012, 0x033, 0x06a, 0x142, 0x0ed, 0x170, 0x11b, 0x0e2, 0x14f, 0x158, 0x131,
	X  0x147, 0x05d, 0x113, 0x1cd, 0x079, 0x161, 0x1a5, 0x179, 0x09e, 0x1b4, 0x0cc, 0x022, 0x132, 0x01a, 0x0e8, 0x004,
	X  0x187, 0x1ed, 0x197, 0x039, 0x1bf, 0x1d7, 0x027, 0x18b, 0x0c6, 0x09c, 0x0d0, 0x14e, 0x06c, 0x034, 0x1f2, 0x06e,
	X  0x0ca, 0x025, 0x0ba, 0x191, 0x0fe, 0x013, 0x106, 0x02f, 0x1ad, 0x172, 0x1db, 0x0c0, 0x10b, 0x1d6, 0x0f5, 0x1ec,
	X  0x10d, 0x076, 0x114, 0x1ab, 0x075, 0x10c, 0x1e4, 0x159, 0x054, 0x11f, 0x04b, 0x0c4, 0x1be, 0x0f7, 0x029, 0x0a4,
	X  0x00e, 0x1f0, 0x077, 0x04d, 0x17a, 0x086, 0x08b, 0x0b3, 0x171, 0x0bf, 0x10e, 0x104, 0x097, 0x15b, 0x160, 0x168,
	X  0x0d7, 0x0bb, 0x066, 0x1ce, 0x0fc, 0x092, 0x1c5, 0x06f, 0x016, 0x04a, 0x0a1, 0x139, 0x0af, 0x0f1, 0x190, 0x00a,
	X  0x1aa, 0x143, 0x17b, 0x056, 0x18d, 0x166, 0x0d4, 0x1fb, 0x14d, 0x194, 0x19a, 0x087, 0x1f8, 0x123, 0x0a7, 0x1b8,
	X  0x141, 0x03c, 0x1f9, 0x140, 0x02a, 0x155, 0x11a, 0x1a1, 0x198, 0x0d5, 0x126, 0x1af, 0x061, 0x12e, 0x157, 0x1dc,
	X  0x072, 0x18a, 0x0aa, 0x096, 0x115, 0x0ef, 0x045, 0x07b, 0x08d, 0x145, 0x053, 0x05f, 0x178, 0x0b2, 0x02e, 0x020,
	X  0x1d5, 0x03f, 0x1c9, 0x1e7, 0x1ac, 0x044, 0x038, 0x014, 0x0b1, 0x16b, 0x0ab, 0x0b5, 0x05a, 0x182, 0x1c8, 0x1d4,
	X  0x018, 0x177, 0x064, 0x0cf, 0x06d, 0x100, 0x199, 0x130, 0x15a, 0x005, 0x120, 0x1bb, 0x1bd, 0x0e0, 0x04f, 0x0d6,
	X  0x13f, 0x1c4, 0x12a, 0x015, 0x006, 0x0ff, 0x19b, 0x0a6, 0x043, 0x088, 0x050, 0x15f, 0x1e8, 0x121, 0x073, 0x17e,
	X  0x0bc, 0x0c2, 0x0c9, 0x173, 0x189, 0x1f5, 0x074, 0x1cc, 0x1e6, 0x1a8, 0x195, 0x01f, 0x041, 0x00d, 0x1ba, 0x032,
	X  0x03d, 0x1d1, 0x080, 0x0a8, 0x057, 0x1b9, 0x162, 0x148, 0x0d9, 0x105, 0x062, 0x07a, 0x021, 0x1ff, 0x112, 0x108,
	X  0x1c0, 0x0a9, 0x11d, 0x1b0, 0x1a6, 0x0cd, 0x0f3, 0x05c, 0x102, 0x05b, 0x1d9, 0x144, 0x1f6, 0x0ad, 0x0a5, 0x03a,
	X  0x1cb, 0x136, 0x17f, 0x046, 0x0e1, 0x01e, 0x1dd, 0x0e6, 0x137, 0x1fa, 0x185, 0x08c, 0x08f, 0x040, 0x1b5, 0x0be,
	X  0x078, 0x000, 0x0ac, 0x110, 0x15e, 0x124, 0x002, 0x1bc, 0x0a2, 0x0ea, 0x070, 0x1fc, 0x116, 0x15c, 0x04c, 0x1c2
	X};
	X
	X
	X
	Xinline u4 fi( u4  fi_in, u4  fi_key)
	X{
	X  u4  d9, d7;
	X
	X  d9 = (fi_in >> 7) & 0x1ff;
	X  d7 = fi_in & 0x7f;
	X  d9 = s9[d9] ^ d7;
	X  d7 = (s7[d7] ^ d9) & 0x7f;
	X
	X  d7 = d7 ^ ((fi_key >> 9) & 0x7f);
	X  d9 = d9 ^ (fi_key & 0x1ff);
	X  d9 = s9[d9] ^ d7;
	X  return ((d7<<9) | d9);
	X}
	X
	X
	Xinline u4  fo(u4  *ek, u4  fo_in, byte k)
	X{
	X  u4  t0, t1;
	X  t0 = (fo_in >> 16);
	X  t1 = fo_in & 0xFFFF;
	X  t0 ^= ek[k];
	X  t0 = fi(t0, ek[((k+5)%8) + 8]);
	X  t0 ^= t1;
	X  t1 ^= ek[(k+2)%8];
	X  t1 = fi(t1,ek[((k+1)%8) + 8]);
	X  t1 ^= t0;
	X  t0 ^= ek[(k+7)%8];
	X  t0 = fi(t0, ek[((k+3)%8)+8]);
	X  t0 ^= t1;
	X  t1 ^=  ek[(k+4)%8];
	X  return ( (t1<<16) | t0 );
	X}
	X
	X
	Xinline u4  fl(u4  *ek, u4  fl_in, byte k)
	X{
	X  u4  d0, d1;
	X  byte t;
	X
	X  d0 = (fl_in >> 16); 
	X  d1 = fl_in & 0xffff;
	X  if ( k % 2 ) {
	X    t=(k-1)/2;
	X    d1 = d1 ^ (d0 & ek[((t+2)%8)+8]);
	X    d0 = d0 ^ (d1 | ek[(t+4)%8]);
	X  }
	X  else {
	X    t=k/2;
	X    d1 = d1 ^ (d0 & ek[t]);
	X    d0 = d0 ^ (d1 | ek[((t+6)%8)+8]);
	X  }
	X  return ((d0<<16) | d1);
	X}
	X
	X
	Xinline u4  flinv(u4  *ek, u4  fl_in, byte k)
	X{
	X  u4  d0, d1;
	X  byte t;
	X
	X  d0 = (fl_in >> 16);
	X  d1 = fl_in & 0xffff;
	X
	X  if ( k % 2 ) {
	X    t= (k-1)/2;
	X    d0 = d0 ^ (d1 | ek[(t+4)%8]);
	X    d1 = d1 ^ (d0 & ek[((t+2)%8)+8]);
	X  }
	X  else {
	X    t = k/2;
	X    d0 = d0 ^ (d1 | ek[((t+6)%8)+8]);
	X    d1 = d1 ^ (d0 & ek[t]);
	X  }
	X  return ((d0<<16) | d1);
	X}
	X
	X
	X
	X
	Xvoid misty1_encrypt_block(u4  *ek, u4  p[2], u4  c[2])
	X{
	X  u4  d0, d1;
	X
	X  d0 = p[0];
	X  d1 = p[1];
	X
	X  /* 0 round */
	X  d0 = fl(ek,d0,0);
	X  d1=fl(ek,d1,1);
	X  d1 = d1 ^fo(ek,d0,0);
	X  
	X/* 1 */
	X  d0 = d0^fo(ek,d1,1);
	X
	X/* 2 */
	X  d0 = fl(ek,d0,2);
	X  d1=fl(ek,d1,3);
	X  d1 = d1 ^fo(ek,d0,2);
	X
	X/* 3 */
	X  d0 = d0^fo(ek,d1,3);
	X
	X/* 4 */
	X  d0 = fl(ek,d0,4);
	X  d1=fl(ek,d1,5);
	X  d1 = d1 ^fo(ek,d0,4);
	X
	X
	X/* 5 */
	X  d0 = d0^fo(ek,d1,5);
	X
	X/* 6 */
	X  d0 = fl(ek,d0,6);
	X  d1=fl(ek,d1,7);
	X  d1 = d1 ^fo(ek,d0,6);
	X
	X
	X/* 7 */
	X  d0 = d0^fo(ek,d1,7);
	X
	X/* 8 */
	X  d0 = fl(ek,d0,8);
	X  d1=fl(ek,d1,9);
	X
	X/* round finished */
	X  c[0] = d1;
	X  c[1]= d0;
	X}
	X
	X
	Xvoid misty1_decrypt_block(u4  *ek,u4  c[2], u4  p[2])
	X{
	X  u4  d0, d1;
	X
	X   d0 = c[1];
	X   d1 = c[0];
	X   d0 = flinv(ek,d0, 8);
	X   d1 = flinv(ek,d1, 9);
	X   d0 = d0 ^ fo(ek,d1, 7);
	X   d1 = d1 ^ fo(ek,d0, 6);
	X   d0 = flinv(ek,d0, 6);
	X   d1 = flinv(ek,d1, 7);
	X   d0 = d0 ^ fo(ek,d1, 5);
	X   d1 = d1 ^ fo(ek,d0, 4);
	X   d0 = flinv(ek,d0, 4);
	X   d1 = flinv(ek,d1, 5);
	X   d0 = d0 ^ fo(ek,d1, 3);
	X   d1 = d1 ^ fo(ek,d0, 2);
	X   d0 = flinv(ek,d0, 2);
	X   d1 = flinv(ek,d1, 3);
	X   d0 = d0 ^ fo(ek,d1, 1);
	X   d1 = d1 ^ fo(ek,d0, 0);
	X   d0 = flinv(ek,d0, 0);
	X   d1 = flinv(ek,d1, 1);
	X   p[0] = d0;
	X   p[1] = d1;
	X}
	X
	Xstatic void bcopy_u4_byte(u4 k, byte * b) { 
	X  b[0]=(k>>24)&0xFF;
	X  b[1]=(k>>16)&0xFF;
	X  b[2]=(k>>8)&0xFF;
	X  b[3]= k &0xFF;
	X}
	Xvoid misty1_keyinit(u4  *ek, u4  *k)
	X{
	X  int i;
	X  byte key[16];
	X
	X  bcopy_u4_byte(k[0],(byte *)(&key[0]));
	X  bcopy_u4_byte(k[1],(byte *)(&key[4]));
	X  bcopy_u4_byte(k[2],(byte *)(&key[8]));
	X  bcopy_u4_byte(k[3],(byte *)(&key[12]));
	X  
	X  bzero(ek,MISTY1_KEYSIZE*sizeof(u4));
	X  for(i=0; i < 8 ; i++) {
	X    ek[i] = (key[i*2]*256) + (key[(i*2) +1]);
	X  }
	X
	X  for (i=0 ; i < 8 ; i++) {
	X    ek[i+8] = fi(ek[i],ek[(i+1)%8]);
	X    ek[i+16] = ek[i+8] & 0x1ff;
	X    ek[i+24] = ek[i+8] >> 9;
	X  }
	X}
	X
	Xmisty1_key_destroy(u4  *ek)
	X{
	X  bzero(ek,MISTY1_KEYSIZE*sizeof(u4));
	X}
	X
	X#ifdef TESTMAIN
	Xmain()
	X{
	X/*
	X   Key:        00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff
	X   Plaintext:  01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
	X   Ciphertext: 8b 1d a5 f5 6a b3 d0 7c 04 b6 82 40 b1 3b e9 5d
	X*/
	X
	X
	X   u4  Key[]= {0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff};
	X   u4  Plaintext[]= {0x01234567, 0x89abcdef, 0xfedcba98, 0x76543210};
	X   u4  Ciphertext[]= { 0x8b1da5f5, 0x6ab3d07c, 0x04b68240, 0xb13be95d};
	X   u4  ek_e[MISTY1_KEYSIZE],  ek_d[MISTY1_KEYSIZE];
	X   u4  c[4];
	X
	X   misty1_keyinit(ek_e,Key);
	X   misty1_encrypt_block(ek_e,&Plaintext[0],&c[0]);
	X   misty1_encrypt_block(ek_e,&Plaintext[2],&c[2]);
	X
	X   if (!memcmp(c,Ciphertext,4 * sizeof(u4))) {
	X     printf("Encryption OK\n");
	X   }
	X   else {
	X     printf("Encryption failed[0x%08lx 0x%08lx 0x%08lx 0x%08lx]\n",
	X	    c[0],c[1],c[2],c[3]);
	X     exit(1);
	X   }
	X
	X   misty1_keyinit(ek_d,Key);
	X
	X   if (memcmp(ek_e,ek_d,MISTY1_KEYSIZE*sizeof(u4))) {
	X     printf("Internal Error keysch is wrong\n");     
	X     exit(1);
	X   }
	X   
	X   misty1_decrypt_block(ek_d,&Ciphertext[0],&c[0]);
	X   misty1_decrypt_block(ek_d,&Ciphertext[2],&c[2]);
	X
	X
	X   if (!memcmp(c,Plaintext,4 * sizeof(u4))) {
	X     printf("Decryption OK\n");
	X   }
	X   else {
	X     
	X     printf("Decryption failed[0x%08lx 0x%08lx 0x%08lx 0x%08lx]\n",
	X	    c[0],c[1],c[2],c[3]);
	X     exit(1);
	X   }
	X
	X   misty1_key_destroy(ek_e);
	X   misty1_key_destroy(ek_d);
	X   bzero(Key,4 * sizeof(u4));
	X
	X   
	X
	X}
	X#endif TESTMAIN
2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp
if test 9701 -ne "`wc -c < 'misty1.c'`"
then
	echo shar: error transmitting "'misty1.c'" '(should have been 9701 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'README'" '(1098 characters)'
if test -f 'README'
then
	echo shar: will not over-write existing file "'README'"
else
sed 's/^	X//' << \2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp > 'README'
	X
	X
	Xmisty1.c  -- module of misty1 algorithm implementation from Internet Draft.
	X
	XHironobu SUZUKI <hironobu@h2np.suginami.tokyo.jp>
	X
	XMISTY1 ALGORITHM
	X================
	X
	XThis algorithm came from ...
	X--------------------------------------------------------------------------
	XINTERNET-DRAFT                                                   H. Ohta
	XExpires in six months                                          M. Matsui
	X                                         Mitsubishi Electric Corporation
	X                                                           December 1997
	X
	X
	X            A Description of the MISTY1 Encryption Algorithm
	X
	X                     <draft-ohta-misty1desc-00.txt>
	X--------------------------------------------------------------------------
	X
	X
	XHOW TO COMPILE
	X==============
	X
	XFor only test.
	X
	X	% gcc -O3 -DTESTMAIN misty1.c
	X	% a.out
	X	Encryption OK
	X	Decryption OK
	X
	XThis message shows your misty1 works fine on your machine.
	X
	XFor speed testing
	X	
	X	% gcc -O3 misty1.c test2.c
	X	% a.out 
	X	Time: 1.336sec	Rate: 6279Kbps
	X
	XThis message show a rate of misty1 encryption is 6.27Mbps on your machine.
	X
2343_12_Jan_1998_hironobu@h2np.suginami.tokyo.jp
if test 1098 -ne "`wc -c < 'README'`"
then
	echo shar: error transmitting "'README'" '(should have been 1098 characters)'
fi
fi # end of overwriting check
echo shar: done with directory "'src'"
cd ..
echo shar: done with directory "'misty'"
cd ..
#	End of shell archive
exit 0
Technical Details
Message-ID: <HIRONOBU.98Jan12235048@h2np.h2np.suginami.tokyo.removeme.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fb57f,dbe5cade95b50e05,start
X-Google-Attributes: gidfb57f,public
X-Google-Thread: f5529,dbe5cade95b50e05,start
X-Google-Attributes: gidf5529,public
From: hironobu@h2np.suginami.tokyo.removeme.jp (Hironobu Suzuki)
Subject: Internet Draft implement -- misty1
Date: 1998/01/12
Message-ID: <HIRONOBU.98Jan12235048@h2np.h2np.suginami.tokyo.removeme.jp>
X-Deja-AN: 315246247
Sender: hironobu@h2np.suginami.tokyo.jp
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Organization: HIRONOBU'S HOME NETWORK PROJECT
Newsgroups: sci.crypt,fj.comp.security