Re: RSA question

2010-09-02 Thread travis+ml-cryptography
On Tue, Aug 31, 2010 at 11:27:39PM -0700, Bill Stewart wrote:
> It's possible that 
> under some conditions, trying to brute-force the RSA is more efficient 
> than simply brute-forcing the symmetric key

As of 2003, RSA said:
1024 bit RSA ~= 80 bit symmetric
2048 bit RSA ~= 112 bit symmetric
3072 bit RSA ~= 128 bit symmetric

So PK is usually weaker than the symmetric part of a hybrid scheme.

I hear that NIST Key Mgmt guideline (SP 800-57) suggests that the RSA
key size equivalent to a 256 bit symmetric key is roughly 15360 bits.
I haven't actually checked this reference, so I don't know how they
got such a big number; caveat emptor.

I have no idea what the state of, say, AES brute forcing is, so I
don't know the ratio from AES key size to ideal symmetric cipher key
sizes.  I'm guessing it's pretty close to 1, but would love to hear
if it's not.
-- 
It asked me for my race, so I wrote in "human". -- The Beastie Boys
My emails do not have attachments; it's a digital signature that your mail
program doesn't understand. | http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgp16o2aSPNwM.pgp
Description: PGP signature


Re: questions about RNGs and FIPS 140

2010-08-26 Thread travis+ml-cryptography
On Thu, Aug 26, 2010 at 06:24:26PM +0300, Alexander Klimov wrote:
> I guess you misinterpret it. In no place 140-2 "does not allow
> TRNG".

On closer reading, I guess that's true.  Annex C, "Approved Random
Number Generators", claims that no TRNGs have been approved, but
that's not the same as saying that they are specifically excluded.
-- 
It asked me for my race, so I wrote in "human". -- The Beastie Boys
My emails do not have attachments; it's a digital signature that your mail
program doesn't understand. | http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgpXrWix15I6f.pgp
Description: PGP signature


Re: questions about RNGs and FIPS 140

2010-08-26 Thread travis+ml-cryptography
On Thu, Aug 26, 2010 at 06:25:55AM -0400, Jerry Leichter wrote:
> [F]IPS doesn't tell you how to *seed* your deterministic generator.  In  
> effect, a FIPS-compliant generator has the property that if you start it 
> with an unpredictable seed, it will produce unpredictable values.   

That brings up an interesting question... if you have a source of
unpredictable values in the first place, why use a CSPRNG? ;-)

Actually, I know I'm being snarky; I'm aware that they're handy for
"stretching" your random bits, if you don't have enough for the task.

I suppose some people feel they're also handy for whitening them, so
that if they're not entirely random, the structure isn't completely
obvious from the output alone, but I think that's probably a separate
property that needs to be evaluated independent of the others.

Last I checked Linux /dev/{u,}random uses SHA-1 hash over the pool,
which suggests they had this in mind.  However, it also makes using it
very slow for wiping disks or any other high-bandwidth tasks, at least
when compared to something like Yarrow.

I heard from a colleague that /dev/urandom exists on Android, but
/dev/random does not.  Our best guess is that it's the same as the
standard Linux /dev/urandom, but we're not really sure.  Presumably
they dumped /dev/random because there just weren't enough sources of
unpredicability on that platform.  I'd like to hear from anyone who
knows details.

Also, please do check out the links about RNGs on the aformentioned
page.  Seth Hardy's /dev/erandom looks very interesting, and has
languished in relative obscurity for nearly a decade.

I'll take the rest of my comments to this list:
http://lists.bitrot.info/mailman/listinfo/rng
-- 
It asked me for my race, so I wrote in "human". -- The Beastie Boys
My emails do not have attachments; it's a digital signature that your mail
program doesn't understand. | http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgp9yzKJ9OT7R.pgp
Description: PGP signature


questions about RNGs and FIPS 140

2010-08-25 Thread travis+ml-cryptography
Hey all,

Looking for feedback on this section on RNGs:
http://www.subspacefield.org/security/security_concepts/index.html#tth_sEc29
Equations are broken in HTML, but clear in PDF:
http://www.subspacefield.org/security/security_concepts/security_concepts.pdf
I am aware the Renyi entropy link is broken.

I also wanted to double-check these answers before I included them:

1) Is Linux /dev/{u,}random FIPS 140 certified?
No, because FIPS 140-2 does not allow TRNGs (what they call non-deterministic).
I couldn't tell if FIPS 140-1 allowed it, but FIPS 140-2 supersedes FIPS 140-1.
I assume they don't allow non-determinism because it makes the system harder
to test/certify, not because it's less secure.

2) Is CryptGenRandom certified?
Yes - is that because they have a deterministic mode?  Wikipeda makes it sound
like this closed-design system seeds from system timings and other stuff, which
would seem to make it non-deterministic as far as FIPS 140 testing is concerned.

3) Is determinism a good idea?
See Debian OpenSSL fiasco.  I have heard Nevada gaming commission
regulations require non-determinism for obvious reasons.

4) What about VMs?
Rolling back a deterministic RNG on those systems gives the same
values unless/until you re-seed with something new to this iteration.

