Slashdot Log In
Colossus Cipher Challenge Winner On Ada
Posted by
timothy
on Thursday May 15, @09:47AM
from the ada-operiert-die-blinkenlights dept.
from the ada-operiert-die-blinkenlights dept.
An anonymous reader writes "Colossus Cipher Challenge winner Joachim Schueth talks about why he settled on Ada as his language of choice to unravel a code transmitted from the Heinz Nixdorf Museum in Germany, from a Lorenz SZ42 Cipher machine (used by the German High Command to relay secret messages during the World War II). 'Ada allowed me to concisely express the algorithms I wanted to implement.'"
Related Stories
[+]
Help Break Original Enigma Messages 272 comments
Stereo writes "The Enigma Machine was cracked in Poland in 1932, but three messages remain unbroken, despite having been intercepted in the North Atlantic in 1942. The M4 Project, named after the four rotor Enigma M4 used for encryption, is a distributed computing effort to break them. One message has already been deciphered successfully!"
[+]
Enigma-Cracking Bombe Recreated 131 comments
toxcspdrmn writes "Volunteers at Bletchley Park have recreated a working replica of the electromechanical bombe used to crack the Germans' Enigma encryption. The bombe was designed by Polish cryptologists and refined by Alan Turing and colleagues at Bletchley Park. The replica joins a recreated electronic Colossus — generally considered the first electronic computer. Impressive work when you consider that Winston Churchill ordered the originals to be completely destroyed at the end of WWII."
[+]
Enigma Machine for Sale on eBay 175 comments
RagingMaxx writes "An Italian antiques dealer has recently put to auction a mint condition, fully operational Enigma machine on eBay. The machine, dated circa 1938, will be sold to the highest bidder in just over a week, but after 30 hours of bidding the price has already surpassed $12,000 US. For those of you who can't afford the real thing, why not make your own?"
Firehose:Colossus Cipher Challenge Winner on Ada by Anonymous Coward
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.

