Granular Package Archive

Posted on 2 Comments

rpm_logoContinuing my Java learning stint, I started experimenting on RPM packages in the Granular 2008 repository by extracting meta data from them using various Java classes I had written for my on-going college major project. To give a shape (end-user interface) to these leisurely done Java programs, I used my existing project MyBlog to create a website that could display information (extracted by the Java programs) about every RPM package in the repository. In other words, the Java programs store information about each RPM package in a central database which in turn is used by a PHP-based website to display that information, and much more.

In the introduction to Granular Package Archive post I wrote on the Team Granular blog, I explained the various features it has to offer. My personal favorite is the ability to leave comments on individual RPM pages. Other than that, I am quite satisfied with the overall look-and-feel too. In another of my Team Granular blog post, I explained the working of this package archive system, and the way to use it with any other repository of RPM packages.

Some guys at the Unity Project are also contemplating the idea of using this package archive system with their repository too.

Use SMS English to make monoalphabetic cipher more secure

Posted on 5 Comments

This thought occurred to me when I was preparing for my end-semester exam of the Information Security Systems course. The course was all about computer networks, security, and cryptology. Before I come to the topic of this post, let me give a brief introduction to Monoalphabetic ciphers.

Monoalphabetic cipher is a way to encrypt data (convert data into a secret form) by substituting each alphabet of the message to be encrypted with some other alphabet such that the substitute alphabet chosen for each alphabet remains constant throughout the message.

Accourding to simonsingh.net:

The ciphers in this substitution section replace each letter with another letter according to the cipher alphabet. Ciphers in which the cipher alphabet remains unchanged throughout the message are called Monoalphabetic Substitution Ciphers.

Suppose we want to encrypt the following message:
Meet me today at twelve

If we choose to substitute the letter “e” with, say, “u”, the letter “m” with “a”, the letter “a” with “c”, the letter “t” with “n”, and so on…, we’ll get the encrypted text like this:
auun au nyxcz cn npukbu

When you pass this message to your friend to let him decrypt it (convert it back into the original message), it would be assumed that it’s only you and your friend who knows the letter mappings – as to which letter was substituted for which. It seems pretty efficient way of sharing secrets? But, nope, it isn’t that efficient as it can be easily broken.

The most common and simplest way to break a monoalphabetic cipher is by guessing each alphabet in the encrypted text by using the help of a table/graph containing the relative letter frequencies in English language. Consider the frequency chart as follows:

As you can see from the above figure that the most used letter in English language is “e”, followed by “t”, then “a”, then “o”, then “i”, and so on…

Now looking at out encrypted text “auun au nyxcz cn npukbu”, it can be noticed that:
the letter “u” occurs 5 times (most times)
the letter “n” occurs 4 times (second-most times)
the letter “c” occurs 2 times (third-most times)

So, the first guess would be:
“u” was substituted for “e”
“n” was substituted for “t”
“c” was substituted for “a”

Using this much analysis, we try to decrypt the text as:
_eet _e t__ay at t_e__e

So you see, it wouldn’t be hard from here on to guess the original message as “meet me today at twelve”.

But this task of breaking the cipher (cryptanalysis) could have been made more difficult for the “hacker” by using SMS English. Suppose we wanted to encrypt this message:
come for tea at club see you there

Now before encrypting this message, you first convert it into SMS English:
cm 4 t at klub c u dere

With this converted text, proceed with the normal monoalphabetic substitution, and make sure your message target (probably your friend) already has the letter mapping. The encrypted text would be very difficult to break as mere guessing of letters using letter frequency table would lead to revelation of utter gibberish. And there are no letter frequency charts (or at least none I could see) for SMS language.

So all you SMS addicts, worry no more. You can finally utilize your skills for some good cause. 🙂

MyBlog 0.5 released

Posted on 2 Comments

MyBlog is a very simple, nice looking, fast, and easy-to-use blogging application targeted to be used as personal blog. It has been completely coded in PHP, and uses MySQL as the database backend. Unlike many other blogging systems available, like WordPress, Movable Type, etc., MyBlog contains only those features that should be sufficient enough to maintain a personal blog. This adds to the fast speed blogging offered by MyBlog.

Read more about MyBlog or check out detailed features of it.

Some salient features of Myblog:

  • A full-featured Dashboard (admin area).
  • Uses FCKEditor for creating dealing with posts and adding comments.
  • Categories are supported.
  • There are specialized pages – MyWidgets, MyMovies, MyGames and MyWebsites.

Demo (see MyBlog live in action)
Download (browse through the download archive)

Happy blogging! 😀

Improved Jumbled Words Game

Posted on 3 Comments

Remember the little, cute Jumbled Words Game I prepared in Python? More than 4 months had passed since I made it, and now it was time it got some makeover. So, featuring a host of new improvements, here I am making the improved game available for download.

Installing and playing is easy. Just to remind the readers, the game is made in Python using the wxPython libraries for the graphical interface (GUI).

The Python source was converted into a Windows executable (.exe) using py2exe. An installer was made out of the executable using InnoSetup. Both are freely available for download and very easy to use. I’ll come up with a Linux executable soon. And maybe a Python Egg?

Changelog:
1. Words are now read from a text file
2. The words read from text file are jumbled automatically & randomly
3. Changed splash image
4. Improved font system
5. Score system
6. Improved overall interface

The various downloads are:

  • Setup – install the game from this like any normal application (Windows)
  • Zipped – just extract the zipped file and double-click on JumbledGUI.exe to play (Windows)
  • Source – the source code of the game in a zipped file (cross-platform)

I hope you like it. You may encounter bugs. If so, do let me know. Also, I would be happy to get some feedback from you regarding this little app. 🙂

Credits: The game was improved with suggestions and inputs from DaniWeb.com.

Jumbled Words Game Downloads

Posted on 2 Comments

As promised in my last post about my Python-based jumbled words game, here I am posting the game for download in various forms. As of now, the first and second forms are for Windows 2000/XP/2003/Vista only.

First is the normal setup in which you install the game by following those usual Next buttons.

Second is a zip file. Extract it, open the extracted folder and click on the JumbledGUI.exe file to start playing it.

Third is the zipped source code file + other required stuff.

Let me know about your experience with this little game. Any suggestions and comments are always welcome.

Note: There is one little bug in the setup / installer, and that is the shortcuts for the game executable created in the Start menu and (or) during the installation process won’t work. You’ll have to start the game by running the JumbledGUI.exe file in C:\Program Files\Jumbled Words Game, assuming that you have installed the game in the default location.

[ Icon from Indeepop.com ]