Do those sound right?
-- 
It asked me for my race, so I wrote in "human". -- The Beastie Boys
My emails do not have attachments; it's a digital signature that your mail
program doesn't understand. | http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgp3mbtjlj8Kf.pgp
Description: PGP signature


phpwn: PHP cookie PRNG flawed (Netscape redux)

2010-08-05 Thread travis+ml-cryptography
https://media.blackhat.com/bh-us-10/whitepapers/Kamkar/BlackHat-USA-2010-Kamkar-How-I-Met-Your-Girlfriend-wp.pdf

Hey, another PRNG is broken.  Raise your hand if you're surprised.
-- 
A Weapon of Mass Construction
My emails do not have attachments; it's a digital signature that your mail
program doesn't understand. | http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgpXw4d3k1gaP.pgp
Description: PGP signature


work factor calculation for brute-forcing crypto

2009-07-17 Thread travis+ml-cryptography
Hi folks,

Assume for a moment that we have a random number generator which is
non-uniform, and we are using it to generate a key.

What I'd like to do is characterize the work factor involved in
brute-force search of the key space, assuming that the adversary
has knowledge of the characteristics of the random number generator?

The algorithm for this is simple:

Let the array X represent the probabilities of the outcomes of the
random number generator, sorted by probability, with x[0] being the
probability of the most probable value.

Then, for a given fraction of the messages n (0 < n <= 1):

i = 0
m = 0
while (m + x[i]) < n:
m = m + x[i]
i = i + 1
return (i - 1) + (n - m) / (m + x[i])

This return value represents the average number of decryption attempts
required to guess the right key.  If one wanted to round up, one could
just return i instead of the last expression above, because the second
term is always in (0, 1]

I'm curious if there's a way to express this calculation as a
mathematical formula, rather than an algorithm, but right now I'm just
blanking on how I could do it.
-- 
Obama Nation | My emails do not have attachments; it's a digital signature
that your mail program doesn't understand. | 
http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgpJ4gqi6vQJo.pgp
Description: PGP signature


Re: Intercepting Microsoft wireless keyboard communications

2009-07-17 Thread travis+ml-cryptography
On Tue, Dec 11, 2007 at 02:01:03PM -0500, j...@tla.org wrote:
> How many bits (not just data, also preamble/postamble, sync bits, etc.)  
> is the keyboard sending for each keystroke anyway?

FWIW, it is likely sending keyboard scan codes:

http://en.wikipedia.org/wiki/Scancode

It doesn't send the actual characters typed, because games and the
like need to know when keys are depressed and released, not just what
letter was typed.

Here's an overview of keyboard input under Linux:

http://www.subspacefield.org/~travis/keyboard/index.html
-- 
Obama Nation | My emails do not have attachments; it's a digital signature
that your mail program doesn't understand. | 
http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgpePeM4q7uNa.pgp
Description: PGP signature


padding attack vs. PKCS7

2009-06-12 Thread travis+ml-cryptography
http://www.matasano.com/log/1749/typing-the-letters-a-e-s-into-your-code-youre-doing-it-wrong/

Towards the end of this rather offbeat blog post they describe a
rather clever attack which is possible when the application provides
error messages (i.e. is an error oracle) for PKCS7 padding in e.g. AES
CBC-encrypted web authenticators that allows an adversary to attack
the crypto one octet at a time.
-- 
Obama Nation | My emails do not have attachments; it's a digital signature
that your mail program doesn't understand. | 
http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgptls3HY1oR9.pgp
Description: PGP signature


Re: Seagate announces hardware FDE for laptop and desktop machines

2009-06-12 Thread travis+ml-cryptography
Reading really old email, but have new information to add.

On Wed, Oct 03, 2007 at 02:15:38PM +1000, Daniel Carosone wrote:
> Speculation: the drive always encrypts the platters with a (fixed) AES
> key, obviating the need to track which sectors are encrypted or
> not. Setting the drive password simply changes the key-handling.
> 
> Implication: fixed keys may be known and data recoverable from factory
> records, e.g. for law enforcement, even if this is not provided as an
> end-user service.

There was an interesting article in 2600 recently about ATA drive
security.

It's in Volume 26, Number 1 (Spring 2009).  Sorry that I don't have an
electronic copy.

The relevant bit of it is that there are two keys.  One key is for the
user, and one (IIRC, it is called a master key) is set by the factory.

IIRC, there was a court case recently where law enforcement was able
to read the contents of a locked disk, contrary to the vendor's claims
that nobody, even them, would be able to do so.  The man in question
had his drives sized by the FBI and they read the drives, uncovering
emails between the man and his lawyer.  He was suing the manufacturer
for false advertising.

Here are the links from the 2600 article:

http://tinyurl.com/atapwd
http://tinyurl.com/cmrrse
http://cmrr.ucsd.edu/people/Hughes/SecureErase.shtml
hdparm -security-erase-enhanced in Linux
http://www.deadondemand.com/
http://www.vogon-investigation.com/password-cracker.htm
-- 
Obama Nation | My emails do not have attachments; it's a digital signature
that your mail program doesn't understand. | 
http://www.subspacefield.org/~travis/ 
If you are a spammer, please email j...@subspacefield.org to get blacklisted.


