[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [cryptsetup] luksFormat - Welchen cipher?



On 27.07.2009, Peter Jordan wrote: 

> Da stellt sich die kurze Frage, was ist ein ausreichend gutes Passwort?

Entropie (bits) = Laenge des Pwd * log(Anzahl Zeichenmenge) / log 2

Es existieren also "Anzahl Zeichenmenge" ^ "Laenge des Passwd"
verschiedene Passwoerter. Damit kannst du dir nun leicht ausrechnen, wie
lang ein "sicheres" Passwort sein muss, unter Verwendung von welchen
Zeichen, dass es mit der gewaehlten Verschluesselung mithalten kann.

Ich habe mir mal einen Perlscript erstellt, als ich viele Drahtlosnetzwerke
einrichten musste, der mir ordentliche "Passwoerter" generiert. Du kannst
ihn ja bei Bedarf umschreiben und anpassen. Dem Script uebergibst du beim
Aufruf eine Zahl, es ist die Laenge des Passwortes. Alles andere steht im
Source, ist nicht schwer zu verstehen und zu aendern. Der Zeichenpool ist den
erlaubten Zeichen fuer WLANs angepasst (@range).

#!/usr/bin/perl -Tw

use strict;

my $randkey;
my $iter;
my $howmany;

$howmany = $ARGV[0];

for ($iter=1; $iter < 11; $iter++) { 
    
     $randkey = &gen_randkey;

     if ($randkey) { 
	 print "$iter: $randkey\n"; }
     else { 
	 print "Something went wrong\n"; 
     }
}

sub gen_randkey {

    my $keylength = $howmany;
    my $len = shift; $len = $keylength unless $len; 
    my @range; @range = (33..126);
    my $id = &read_dev_random($len);

return unless $id;

$id =~ s/(.)/chr($range[ord($1) % $#range+1])/esg;
return $id;
}

sub read_dev_random {
	                     	
	my $len = shift;
        unless ($len) { print STDERR "No parameter given\n"; return; }
	            	
	eval {
	open(RANDOM, "/dev/random") or die; };
	   if ($@) { print STDERR "Unable to open the random device\n"; return; }
	    
	my $random;
	unless (read(RANDOM, $random, $len) == $len) { 
	    print STDERR "Unable to read from the random device\n"; return;
	}
	    
	close(RANDOM);
	return $random;
}


Reply to: