My name is Max Fierke. I write programs, design websites, and engage in other computer sciencey pursuits. I work mainly with C/C++, C#, and Java. I occasionally do some work in PHP and I'm looking into D.
Catching Elephant is a theme by Andy Taylor
Hey. Y’all go on Reddit?
Here’s a list of subreddits that have a stick up their ass. Any attempt at humor will be met with a ban, angry responses, or a barrage of negative internet points:
More to be added as I encounter them.
Max’s Absurdly Ugly and Severely TRite Algorithm Project
This is the new name for my block cipher crypto project. There’s some more news on that front as well. I’ve been resisting S-boxes and P-boxes for a while, but after writing my own implementation of Bruce Schneier’s Blowfish, I’ve grown to understand them and appreciate their value. I’ve taken a few design cues from Blowfish and have decided to use 4 very large S-boxes based on the hex digits of the Euler–Mascheroni constant (gamma) and one P-box based on the hex digits of Phi (the golden ratio). It will work on 128-bit blocks and use 2 sub keys per round. Other details are present, but I want to nail them down first, before sharing them.
I’ll be writing an implementation in C in the coming weeks so that I can do some tests and determine what I need to change.
The goal for MAUSTRAP will be speed. It consists of only arithmetic shifts and modular arithmetic which do not require complex CPU operations. Memory usage is/will be a little higher than some other algorithms due to the very large S-boxes (four arrays of 256 64bit hex digits of gamma) and the sizeable P-box (one array of 2+rounds+2 64bit hex digits). Luckily, all modern computers have caches large enough to hold the S- and P-boxes. It should only be an issue for very limited embedded devices.
I felt compelled to give a quick update. Things are going quite well with ArcaneCMS right now. I know I haven’t pushed anything to the Github in a few weeks, but that’s because I want to finish some of the features I am implementing. First off, I have nearly finished implementing all the frontend components. I’m working on the menu controller, the contact page controller and view, and I’m finishing up the blog/news controller and view. Most of the struggle is with the view as I figure out a good way to format everything visually and implement new ways to allow easy modifications of views through the use of themes. This leads into my next update: I’m revamping the theme engine. First off, I am replacing the % tags with Tumblr-esque {} curly brackets. This is just visually more appealing and familiar. Second, I am implementing various different types of standard views (think page templates) that can be overridden from Arcane’s default implementation by a user’s theme. This is being done similarly to how site templates work in a Simple Machines forum software or Wordpress.
The biggest news of all by far is that I am in the process of developing an installer for ArcaneCMS. I’m aiming to have it done two weeks from nowby the New Year. This will make it marginally easier to test. There’s still no backend yet, so there’s no good way to edit any content except via your database management tool. The backend is, however, in the planning stages. I have decided on implementing CKEditor to handle all text editing in ArcaneCMS.
I’m aiming for a Feb. alpha or beta release but don’t be surprised if that doesn’t happen. Most of my work is subject to delays.
More to come soon/next month!
ArcaneCMS is a content management system written in PHP. It’s a rewrite of my former personal content management system. ArcaneCMS is designed to be lightweight, simple to implement into existing designs and sites, and almost invisible to the visitor (unlike certain CMSs coughJoomlaAndDrupalcough). ArcaneCMS runs on the Simple PHP Framework and a heavily modified version of the Enrober PHP theme engine. I’ve been working on this project a lot in the past few days, but it is by no means ready for any kind of use.
(Source: corderouge)
Quite a bit has changed since the last update from April-ish. I’ve started a ton of new projects and have gotten quite far in them. A few of the projects of course have to do with the stream cipher I have been working on these past few months. We will start with that.
MEA - Working on it since Jan. 2011
I’m on Rev.8 of the stream cipher I codenamed MEA or Max’s Encryption Algorithm. I would like to stress that this is not the final name for I am not that much of an egotist. I have the key scheduling algorithm to a point where I am comfortable with it, but I would like to do some more work on the keystream generator before I let other people fiddle around with it. I’ve integrated it in a few programs so far and it works for simple obfuscation and basic encryption l but its somewhat vulnerable to a chosen-plaintext attack and I wouldn’t recommend using it for anything important. Nonetheless, I’m learning more about the creation of stream ciphers everyday and I’m still working on ways to improve it.
NoneShallPass - Working on it since Jan. 2011. On hold since late March. 2011
This was a project I did for my father who was getting tired of writing all of his passwords down on a little card. He wanted a password manager to do it instead and he didn’t feel like learning how to use something like KeePass. Anyway, I wrote him this application in Java so that he could use it on his Mac and PC. It’s pretty simple right now, just a single Swing table that loads site data in CSV form from an MEA container format. I’ll release it as open source at some point but I want to fix a few things, add a few things, and then switch it from my stream cipher to the new block cipher I’m working on (I’ll talk about that in a sec).
SandwichRoulette - Working on it since May 2011. On hold since late June. 2011
I came up with the idea for SandwichRoulette when I was at Subway with my friend. I didn’t know what to get and I figured it would be interesting to have an app that decided for me. I worked on it extensively the last two weeks of May and the first two weeks of June. The 1.0 beta build I have has all the basic features I want: randomizes the ingredients at the click of a button, allows excluding certain ingredients, and facilitates the saving and opening of sandwiches for later use. Some friends suggested I add a few more features before I put it on the Android Market to justify any revenue I make from the app (ad-supported or paid app). I’m going to try and get it up by September at some point.
Unnamed P2P Chat Program - Working on since July 1 2011.
This project was started because I felt like testing my C# implementation of my stream cipher on a simple project that will be of little use. It currently uses MEA to encrypt the message data before it’s sent out via UDP. I know someone is going to ask something along the lines of “WHY ARE YOU USING UDP? DO YOU KNOW IT’S CONNECTIONLESS???”. I don’t have a real good answer for this other than, I don’t really care right now and UDP seemed simpler to implement. It works right now but requires the two peers to have decided on a keyfile before hand. It would actually make a lot more sense to use public key cryptography but this is really only for me to learn more about network programming and stream cipher implementation. To be honest I’m not even sure that there will be an actual reason for using this, ever. It’ll probably just serve as something of a demo for MEA.
MAUS - Working on since July 3 2011.
MAUS is the block cipher I just started working on. I came up with the name last night around 4AM when I saw mouse while I was working on the rounding function design and listening to deadmau5. I already have the basics down and I’m working on nailing down the actual algorithms. It’s using a feistel network using 64, 128, or 256 bit blocks of data. It has no requirements for number of rounds but I will probably end up suggesting something around 16 rounds. The initialization vector needs to be the same as the block size. The key size constraints have yet to be nailed down. I suspect when I implement the final product, I will only allow 128 bit, 192 bit, 256 bit, 448 bit, and maybe 512 bit. I’m on the second revision of the key scheduling algorithm and third revision of the rounding function.
Soooo… all that was just a basic rundown of what I have been up to the last few months programming wise. Just yesterday I compiled a test build of Angstrom Linux for my PDA, the Dell Axim X51. I’m going to test it at some point in the next few days to determine whether or not I want to create an actual Angstrom distribution for it.
I’ve decided to switch my blog over to Tumblr because it requires a lot less maintenance. I was always needing to update Wordpress and I think it’s time to start anew anyway. The other blog was getting kind of cluttered.
I have some news about the encryption algorithm I’m developing, as well as a few projects I have started in the past few months that I can show you (that is if anyone still reads my blog). Stay tuned, there will be some stuff up about it in the next few days.