pgpvh6qewOZcV.pgp
Description: PGP signature


Code makers and breakers of WWII era

2008-06-04 Thread travis+ml-cryptography
http://news.cnet.com/2300-1029_3-6240826-1.html?tag=ne.gall.pg
-- 
Crypto ergo sum.  https://www.subspacefield.org/~travis/
Truth does not fear scrutiny or competition, only lies do.
If you are a spammer, please email [EMAIL PROTECTED] to get blacklisted.

-
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to [EMAIL PROTECTED]


quantum cryptography broken?

2008-04-21 Thread travis+ml-cryptography
http://www.kurzweilai.net/news/frame.html?main=/news/news_single.html?id%3D8471

Quantum cryptography broken
KurzweilAI.net, April 20, 2008

Two Swedish scientsts, Jorgen Cederlof, now of Google, and Jan-Ake
Larsson of Link In a paper published in IEEE Trans. Inf Theory, 54:
1735-1741 (2008), they point out that an eavesdropper could gain
partial knowledge on the key in quantum cryptography that may have an
effect on the security of the authentication in the later round.

By accessing the quantum channel used in quantum cryptography, the
attacker can change the message to be authenticated (since the message
is influenced by attacker-initiated events on the quantum
channel). This, combined with partial knowledge of the key
(transmitted on the quantum channel), creates a potential security
gap, they suggest.

Their proposed solution: simply transmit an extra exchange of a small
amount of random bits on the classical (Internet) channel.

FAQ:

http://www.mai.liu.se/~jalar/qkg/faq.html
-- 
Crypto ergo sum.  https://www.subspacefield.org/~travis/
My password is easy to remember; it's the digits of Pi.  All of them.
If you are a spammer, please email [EMAIL PROTECTED] to get blacklisted.

-
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to [EMAIL PROTECTED]


Pi, randomness, entropy, unpredictability

2008-04-16 Thread travis+ml-cryptography
I've been working on the "randomness and unpredictability" this morning
instead of doing my taxes, and found these links:

http://crd.lbl.gov/~dhbailey/pi/
http://pisearch.lbl.gov/

The section on randomness, entropy, etc. is here:

http://www.subspacefield.org/security/security_concepts.html#tth_sEc20

The formatting on the PDF is better:

http://www.subspacefield.org/security/security_concepts.pdf

Currently the section begins on page 72.

Please tell me what you think.
-- 
Crypto ergo sum.  https://www.subspacefield.org/~travis/
My password is easy to remember; it's the digits of Pi.  All of them.
If you are a spammer, please email [EMAIL PROTECTED] to get blacklisted.

-
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to [EMAIL PROTECTED]


presentations about encrypted storage

2008-03-29 Thread travis+ml-cryptography
I've got two presentations I've given on encrypted storage technologies here:

http://www.subspacefield.org/security/

There's also a book I'm writing, if anyone is interested.
-- 
https://www.subspacefield.org/~travis/
I need a better strategy for being less analytical.
For a good time on my email blacklist, email [EMAIL PROTECTED]

-
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to [EMAIL PROTECTED]


delegating SSL certificates

2008-03-15 Thread travis+ml-cryptography
So at the company I work for, most of the internal systems have
expired SSL certs, or self-signed certs.  Obviously this is bad.

I know that if we had IT put our root cert in the browsers, that we
could then generate our own SSL certs.

Are there any options that don't involve adding a new root CA?

I would think this would be rather common, and I may have heard about
certs that had authority to sign other certs in some circumstances...
-- 
https://www.subspacefield.org/~travis/> Who Would Jesus Bomb?
For a good time on my email blacklist, email [EMAIL PROTECTED]


pgp62b6zjh4z9.pgp
Description: PGP signature


crypto quotes

2008-01-26 Thread travis+ml-cryptography
http://www.amk.ca/quotations/cryptography/
-- 
https://www.subspacefield.org/~travis/>
The stream is deaf, yet sings its melody for all to hear.
For a good time on my email blacklist, email [EMAIL PROTECTED]


pgpqS3cxnwgDl.pgp
Description: PGP signature


Re: crypto class design

2007-12-20 Thread travis+ml-cryptography
On Wed, Dec 19, 2007 at 08:22:09AM +0100, Luis Martin wrote:
> I am not sure I understood what you want but here's my suggestion.

The problem is that client code assumes that there is a fixed (constant)
relationship between the size of the output and the size of the input,
and does its own memory allocation for the output, and uses pointers.

This makes it difficult to change that relationship safely; I
basically have to track down and change all the calling code, which
may be near-impossible.

I think the right solution in this case is to pass objects and not
pointers, unless performance dictates otherwise.

But, are there similar assumptions implicit in the calling code which
I can avoid through proper design, now?

That having been said, your suggestion for a data type for this
purpose, with semantically-useful subdivisions, is an interesting one;
thank you (and everyone else who gave suggestions!)

-- 
In God We Trust, All Others Must Provide Source Code
https://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my email blacklist, email [EMAIL PROTECTED]


