Tuesday, November 18, 2008

Hybrid cipher paper

A paper of mine just went up on http://eprint.iacr.org/ It has some ideas
that I hope are new, I think are good, and I know are unorthodox. I'm well
aware of the usual fate of such innovations, especially from amateurs.

If anyone would like a break from looking at new hashes, perhaps they
could have a look.

Number 2008/473
Title Exploring Cipherspace: Combining stream ciphers and block ciphers

Abstract:

This paper looks at the possibility of combining a block cipher and a stream
cipher to get a strong hybrid cipher. It includes two specific proposals for
combining AES-128 and RC4-128 to get a cipher that takes a 256-bit key
and is significantly faster than AES-256, and arguably more secure. One is
immune to algebraic attacks.

--
Sandy Harris,
Quanzhou, Fujian, China

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Monday, November 17, 2008

Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?

Scott,

This is not exactly right. Seagate supports Enterprise SSC on enterprise
class Cheetah drives. However, Momentus FDE.1 and FDE.2 are based on the
proprietary authentication scheme. I hope Seagate folks can clarify on
FDE.3.

The first laptop TCG Opal drive was demonstrated today by Fujitsu in San
Francisco and I would like to congratulate Fujitsu team for this great
achievement.

Dmitry


-----Original Message-----
From: fde-bounces@www.xml-dev.com [mailto:fde-bounces@www.xml-dev.com] On
Behalf Of Scott S
Sent: Monday, November 17, 2008 4:50 PM
To: fde@www.xml-dev.com
Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor
drive?

Robert,

My responses were just simplied/"easy to read" answers to your questions.
For full technical details, architecture schema of the security, you will
need to contact Seagate." I can tell you however, that Seagate's FDE drives
(like the one in Black Armor) is based on the trusted storage specs from the
Trusted Computing Group:
https://www.trustedcomputinggroup.org/specs/Storage/

Scott

On Mon, 17 Nov 2008, Robert Wann wrote:

> Scott,
>
> Thank you. Speaking of preserving AES key and SecurityID as well as other
vital information, I suspect it is the drive controller and its firmware
that controls the hidden sectors access, not the encryption/decryption ASIC,
for the reasons that the AES key and SecurityID won't get destroyed during
another round of partition and format.
>
>> From reading your remark, It seems to me that AES key is guarded by
either SecurityID or User's Password, which are all written into the hidden
sectors controlled by the drive firmware. Your remark "This is part of the
FDE "enclosed" construct. AES key is only known and used by the drive" does
not offer the complete security architecture of the FDE drive thus is not
persuasive.
>
> By the way, are you an employee or affiliate of Seagate?
>
> Thanks,
> Robert
>
>
>
> ----- Original Message -----
> From: "Scott S" <scott@u.washington.edu>
> To: <fde@www.xml-dev.com>
> Sent: Saturday, November 15, 2008 6:56 AM
> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor
drive?
>
>
>> Robert,
>>
>> See response below.
>>
>> Scott
>>
>>> If the true AES key is erased and a new AES key is generated upon
>>> 'KeyErase' command, would you require user to perform partition and
>>> format after such action?
>>
>> Yes, the user is require setup a new password and format the drive.
>>
>>> Also, since the Security ID is permanently stored inside the FDE
>>> drive, would such new partition and format effectively destroy the
>>> new AES key along with the Security ID?
>>
>> No. Formatting does not affect the AES key and Security ID at all. It
>> is in a area protected from any external i/o access. The ASIC chip on
>> the drive that is processing the automatic encryption/decryption
>> preserves these vital information (and other things) in a way that is
>> totally transparent to the user (and OS), once the user has
authenticated.
>>
>>> How would you guarantee that AES key is safe and can not be extracted?
>>
>> This is part of the FDE "enclosed" construct. AES key is only known
>> and used by the drive.
>>
>> --------------------
>>
>>
>>> ----- Original Message -----
>>> From: "Scott S" <scott@u.washington.edu>
>>> To: "Robert Wann" <rwann@enovatech.com>; <fde@www.xml-dev.com>
>>> Sent: Friday, November 14, 2008 6:49 AM
>>> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black
Armor drive?
>>>
>>>
>>>> Hi Robert,
>>>>
>>>> See response below.
>>>>
>>>> Scott
>>>>
>>>> On Thu, 13 Nov 2008, Robert Wann wrote:
>>>>
>>>>> Hi Scott,
>>>>>
>>>>> As the Security ID serves as a default password to unlock the FDE
drive inside the Black Armor, am I correct to assume that such unlock action
releases the true AES 128-bit key to allow the operation of the FDE drive?
>>>>
>>>> Correct.
>>>>
>>>>> If that's the case, do users require to partition and format the FDE
drive >after the default password entry?
>>>>
>>>> No, the password change does not affect the drive format given that the
password is not the AES key. FYI, from the factory the drive comes
partitioned and formatted as NTFS.
>>>>
>>>>> What happens to the AES key if user establishes a new password?
>>>>
>>>> Stays the same. The user is just changing the password that unlocks the
AES key.
>>>>
>>>>> Can user get to generate the AES key or it is a default value stored
protected >by the Security ID at default and later at new password entry?
>>>>
>>>> The management software that comes with Black Armor provides a
"KeyErase" feature. This feature is the same as a cryptographical erase (or
crypo-erase) of the drive. If you were to perform this action, what is
really happening is that the original AES key is destroyed, and a new AES
key generate by drive itself. The AES key is not visible/accessiable to
anyone/thing, except the drive itself. So yes, the user can generate it, but
the user will never get to see it.
>>>>
>>>>> When you said the Security ID is also needed when the Black Armor
>>>>> hard drive > needs to be cryptographically erased, exactly what do you
mean by "cryptographically erase?"
>>>>
>>>> By this I mean having the "effect" of erasing the drive so that all the
data is no longer accessiable.
>>>>
>>>>> Is it an action that erases the true AES key or is it an action that
erases the previously established user's password?
>>>>
>>>> It is both. When the user does a "KeyErase", few things happens: 1) a
new AES key is generated 2) the password is "defaulted" to the Security ID
3) the user is prompted to enter a new password. 4) the user is prompted to
format the drive.
>>>>
>>>>> You also said: After the erase, the default password again becomes the
Security ID. Does this mean the FDE drive permanently stores the Security
ID?
>>>>
>>>> Correct. The Security ID is permanent and does not change. Having said
that, it's function is very specific and does not affect the data security
itself. It severs more as an identification. For example, it prevents
mallicious programs from automatically performing a "KeyErase", because the
programs can't ID the drive.
>>>>
>>>>
>>>> -------------------------------
>>>>
>>>>>
>>>>> Thank you,
>>>>> Robert Wann
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Scott S" <scott@u.washington.edu>
>>>>> To: <fde@www.xml-dev.com>
>>>>> Sent: Thursday, November 13, 2008 3:27 AM
>>>>> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black
Armor drive?
>>>>>
>>>>>
>>>>>> Hi Dave,
>>>>>>
>>>>>> Security ID serves two functions:
>>>>>>
>>>>>> 1) It is the default password of the Black Armor. Like the way a user
needs the old password to change to a new password, the Security ID serves
as the old password.
>>>>>>
>>>>>> 2) The Security ID is also needed when the Black Armor hard drive
needs to be cryptographically erased (because the user wants to, or because
the user forgot the password). After the erase, the default password again
becomes the Security ID.
>>>>>>
>>>>>> One of the decision point of developing Black Armor was, what to do
when the user forgets the password. Should the drive become totally useless?
>>>>>>
>>>>>> The arguement for making it into a "brick" if the password is not
known is that is reduces the "steal value" of the device.
>>>>>>
>>>>>> For the Black Armor, if the password is not known, it can be reused.
But first the data needs to be wipeout.
>>>>>>
>>>>>> Scott
>>>>>>
>>>>>>
>>>>>> On Tue, 11 Nov 2008, Dave Jevans wrote:
>>>>>>
>>>>>>>
>>>>>>> I just setup a Seagate/Maxtor Black Armor hardware encrypted drive.
>>>>>>>
>>>>>>> When you setup the device, and before you choose your password,
>>>>>>> you have to enter in a 25 character "Security ID" which looks
>>>>>>> like a software license key, and is printed on the back of the
drive's case.
>>>>>>>
>>>>>>> Why would you have to do this? Since it's printed on the
>>>>>>> outside of the case, why doesn't the device already know this
>>>>>>> serial number internally, and why would it care?
>>>>>>>
>>>>>>> Initially my skeptical mind figured this is actually the AES
>>>>>>> key, or a back-door encryption key.
>>>>>>>
>>>>>>> But with more thought, I figured that perhaps it's because the
>>>>>>> device is manufactured in China, and it's a clone prevention
technique?
>>>>>>> Maybe the sticker is added to the device when they are packaged
>>>>>>> in the US, and the security ID number is needed to activate the
>>>>>>> encryption? This prevents a Chinese factory from creating clone
>>>>>>> devices using their controller?
>>>>>>>
>>>>>>> Anyone from Seagate on this list that can comment?
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> FDE mailing list
>>>>>>> FDE@www.xml-dev.com
>>>>>>> http://www.xml-dev.com/mailman/listinfo/fde
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> FDE mailing list
>>>>>> FDE@www.xml-dev.com
>>>>>> http://www.xml-dev.com/mailman/listinfo/fde
>>>>>>
>>>>
>>>>
>> _______________________________________________
>> FDE mailing list
>> FDE@www.xml-dev.com
>> http://www.xml-dev.com/mailman/listinfo/fde
>>
_______________________________________________
FDE mailing list
FDE@www.xml-dev.com
http://www.xml-dev.com/mailman/listinfo/fde

