lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
From: eballen1 at qwest.net (Bruce Ediger)
Subject: interesting?

On Sat, 1 Feb 2003, Gregory Steuck wrote:

> >>>>> "batz" == batz  <batsy@...our.net> writes:
>
>     batz> They use: da/dt = Ka(1-a)
>     ...
>     batz> Where K is the rate of information spread (based on number of
>     batz> subscriptions to public lists vs. consortiums) 'a' being the
>     batz> proportion of subscribers informed, 't' is hours, and 'd'
>     batz> seems to be iteration?
>
> da/dt is a clear sign of differential equation (which they mention in
> the paper). So, "d" is NOT iteration nor is it a factor in "da", it's a
> marker of differential.

Sure, and that particular differential equation has a closed form solution,
which I'm sure they also give in the paper.

*But* a lot of differential equations that one finds in practice don't
have closed form solutions, or the finder might be too lazy or too stupid
to recognize that the particular DE has a closed form solution.

In that case, a cheap and dirty method of solution is to make "da" into
Delta-a, the change in a, and "dt" into Delta-t, a time increment. In
this example you'd get:

Delta-a/Delta-t = Ka(1-a)

The change in a (Delta-a) for a time interval (Delta-t) becomes:

Delta-a = Ka(1-a)(Delta-t)

And after each interval a becomes:

a = last-a + Delta-a = last-a + Ka(1-a)(Delta-t)

That's really easy to express in a cheap-and-dirty Perl program:

---------------
#!/usr/bin/perl
use strict;
use diagnostics;
my $K = 10000./65535.;
my $delta_t = 1.;
my $a = 1./65535.;
for (my $i = 0; $i < 135; ++$i) {
    my $U = 10000. * (1. - $a);
    my $I = 10000. * $a;
    print "$i\t$U\t$I\n";
    $a += $K * $a * (1. - $a) * $delta_t;
}
---------------
That's 65,535 element address space, (2^16 - 1), with 10,000 actual
"hosts" in the address space.  $U contains the count of hosts not infected,
$I contains the count of hosts infected.  By time step 120, 9,990 out of
the 10,000 infectable hosts have been infected.

I believe this is a numerical method for solving differential equations called
"Euler's Method".



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