pgp89cGmO9kmW.pgp
Description: PGP signature


crypto class design

2007-12-18 Thread travis+ml-cryptography
So... supposing I was going to design a crypto library for use within
a financial organization, which mostly deals with credit card numbers
and bank accounts, and wanted to create an API for use by developers,
does anyone have any advice on it?

It doesn't have to be terribly complete, but it does have to be
relatively easy to use correctly (i.e. securely).

I was thinking of something like this:

class crypto_api
{
...
// developers call these based on what they're trying to do
// these routines simply call crypto_logic layer
Buffer encrypt_credit_card(Buffer credit_card_number, key_t key);
Buffer encrypt_bank_account(Buffer bank_account, key_t key);
Buffer encrypt_other(Buffer buffer, key_t key);
...
};

class crypto_logic
{
...
algo_default = ALGO_AES256CBC;
// encrypt with a given algorithm
Buffer encrypt(Buffer buffer, key_t key, algo_t aid = algo_default);
// calls different routines in crypto_implementation layer depending on 
algorithm used
Buffer decrypt(Buffer buffer, key_t key);
...
};

class crypto_glue
{
...
// calls routines in libraries such as OpenSSL
// mostly wrappers that translate between our data types and theirs
Buffer aes256cbc-encrypt(...);
Buffer aes256cbc-decrypt(...);
...
};

The general idea is that crypto_api provides domain-specific APIs that
are easy for anyone to understand, that the logic layer allows for the
selection of different algorithms, and the glue layer is basically a
translation layer to underlying libraries.

It is very important that the API remain stable, because the code
base is large and owned by various groups.

One thing that I'm wondering is how to indicate (e.g.) the overhead in
terms of padding, or whatever, for various algorithms... or if it
matters.  The old code had some really disturbing practices like
assuming that the output buffer was 16 octets bigger, and stuff like
that... scary.

Intend to skim the OpenSSL design and Gutmann's "Design of a
Cryptographic Security Architecture" for ideas.

Comments?
-- 
In God We Trust, All Others Must Provide Source Code
https://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my email blacklist, email [EMAIL PROTECTED]


pgp60d9I19hOd.pgp
Description: PGP signature


Re: refactoring crypto handshakes (SSL in 3 easy steps)

2007-11-30 Thread travis+ml-cryptography
On Thu, Nov 15, 2007 at 10:28:43AM +0200, [EMAIL PROTECTED] wrote:
> There's a dependency from "negotiated capabililities"
> to the cryptographic things included in the first message
> from client to server (since e.g. what algorithm is 
> used by the client, or even what certificate is selected,
> depends on these "non-crypto" capability/feature parts.)
> 
> But as James pointed out, you could probably handle this 
> in "optimistic" mode; i.e. make a guess what the "negotiated
> capabilities" are likely to be, and fall back to more
> RTTs if the guess is wrong.

One could theoretically send all of the permutations prior to
negotiation.  However, there would be a bandwidth penalty, a privacy
penalty (any listener knows all cryptographic identities), and a
possible security penalty (if any of the supported methods are
undesirably weak).

However, if you only have strong ciphers and don't care about
cryptographic identity protection, it could be useful.

Note that all these weaknesses already exist, as they could be
triggered by communicating with a less-capable client, or one
controlled by an adversary.  Whether or not it matters depends on some
contextual details.

> (BTW, usually we also want the capability negotiation
> to be secure; SSL simply exchanges MACs of all messages
> once the key for MAC has been agreed on. Would this
> add 0.5 or 1RTT? Or perhaps there's some clever
> way to do it without additional RTT?)

Schneier suggests keeping a running MAC over the entire datastream,
the state of which is sent with each logical message.  I think that's
a simple and safe way to do it, and so there's no extra messages
involved.  You always check the MAC first, before operating on the
data, and you abort whenever you receive one with a message with an
invalid MAC.  The MAC with each message attests to the integrity of
all data ever sent over that connection, period.

The obvious way - doing a specific step just to verify the handshake -
is the kind of code-centric thinking that I'm trying to avoid.  I'm
having trouble finding the right words for it.  Basically an encrypted
network protocol is a language in which a transmission is
syntactically correct if and only if all the security properties hold.
In some ways current protocols are like a poorly-written language
whose parser that needs a seperator character between statements
instead of being able to detect the syntax error when it starts
processing the following statement.  Basically it lacks even a single
symbol look-ahead.

-- 
Life would be so much easier if it was open-source.
https://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpjHn1QEV8i0.pgp
Description: PGP signature


Re: refactoring crypto handshakes (SSL in 3 easy steps)

2007-11-15 Thread travis+ml-cryptography
On Tue, Nov 13, 2007 at 08:35:52AM +0200, [EMAIL PROTECTED] wrote:
> The "extra messages" might be irrelevant for cryptography,
> but they're not irrelevant for security or functionality.
> E.g. in SSL, you have capability/feature negotiation
> (cipher suites, trusted CAs, in TLS 1.2 also signature
> algorithms, etc.)

So, this is a good place to attempt to use this method.

Data to be sent:

1) supported capabilities on the client
2) supported capabilities on the server
3) negotiated capabilities

Dependencies:

1) No dependencies (first message from client to server)
2) No dependencies (first message from server to client)
3) Depends on #1 and #2

Results:

3 messages
1-1.5 RTTs (one if there's a simultaneous open, which is rare)

So unless I'm missing something, we're still at 3 messages.

Aside:

I would like to point out that TCP-based protocols have the latency
disadvantage of having to do a 3-way handshake before transferring any
data.  If you were to design a new IP protocol, you could do the key
exchange within the handshake, which would save 3 messages, but may be
vulnerable to a resource-consumption attack on the CPU.

I wonder if we here could develop a handshake that was
cryptographically secure, resistant to CPU DoS now, and would be
possible to adjust as we get faster at doing crypto operations to
reduce latency even further.  Basically an easy knob for balancing
high latency and DoS resistance vs. crypto overhead and low latency.
It should be adjustable on either end without altering the other.

-- 
Life would be so much easier if it was open-source.
https://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgp8fMSK6gOb3.pgp
Description: PGP signature


cryptanalysis of RNG of Windows OS

2007-11-12 Thread travis+ml-cryptography
Interesting-looking paper from some guys in Israel:

http://eprint.iacr.org/2007/419.pdf

Quoting:

We analyzed the security of the algorithm and found a non-trivial
attack: given the internal state of the generator, the previous state
can be computed in O(2^23) work (this is an attack on the
forward-security of the generator, an O(1) attack on backward security
is trivial). The attack on forward-security demonstrates that the
design of the generator is flawed, since it is well known how to
prevent such attacks.

The generator is run in user mode rather than in kernel mode, and
therefore it is easy to access its state even without administrator
privileges.

The implication of these findings is that a buffer overflow attack or
a similar attack can be used to learn a single state of the generator,
which can then be used to predict all random values, such as SSL keys,
used by a process in all its past and future operation. This attack is
more severe and more efficient than known attacks, in which an
attacker can only learn SSL keys if it is controlling the attacked
machine at the time the keys are used.
-- 
Life would be so much easier if it was open-source.
https://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgp8GVGsxKlJi.pgp
Description: PGP signature


Caffe Latte attack cracks WEP from clients in 6 mins

2007-11-12 Thread travis+ml-cryptography
http://www.airtightnetworks.net/knowledgecenter/wep-caffelatte.html


The Caffe Latte attack debunks the age old myth that to crack WEP, the
attacker needs to be in the RF vicinity of the authorized network,
with at least one functional AP up and running. We demonstrate that it
is possible to retrieve the WEP key from an isolated Client - the
Client can be on the Moon! - using a new technique called "AP-less WEP
Cracking". With this discovery Pen-testers will realize that a hacker
no longer needs to drive up to a parking lot to crack
WEP. Corporations still stuck with using WEP, will realize that their
WEP keys can be cracked while one of their employees is transiting
through an airport, having a cup of coffee, or is catching some sleep
in a hotel room. Interestingly, Caffe Latte also has a great impact on
the way Honey-pots work today and takes them to the next level of
sophistication.

At its core, the attack uses various behavioral characteristics of the
Windows Wireless stack along with already known flaws in WEP to pull
off this feat! We have considered all combinations of network
configurations and shown how it is possible to retrieve the WEP key in
matter of less than 6 minutes in each case. We exploit the shared key
authentication flaw and the message modification flaw in 802.11 WEP,
to send a flood of encrypted ARP requests to the isolated Client. The
Client replies to these requests with a barrage of encrypted ARP
responses. We use these ARP responses and plug them into the PTW
cryptographic attack and recover the WEP key in less than 6
minutes. It is important to note that though our talk will center on
wireless Clients which run a Windows operating system, the core idea
presented can be easily used to find similar attacks for other
operating systems.
-- 
Life would be so much easier if it was open-source.
https://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpRD97hwznY8.pgp
Description: PGP signature


refactoring crypto handshakes (SSL in 3 easy steps)

2007-11-12 Thread travis+ml-cryptography
ASSUMPTIONS:

Network latency is important, and will only become more so, since
light won't go faster in a given medium, and we can't do better than
c, ever.

PROPOSED SOLUTION:

Refactor protocol to minimize number of interlocked steps.
Specifically, reduce the number of messages.

METHODOLOGY:

Identify data which must be transmitted, and identify their
dependencies.  Send data on first outbound message to peer after all
its dependencies are available (i.e. on the step after it is
received).  Each transmission is a sweep of one level of the
dependency tree, starting at the root and working downward.

PREVIOUS WORK:

Three messages is the proven minimum for mutual authentication.  Last
two messages all depend on the previous message, so minimum handshake
time is 1.5 RTTs.

EXAMPLE:

First examine SSL with Mutual Auth, which is detailed here:

http://en.wikipedia.org/wiki/Image:Ssl_handshake_with_two_way_authentication_with_certificates.png

Here is a refactored version of the important messages:

C->S: hello, RNc, client cert, enc_S(client_cert)
S->C: server cert
C->S: enc_S(PMS)

DISCUSSION:

Providing the datum as soon as its dependencies are satisfied is
well-studied in processor design.

One may have extra messages, but they are implementation artifacts,
completely irrelevant to the cryptography.

Network protocol libraries advance through time monotonically and thus
are analogous to LR(1) language parsers which parse from left to right
and are only able to look at the next token (message); perhaps we can
apply what we already know about them to create unambiguous crypto
handshakes with respectable error handling.

Sending one layer of the dependency tree at once is like a synchronous
circuit; one could also fire off messages as soon the data becomes
available, like an asynchronous circuit, which may reduce overall time
of the handshake due to computation by the endpoints.  However, it is
an implementation detail, not important to this analysis.

OPEN QUESTIONS:

When would a handshake require more?  Is there such a thing, in any
extant ZKS or PFS systems?

COMMENTS?
-- 
Life would be so much easier if it was open-source.
https://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgp3jScb43Di8.pgp
Description: PGP signature


Re: Hushmail in U.S. v. Tyler Stumbo

2007-11-05 Thread travis+ml-cryptography
On Tue, Oct 30, 2007 at 12:27:53PM -0400, [EMAIL PROTECTED] wrote:
> I stumbled across this filing:
> http://static.bakersfield.com/smedia/2007/09/25/15/steroids.source.p
> rod_affiliate.25.pdf

I probably shouldn't say anything about this, but whoever made this
PDF failed to properly redact the personal information in #10, just
like the NYT failed to do with the names of the people who helped the
US in Iran.

I can simply switch desktops and see the numbers underneath before the
rectangles are drawn over them (possibly on another layer).  Actually
the box on #14 seems to work, possibly because it is larger, or was
done differently.

> What I found interesting was:
> 1.  The amount of data which Hushmail was required to turn over to
> the US DEA relating to 3 email addresses.  3 + 9 = 12 CDs  What
> kind of and for what length of time does Hushmail store logs?

You would think that they would store the minimum or none, so that
they didn't have to answer such requests.  In the US, companies can
require compensation for resources spent filling these requests, but
many do not for fear of increased scrutiny by law enforcement.

I have been around when my department at a Usenet server had to fill
these kinds of requests on posts from people selling GHB or something
like that.  They pretty much write their subpoenas as wide as
possible, pretty much "any record you have about..." and then they
give you every relevant piece of identifying information they have.  I
think you have to swear under penalty that you got them everything.
Sorry bro

IIRC, there were laws passed in Europe dictating minimum retention
times for ISPs and such.  They may have been passed in Canada and the
US as well.  I guess the legal theory is that when a business offers
services to the public they give up some rights over private property.

Probably they did the minimum work to comply, which means that the
CDs are either mostly empty, or full of unrelated data.

> 2.  That items #5 and #15 indicated that the _contents_ of emails
> between several Hushmail accounts were "reviewed".

Yep.

> 3.  The request was submitted to the ISP for IP addresses related
> to a specific hushmail address (#9).  How would the ISP be able to
> link a specific email address to an IP when Hushmail uses SSL/TLS
> for both web and POP3/IMAP interfaces?

It appears he used IP addresses gathered from #4.

> Since email between hushmail accounts is generally PGPed.  (That is
> the point, right?)  And the MLAT was used to establish probable
> cause, I assume that the passphrases were not squeezed out of the
> plaintiff.  How did the contents get divulged?

My guess is that Hushmail has had subpoenas before and had to develop
and install a modified java applet which captures the passphrase when
the user enters it.  With that and the stored keys, it can decrypt all
the stored communications.

If that's true, I wouldn't expect them to trumpet it, since it would
mostly negate their value proposition.
-- 
Life would be so much easier if it was open-source.
http://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpZ2FLxvXa1Y.pgp
Description: PGP signature


password strengthening: salt vs. IVs

2007-10-29 Thread travis+ml-cryptography
So back in the bad old days when hashing was DES encryption of the
zero vector with a fixed key, someone came up with salt as a password
strengthening mechanism.

I'm not quite sure why it was called salt.

It perturbed the S-boxes in DES IIRC, but essentially it was a known
bit of text that was an input to the algorithm that varied between
entries, like an IV does with encryption.

If there isn't already a term for this, I'm going to call this
general concept "individuation", or possibly "uniquification".

Nowadays with strong hash algorithms, but rainbow tables and
low-entropy passwords as the threat, I'm wondering what the best
practice is.

I was thinking of simply prepending a block of text to each passphrase
prior to hashing, and storing it with the hash - similar to salts in
passwd entries.

It should have at least as much entropy as the hash output, maybe a
little more in case there's collisions.  If it were uniformly random,
you could simply XOR it with the passphrase prior to hashing and save
yourself some cycles, right?

Would it be appropriate to call this salt, an IV, or some new term?
-- 
Life would be so much easier if it was open-source.
http://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpsfGwr9Iy35.pgp
Description: PGP signature


Re: kernel-level key management subsystem

2007-10-10 Thread travis+ml-cryptography
On Tue, Oct 09, 2007 at 06:08:44PM +1300, Peter Gutmann wrote:
> how do you want access to the keys controlled?  ACLs?  Who sets the ACLs?  Who
> can manage them?  How are permissions managed?  What's the UI for this?  Under
> what conditions is sharing allowed?  If sharing is allowed, how do you handle
> the fact that different apps (with different levels of security) could have
> access to the same keys?  Do you derive keys from a master key?  Do you
> migrate portions of the app functionality into the kernel to mitigate the
> problems with untrusted apps?  How is key backup handled?  What about
> 
> [Another 5 pages of questions]

Good stuff.

I was hoping perhaps to stimulate a discussion on just these sorts of issues.

There's a bit of interrelated stuff here; you can start with requirements,
postulate some mechanisms, think about implications of their implementation,
which leads to refining requirements.  It's sure to be a learning experience.

Maybe this isn't the best place to do that, but it seems to me that this group
would be one of the best for ironing out the details, and would have a vested
interest in any such management interface not suck.

Ideally I'd like to be able to develop something for, say, Linux, and possibly
integrate it with your open-source co-processor stuff.

> Once you've got a clear statement of exactly what you want to do (which in its
> most abstract form is "solve an arbitrarily complex key management problem"),
> implementation is almost trivial in comparison.

Sure.

Maybe that's a good question: what are the idioms in key management?

Is there any similar work already that I could read up on?

Where can I read up on current HSM functionality, offerings, features, etc.?

  "Computers are useless; they can only give answers."
   -- Pablo Picasso
-- 
http://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpRDG3MxsVBo.pgp
Description: PGP signature


Re: 307 digit number factored

2007-10-10 Thread travis+ml-cryptography
On Mon, May 21, 2007 at 04:32:10PM -0400, Victor Duchovni wrote:
> On Mon, May 21, 2007 at 02:44:28PM -0400, Perry E. Metzger wrote:
> > My take: clearly, 1024 bits is no longer sufficient for RSA use for
> > high value applications, though this has been on the horizon for some
> > time. Presumably, it would be a good idea to use longer keys for all
> > applications, including "low value" ones, provided that the slowdown
> > isn't prohibitive. As always, I think the right rule is "encrypt until
> > it hurts, then back off until it stops hurting"...
> 
> When do the Certicom patents expire? I really don't see ever longer RSA
> keys as the answer, and the patents are I think holding back adoption...

They already expired.

Some EC primitives in the latest OpenSSL.

But why assume short ECC keys are stronger than long RSA?

AFAIK, the only advantage of ECC is that the keys are shorter.
The disadvantage is that it isn't as well studied.

Although every time I read up on ECC, I understand it, and then within
a few days I don't remember anything about it.  I think they teflon
coated those ideas somehow, because they don't stick.

> With EECDH one can use ECDH handshakes signed with RSA keys, but that
> does not really address any looming demise of 1024 bit RSA.

Why can't they do something like El-Gamal?

I'm not comfortable with RSA somehow.  It seems fundamentally more
complicated to me than DLP, and it's hard to get right - look at how
many things there are in the PKCS for it.
-- 
http://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpBNtfcR3SYr.pgp
Description: PGP signature


Re: kernel-level key management subsystem

2007-10-10 Thread travis+ml-cryptography
On Mon, May 21, 2007 at 01:44:23PM +1200, Peter Gutmann wrote:
> >Ignoring special-purpose hardware, does anyone have thoughts on what the
> >requirements for a kernel-level key management subsystem should be?
> 
> Yes, but first you'd have to tell me what you're trying to do.

Protect keys in kernel land rather than userland.

Allows for things like e.g.
1) marking memory unpageable (avoiding swap hazard)
2) relocating the data to different physical pages to prevent
   burn-in
3) secure wiping
4) providing a common system for storing and protecting them
   rather than doing it in each individual application
5) allowing for them to be shared securely among processes (like
   ssh-agent and gpg-agent)
6) provide protection against userland snooping
   programs (gdb anyone?)
etc.

-- 
http://www.subspacefield.org/~travis/> Eff the ineffable!
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgp7rkyiXmAFj.pgp
Description: PGP signature


ECC vs. D/H or RSA

2007-10-05 Thread travis+ml-cryptography
Does anyone have information on:

1) The ECAES weakness that led to ECIES
2) Any known weaknesses of ECIES
3) Relative performance figures between ECC routines like ECIES
   and D/H (or possibly RSA, though IES is based on EC-DH)

I can generate the last if these figures are not available.

BTW, I noticed that the latest OpenSSL has some EC functions,
including EC-DH IIRC.  It does not have ECAES or ECIES though.

References:
http://en.wikipedia.org/wiki/ECIES
http://www.secg.org/download/aid-385/sec1_final.pdf
-- 
http://www.subspacefield.org/~travis/> Tat Tvam Asi
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpvAz1RvHImk.pgp
Description: PGP signature


Undocumented Bypass in PGP Whole Disk Encryption

2007-10-05 Thread travis+ml-cryptography
http://it.slashdot.org/article.pl?sid=07/10/04/1639224&from=rss