_______________________________________________
FDE mailing list
FDE@www.xml-dev.com
http://www.xml-dev.com/mailman/listinfo/fde

Re: [FDE] OT: Administration seeks dismissal of RFID 'Mark of the Beast' Lawsuit

"Ali, Saqib" writes:
-+------------------
| The Amish farmers claim (.pdf) Michigan regulations requiring them to
| use radio frequency identification devices on their cattle
| "constitutes some form of a 'mark of the beast' and/or represents an
| infringement of their 'dominion over cattle and all living things' in
| violation of their fundamental religious beliefs," according to the
| farmers' lawsuit filed in September in U.S. District Court for the
| District of Columbia.
| http://blog.wired.com/27bstroke6/2008/11/bush-administra.html


This is OT for this list, but I hope the Amish win
and win convincingly. The NAIS is nothing but the
kind of surveillance you don't want there even to
be a mechanism to accomplish married to an economic
model that says small producers are the enemy, proven
if no other way than that factory farms are exempt.

I am a farmer in what I prefer to call my real life
and I can go on about this for as long as you can
remain standing. Yes, I mean that as "You can
trust me or you can trust the Dept. of Agriculture
channeling for Homeland Security."

Dan Geer
http://www.nonais.org/

_______________________________________________
FDE mailing list
FDE@www.xml-dev.com
http://www.xml-dev.com/mailman/listinfo/fde

Re: Bitcoin P2P e-cash paper

Nicolas Williams wrote:
> How do identities help? It's supposed to be anonymous
> cash, right?

Actually no. It is however supposed to be pseudonymous,
so dinging someone's reputation still does not help
much.

> And say you identify a double spender after the fact,
> then what? Perhaps you're looking at a disposable ID.
> Or perhaps you can't chase them down.
>
> Double spend detection needs to be real-time or near
> real-time.

Near real time means we have to use UDP or equivalent,
rather than TCP or equivalent, and we have to establish
an approximate consensus, not necessarily the final
consensus, not necessarily exact agreement, but close to
it, in a reasonably small number of round trips.

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?

Robert,

My responses were just simplied/"easy to read" answers to your questions.
For full technical details, architecture schema of the security, you
will need to contact Seagate." I can tell you however, that Seagate's
FDE drives (like the one in Black Armor) is based on the trusted
storage specs from the Trusted Computing Group:
https://www.trustedcomputinggroup.org/specs/Storage/

Scott

On Mon, 17 Nov 2008, Robert Wann wrote:

> Scott,
>
> Thank you. Speaking of preserving AES key and SecurityID as well as other vital information, I suspect it is the drive controller and its firmware that controls the hidden sectors access, not the encryption/decryption ASIC, for the reasons that the AES key and SecurityID won't get destroyed during another round of partition and format.
>
>> From reading your remark, It seems to me that AES key is guarded by either SecurityID or User's Password, which are all written into the hidden sectors controlled by the drive firmware. Your remark "This is part of the FDE "enclosed" construct. AES key is only known and used by the drive" does not offer the complete security architecture of the FDE drive thus is not persuasive.
>
> By the way, are you an employee or affiliate of Seagate?
>
> Thanks,
> Robert
>
>
>
> ----- Original Message -----
> From: "Scott S" <scott@u.washington.edu>
> To: <fde@www.xml-dev.com>
> Sent: Saturday, November 15, 2008 6:56 AM
> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?
>
>
>> Robert,
>>
>> See response below.
>>
>> Scott
>>
>>> If the true AES key is erased and a new AES key is generated upon
>>> 'KeyErase' command, would you require user to perform partition and
>>> format after such action?
>>
>> Yes, the user is require setup a new password and format the drive.
>>
>>> Also, since the Security ID is permanently
>>> stored inside the FDE drive, would such new partition and format
>>> effectively destroy the new AES key along with the Security ID?
>>
>> No. Formatting does not affect the AES key and Security ID at all. It is
>> in a area protected from any external i/o access. The ASIC chip on the
>> drive that is processing the automatic encryption/decryption preserves
>> these vital information (and other things) in a way that is totally
>> transparent to the user (and OS), once the user has authenticated.
>>
>>> How would you guarantee that AES key is safe and can not be extracted?
>>
>> This is part of the FDE "enclosed" construct. AES key is only known and
>> used by the drive.
>>
>> --------------------
>>
>>
>>> ----- Original Message -----
>>> From: "Scott S" <scott@u.washington.edu>
>>> To: "Robert Wann" <rwann@enovatech.com>; <fde@www.xml-dev.com>
>>> Sent: Friday, November 14, 2008 6:49 AM
>>> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?
>>>
>>>
>>>> Hi Robert,
>>>>
>>>> See response below.
>>>>
>>>> Scott
>>>>
>>>> On Thu, 13 Nov 2008, Robert Wann wrote:
>>>>
>>>>> Hi Scott,
>>>>>
>>>>> As the Security ID serves as a default password to unlock the FDE drive inside the Black Armor, am I correct to assume that such unlock action releases the true AES 128-bit key to allow the operation of the FDE drive?
>>>>
>>>> Correct.
>>>>
>>>>> If that's the case, do users require to partition and format the FDE drive >after the default password entry?
>>>>
>>>> No, the password change does not affect the drive format given that the password is not the AES key. FYI, from the factory the drive comes partitioned and formatted as NTFS.
>>>>
>>>>> What happens to the AES key if user establishes a new password?
>>>>
>>>> Stays the same. The user is just changing the password that unlocks the AES key.
>>>>
>>>>> Can user get to generate the AES key or it is a default value stored protected >by the Security ID at default and later at new password entry?
>>>>
>>>> The management software that comes with Black Armor provides a "KeyErase" feature. This feature is the same as a cryptographical erase (or crypo-erase) of the drive. If you were to perform this action, what is really happening is that the original AES key is destroyed, and a new AES key generate by drive itself. The AES key is not visible/accessiable to anyone/thing, except the drive itself. So yes, the user can generate it, but the user will never get to see it.
>>>>
>>>>> When you said the Security ID is also needed when the Black Armor hard drive > needs to be cryptographically erased, exactly what do you mean
>>>>> by "cryptographically erase?"
>>>>
>>>> By this I mean having the "effect" of erasing the drive so that all the data is no longer accessiable.
>>>>
>>>>> Is it an action that erases the true AES key or is it an action that erases the previously established user's password?
>>>>
>>>> It is both. When the user does a "KeyErase", few things happens: 1) a new AES key is generated 2) the password is "defaulted" to the Security ID 3) the user is prompted to enter a new password. 4) the user is prompted to format the drive.
>>>>
>>>>> You also said: After the erase, the default password again becomes the Security ID. Does this mean the FDE drive permanently stores the Security ID?
>>>>
>>>> Correct. The Security ID is permanent and does not change. Having said that, it's function is very specific and does not affect the data security itself. It severs more as an identification. For example, it prevents mallicious programs from automatically performing a "KeyErase", because the programs can't ID the drive.
>>>>
>>>>
>>>> -------------------------------
>>>>
>>>>>
>>>>> Thank you,
>>>>> Robert Wann
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Scott S" <scott@u.washington.edu>
>>>>> To: <fde@www.xml-dev.com>
>>>>> Sent: Thursday, November 13, 2008 3:27 AM
>>>>> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?
>>>>>
>>>>>
>>>>>> Hi Dave,
>>>>>>
>>>>>> Security ID serves two functions:
>>>>>>
>>>>>> 1) It is the default password of the Black Armor. Like the way a user needs the old password to change to a new password, the Security ID serves as the old password.
>>>>>>
>>>>>> 2) The Security ID is also needed when the Black Armor hard drive needs to be cryptographically erased (because the user wants to, or because the user forgot the password). After the erase, the default password again becomes the Security ID.
>>>>>>
>>>>>> One of the decision point of developing Black Armor was, what to do when the user forgets the password. Should the drive become totally useless?
>>>>>>
>>>>>> The arguement for making it into a "brick" if the password is not known is that is reduces the "steal value" of the device.
>>>>>>
>>>>>> For the Black Armor, if the password is not known, it can be reused. But first the data needs to be wipeout.
>>>>>>
>>>>>> Scott
>>>>>>
>>>>>>
>>>>>> On Tue, 11 Nov 2008, Dave Jevans wrote:
>>>>>>
>>>>>>>
>>>>>>> I just setup a Seagate/Maxtor Black Armor hardware encrypted drive.
>>>>>>>
>>>>>>> When you setup the device, and before you choose your password, you
>>>>>>> have to enter in a 25 character "Security ID" which looks like a
>>>>>>> software license key, and is printed on the back of the drive's case.
>>>>>>>
>>>>>>> Why would you have to do this? Since it's printed on the outside of
>>>>>>> the case, why doesn't the device already know this serial number
>>>>>>> internally, and why would it care?
>>>>>>>
>>>>>>> Initially my skeptical mind figured this is actually the AES key, or
>>>>>>> a back-door encryption key.
>>>>>>>
>>>>>>> But with more thought, I figured that perhaps it's because the device
>>>>>>> is manufactured in China, and it's a clone prevention technique?
>>>>>>> Maybe the sticker is added to the device when they are packaged in
>>>>>>> the US, and the security ID number is needed to activate the
>>>>>>> encryption? This prevents a Chinese factory from creating clone
>>>>>>> devices using their controller?
>>>>>>>
>>>>>>> Anyone from Seagate on this list that can comment?
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> FDE mailing list
>>>>>>> FDE@www.xml-dev.com
>>>>>>> http://www.xml-dev.com/mailman/listinfo/fde
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> FDE mailing list
>>>>>> FDE@www.xml-dev.com
>>>>>> http://www.xml-dev.com/mailman/listinfo/fde
>>>>>>
>>>>
>>>>
>> _______________________________________________
>> FDE mailing list
>> FDE@www.xml-dev.com
>> http://www.xml-dev.com/mailman/listinfo/fde
>>
_______________________________________________
FDE mailing list
FDE@www.xml-dev.com
http://www.xml-dev.com/mailman/listinfo/fde