Comparison with Allies cypher machine (Score:3, Interesting)
Reply to This
Re:Comparison with Allies cypher machine (Score:4, Informative)
http://www.sjsu.edu/mscs/research/projects/chan_wing-on.pdf [sjsu.edu]
In normal use, it appears to have had a keyspace of about 48 bits, which is not easy to attack now with a modest distributed effort, but way out of the reach of WWII technology.
However, a variant of the machine used for communication between the US President and British PM had an effective keyspace of 95+ bits, which (if you have access to some known plaintext) can be reduced to 86 bits, which although shorter than key lengths in common use today is still out of reach.
Reply to This
Parent
Type Casting (Score:3, Interesting)
Reply to This
Re: (Score:3, Informative)
It does (unchecked_conversion), but never (AFAIK) *implicitly*.
You couldn't BE more wrong (Score:5, Insightful)
First off those strict rules help you because you spend miles less time debugging stuff you don't understand, once it compiles it will tend to run and the compiler gives helpful messages about what you are doing wrong (often including suggestions on how to fix it). With Java, and especially C and C++, let alone scripting languages the beginner spends much more time debugging non-operational code than writing the code in the first place. This tends to mean that these people focus on "getting an executable" rather than "getting it running".
Ada is a brilliant language to teach newbies in (again I've personally done this) as you can explain the abstract concepts and then have the compiler make sure they are doing it right rather than have them say "it compiles but it keeps falling over, why?".
Ada's issues are due to the mentality of lots of (IMO) unprofessional engineers who focus on the number of characters over the operational viability of a system.
And for a final point. Take a look at the complex code the guy wrote, if that was in Java, C, C++, Scala, Ruby, Perl, LISP or what ever do you think that you'd have a chance of understanding it?
Reply to This
Parent
I like the choice. (Score:5, Funny)
Reply to This
ADA Resurgence? (Score:5, Interesting)
Reply to This
Re:ADA Resurgence? (Score:5, Funny)
Reply to This
Parent
Re:ADA Resurgence? (Score:5, Informative)
Ada is not trendy, but it has had built-in portable concurrency and many other killer features for more than a decade. Proper specifications are one of my favs.
Of course there are other factors, like the lack of good and free compilers. Fortunately now the gcc toolchain has put this to rest. Also there are few libraries. Really few. Binding to C is easy, but still a deterrent for the hobbyist.
It's emphasis in making maintenance easy over quick programming really pays in the end, not even in the middle/long term but shortly after getting familiar with the language. I find myself much more productive. When something compiles, I'm sure that the only bugs remaining are logical, not some funny pointer or unexpected type conversion or overflow. Nowadays I rarely fire the debugger more than once a month. My C/C++ has improved because Ada forbids the things that are considered bad practices in C/C++, but you still end doing because "you know better".
I think that Ada is getting now more exposure because, albeit a niche language, Adacore is pushing hard behind it. Also, its SPARK derivative by Praxis has made some headlines with large and difficult projects getting flying marks. SPARK has made static analysis a reality for large projects.
I'd say that anyone capable of discipline will enjoy the benefits of Ada. It's not the thing for quick hacking, but it is perfect for anything not trivial. Software engineers should love it. I have heard somewhere that it is a safe C++, and I concur: feature-wise is more or less on par, it catches bugs sooner and prevents many typical ones.
Have I already said that concurrency is built-in and portable
Reply to This
Parent
Re:What are the good ones? (Score:4, Informative)
The GNU compiler suite also has an ADA compiler (GNAT, GNU Ada Translator). Should be possible to get it and plug it in without much trouble, and then it'd integrate with everything else. Heck, should be possible to include ADA modules into an Objective-C Cocoa application, even.
There is also a GNU FORTRAN, worth checking out. Even today, you can't do mathematics as efficiently in C as you can in FORTRAN. (This is because of the language; in Fortran, taking the address of an existing variable isn't normal, so variables don't end up with the possibility of "aliases" that they don't know about, which means a lot more stuff can safely be done all in registers and stuff like that.)
There is also a GNU Pascal, but unlike ADA and FORTRAN, I'm not personally aware of any reason to actually use it.
Reply to This
Parent
Compiler price.. (Score:5, Interesting)
Too bad since Ada is 'by default' a language which is more secure than C++..
Reply to This
hmm. (Score:4, Interesting)
I mean the german fellow was near teh transmitting station and got a very good signal and started right away.
Bletchley Park on the other hand, because of the atmospheric conditions did not get a signal until late in the day and started late. On the other hand the german SW took only 46 seconds.
I'm not saying that the german fellow should not of won, he did fair and square - but there seemed to be no mention in much of the news at the time of the receiver issues.
On the plus side, it was excellent publicity for the park and colossus. If only Churchill had not ordered then scrapped then Britain could of led the technological era.
Reply to This
Concise??!! (Score:3, Insightful)
Constricted - maybe. Painful - most certainly.
Reply to This
Re:Concise??!! (Score:5, Funny)
Perhaps you should read what you just wrote.
Reply to This
Parent
other factors often dominate language choice (Score:5, Interesting)
Like the author of the article, I have a tendency to dabble with a variety of programming languages. I haven't used Ada seriously, but I am intrigued by it, especially in contrast to the looser languages that are currently popular. A lot of bytes have been spilled on the topic of static and dynamic typing, bondage & discipline vs. unit testing, etc. While these discussions often devolve to religious wars, I do think that language matters. Never mind Sapir-Whorf or Turing, some languages are simply more or less pleasurable or powerful for certain tasks.
That said, often the language itself is not the dominant factor in choosing the language. As nice as (Ada | Erlang | Haskell | Lisp | Ruby) is, it's not going to be my first choice if another language has a readily available library that will make it easier to write the program. I can write web applications in Lisp, but I probably won't. There is probably a parser generator for Ada, but I'd rather use Flex and Bison, or maybe ANTLR. And when it comes to my first choice, independent of problem domain, I'll usually pick Python, in part because of its extensive library.
Reply to This
Re:other factors often dominate language choice (Score:5, Insightful)
This problem, however is a completely different kind of programming. It's old school stuff: building everything you need yourself to run on really slow hardware. And hardware is always slow relative to crypto problems. Ever try to implement RSA encryption from scratch? I have. There's a reason the public key stuff is only used for key exchange.
I think the usefulness of Ada on this kind of problem is related to the issue of testing being costly. When I started in this business, compiling and linking a two hundred line program took about fifteen minutes. Something like unit testing would have been utterly impractical. So a strictly typed language was for nearly everyone a good idea.
Over the last couple of years, I've been trying my hand at a number of difficult algorithmic problems. This is not the stuff that 99% of the programmers in the world do professionally, including me.
Working on these problems was like programming was in the old days. Not only was it just you and the problem with no frameworks to come between, every output becomes a milestone when it takes a program days to generate. It also means that the style of programming is different. You don't worry so much about language restrictions introducing frictional losses into the code/test/recode cycle. You do worry more about mistakes that make it past the compiler.
Ada's philosophy is that coding should be, if not exactly slower certainly more deliberate. If you are running something for which your hardware is monumentally slow, then this is a good style to work in.
Reply to This
Parent
Horses for courses (Score:5, Interesting)
Then of course C++ came along which wanted to have its cake and eat it and the end result was a nasty mishmash of low and high level constructs which is difficult to learn , unintuitive and generally messy to use.
Reply to This
Re:Let the raging tardfight commence (Score:5, Funny)
Reply to This
Parent
Wimp using ASCII (Score:3, Funny)
Re: (Score:3, Funny)
And don't get me start on real programmers and their in-air-light-refraction-affecting butterflies.
Re:Let the raging tardfight commence (Score:5, Insightful)
ADA being a government/military based languge I am not to suprised that it won the competition decifering a goverment/military code. (it is more complex then that)
Reply to This
Parent
Re:Programmer not langauge. (Score:5, Informative)
I have written Web Apps in FORTRAN 77 just to prove that you can. However I wouldn't say it would be OK to consult a client to do the same, as it really isn't the right tool for the job.
Reply to This
Parent
Re: (Score:3, Funny)
Re: (Score:3, Funny)
Re: (Score:3, Funny)