Interesting quote:

Jon Callas, CTO and CSO of PGP Corp., responded that this [previously
undocumented] feature was required by unnamed customers and that
competing products have similar functionality.
-- 
http://www.subspacefield.org/~travis/> Tat Tvam Asi
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpUavsYRK20D.pgp
Description: PGP signature


debunking snake oil

2007-08-31 Thread travis+ml-cryptography
I think it might be fun to start up a collection of snake oil
cryptographic methods and cryptanalytic attacks against them.  It
would be more fun for me than crossword puzzles, and educational for
all the would-be cryptographers.

I'd like to start with the really simple stuff; classical
cryptography, systems with clean and obvious "breaks".  Although I
find the magazine entertaining to read, I'm finding that 2600 Magazine
is a particularly good source of this brand of snake oil.

So, when you find a particularly obnoxious dilettante going on about
his bone-headed unbreakable scheme, please forward it to me and I'll
see about breaking it, and then publish the schemes and the results on
a web site for publicly "educating" them.  Honestly, there's probably
no better way to educate people than to see schemes submitted and
broken, and I'm not sure there's a good site for it, although there
are plenty of books.  Unfortunately, these types won't be bothered to
buy books since they already know everything.

If you have a break of some scheme you wish to contribute, please
do forward me a URL and I'll link to it.

