[4187] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

Re: Strengthening the Passphrase Model

daemon@ATHENA.MIT.EDU (David R. Conrad)
Wed Feb 10 16:35:25 1999

Date: Wed, 10 Feb 1999 16:31:26 -0500 (EST)
From: "David R. Conrad" <drc@adni.net>
To: cryptography@c2.net
Cc: coderpunks@toad.com
In-Reply-To: <v03130302b2e5f5da6f4e@[24.128.119.92]>

[My problem with this is that the source of entropy is particularly
 bad... --Perry]

BTW, here's a simple program I use to generate passwds and/or diceware
words.  For diceware, use "grep `randpwd -` diceware-list |cut -f2"

Sorry that it's a bit of an obfuscated C contest entry, but I had written
a somewhat simpler one, and then when I wrote this one I tried to keep
from making it much longer than the previous incarnation.  Silly, I know.

	-=-=-		randpwd.c	-=-=-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>

int main(int argc, char **argv) {
  struct timeval tv;
  char chars[] = "abcdefghijklmnopqrstuvwxyz"
                 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                 "0123456789,.;'/-=";
  int i, seed = 0, len = strlen(chars);
  FILE *fp = fopen("/dev/random", "r");
  if (fp) { fread(&seed, 1, sizeof(seed), fp); fclose(fp); }

  gettimeofday(&tv, NULL);
  srand(tv.tv_sec ^ tv.tv_usec ^ getpid() ^ seed);

  if (argc > 1) for (i = 0; i < 5; i++) printf("%d", rand()%6+1);
  else for (i = 0; i < 8; i++) printf("%c", chars[rand()%len]);

  return printf("\n")-1;
}
	-=-=-		randpwd.c	-=-=-

'return printf("\n")-1;', hey I said it was slightly obfuscated.  :-)
Coderpunks write cyphe, or something.

David R. Conrad <drc@adni.net>  PGP keys (0x1993E1AE and 0xA0B83D31):
DSS  Fingerprint20 = 9942 E27C 3966 9FB8 5058  73A4 83CE 62EF 1993 E1AE
RSA  Fingerprint16 = 1D F2 F3 90 DA CA 35 5D  91 E4 09 45 95 C8 20 F1
Note: Due to frequent spam abuse, I accept no email from *.da.uu.net.



home help back first fref pref prev next nref lref last post