Cryptography-Digest Digest #246, Volume #11 Fri, 3 Mar 00 14:13:01 EST
Contents:
Re: Best language for encryption?? (wtshaw)
Re: Best language for encryption?? (wtshaw)
Re: Best language for encryption?? (wtshaw)
Re: CRC-16 Reverse Algorithm ? (Scott Nelson)
Cellular automata based public key cryptography (Tim Tyler)
Re: Best language for encryption?? (wtshaw)
Re: Best language for encryption?? ("Brian Hetrick")
Re: Cryonics and cryptanalysis (Darren New)
Re: Cryonics and cryptanalysis (Darren New)
Re: New US export regs (was Re: Crypto.Com, Inc.) (wtshaw)
Re: Hidden computation (Re: Cryonics and cryptanalysis) (Mike Rosing)
Re: very tiny algorithm - any better than XOR? (Terry Ritter)
Re: IDEA question. (Chris DiTrani)
----------------------------------------------------------------------------
From: [EMAIL PROTECTED] (wtshaw)
Subject: Re: Best language for encryption??
Date: Fri, 03 Mar 2000 10:17:29 -0600
In article <89n2ju$np6$[EMAIL PROTECTED]>, [EMAIL PROTECTED] (Paul
Schlyter) wrote:
> In article <[EMAIL PROTECTED]>,
> wtshaw <[EMAIL PROTECTED]> wrote:
>
> >
> > No mention of these is in the literature I have on C/C++,
>
> Are you sure? Really sure? If so, your literature is bad and should
> be replaced.
When clear and conciseness is obvious, fine. It is not, so programming in
C/C++ remains art rather than science. I'll play along.
...
>
> > which makes my point...that there is too little standardization
> > in how the languages are fully used, as opposed to a set of commands
> > that are easily learned, at least by many who I have taught.
>
> I'm sorry, but these are deficiencies in the literature and/or the
> programmers -- not in the languages themselves!
>
Stroustrup omits it too.
--
Present Government Security is a sandcastle build on a beach
beside a lagoon at low tide. Figure that they will expense it all
before figuring out what is wrong with their planning personel.
------------------------------
From: [EMAIL PROTECTED] (wtshaw)
Subject: Re: Best language for encryption??
Date: Fri, 03 Mar 2000 10:38:44 -0600
In article <[EMAIL PROTECTED]>, "Trevor Jackson, III"
<[EMAIL PROTECTED]> wrote:
>
> Djikstra commented on this issue, claiming that people he encountered
(students)
> who learned languages like BASIC first were mentally damaged in that it
was very
> difficult for them to think certain ways. I'd be willing to bet the effect is
> measurable.
This could be that people trained to cut through the crap are unsettled
when they meet those that like to pile it on.
BASIC was developed before C. It was based largely on Fortran, rather an
offshoot of it. The difference is simply a single versus double
bookkeeping system of logic. People natively think in single entry. It
is more that lawyers and bureaucrats do double entry so that they can
check each others' work. Computers are generally dumb, so something like
Cobol works, but is uninspired when compared with mature languages.
Higher language compillers are more intelligent, to take some of the
burden away from programmers, find myrids of mistakes early, and guide
correction. Programming is not the end, it is the means, and the same for
computers and humans. Depending on compiler of any language, the code
produced can rival honed assembly.
This has lots to say about crypto, and the deficiency of thinking in
limited ways. It isthe big myth that we fight against, that things must
be difficult that are not inately required to be. Progress is doing away
with the innane.
Good algorithms are not that hard to fine, and good immplementations not
that hard to write if you think top-down and use the tools that get better
every day. The same goes for security matters in gneral. I am learning why
so many think otherwise; what a shame. The unwelcomed result of the
prevalence of how things are is that many live to cultivate problems
rather than using adequate solutions.
--
Present Government Security is a sandcastle build on a beach
beside a lagoon at low tide. Figure that they will expense it all
before figuring out what is wrong with their planning personel.
------------------------------
From: [EMAIL PROTECTED] (wtshaw)
Subject: Re: Best language for encryption??
Date: Fri, 03 Mar 2000 10:46:42 -0600
In article <[EMAIL PROTECTED]>, "Douglas A. Gwyn"
<[EMAIL PROTECTED]> wrote:
> I sure as heck hope you're not trying to "teach" C as you see it.
> C is *quite* well standardized, and how to use Standard C to
> program portably has also been quite fully developed.
Of course not, you are the authority there. I yield to your expertise,
but I am not afraid of analysing the philosophy and methods of lower
versus higher languages, or deficiencies of any.
Technology generally has outrun console programs as final product, and
people need not continue to walk when the can or need to fly.
--
Present Government Security is a sandcastle build on a beach
beside a lagoon at low tide. Figure that they will expense it all
before figuring out what is wrong with their planning personel.
------------------------------
From: [EMAIL PROTECTED] (Scott Nelson)
Subject: Re: CRC-16 Reverse Algorithm ?
Reply-To: [EMAIL PROTECTED]
Date: Fri, 03 Mar 2000 17:42:23 GMT
On Thu, 02 Mar 2000, Paul Koning <[EMAIL PROTECTED]> wrote:
[snip]
>In addition, there's a burst length such that not all burst errors of
>that length are detected. For CRC-32 (again working from possibly
>faulty memory) I believe that length is 33 bits. Is it N+1 bits for
>any CRC-N?
>
If you feed all possible N bit values into an N bit crc,
(regardless of how it is initialized) you will get all possible
N bit values. It only takes a 32 bit error burst, not 33.
Also, any crc has a pattern which will not change
when fed a 1 bit. Therefore it is always possible
to construct a message 2N bits long which can be
extended indefinitely by inserting 1's after N bits,
without changing the CRC.
Scott Nelson <[EMAIL PROTECTED]>
------------------------------
From: Tim Tyler <[EMAIL PROTECTED]>
Subject: Cellular automata based public key cryptography
Reply-To: [EMAIL PROTECTED]
Date: Fri, 3 Mar 2000 17:36:38 GMT
I've recently developed an interest in public key cryptography based on
cellular automata.
This was pioneered in the 1980s by the Chinese cryptographer, Tao Renji.
I've compiled a bibliography of his work at http://alife.co.uk/ca/taorenji/
Since this work was largely published in Chinese - and is thus not
terribly accessible to me - I've redeveloped the basic ideas behind the
system.
A preliminary description of my explorations is available on the web.
The basic idea is a technique for generating reversible finite automata
whose inverses have domains that are unboundedly large.
This technique generates "quasi-linear" automata with "weak" inverses.
I describe this technique at http://alife.co.uk/ca/largeinverse/
This technique can be used as the basis of a public key cryptosystem:
The basic idea involves generating two finite invertable cellular automata.
At least one of the automata should contain a significant number of
non-linear components. The two automata are combined, to form a third
automata which is then published as the public key.
Combining the two automata is done by creating a third automata
which is equivalent to applying them in sequence. This is done by
algebraic combination, and expanding out the resulting terms.
To encrypt data, it is passed through the published automata.
To decrypt, the inverses of the two automata are applied in sequence.
This relies on the fact that finding the inverse of the public automata
- without knowledge of its components - is a difficult problem.
It can be difficult to decompose a composite automata into its component
parts - in very much the same way that it is difficult to factor the
product of two large primes.
http://alife.co.uk/ca/publickey/ describes the proposed process in
a little more detail.
I have not yet built any sort of system based on these ideas.
It appears that the resulting system should work /extremely/ rapidly when
implemented in appropriate hardware - but may have large keys.
I have not yet managed to read a single one of Tao Renji's papers, or
any of those cryptanalysing his system. /All/ my knowledge of his work
comes from the pages of "Applied Cryptography" (2nd ed. p.500) :-(
I am keen to learn more about the original work, so I can avoid
duplicating it, and to learn from previous exploration of the area.
If anyone can help me by providing me with details that I do not already
have access to, that would be very helpful. For example, if there are any
books in print containing any of the papers in my bibliography, I'd be
interested to learn about this.
I do not yet have much familiarity with other public key cryptosystems.
If there are other methods - which do not rely on large prime numbers,
the discrete logarithm problem, etc - and which might bear some possible
relationship to the system I describe - a pointer might be useful to me.
Any comments about the proposed system would also be welcomed.
Please don't advise me that my descriptions are currently vague and
incomplete, though - since I'm aware of that already.
--
__________
|im |yler The Mandala Centre http://www.mandala.co.uk/ [EMAIL PROTECTED]
Never call a man a fool. Instead, borrow from him.
------------------------------
From: [EMAIL PROTECTED] (wtshaw)
Subject: Re: Best language for encryption??
Date: Fri, 03 Mar 2000 11:00:38 -0600
In article <[EMAIL PROTECTED]>, "Douglas A. Gwyn"
<[EMAIL PROTECTED]> wrote:
> Which is why you find that you are out of stock on an item when it
> is critically needed.
>
> Lack of discipline is not something to be proud of in an engineering
> profession.
Anyone can outwardly showgood discipline if they have little to do.
It depends on the heirarchy of the needs. Premium treatment for those
able to pay is not the same as saving lives, but the former often competes
with the latter, both with routine. Having done lots of purchasing in my
years, and being on the supply side as well, I know the difference.
>
> > You just solved a problem I have been having in C, make it run
> > through a set of dummy values to get all the labels identifed...
> > what a crock, ...
>
> It certainly is a crock, but it's your fault for having a crappy
> program design. Instead of trying to write BASIC in C, you should
> learn to use C on its own merits. (Same for *any* language.)
One has to start somewhere, and I have not the time to waste if I can help it.
Meanwhile, I am just about to complete yet another pending project, but,
as Lubarsky's Rule of Cybernetic Entomology suggests, there is always one
more bug.
--
Present Government Security is a sandcastle build on a beach
beside a lagoon at low tide. Figure that they will expense it all
before figuring out what is wrong with their planning personel.
------------------------------
From: "Brian Hetrick" <[EMAIL PROTECTED]>
Subject: Re: Best language for encryption??
Date: Fri, 3 Mar 2000 13:04:48 -0500
It occurs to me there is much smoke and heat, and little light, in this
discussion; and it occurs to me we have different ideas of what "Basic" is.
The people suggesting Basic as a "structured" language are not talking about
DTSS Basic, or Apple ][ Basic, or even BASICA. They are talking about
current Basics -- where, for example, you cannot GOTO into the middle of a
subroutine because the subroutine has a different lexical scope.
Firstly, I like C. C in a wonderful language. I use it all the time. I've
written compilers for it, and it's nifty.
I also like Basic. Basic is a wonderful language. I use it all the time.
I've written compilers for it, and it's nifty.
Attached is a "typical" module in a "modern" Basic. It is a class that
implements a doubly linked list of objects. The major difference (besides
syntax, of course) between this and the equivalent abstract data type in C
is that it is more convenient to use values, rather than references, in
Basic for everything other than objects. So while a typical generic list in
C would use pointers to the things of interest, a typical generic list in
Basic uses values and the polymorphic scalar type for everything except
classes, and references rather than values for classes. Hence the checks
for whether things are objects and the use of 'set' rather than (implicit)
'let' for objects....
Oh, and divisions between routines/methods are supplied by the IDE, so form
feeds and such aren't used here.
=====
Option Explicit
Private litFirstItem As ListItem
Private litLastItem As ListItem
Private intCount As Integer
Private Sub Class_Initialize()
Set litFirstItem = Nothing
Set litLastItem = Nothing
intCount = 0
End Sub
Private Sub Class_Terminate()
Clear
End Sub
Public Sub Clear()
Dim varThisItem As Variant
Do
If Count = 0 Then
Exit Do
End If
If HeadIsObject Then
Set varThisItem = PopHead
Else
varThisItem = PopHead
End If
varThisItem = Empty
Loop
End Sub
Public Function PopHead() As Variant
Dim litThisItem As ListItem
If litFirstItem Is Nothing Then
PopHead = Empty
Exit Function
End If
Set litThisItem = litFirstItem
Set litFirstItem = litThisItem.NextItem
If litFirstItem Is Nothing Then
Set litLastItem = Nothing
Else
Set litFirstItem.PrevItem = Nothing
End If
intCount = intCount - 1
If litThisItem.ValueIsObject Then
Set PopHead = litThisItem.Value
Else
PopHead = litThisItem.Value
End If
Set litThisItem = Nothing
End Function
Public Function PopTail() As Variant
Dim litThisItem As ListItem
If litLastItem Is Nothing Then
PopTail = Empty
Exit Function
End If
Set litThisItem = litLastItem
Set litLastItem = litThisItem.PrevItem
If litLastItem Is Nothing Then
Set litFirstItem = Nothing
Else
Set litLastItem.NextItem = Nothing
End If
intCount = intCount - 1
If litThisItem.ValueIsObject Then
Set PopHead = litThisItem.Value
Else
PopHead = litThisItem.Value
End If
Set litThisItem = Nothing
End Function
Public Sub InsertHead(ByVal varNewValue As Variant)
Dim litThisItem As ListItem
Set litThisItem = New ListItem
If IsObject(varNewValue) Then
Set litThisItem.Value = varNewValue
Else
litThisItem.Value = varNewValue
End If
Set litThisItem.NextItem = litFirstItem
If litFirstItem Is Nothing Then
Set litLastItem = litThisItem
Else
Set litFirstItem.PrevItem = litThisItem
End If
Set litFirstItem = litThisItem
intCount = intCount + 1
End Sub
Public Sub InsertOrder(ByVal varNewValue As Variant)
Dim litThisItem As ListItem
Dim litPrevItem As ListItem
Dim litNextItem As ListItem
Dim blnAdvance As Boolean
Set litThisItem = New ListItem
If IsObject(varNewValue) Then
Set litThisItem.Value = varNewValue
Else
litThisItem.Value = varNewValue
End If
Set litPrevItem = Nothing
Set litNextItem = litFirstItem
Do
If litNextItem Is Nothing Then
Exit Do
End If
blnAdvance = False
On Error Resume Next
blnAdvance = litThisItem.Value > litNextItem.Value
On Error GoTo 0
If Not blnAdvance Then
Exit Do
End If
Set litPrevItem = litNextItem
Set litNextItem = litNextItem.NextItem
Loop
If litPrevItem Is Nothing Then
Set litFirstItem = litThisItem
Else
Set litPrevItem.NextItem = litThisItem
End If
If litNextItem Is Nothing Then
Set litLastItem = litThisItem
Else
Set litNextItem.PrevItem = litThisItem
End If
Set litThisItem.PrevItem = litPrevItem
Set litThisItem.NextItem = litNextItem
intCount = intCount + 1
End Sub
Public Sub InsertTail(ByVal varNewValue As Variant)
Dim litThisItem As ListItem
Set litThisItem = New ListItem
If IsObject(varNewValue) Then
Set litThisItem.Value = varNewValue
Else
litThisItem.Value = varNewValue
End If
Set litThisItem.PrevItem = litLastItem
If litLastItem Is Nothing Then
Set litFirstItem = litThisItem
Else
Set litLastItem.NextItem = litThisItem
End If
Set litLastItem = litThisItem
intCount = intCount + 1
End Sub
Public Property Get Count() As Integer
Count = intCount
End Property
Public Property Get Head() As Variant
If litFirstItem Is Nothing Then
Head = Empty
Else
If litFirstItem.ValueIsObject Then
Set Head = litFirstItem.Value
Else
Head = litFirstItem.Value
End If
End If
End Property
Public Property Get HeadIsObject() As Boolean
If litFirstItem Is Nothing Then
HeadIsObject = False
Else
HeadIsObject = litFirstItem.ValueIsObject
End If
End Property
Public Property Get Tail() As Variant
If litLastItem Is Nothing Then
Head = Empty
Else
If litLastItem.ValueIsObject Then
Set Head = litLastItem.Value
Else
Head = litLastItem.Value
End If
End If
End Property
Public Property Get TailIsObject() As Boolean
If litLastItem Is Nothing Then
TailIsObject = False
Else
TailIsObject = litLastItem.ValueIsObject
End If
End Property
------------------------------
From: Darren New <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
Subject: Re: Cryonics and cryptanalysis
Date: Fri, 03 Mar 2000 18:11:11 GMT
Ralph C. Merkle wrote:
> But can people be described by bits? In the past several years, quite a
> few authors have pointed out that a sufficiently precise description of
> a human being -- a description in bits -- provides a "snapshot" of that
> human being at a specific point in time. Given the "snapshot," we could
> in principal restore the human being.
Well, Penrose points out that there are quantum structures in the brain
which he believes are necessary to concious thought. Regardless of whether
you agree with him, there is the question of whether quantum states of the
atoms making up the human are necessary to the continued existance of that
person as the same person. If so, you'd be unable to record that
information, and anyone you managed to wake up would be someone else.
--
Darren New / Senior MTS / Invisible Worlds Inc.
San Diego, CA, USA (PST). Cryptokeys on demand.
There is no safety in disarming only the fearful.
------------------------------
From: Darren New <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
Subject: Re: Cryonics and cryptanalysis
Date: Fri, 03 Mar 2000 18:14:21 GMT
Trevor Jackson, III wrote:
> Niven assumed that making a copy was destructive of the original
Actually, there's an interesting story called "The Man on the Moon Must
Die". (I don't remember the author, tho.) They have teleportation (for rich
folks at least), and someone tries to murder said rich dude by disabling the
part of the transmitter that destroys the original after the copy has been
transmitted. Of course, the law is such that this makes the original a
shoot-on-sight non-person.
An interesting twist to it. Completely off-topic for sci.crypt, tho. Sorry.
--
Darren New / Senior MTS / Invisible Worlds Inc.
San Diego, CA, USA (PST). Cryptokeys on demand.
There is no safety in disarming only the fearful.
------------------------------
From: [EMAIL PROTECTED] (wtshaw)
Subject: Re: New US export regs (was Re: Crypto.Com, Inc.)
Date: Fri, 03 Mar 2000 11:29:58 -0600
In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] wrote:
> You don't need them to send email to you:
>
If yo are requested to send them something, it is comforting to know that
a communication was actually received. I guess I remember the chronic
loss of AOL mail experienced here long ago. But, anything can happen
enroute.
Figure that if they say they did not receive it, they have no reason to
complain. Perhaps the dog ate it, I forgot to send it, I thought I sent
it, or my program did not work right, or they just lost it themselves. It
must not be a big deal anyway, so why bother in the first place?
--
Present Government Security is a sandcastle build on a beach
beside a lagoon at low tide. Figure that they will expense it all
before figuring out what is wrong with their planning personel.
------------------------------
From: Mike Rosing <[EMAIL PROTECTED]>
Subject: Re: Hidden computation (Re: Cryonics and cryptanalysis)
Date: Fri, 03 Mar 2000 12:33:21 -0600
Kim G. S. OEyhus wrote:
> Cryptography can protect information in transmission, but here the
> problem is to protect information when the storage device is
> accessible and contains plaintext, i.e. memories in a frozen brain.
>
> So, my question is: Is it possible to do computation where data is
> encrypted on all stages, all the time? Say, an encrypted
> universal Turing machine?
You can perform operations on encrypted data, but you'll lose the
mapping to the original data. If you have an encryption form
which satisfies T(E(d)) = E(T(d)) then it will work (E is encryption,
T is turing operation). Most systems don't work that way.
> What I am thinking about, is a computer doing computations, but where
> it is not possible to understand what the computation does, unless one
> decrypts it. Is this possible at all? If so, how efficient can it be
> done?
Sounds like neuroscience to me :-) We have no idea how our brains work,
but we have no problem making them work. In a few hundred years we
may have decrypted most of it tho.
Patience, persistence, truth,
Dr. mike
------------------------------
From: [EMAIL PROTECTED] (Terry Ritter)
Subject: Re: very tiny algorithm - any better than XOR?
Date: Fri, 03 Mar 2000 18:57:38 GMT
On Fri, 03 Mar 2000 12:06:13 GMT, in <89o9rk$9vo$[EMAIL PROTECTED]>, in
sci.crypt Tom St Denis <[EMAIL PROTECTED]> wrote:
>[...]
>You should look up LFSR and Lagged Fibonacii generators. If you have
>some ram space [around 300 bytes] you could do AlgM :).
Of course that would be insecure.
---
Terry Ritter [EMAIL PROTECTED] http://www.io.com/~ritter/
Crypto Glossary http://www.io.com/~ritter/GLOSSARY.HTM
------------------------------
From: [EMAIL PROTECTED] (Chris DiTrani)
Subject: Re: IDEA question.
Date: Fri, 03 Mar 2000 17:58:54 GMT
Yeah, this is pretty obvious, isn't it. It occured to me shortly after
posting here.
CD
On Thu, 2 Mar 2000 18:04:45 -0500, "Brian Sipos" <[EMAIL PROTECTED]>
wrote:
>You could use a hash of the unencrypted file as the known block, so that it wouldn't
>be a static number.
>
>Chris DiTrani <[EMAIL PROTECTED]> wrote in message
>news:[EMAIL PROTECTED]...
>> I wrote a little utility to en/decrypt files using IDEA, building the
>> encryption key from a user provided pass phrase. In order to confirm
>> that a file is being decrypted with the correct pass phrase, I encrypt
>> a block containing known (but not secret) data and append it to the
>> file before encrypting the file (so this block is encrypted twice). I
>> can look at the block after decrypting the file to confirm (to some
>> certainty). My question is, am I appreciably weakening the encryption
>> with this approach? Is there a better way?
>>
>> Thanks,
>>
>> CD
>
>
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list (and sci.crypt) via:
Internet: [EMAIL PROTECTED]
End of Cryptography-Digest Digest
******************************