Perhaps this should be a wiki?

I'm revamping my web site, so the crypto wiki has been down
temporarily but will be back up.
-- 
http://www.subspacefield.org/~travis/> -><- dharma <>< advaita
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpZSRJOjN7nS.pgp
Description: PGP signature


magnifying unpredictability and common subexpressions

2007-08-08 Thread travis+ml-cryptography
So I'm looking for a minimum cost transformation with _only_ the
following characteristic:

Given a set of m input bits X, produce a set of n output bits Y such
that knowledge of some subset of X and Y gives a minimum knowledge of
the remainder (of Y if that makes it simple, but of X would be nice).

This is not unlike the "all-or-nothing" package transform proposed
by Rivest; the basic idea is that you have to know all of X in order
to know anything about Y - sort of.

My first iteration is as follows:

Let ^ represent xor.
Let p be the exclusive or of all bits of x (i.e. the parity).

Let Y = f(X), where f(x) = p ^ x

Basically, each bit of Y is the xor of every _other_ bit of x
(x was actually xored into p, so by xoring again, it cancels out)

However, my problem is that no matter how few bits of X you know, you
only have to guess one bit, p, in order to know the bits of Y that
correspond to the bits you know of X.

Let me be concrete; suppose that I know only bits 0 of X and bit
0 of Y.  I can then compute p, and from that I can use any further
knowledge of bits of X to compute corresponding bits of Y.

Note that p = x[0] ^ y[0].
Then if I know x[1], I can reveal y[1] = p ^ x[1].
And so forth.

Obviously I need something more complex.  The problem seems to be that
the equations for every bit y depend only on x and p; that is, if we
know x, we only have to guess p once for the whole array.

In a way, this reminds me of an idea I had earlier, whereby this
variable p is what I call a common subexpression, a key which unlocks
the equation, a sort of trapdoor.

Suppose I had written Y = f(X) as follows:

y[0] = x[1] ^ x[2] ^ x[3] ^ x[4]
y[1] = x[0] ^ x[2] ^ x[3] ^ x[4]
y[2] = x[0] ^ x[1] ^ x[3] ^ x[4]
...

A novice may have not have realized that each bit of y depends _only_
on x ^ p, and that knowing or guessing p would reveal every bit of Y
for each known bit of X, without having to know any other bit of X.

Now, what I sometimes wonder is whether the equations and tables in
things like DES or SHA-1 are not similar... a table allows for several
boolean logic representations, and depending on which you pick for
each output bit, it may be possible that a common subexpression like p
falls out of the equations, minimizing the amount of unknowns, or
the amount of compute power necessary to brute-force it.

For a Feistel cipher like DES, one might pick different boolean logic
representations in different rounds, to minimize the complexity of
the equations you get at the end.

This is why I don't try to design ciphers.  I could possibly come up
with some complicated-looking tables and equations, but I'd have no
assurance that a simple common subexpression did not exist.

Do I need to resort to a conventional hash like SHA-1?  I am not
convinced that it is necessary, or that I'd have any more assurance
from SHA-1 than I'd have with a randomly-generated set of equations.

Does it have to be random?  Isn't there a regular structure I could
exploit here?  It seems like there should be!

Randomly-generated equations remind me a bit of the following AI Koan:

In the days when Sussman was a novice, Minsky once came to him as he
sat hacking at the PDP-6.

"What are you doing?", asked Minsky.

"I am training a randomly wired neural net to play Tic-Tac-Toe",
Sussman replied.

"Why is the net wired randomly?", asked Minsky.

"I do not want it to have any preconceptions of how to play", Sussman
said.

Minsky then shut his eyes.

"Why do you close your eyes?", Sussman asked his teacher.

"So that the room will be empty."

At that moment, Sussman was enlightened.
-- 
http://www.subspacefield.org/~travis/> -><- dharma <>< advaita
For a good time on my UBE blacklist, email [EMAIL PROTECTED]


pgpdBhbOliHn7.pgp
Description: PGP signature