It has been quite a while since I last made a post here. In the near future I plan on starting blogging about my experiences in programming (and other related topics) again. Hopefully I will be able to provide some information related to the “Learning Japanese” program that I am slowly putting together.
It has been a while since I posted so here is an update for you guys. I should (hopefully) have some time to post some more blog posts detailing my current projects over the next week or so.
My image encryption tool (now known as PGIE – Pretty Good Image Encryption) is finally completed. Anyone wishing to test it is welcome to ask me about it.
Here is a little description that I threw together about the program.
Have you ever had a secret you wanted to hide in plain sight while still feeling secure? If so PGIE is just the program for you!
PGIE uses an innovative and unique mix of new and traditional encryption techniques to store data within a randomly generated pixel image that can only be decoded using a special key file.
How It Works:
PGIE first encrypts the data using a Rijndael symmetric algorithm. The key used to encrypt the data is a randomly generated 1024-bit binary key that is unique to each encode.
The encrypted data is then split into sections and stored within the image. The data is then further secured by modifying the file based on the information stored within the key file. Finally the image is modified to make the original entry point unreadable.
If either the key file or encoded images are modified or damaged then the encryption is one way.
In order for a brute force attack to be successful on this encryption the whole key file image would have to be guessed precisely; every red, green, blue and alpha component would have to match the original in order for the decryption to occur successfully. This would take a very, very long time to achieve with modern computers. See the technical details section below.
There are a set of 65,535 possible characters that can be used in the encryption key and the key is 1024 characters in length. This means that there are 65535^1024 possible key sets to choose from – one very large number! In the simplest terms possible – if a computer can generate a billion keys per second then it would take far, far longer than the universe has existed to forcibly break.
There are four channels for data within a PNG pixel, red, green, blue and alpha. Each of these can range in value from 0-255. That means that there are 256^4 possible colour values per pixel (4,294,967,296). As the image size grows more pixels need to be correctly guessed in order to decode the image. As such each added pixel makes the image more difficult to decode again, making it virtually impossible to forcibly break.
It has been a while since I last posted. Unfortunately my recent work with CCC has kept me busy and away from my personal projects. However as I currently have some spare time I have decided to revive the old CSIT project and revisit the idea.
I will be starting work on the project in short order (probably tomorrow or later next week). The project will probably still be called CSIT (Complete System Information Tool-kit) and will be similar to the old ideas for CSIT but not identical.
I am currently working on the plans for the design and core code ideas. The project will be based around C++, ASM, C# and WPF.
This is a follow-up to the article I posted earlier this year.
The US have now started seizing domain names, against the wishes of their own people and the rest of the world. They need to be taught a lesson, that they are not gods and do not control the fate of the internet. The WORLD Wide Web should remain as such, a global system. Allowing one country to selectively control and censor it would make the internet far less useful and would become a politician weapon.
This needs to stop, right now. For the moment they have started taking control over torrent site domain names, which can be easily corrected by using the hosts file – which I will describe in a later post.
To anyone living in the US who may be reading, if you value freedom on the internet please protest to whomever you think can help.
You can read the full article on torrent freak here.
Here I am, writing about yet another one of my projects. This time I have decided to work on a program relating to a subject that is both close to my heart and one that some people find difficult to understand – chemistry.
I am thus building a tool to help people understand and solve chemistry related issues, it comes with a periodic table (as shown below) a chemistry calculator as well as some other features. As always I am open to suggestions and help should you wish to contribute either.
I will post developments on this project as I complete or start work on various parts of it so stay tuned for more! (Yes, I did copy the colours from the Wikipedia Periodic Table but I am colour blind so that was the best I could do under the circumstances!)
In an earlier post I said I would explain a little about the the format used in my new data encoder and so here it is.
The images are stored in PNG, not any other type of format, because PNG supports full alpha transparency. The data is encoded by converting the text into binary data and then these are converted into pixels of colour, with the data stored in one of the 4 colour components (red, green, blue, alpha).
Certain operations are then done on this data to make it harder to recover and the remaining spaces are filled in with randomly generated pixels.
I am pleased to announce that the new image encryption tool I was working on is now completed, boasting some new features that I will post about later. I also hope to post about the format, and how the data is stored (though I will keep some of the details hidden to ensure the format remains secure). If anyone wishes to beta test the software then please context me.
But for now I am going to get some much deserved rest. Keep an eye here for more information soon.
I have just been reading a rather interesting article on TorrentFreak about a new law that the US government hopes to pass, for which I quote the title of the post on TorrentFreak.
United States lawmakers have proposed new legislation today that would allow the Department of Justice to take over domain names of websites that promote copyright infringement. The proposed bill would allow for court orders against domestic as well as foreign sites, which could potentially shutter many torrent sites including The Pirate Bay.
What the hell does the US think they are doing? Until now no political body has owned the rights to control the internet on that level, for whatever reason, and suddenly the US comes along and decides they have that right? How is it that the US feels they have the right to decide to impose their laws in other countries? Copyright law does not apply everywhere and it varies greatly from country to country… I fail to see how they can claim to remove a copyright infringing website from a country that may have a different idea of copyright violations.
Someone really needs to slap some sense into the US, they are starting to cross lines that are better left alone. Leave the internet free of political influence or beware the consequences.
Since I now have some more spare time I have been working on a new tool that allows you to securely hide at most 4 pieces of information (each a maximum of 255 characters in length) inside a random pixel image. I am working on ways to use this technique inside real images, but that is somewhat more difficult and it may take a while to perfect, if it works at all.
The image appears to be a random pixel generated image with varying colours, usually with 50×50 pixels in dimension (but this is not required to be so). The image looks something like this:
… And when you open it in the decoder tool you get something like this:
The program is actually quite simple but the way in which the information is stored should make it quite difficult to break. However with the decoding tool I have designed, you need only open the image to retrieve the information. If anyone is interested in hearing more or has some ideas to contribute, please let me know. I will release more information about the system used and so on at a later time when I stabilize the idea and format.
It has been a busy week so I have not had much time to blog about my work and activities. Due to developments it seems the CoalFields funding for CCC will not be available in July as hoped – probably not until September or October. That is a pity but it will not stop us moving forward.
But! That is not why I am blogging today – I am here today to discuss some work I have been doing on the CSIT main interface.
After much deliberations between myself and Ashley Vaughan we argued the idea to the following interface style.
The design is simple, clean and should be easy to modify in the future. As you can see there are tabs dividing hardware and software (and there may be others there too). Next on the left of each tab there are the categories found under expanders. These will be made into accordion-style items eventually though I think it is more important to get the program working first. Finally on the right are the tabs containing the information from the selected category.
It was quite difficult deciding on one design since there were so many to choose from.
As always, any comments or suggestions relating to the design please post or contact me.