MD5 and the muck
As reported in Dr. Dobb’s Journal, a brute-force attack exploiting MD5 “collisions” has been used to crack cyphertext generated by the MD5 hashing algorithm.The MD5 algorithm is used extensively in security systems like SSL, a protocol you use every time you go to a website that starts with “https://.” (more…)
Solitaire / Pontifex and the encryption of small universes
In Neal Stephenson’s book, Cryptonomicon, the character Enoch Root describes a low-tech, but arguably secure encryption algorithm which he calls both Solitaire (to describe its nature) and Pontifex (to obscure the fact that it’s done with two decks of cards.) The algorithm, invented by Bruce Schneier, author of Applied Cryptography
, is an output-feedback mode stream cipher that uses a deck of cards for the cyphertext and can use a second deck of cards for the key. Schneier describes the algorithm in detail on his website. (more…)
The Subversion experiment
So, I finally got around to taking Subversion and Tortoise SVN for a spin this weekend and have come to the conclusion that I won’t be using them—at least during this phase of the project. (more…)
Stalling…
I have to admit it. I’ve been stalling on the next step in HomeGame. But, I’ve had good reason.
The next step is installing and evaluating Subversion source control. While Subversion is garnering a lot of interest in the source control world, being the most interesting source control service is sort of like being the prettiest girl at ugly camp.
After doing everything genuinely productive to avoid taking on Subversion, I broke down and bought a Logitech Harmony 880 Advanced Universal Remote Control so that I would have something to program.
Actually, I tried to install Subversion and discovered that it’s an Apache plug-in, which means either setting up my laptop running Fedora 7 as a permanent server or trying to get Apache to coexist nicely with IIS on my main development machine if I want to run it locally.
Hopefully, I’ll find a workable solution this weekend and get it set up. But, now that I have the Harmony, I can control my DVD player and I have 300 waiting.
Back in New York, plans going forward
Wifezuki and I returned from Las Vegas early Sunday morning and have spent the day recovering from the travel, the vacation, and jet lag. Now that I’m settled in and rested, I’m looking forward to getting on with poker, programming, and building up this site to more than just a blog.
WSOP & WCF
Just a quick update: I haven’t had much time to do anything about HomeGame in the last week as I’ve been focused on getting to the WSOP. Packing my bags, wrapping things up at work, extracting cash from my bank, and getting in as much poker as I can before leaving for Vegas have left me with almost no time.
I did start reading Programming WCF Services by Juval Lowy this week and it’s forced me to re-evaluate my approach to the transport protocol for HomeGame. Originally, I was going to write about the idea of HomeGame as a protocol, along the lines of something like HTTP or POP3. The idea was clean and elegant and would allow easier debugging through telnet using a client like puTTY. In that model, HomeGame would open a port and listen for text-based messages and reply with text-based responses.
Keeping the dealer from peeking
This weekend, I was kicking around a particularly large problem with HomeGame that I still don’t have an answer for. It’s the dilemma of self-dealing. Here’s the problem in a nutshell: In a self-dealt game, the dealer doesn’t know the cards he’s dealing out, but the person receiving them does. However, the dealer also has to be able to verify that the cards each player turns up are, in fact, the cards they were dealt.
Filling the toolbox for HomeGame
Since HomeGame is the first major project I’ve undertaken at home in a few years (and a couple of computer upgrades,) I don’t really have what I would consider a “shop” at home. I have a compiler of course, but I’m talking about the tools and libraries that end up being needed in any project of this size.
The Big Project
One of the things that prompted me to start this blog was to write about the project I’m starting, It’s called HomeGame.
The basic premise is this: Nearly all Internet games are played client-server style. There’s one big server that’s responsible for keeping track of score, dealing cards, and basically being the house. But, that’s not the only way to play the game.