Re: Bitcoin P2P e-cash paper

Ray Dillinger wrote:
> Okay.... I'm going to summarize this protocol as I
> understand it.
>
> I'm filling in some operational details that aren't in
> the paper by supplementing what you wrote with what my
> own "design sense" tells me are critical missing bits
> or "obvious" methodologies for use.

There are a number of significantly different ways this
could be implemented. I have been working on my own
version based on Patricia hash trees, (not yet ready to
post, will post in a week or so) with the consensus
generation being a generalization of file sharing using
Merkle hash trees. Patricia hash trees where the high
order part of the Patricia key represents the high order
part of the time can be used to share data that evolves
in time. The algorithm, if implemented by honest
correctly functioning peers, regularly generates
consensus hashes of the recent past - thereby addressing
the problem I have been complaining about - that we have
a mechanism to protect against consensus distortion by
dishonest or malfunctioning peers, which is useless
absent a definition of consensus generation by honest
and correctly functioning peers.

> First, people spend computer power creating a pool of
> coins to use as money. Each coin is a proof-of-work
> meeting whatever criteria were in effect for money at
> the time it was created. The time of creation (and
> therefore the criteria) is checkable later because
> people can see the emergence of this particular coin
> in the transaction chain and track it through all its
> "consensus view" spends. (more later on coin creation
> tied to adding a link).
>
> When a coin is spent, the buyer and seller digitally
> sign a (blinded) transaction record, and broadcast it
> to a bunch of nodes whose purpose is keeping track of
> consensus regarding coin ownership.

I don't think your blinding works.

If there is a public record of who owns what coin, we
have to generate a public diff on changes in that
record, so the record will show that a coin belonged to
X, and soon thereafter belonged to Y. I don't think
blinding can be made to work. We can blind the
transaction details easily enough, by only making hashes
of the details public, (X paid Y for
49vR7xmwYcKXt9zwPJ943h9bHKC2pG68m) but that X paid Y is
going to be fairly obvious.

If when Joe spends a coin to me, then I have to have the
ability to ask "Does Joe rightfully own this coin", then
it is difficult to see how this can be implemented in a
distributed protocol without giving people the ability
to trawl through data detecting that Joe paid me.

To maintain a consensus on who owns what coins, who owns
what coins has to be public.

We can build a privacy layer on top of this - account
money and chaumian money based on bitgold coins, much as
the pre 1915 US banking system layered account money and
bank notes on top of gold coins, and indeed we have to
build a layer on top to bring the transaction cost down
to the level that supports agents performing micro
transactions, as needed for bandwidth control, file
sharing, and charging non white listed people to send us
communications.

So the entities on the public record are entities
functioning like pre 1915 banks - let us call them
binks, for post 1934 banks no longer function like that.

> But if they recieve a _longer_ chain while working,
> they immediately check all the transactions in the new
> links to make sure it contains no double spends and
> that the "work factors" of all new links are
> appropriate.

I am troubled that this involves frequent
retransmissions of data that is already mostly known.
Consensus and widely distributed beliefs about bitgold
ownership already involves significant cost. Further,
each transmission of data is subject to data loss, which
can result in thrashing, with the risk that the
generation of consensus may slow below the rate of new
transactions. We already have problems getting the cost
down to levels that support micro transactions by
software agents, which is the big unserved market -
bandwidth control, file sharing, and charging non white
listed people to send us communications.

To work as useful project, has to be as efficient as it
can be - hence my plan to use a Patricia hash tree
because it identifies and locate small discrepancies
between peers that are mostly in agreement already,
without them needing to transmit their complete data.

We also want to avoid very long hash chains that have to
be frequently checked in order to validate things. Any
time a hash chain can potentially become enormously long
over time, we need to ensure that no one ever has to
rewalk the full length. Chains that need to be
re-walked can only be permitted to grow as the log of
the total number of transactions - if they grow as the
log of the transactions in any one time period plus the
total number of time periods, we have a problem.

> Biggest Technical Problem:
>
> Is there a mechanism to make sure that the "chain"
> does not consist solely of links added by just the 3
> or 4 fastest nodes? 'Cause a broadcast transaction
> record could easily miss those 3 or 4 nodes and if it
> does, and those nodes continue to dominate the chain,
> the transaction might never get added.
>
> To remedy this, you need to either ensure provable
> propagation of transactions, or vary the work factor
> for a node depending on how many links have been added
> since that node's most recent link.
>
> Unfortunately, both measures can be defeated by sock
> puppets. This is probably the worst problem with your
> protocol as it stands right now; you need some central
> point to control the identities (keys) of the nodes
> and prevent people from making new sock puppets.

We need a protocol wherein to be a money tracking peer
(an entity that validates spends) you have to be
accepted by at least two existing peers who agree to
synchronize data with you - presumably through human
intervention by the owners of existing peers, and these
two human approved synchronization paths indirectly
connect you to the other peers in the network through
at least one graph cycle.

If peer X is only connected to the rest of the network
by one existing peer, peer Y, perhaps because X's
directly connecting peer has dropped out, then X is
demoted to a client, not a peer - any transactions X
submits are relabeled by Y as submitted to Y, not X, and
the time of submission (which forms part of the Patricia
key) is the time X submitted them to Y, not the time
they were submitted to X.

The algorithm must be able swiftly detect malfunctioning
peers, and automatically exclude them from the consensus
temporarily - which means that transactions submitted
through malfunctioning peers do not get included in the
consensus, therefore have to be resubmitted, and peers
may find themselves temporarily demoted to clients,
because one of the peers through which they were
formerly connected to the network has been dropped by
the consensus.

If a peer gets a lot of automatic temporary exclusions,
there may be human intervention by the owners of those
peers to which it exchanges data directly to permanently
drop them.

Since peers get accepted by human invite, they have
reputation to lose, therefore we can make the null
hypothesis (the primary Bayesian prior) honest intent,
valid data, but unreliable data transmission - trust
with infrequent random verification. Designing the
system on this basis considerably reduces processing
costs.

Recall that SET died on its ass in large part because
every transaction involved innumerable public key
operations. Similarly, we have huge security flaws in
https because it has so many redundant public key
operations that web site designers try to minimize the
use of https to cover only those areas that truly need
it - and they always get the decision as to what truly
needs it subtly wrong.

Efficiency is critical, particularly as the part of the
market not yet served is the market for very low cost
transactions.

> If we solve the sock-puppet issue, or accept that
> there's a central point controlling the generation of
> new keys,

A central point will invite attack, will be attacked.

The problem with computer networked money is that the
past can so easily be revised, so nodes come under
pressure to adjust the past - "I did not pay that"
swiftly becomes "I should not have paid that", which
requires arbitration, which is costly, and introduces
uncertainty, which is costly, and invites government
regulation, which is apt to be utterly ruinous and
wholly devastating.

For many purposes, reversal and arbitration is highly
desirable, but there is no way anyone can compete with
the arbitration provided by Visa and Mastercard, for
they have network effects on their side, and they do a
really good job of arbitration, at which they have vast
experience, accumulated skills, wisdom, and good repute.
So any new networked transaction system has to target
the demand for final and irreversible transactions.

The idea of a distributed network consensus is that one
has a lot of peers in a lot of jurisdictions, and once a
transaction has entered into the consensus, undoing it
is damn near impossible - one would have to pressure
most of the peers in most of the jurisdictions to agree,
and many of them don't even talk your language, and
those that do, will probably pretend that they do not.
So people will not even try.

To avoid pressure, the network has to avoid any central
point at which pressure can be applied. Recall Nero's
wish that Rome had a single throat that he could cut. If
we provide them with such a throat, it will be cut.

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

[FDE] OT: Administration seeks dismissal of RFID 'Mark of the Beast' Lawsuit

The Amish farmers claim (.pdf) Michigan regulations requiring them to
use radio frequency identification devices on their cattle
"constitutes some form of a 'mark of the beast' and/or represents an
infringement of their 'dominion over cattle and all living things' in
violation of their fundamental religious beliefs," according to the
farmers' lawsuit filed in September in U.S. District Court for the
District of Columbia.
http://blog.wired.com/27bstroke6/2008/11/bush-administra.html
_______________________________________________
FDE mailing list
FDE@www.xml-dev.com
http://www.xml-dev.com/mailman/listinfo/fde

Re: Bitcoin P2P e-cash paper

On Fri, Nov 14, 2008 at 11:04:21PM -0800, Ray Dillinger wrote:
> On Sat, 2008-11-15 at 12:43 +0800, Satoshi Nakamoto wrote:
> > > If someone double spends, then the transaction record
> > > can be unblinded revealing the identity of the cheater.
> >
> > Identities are not used, and there's no reliance on recourse. It's all prevention.
>
> Okay, that's surprising. If you're not using buyer/seller
> identities, then you are not checking that a spend is being made
> by someone who actually is the owner of (on record as having
> recieved) the coin being spent.

How do identities help? It's supposed to be anonymous cash, right? And
say you identify a double spender after the fact, then what? Perhaps
you're looking at a disposable ID. Or perhaps you can't chase them
down.

Double spend detection needs to be real-time or near real-time.

Nico
--

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

ADMIN: end of bitcoin discussion for now

I'd like to call an end to the bitcoin e-cash discussion for now -- a
lot of discussion is happening that would be better accomplished by
people writing papers at the moment rather than rehashing things back
and forth. Maybe later on when Satoshi (or someone else) writes
something detailed up and posts it we could have another round of this.

Perry
--
Perry E. Metzger perry@piermont.com

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Re: Bitcoin P2P e-cash paper

James A. Donald wrote:
> > Fortunately, it's only necessary to keep a
> > pending-transaction pool for the current best branch.
>
> This requires that we know, that is to say an honest
> well behaved peer whose communications and data storage
> is working well knows, what the current best branch is -

I mean a node only needs the pending-tx pool for the best branch it
has. The branch that it currently thinks is the best branch.
That's the branch it'll be trying to make a block out of, which is
all it needs the pool for.


> > Broadcasts will probably be almost completely
> > reliable.
>
> Rather than assuming that each message arrives at least
> once, we have to make a mechanism such that the
> information arrives even though conveyed by messages
> that frequently fail to arrive.

I think I've got the peer networking broadcast mechanism covered.

Each node sends its neighbours an inventory list of hashes of the
new blocks and transactions it has. The neighbours request the
items they don't have yet. If the item never comes through after a
timeout, they request it from another neighbour that had it. Since
all or most of the neighbours should eventually have each item,
even if the coms get fumbled up with one, they can get it from any
of the others, trying one at a time.

The inventory-request-data scheme introduces a little latency, but
it ultimately helps speed more by keeping extra data blocks off the
transmit queues and conserving bandwidth.


> You have an outline
> and proposal for such a design, which is a big step
> forward, but the devil is in the little details.

I believe I've worked through all those little details over the
last year and a half while coding it, and there were a lot of them.
The functional details are not covered in the paper, but the
sourcecode is coming soon. I sent you the main files.
(available by request at the moment, full release soon)

Satoshi Nakamoto


---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Sunday, November 16, 2008

Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?

Scott,
 
Thank you. Speaking of preserving AES key and SecurityID as well as other vital information, I suspect it is the drive controller and its firmware that controls the hidden sectors access, not the encryption/decryption ASIC, for the reasons that the AES key and SecurityID won't get destroyed during another round of partition and format.
 
From reading your remark, It seems to me that AES key is guarded by either SecurityID or User's Password, which are all written into the hidden sectors controlled by the drive firmware. Your remark "This is part of the FDE "enclosed" construct. AES key is only known and used by the drive" does not offer the complete security architecture of the FDE drive thus is not persuasive.
By the way, are you an employee or affiliate of Seagate?
 
Thanks,
Robert

 
----- Original Message -----
From: "Scott S" <scott@u.washington.edu>
Sent: Saturday, November 15, 2008 6:56 AM
Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?

> Robert,
>
> See response below.
>
> Scott
>
>> If the true AES key is erased and a new AES key is generated upon
>> 'KeyErase' command, would you require user to perform partition and
>> format after such action?
>
> Yes, the user is require setup a new password and format the drive.
>
>> Also, since the Security ID is permanently
>> stored inside the FDE drive, would such new partition and format
>> effectively destroy the new AES key along with the Security ID?
>
> No. Formatting does not affect the AES key and Security ID at all. It is
> in a area protected from any external i/o access. The ASIC chip on the
> drive that is processing the automatic encryption/decryption preserves
> these vital information (and other things) in a way that is totally
> transparent to the user (and OS), once the user has authenticated.
>
>> How would you guarantee that AES key is safe and can not be extracted?
>
> This is part of the FDE "enclosed" construct. AES key is only known and
> used by the drive.
>
> --------------------
>
>
>> ----- Original Message -----
>> From: "Scott S" <
scott@u.washington.edu>
>> To: "Robert Wann" <
rwann@enovatech.com>; <fde@www.xml-dev.com>
>> Sent: Friday, November 14, 2008 6:49 AM
>> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?
>>
>>
>>> Hi Robert,
>>>
>>> See response below.
>>>
>>> Scott
>>>
>>> On Thu, 13 Nov 2008, Robert Wann wrote:
>>>
>>>> Hi Scott,
>>>>
>>>> As the Security ID serves as a default password to unlock the FDE drive inside the Black Armor, am I correct to assume that such unlock action releases the true AES 128-bit key to allow the operation of the FDE drive?
>>>
>>> Correct.
>>>
>>>> If that's the case, do users require to partition and format the FDE drive >after the default password entry?
>>>
>>> No, the password change does not affect the drive format given that the password is not the AES key. FYI, from the factory the drive comes partitioned and formatted as NTFS.
>>>
>>>> What happens to the AES key if user establishes a new password?
>>>
>>> Stays the same. The user is just changing the password that unlocks the AES key.
>>>
>>>> Can user get to generate the AES key or it is a default value stored protected >by the Security ID at default and later at new password entry?
>>>
>>> The management software that comes with Black Armor provides a "KeyErase" feature. This feature is the same as a cryptographical erase (or crypo-erase) of the drive. If you were to perform this action, what is really happening is that the original AES key is destroyed, and a new AES key generate by drive itself. The AES key is not visible/accessiable to anyone/thing, except the drive itself. So yes, the user can generate it, but the user will never get to see it.
>>>
>>>> When you said the Security ID is also needed when the Black Armor hard drive > needs to be cryptographically erased, exactly what do you mean
>>>> by "cryptographically erase?"
>>>
>>> By this I mean having the "effect" of erasing the drive so that all the data is no longer accessiable.
>>>
>>>> Is it an action that erases the true AES key or is it an action that erases the previously established user's password?
>>>
>>> It is both. When the user does a "KeyErase", few things happens: 1) a new AES key is generated 2) the password is "defaulted" to the Security ID 3) the user is prompted to enter a new password. 4) the user is prompted to format the drive.
>>>
>>>> You also said: After the erase, the default password again becomes the Security ID. Does this mean the FDE drive permanently stores the Security ID?
>>>
>>> Correct. The Security ID is permanent and does not change. Having said that, it's function is very specific and does not affect the data security itself. It severs more as an identification. For example, it prevents mallicious programs from automatically performing a "KeyErase", because the programs can't ID the drive.
>>>
>>>
>>> -------------------------------
>>>
>>>>
>>>> Thank you,
>>>> Robert Wann
>>>>
>>>>
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: "Scott S" <
scott@u.washington.edu>
>>>> To: <
fde@www.xml-dev.com>
>>>> Sent: Thursday, November 13, 2008 3:27 AM
>>>> Subject: Re: [FDE] What is the Security ID on a Seagate Maxtor Black Armor drive?
>>>>
>>>>
>>>>> Hi Dave,
>>>>>
>>>>> Security ID serves two functions:
>>>>>
>>>>> 1) It is the default password of the Black Armor. Like the way a user needs the old password to change to a new password, the Security ID serves as the old password.
>>>>>
>>>>> 2) The Security ID is also needed when the Black Armor hard drive needs to be cryptographically erased (because the user wants to, or because the user forgot the password). After the erase, the default password again becomes the Security ID.
>>>>>
>>>>> One of the decision point of developing Black Armor was, what to do when the user forgets the password. Should the drive become totally useless?
>>>>>
>>>>> The arguement for making it into a "brick" if the password is not known is that is reduces the "steal value" of the device.
>>>>>
>>>>> For the Black Armor, if the password is not known, it can be reused. But first the data needs to be wipeout.
>>>>>
>>>>> Scott
>>>>>
>>>>>
>>>>> On Tue, 11 Nov 2008, Dave Jevans wrote:
>>>>>
>>>>>>
>>>>>> I just setup a Seagate/Maxtor Black Armor hardware encrypted drive.
>>>>>>
>>>>>> When you setup the device, and before you choose your password, you
>>>>>> have to enter in a 25 character "Security ID" which looks like a
>>>>>> software license key, and is printed on the back of the drive's case.
>>>>>>
>>>>>> Why would you have to do this?  Since it's printed on the outside of
>>>>>> the case, why doesn't the device already know this serial number
>>>>>> internally, and why would it care?
>>>>>>
>>>>>> Initially my skeptical mind figured this is actually the AES key, or
>>>>>> a back-door encryption key.
>>>>>>
>>>>>> But with more thought, I figured that perhaps it's because the device
>>>>>> is manufactured in China, and it's a clone prevention technique?
>>>>>> Maybe the sticker is added to the device when they are packaged in
>>>>>> the US, and the security ID number is needed to activate the
>>>>>> encryption?  This prevents a Chinese factory from creating clone
>>>>>> devices using their controller?
>>>>>>
>>>>>> Anyone from Seagate on this list that can comment?
>>>>>>
>>>>>> _______________________________________________
>>>>>> FDE mailing list
>>>>>>
FDE@www.xml-dev.com
>>>>>> http://www.xml-dev.com/mailman/listinfo/fde
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> FDE mailing list
>>>>>
FDE@www.xml-dev.com
>>>>> http://www.xml-dev.com/mailman/listinfo/fde
>>>>>
>>>
>>>
> _______________________________________________
> FDE mailing list
>
FDE@www.xml-dev.com
> http://www.xml-dev.com/mailman/listinfo/fde
>

RE: unintended?

[Moderator's note: Top posting is considered untasteful. --Perry]

It doesn't need to be malicious. It depends on the situation.

For example, lots of corporations do SSL session inspection using
products like Bluecoat. The Bluecoat does a MiTM attack to expose the
plaintext for analysis, and expects that corporate users trust the
certificate it provides (and have pushed it out to all corporate
browsers). If you've just loaded Firefox, it won't have that "trusted"
cert loaded by default, and you'll see exactly the below.

Ian.

-----Original Message-----
From: owner-cryptography@metzdowd.com
[mailto:owner-cryptography@metzdowd.com] On Behalf Of Chad Perrin
Sent: Saturday, November 15, 2008 8:29 AM
To: cryptography@metzdowd.com
Subject: Re: unintended?

On Fri, Nov 14, 2008 at 01:26:29PM +0000, bmanning@vacation.karoshi.com
wrote:
> (snicker) from the local firefox
> ....
>
> en-us.add-ons.mozilla.com:443 uses an invalid security certificate.
>
> The certificate is not trusted because the issuer certificate is not
trusted.
>
> (Error code: sec_error_untrusted_issuer)

What does Perspectives have to say?

What installation of Firefox did you use?

I don't have that problem when I visit:
https://addons.mozilla.org/en-US/firefox/

Do you perhaps have some kind of malicious redirection going on there?

--
Chad Perrin [ content licensed PDL: http://pdl.apotheon.org ]
John Kenneth Galbraith: "If all else fails, immortality can always be
assured through spectacular error."

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

[FDE] MacBooks & FDE

A question was asked over on StorageEffect.com if the FDE drive (aka SED for Self Encrypting Drive) can be installed into a MacBook Pro.  Does anyone know the answer?
 

What are the system requirements for these drives? Can I slap one into my MacBook Pro? Or is it BIOS and Windows only? Or perhaps it needs a special BIOS?

Saturday, November 15, 2008

Re: Bitcoin P2P e-cash paper

Satoshi Nakamoto wrote:
> Fortunately, it's only necessary to keep a
> pending-transaction pool for the current best branch.

This requires that we know, that is to say an honest
well behaved peer whose communications and data storage
is working well knows, what the current best branch is -
but of course, the problem is that we are trying to
discover, trying to converge upon, a best branch, which
is not easy at the best of times, and becomes harder
when another peer is lying about its connectivity and
capabilities, and yet another peer has just had a major
disk drive failure obfuscated by a software crash, and
the international fibers connecting yet a third peer
have been attacked by terrorists.

> When a new block arrives for the best branch,
> ConnectBlock removes the block's transactions from
> the pending-tx pool. If a different branch becomes
> longer

Which presupposes the branches exist, that they are
fully specified and complete. If they exist as complete
works, rather than works in progress, then the problem
is already solved, for the problem is making progress.

> Broadcasts will probably be almost completely
> reliable.

There is a trade off between timeliness and reliability.
One can make a broadcast arbitrarily reliable if time is
of no consequence. However, when one is talking of
distributed data, time is always of consequence, because
it is all about synchronization (that peers need to have
corresponding views at corresponding times) so when one
does distributed data processing, broadcasts are always
highly unreliable Attempts to ensure that each
message arrives at least once result in increased timing
variation. Thus one has to make a protocol that is
either UDP or somewhat UDP like, in that messages are
small, failure of messages to arrive is common, messages
can arrive in different order to the order in which they
were sent, and the same message may arrive multiple
times. Either we have UDP, or we need to accommodate
the same problems as UDP has on top of TCP connections.

Rather than assuming that each message arrives at least
once, we have to make a mechanism such that the
information arrives even though conveyed by messages
that frequently fail to arrive.

> TCP transmissions are rarely ever dropped these days

People always load connections near maximum. When a
connection is near maximum, TCP connections suffer
frequent unreasonably long delays, and connections
simply fail a lot - your favorite web cartoon somehow
shows it is loading forever, and you try again, or it
comes up with a little x in place of a picture, and you
try again

Further very long connections - for example ftp
downloads of huge files, seldom complete. If you try to
ftp a movie, you are unlikely to get anywhere unless
both client and server have a resume mechanism so that
they can talk about partially downloaded files.

UDP connections, for example Skype video calls, also
suffer frequent picture freezes, loss of quality, and so
forth, and have to have mechanisms to keep going
regardless.

> It's very attractive to the libertarian viewpoint if
> we can explain it properly. I'm better with code than
> with words though.

No, it is very attractive to the libertarian if we can
design a mechanism that will scale to the point of
providing the benefits of rapidly irreversible payment,
immune to political interference, over the internet,
to very large numbers of people. You have an outline
and proposal for such a design, which is a big step
forward, but the devil is in the little details.

I really should provide a fleshed out version of your
proposal, rather than nagging you to fill out the blind
spots.

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Re: Bitcoin P2P e-cash paper

Ray Dillinger wrote:
> One way to do this would be
> to have the person recieving the coin generate an asymmetric
> key pair, and then have half of it published with the
> transaction. In order to spend the coin later, s/he must
> demonstrate posession of the other half of the asymmetric
> key pair, probably by using it to sign the key provided by
> the new seller.

Right, it's ECC digital signatures. A new key pair is used for every
transaction.

It's not pseudonymous in the sense of nyms identifying people, but it
is at least a little pseudonymous in that the next action on a coin
can be identified as being from the owner of that coin.


> Mmmm. I don't know if I'm comfortable with that. You're saying
> there's no effort to identify and exclude nodes that don't
> cooperate? I suspect this will lead to trouble and possible DOS
> attacks.

There is no reliance on identifying anyone. As you've said, it's
futile and can be trivially defeated with sock puppets.

The credential that establishes someone as real is the ability to
supply CPU power.


> Until.... until what? How does anybody know when a transaction
> has become irrevocable? Is "a few" blocks three? Thirty? A
> hundred? Does it depend on the number of nodes? Is it logarithmic
> or linear in number of nodes?

Section 11 calculates the worst case under attack. Typically, 5 or
10 blocks is enough for that. If you're selling something that
doesn't merit a network-scale attack to steal it, in practice you
could cut it closer.


> But in the absence of identity, there's no downside to them
> if spends become invalid, if they've already received the
> goods they double-spent for (access to website, download,
> whatever). The merchants are left holding the bag with
> "invalid" coins, unless they wait that magical "few blocks"
> (and how can they know how many?) before treating the spender
> as having paid.
>
> The consumers won't do this if they spend their coin and it takes
> an hour to clear before they can do what they spent their coin on.
> The merchants won't do it if there's no way to charge back a
> customer when they find the that their coin is invalid because
> the customer has doublespent.

This is a version 2 problem that I believe can be solved fairly
satisfactorily for most applications.

The race is to spread your transaction on the network first. Think 6
degrees of freedom -- it spreads exponentially. It would only take
something like 2 minutes for a transaction to spread widely enough
that a competitor starting late would have little chance of grabbing
very many nodes before the first one is overtaking the whole network.
During those 2 minutes, the merchant's nodes can be watching for a
double-spent transaction. The double-spender would not be able to
blast his alternate transaction out to the world without the merchant
getting it, so he has to wait before starting.

If the real transaction reaches 90% and the double-spent tx reaches
10%, the double-spender only gets a 10% chance of not paying, and 90%
chance his money gets spent. For almost any type of goods, that's
not going to be worth it for the scammer.

Information based goods like access to website or downloads are
non-fencible. Nobody is going to be able to make a living off
stealing access to websites or downloads. They can go to the file
sharing networks to steal that. Most instant-access products aren't
going to have a huge incentive to steal.

If a merchant actually has a problem with theft, they can make the
customer wait 2 minutes, or wait for something in e-mail, which many
already do. If they really want to optimize, and it's a large
download, they could cancel the download in the middle if the
transaction comes back double-spent. If it's website access,
typically it wouldn't be a big deal to let the customer have access
for 5 minutes and then cut off access if it's rejected. Many such
sites have a free trial anyway.

Satoshi Nakamoto


---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Friday, November 14, 2008

Re: Bitcoin P2P e-cash paper

On Sat, 2008-11-15 at 12:43 +0800, Satoshi Nakamoto wrote:

> I'll try and hurry up and release the sourcecode as soon as possible
> to serve as a reference to help clear up all these implementation
> questions.

> Ray Dillinger (Bear) wrote:
> > When a coin is spent, the buyer and seller digitally sign a (blinded)
> > transaction record.
>
> Only the buyer signs, and there's no blinding.
>
>
> > If someone double spends, then the transaction record
> > can be unblinded revealing the identity of the cheater.
>
> Identities are not used, and there's no reliance on recourse. It's all prevention.

Okay, that's surprising. If you're not using buyer/seller
identities, then you are not checking that a spend is being made
by someone who actually is the owner of (on record as having
recieved) the coin being spent.

There are three categories of identity that are useful to
think about. Category one: public. Real-world identities
are a matter of record and attached to every transaction.
Category two: Pseudonymous. There are persistent "identities"
within the system and people can see if something was done by
the same nym that did something else, but there's not necessarily
any way of linking the nyms with real-world identities. Category
three: unlinkably anonymous. There is no concept of identity,
persistent or otherwise. No one can say or prove whether the
agents involved in any transaction are the same agents as involved
in any other transaction.

Are you claiming category 3 as you seem to be, or category 2?
Lots of people don't distinguish between anonymous and
pseudonymous protocols, so it's worth asking exactly what
you mean here.

Anyway: I'll proceed on the assumption that you meant very
nearly (as nearly as I can imagine, anyway) what you said,
unlinkably anonymous. That means that instead of an "identity",
a spender has to demonstrate knowledge of a secret known only
to the real owner of the coin. One way to do this would be
to have the person recieving the coin generate an asymmetric
key pair, and then have half of it published with the
transaction. In order to spend the coin later, s/he must
demonstrate posession of the other half of the asymmetric
key pair, probably by using it to sign the key provided by
the new seller. So we cannot prove anything about "identity",
but we can prove that the spender of the coin is someone who
knows a secret that the person who recieved the coin knows.

And what you say next seems to confirm this:

> No challenges or secret shares. A basic transaction is just
> what you see in the figure in section 2. A signature (of the
> buyer) satisfying the public key of the previous transaction,
> and a new public key (of the seller) that must be satisfied to
> spend it the next time.


Note, even though this doesn't involve identity per se, it still
makes the agent doing the spend linkable to the agent who
earlier recieved the coin, so these transactions are linkable.
In order to counteract this, the owner of the coin needs to
make a transaction, indistinguishable to others from any
normal transaction, in which he creates a new key pair and
transfers the coin to its posessor (ie, has one sock puppet
"spend" it to another). No change in real-world identity of
the owner, but the transaction "linkable" to the agent who spent
the coin is unlinked. For category-three unlinkability, this
has to be done a random number of times - maybe one to six
times?


BTW, could you please learn to use carriage returns?? Your
lines are scrolling stupidly off to the right and I have to
scroll to see what the heck you're saying, then edit to add
carriage returns before I respond.


> > If it contains a double spend, then they create a "transaction"
> > which is a proof of double spending, add it to their pool A,
> > broadcast it, and continue work.

> There's no need for reporting of "proof of double spending" like
> that. If the same chain contains both spends, then the block is
> invalid and rejected.

> Same if a block didn't have enough proof-of-work. That block is
> invalid and rejected. There's no need to circulate a report
> about it. Every node could see that and reject it before relaying it.

Mmmm. I don't know if I'm comfortable with that. You're saying
there's no effort to identify and exclude nodes that don't
cooperate? I suspect this will lead to trouble and possible DOS
attacks.

> If there are two competing chains, each containing a different
> version of the same transaction, with one trying to give money
> to one person and the other trying to give the same money to
> someone else, resolving which of the spends is valid is what
> the whole proof-of-work chain is about.

Okay, when you say "same" transaction, and you're talking about
transactions that are obviously different, you mean a double
spend, right? Two transactions signed with the same key?

> We're not "on the lookout" for double spends to sound the alarm
> and catch the cheater. We merely adjudicate which one of the
> spends is valid. Receivers of transactions must wait a few
> blocks to make sure that resolution has had time to complete.

Until.... until what? How does anybody know when a transaction
has become irrevocable? Is "a few" blocks three? Thirty? A
hundred? Does it depend on the number of nodes? Is it logarithmic
or linear in number of nodes?


> Would be cheaters can try and simultaneously double-spend all
> they want, and all they accomplish is that within a few blocks,
> one of the spends becomes valid and the others become invalid.

But in the absence of identity, there's no downside to them
if spends become invalid, if they've already recieved the
goods they double-spent for (access to website, download,
whatever). The merchants are left holding the bag with
"invalid" coins, unless they wait that magical "few blocks"
(and how can they know how many?) before treating the spender
as having paid.

The consumers won't do this if they spend their coin and it takes
an hour to clear before they can do what they spent their coin on.
The merchants won't do it if there's no way to charge back a
customer when they find the that their coin is invalid because
the customer has doublespent.

> Even if an earlier spend wasn't in the chain yet, if it was
> already in all the nodes' pools, then the second spend would
> be turned away by all those nodes that already have the first
> spend.

So there's a possibility of an early catch when the broadcasts of
the initial simultaneous spends interfere with each other. I assume
here that the broadcasts are done by the sellers, since the buyer
has a possible disincentive to broadly disseminate spends.

> > If the new chain is accepted, then they give up on adding their
> > current link ... and start work again trying to extend the new
> > chain.
>
> Right. They also refresh whenever a new transaction comes in,
> so L pretty much contains everything in A all the time.

Okay, that's a big difference between a proof of work that takes
a huge set number of CPU cycles and a proof of work that takes a
tiny number of CPU cycles but has a tiny chance of success. You
can change the data set while working, and it doesn't mean you
need to start over. This is good in this case, as it means nobody
has to hold recently recieved transactions out of the link they're
working on.

> > Is there a mechanism to make sure that the "chain" does not consist
> > solely of links added by just the 3 or 4 fastest nodes?

> If you're thinking of it as a CPU-intensive digital signing, then
> you may be thinking of a race to finish a long operation first and
> the fastest always winning.

Right. That was the misconception I was working with. Again, the
difference between a proof taking a huge set number of CPU cycles
and a proof that takes a tiny number of CPU cycles but has a tiny
chance of success.

> Anyone's chance of finding a solution at any
> time is proportional to their CPU power.

It's like a random variation in the work factor; in this way it works
in your favor.

> There will be transaction fees, so nodes will have an incentive
> to receive and include all the transactions they can. Nodes
> will eventually be compensated by transaction fees alone when
> the total coins created hits the pre-determined ceiling.

I don't understand how "transaction fees" would work, and how the money
would find its way from the agents doing transactions to those running
the network. But the economic effect is the same (albeit somewhat
randomized) if adding a link to the chain allows the node to create
a coin, so I would stick with that.

Also, be aware that the compute power of different nodes can be
expected to vary by two orders of magnitude at any given moment in
history.

Bear


---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Re: Bitcoin P2P e-cash paper

I'll try and hurry up and release the sourcecode as soon as possible to serve as a reference to help clear up all these implementation questions.


Ray Dillinger (Bear) wrote:
> When a coin is spent, the buyer and seller digitally sign a (blinded)
> transaction record.

Only the buyer signs, and there's no blinding.


> If someone double spends, then the transaction record
> can be unblinded revealing the identity of the cheater.

Identities are not used, and there's no reliance on recourse. It's all prevention.


> This is done via a fairly standard cut-and-choose
> algorithm where the buyer responds to several challenges
> with secret shares

No challenges or secret shares. A basic transaction is just what you see in the figure in section 2. A signature (of the buyer) satisfying the public key of the previous transaction, and a new public key (of the seller) that must be satisfied to spend it the next time.


> They may also receive chains as long as the one they're trying to
> extend while they work, in which the last few "links" are links
> that are *not* in common with the chain on which they're working.
> These they ignore.

Right, if it's equal in length, ties are broken by keeping the earliest one received.


> If it contains a double spend, then they create a "transaction"
> which is a proof of double spending, add it to their pool A,
> broadcast it, and continue work.

There's no need for reporting of "proof of double spending" like that. If the same chain contains both spends, then the block is invalid and rejected.

Same if a block didn't have enough proof-of-work. That block is invalid and rejected. There's no need to circulate a report about it. Every node could see that and reject it before relaying it.

If there are two competing chains, each containing a different version of the same transaction, with one trying to give money to one person and the other trying to give the same money to someone else, resolving which of the spends is valid is what the whole proof-of-work chain is about.

We're not "on the lookout" for double spends to sound the alarm and catch the cheater. We merely adjudicate which one of the spends is valid. Receivers of transactions must wait a few blocks to make sure that resolution has had time to complete. Would be cheaters can try and simultaneously double-spend all they want, and all they accomplish is that within a few blocks, one of the spends becomes valid and the others become invalid. Any later double-spends are immediately rejected once there's already a spend in the main chain.

Even if an earlier spend wasn't in the chain yet, if it was already in all the nodes' pools, then the second spend would be turned away by all those nodes that already have the first spend.


> If the new chain is accepted, then they give up on adding their
> current link, dump all the transactions from pool L back into pool
> A (along with transactions they've received or created since
> starting work), eliminate from pool A those transaction records
> which are already part of a link in the new chain, and start work
> again trying to extend the new chain.

Right. They also refresh whenever a new transaction comes in, so L pretty much contains everything in A all the time.


> CPU-intensive digital signature algorithm to
> sign the chain including the new block L.

It's a Hashcash style SHA-256 proof-of-work (partial pre-image of zero), not a signature.


> Is there a mechanism to make sure that the "chain" does not consist
> solely of links added by just the 3 or 4 fastest nodes? 'Cause a
> broadcast transaction record could easily miss those 3 or 4 nodes
> and if it does, and those nodes continue to dominate the chain, the
> transaction might never get added.

If you're thinking of it as a CPU-intensive digital signing, then you may be thinking of a race to finish a long operation first and the fastest always winning.

The proof-of-work is a Hashcash style SHA-256 collision finding. It's a memoryless process where you do millions of hashes a second, with a small chance of finding one each time. The 3 or 4 fastest nodes' dominance would only be proportional to their share of the total CPU power. Anyone's chance of finding a solution at any time is proportional to their CPU power.

There will be transaction fees, so nodes will have an incentive to receive and include all the transactions they can. Nodes will eventually be compensated by transaction fees alone when the total coins created hits the pre-determined ceiling.


> Also, the work requirement for adding a link to the chain should
> vary (again exponentially) with the number of links added to that
> chain in the previous week, causing the rate of coin generation
> (and therefore inflation) to be strictly controlled.

Right.


> You need coin aggregation for this to scale. There needs to be
> a "provable" transaction where someone retires ten single coins
> and creates a new coin with denomination ten, etc.

Every transaction is one of these. Section 9, Combining and Splitting Value.


Satoshi Nakamoto

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

Re: [FDE] pre-initialized AES key? What is the Security ID on a Seagate Maxtor Black Armor drive?

Dave,

Considering that it takes about a millionth of a second to generate an
AES key, I don't think that you can tell much from the fact that it
came up instantaneously after you entered your password.

The fact that it came up instantly without formatting means that it
had a FAT32 filesystem on it.

My guess is that the system has per-device session key and that the
key is then encrypted with your password. But that's just a guess.
There are lots of ways to build such a system.
On Nov 14, 2008, at 3:13 PM, Dave Jevans wrote:

> My Black Armor came up pretty much instantaneously after I entered my
> password, and didn't require formatting. This leads me to believe it
> is pre-formatted at the factory. That requires the AES key to be
> generated in the factory rather than when the user first initialized
> the device. Is this the case?
>
>
> At 11:03 PM +0100 11/14/08, H M wrote:
>> Implementation of security to an external retail drive.
>>
>> The 25 character SID is created during production for every FDE
>> drive. It is simply used to verify the possession of the drive.
>> On a new drive this SID is used as the Master Password to start
>> security management, e.g. create user password, recovery password
>> Once user sets a password this SID can only be used to secure erase
>> a drive when the user password was lost.
>> This is special to the Black Armor implementation as the probability
>> that users will forget their passwords is too high. If the user
>> password is lost there is no way to get back data stored on the
>> drive.
>> In order for Seagate to not get back these drives just for the
>> locked status, the SID can be used to secure erase the drive and
>> make it reuseable.
>> After Secure erase all user data is gone and the drive starts on
>> next power up as a virgin drive. The management SW on the locked
>> drive is located in a secure, write protected area of the drive.
>> Therefore this drive can be connected to any computer and there has
>> no software to run on this computer which could detect a locked
>> (protected) drive.
>> User has to partition and format the drive after secure erase as
>> there is no useful data on it any more
>>
>> On a notebook drive the implementation is different. Once a password
>> is set the SID is no password any longer. On a secure erase as well
>> the data in the locked drive mode would be cleared and the drive
>> reset to unlocked state.
>>
>> In order to run secure erase you need a valid password for the
>> drive. On Black Amor SID is for reuseability purpose.
>>
>> The AES key that is randomly generated on every secure erase, never
>> leaves the drive and is unknown to Seagate. The drive encrypts
>> always all data written to the media and decrypts it during read.
>> The access to data means you can provide a valid password when
>> powering up the drive.
>>
>>
>> HM
>>
>> _______________________________________________
>> FDE mailing list
>> FDE@www.xml-dev.com
>> http://www.xml-dev.com/mailman/listinfo/fde
>
> _______________________________________________
> FDE mailing list
> FDE@www.xml-dev.com
> http://www.xml-dev.com/mailman/listinfo/fde
>

_______________________________________________
FDE mailing list
FDE@www.xml-dev.com
http://www.xml-dev.com/mailman/listinfo/fde

Re: Bitcoin P2P e-cash paper

Okay.... I'm going to summarize this protocol as I understand it.

I'm filling in some operational details that aren't in the paper
by supplementing what you wrote with what my own "design sense"
tells me are critical missing bits or "obvious" methodologies for
use.

First, people spend computer power creating a pool of coins to use
as money. Each coin is a proof-of-work meeting whatever criteria
were in effect for money at the time it was created. The time of
creation (and therefore the criteria) is checkable later because
people can see the emergence of this particular coin in the
transaction chain and track it through all its "consensus view"
spends. (more later on coin creation tied to adding a link).

When a coin is spent, the buyer and seller digitally sign a (blinded)
transaction record, and broadcast it to a bunch of nodes whose purpose
is keeping track of consensus regarding coin ownership. If someone
double spends, then the transaction record can be unblinded revealing
the identity of the cheater. This is done via a fairly standard cut-
and-choose algorithm where the buyer responds to several challenges
with secret shares, and the seller then asks him to "unblind" and
checks all but one, verifying that they do contain secret shares any
two of which are sufficient to identify the buyer. In this case the
seller accepts the unblinded spend record as "probably" containing
a valid secret share.

The nodes keeping track of consensus regarding coin ownership are in
a loop where they are all trying to "add a link" to the longest chain
they've so far recieved. They have a pool of reported transactions
which they've not yet seen in a "consensus" signed chain. I'm going
to call this pool "A". They attempt to add a link to the chain by
moving everything from pool A into a pool "L" and using a CPU-
intensive digital signature algorithm to sign the chain including
the new block L. This results in a chain extended by a block
containing all the transaction records they had in pool L, plus
the node's digital signature. While they do this, new
transaction records continue to arrive and go into pool A again
for the next cycle of work.

They may also recieve chains as long as the one they're trying to
extend while they work, in which the last few "links" are links
that are *not* in common with the chain on which they're working.
These they ignore. (? Do they ignore them? Under what
circumstances would these become necessary to ever look at again,
bearing in mind that any longer chain based on them will include
them?)

But if they recieve a _longer_ chain while working, they
immediately check all the transactions in the new links to make
sure it contains no double spends and that the "work factors" of
all new links are appropriate. If it contains a double spend,
then they create a "transaction" which is a proof of double
spending, add it to their pool A, broadcast it, and continue work.
If one of the "new" links has an inappropriate work factor (ie,
someone didn't put enough CPU into it for it to be "licit"
according to the rules) a new "transaction" which is a proof
of the protocol violation by the link-creating node is created,
broadcast, and added to pool A, and the chain is rejected. In
the case of no double spends and appropriate work factors for
all links not yet seen, they accept the new chain as consensus.

If the new chain is accepted, then they give up on adding their
current link, dump all the transactions from pool L back into pool
A (along with transactions they've recieved or created since
starting work), eliminate from pool A those transaction records
which are already part of a link in the new chain, and start work
again trying to extend the new chain.

If they complete work on a chain extended with their new link, they
broadcast it and immediately start work on another new link with
all the transactions that have accumulated in pool A since they
began work.

Do I understand it correctly?


Biggest Technical Problem:

Is there a mechanism to make sure that the "chain" does not consist
solely of links added by just the 3 or 4 fastest nodes? 'Cause a
broadcast transaction record could easily miss those 3 or 4 nodes
and if it does, and those nodes continue to dominate the chain, the
transaction might never get added.

To remedy this, you need to either ensure provable propagation of
transactions, or vary the work factor for a node depending on how
many links have been added since that node's most recent link.

Unfortunately, both measures can be defeated by sock puppets.
This is probably the worst problem with your protocol as it
stands right now; you need some central point to control the
identities (keys) of the nodes and prevent people from making
new sock puppets.

Provable propagation would mean that When Bob accepts a new chain
from Alice, he needs to make sure that Alice has (or gets) all
transactions in his "A" and "L" pools. He sends them, and
Alice sends back a signed hash to prove she got them. Once
Alice has recieved this block of transactions, if any subsequent
chains including a link added by Alice do not include those
transactions at or before that link, then Bob should be able to
publish the block he sent Alice, along with her signature, in a
transaction as proof that Alice violated protocol. Sock puppets
defeat this because Alice just signs subsequent chains using a
new key, pretending to be a different node.

If we go with varying the work factor depending on how many new
links there are, then we're right back to domination by the 3
or 4 fastest nodes, except now they're joined by 600 or so
sock puppets which they use to avoid the work factor penalty.

If we solve the sock-puppet issue, or accept that there's a central
point controlling the generation of new keys, then generation of
coins should be tied to the act of successfully adding a block to
the "consensus" chain. This is simple to do; creation of