<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6634344480018698443</id><updated>2011-11-28T04:53:16.726+05:30</updated><title type='text'>Samir Vaidya</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-7630644721061094592</id><published>2009-07-26T15:45:00.002+05:30</published><updated>2009-07-26T15:49:09.402+05:30</updated><title type='text'>www.openstego.info</title><content type='html'>I recently bought the domain name &lt;a href="http://www.openstego.info"&gt;www.openstego.info&lt;/a&gt;. It currently points to &lt;a href="http://openstego.sourceforge.net"&gt;OpenStego Homepage&lt;/a&gt; on SourceForge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-7630644721061094592?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/7630644721061094592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=7630644721061094592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/7630644721061094592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/7630644721061094592'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2009/07/wwwopenstegoinfo.html' title='www.openstego.info'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-1359426229317409338</id><published>2009-07-04T09:50:00.003+05:30</published><updated>2009-07-04T10:00:52.605+05:30</updated><title type='text'>OpenStego article/software in Japanese Magazine</title><content type='html'>I came to Tokyo recently. One day at leisure, I was just searching for sites which had mention of OpenStego, and guess what - I saw one Japanese Magazine "Linux Nikkei (Linux日経)" website mentioning OpenStego in the "Table of Contents" of their July edition.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I went and bought it at the earliest, and was pleasantly surprised to find that they had included OpenStego v0.5.2 in the DVD, and also a great 2 page article on the functionality. The article author has explained it in excellent details, alongwith good diagrams and screenshots. It is better than what I would have written to explain the functions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The link for magazine article (in Japanese) is at:&lt;/div&gt;&lt;div&gt;&lt;a href="http://bizboard.nikkeibp.co.jp/kijiken/summary/20090615/LIN0118H_1465907a.html"&gt;http://bizboard.nikkeibp.co.jp/kijiken/summary/20090615/LIN0118H_1465907a.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Article can be downloaded for ￥158 only.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Great going. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After getting inspired by this act, I have translated OpenStego in Japanese. I have not released it yet, but once it is released, if your OS locale is Japanese, then OpenStego UI and command line help will be in Japanese.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-1359426229317409338?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/1359426229317409338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=1359426229317409338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/1359426229317409338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/1359426229317409338'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2009/07/openstego-articlesoftware-in-japanese.html' title='OpenStego article/software in Japanese Magazine'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-6186982596740793969</id><published>2008-10-04T23:46:00.000+05:30</published><updated>2008-10-04T23:56:55.562+05:30</updated><title type='text'>VLE distributed with c't Magazine</title><content type='html'>Few months back I had received a mail from the German &lt;a href="http://ctmagazin.de/"&gt;c't&lt;/a&gt; tech magazine asking whether they can include my &lt;a href="http://vle-java.sourceforge.net/"&gt;Vapour Liquid Equilibrium for Java&lt;/a&gt; (VLE) in their magazine's accompanying CD. I obviously said yes.&lt;br /&gt;&lt;br /&gt;I got a surprise last week when I received the free copy of the magazine (issue number 17/2008) home delivered in India. The accompanying CD includes VLE v0.2. It was a bigger surprise to see the review of the software in the magazine along with a nice screenshot!&lt;br /&gt;&lt;br /&gt;It is real joy know that people consider such amateur work to be worthy of distribution with magazine. Such things make spending personal time on open source software all the more worthwhile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-6186982596740793969?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/6186982596740793969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=6186982596740793969' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/6186982596740793969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/6186982596740793969'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/10/vle-distributed-with-ct-magazine.html' title='VLE distributed with c&apos;t Magazine'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-8621957865938869052</id><published>2008-10-01T23:44:00.000+05:30</published><updated>2008-10-01T23:48:26.049+05:30</updated><title type='text'>Added Debian Package for OpenStego for Easy Installation</title><content type='html'>Debian package for &lt;a href="http://openstego.sourceforge.net/"&gt;OpenStego&lt;/a&gt; v0.5.0 has been added in Sourceforge downloads.&lt;br /&gt;&lt;br /&gt;Ubuntu (or any other Debian based distro) users can now just download that file and install by just double-clicking the icon for the downloaded ".deb" file. It can also be easily installed from command-line using:&lt;br /&gt;&lt;br /&gt;$ sudo dpkg -i openstego-0.5.0-1.deb&lt;br /&gt;&lt;br /&gt;Please let me know in case if anyone faces installation issues using this package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-8621957865938869052?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/8621957865938869052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=8621957865938869052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/8621957865938869052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/8621957865938869052'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/10/added-debian-package-for-openstego-for.html' title='Added Debian Package for OpenStego for Easy Installation'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-474307554099474346</id><published>2008-09-28T22:16:00.000+05:30</published><updated>2008-09-28T22:25:21.446+05:30</updated><title type='text'>Support for Bulk Image Processing in OpenStego</title><content type='html'>&lt;a href="http://openstego.sourceforge.net"&gt;OpenStego&lt;/a&gt; v0.5.0 has been released today, and it adds support to process multiple cover files in one go.&lt;br /&gt;&lt;br /&gt;The "Cover File" box in the GUI now allows selection of multiple files. It also supports wildcard characters - '*' matches any number of characters and '?' matches exactly one character.&lt;br /&gt;&lt;br /&gt;For example, if you want to embed a given message in all PNG files in "C:\test" folder for which the name starts with "image", then you can give Cover File value as:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\test\image*.png&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This feature would be particularly useful when you are using OpenStego as watermarking solution. You can select all you images and embed your signature / copyright message in bulk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-474307554099474346?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/474307554099474346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=474307554099474346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/474307554099474346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/474307554099474346'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/09/support-for-bulk-image-processing-in.html' title='Support for Bulk Image Processing in OpenStego'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-3820688060779968969</id><published>2008-03-14T16:46:00.000+05:30</published><updated>2008-03-14T16:57:26.942+05:30</updated><title type='text'>Added RandomLSB algorithm support to OpenStego</title><content type='html'>Today, I released v0.4.2 of &lt;a href="http://openstego.sourceforge.net/"&gt;OpenStego&lt;/a&gt;. It has now support for one more algorithm - RandomLSB.&lt;br /&gt;This is similar to the regular LSB algorithm except that instead of using Least Significant Bits of image in sequence, it writes in a pseudo-random order.&lt;br /&gt;&lt;br /&gt;The random number generator is seeded using password hash. And so the sequence of bits written is dependent on the password.&lt;br /&gt;&lt;br /&gt;This should now give a more robust method of embedding data, which will be difficult to detect using statistical analysis. The method is definitely slower compared to regular LSB algorithm, but is more secure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-3820688060779968969?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/3820688060779968969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=3820688060779968969' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/3820688060779968969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/3820688060779968969'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/03/added-randomlsb-algorithm-support-to.html' title='Added RandomLSB algorithm support to OpenStego'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-1660960726911049593</id><published>2008-02-11T18:20:00.000+05:30</published><updated>2008-02-11T18:37:51.937+05:30</updated><title type='text'>Addition of Plugin Support in OpenStego</title><content type='html'>Today, I released OpenStego v0.4.0, with support for external plugins for steganographic algorithms. Most of the source files were restructured / refactored to provide this support.&lt;br /&gt;&lt;br /&gt;New plugins can be added by implementing this abstract class from OpenStego:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;net.sourceforge.openstego.OpenStegoPlugin&lt;/li&gt;&lt;/ul&gt;It consists of the following abstract methods:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;getName():&lt;/span&gt; This method should return a short name for the algorithm / plugin&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;getDescription(): &lt;/span&gt;This method should return a one line description of the algorithm / plugin&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;embedData(): &lt;/span&gt;This method should embed the given message into the given cover data and return back the stego data&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;extractMsgFileName(): &lt;/span&gt;This method should return the embedded message file name from the given stego data&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;extractData(): &lt;/span&gt;This method should return the embedded message data from the given stego data&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;canHandle(): &lt;/span&gt;This method should return true if this plugin can handle the given stego data&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;getReadableFileExtensions(): &lt;/span&gt;This method should return the list of file extensions that this plugin can read (where file is the coverfile)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;getWritableFileExtensions(): &lt;/span&gt;This method should return the list of file extensions that this plugin can write (where file is the stegofile)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;populateStdCmdLineOptions(): &lt;/span&gt;This method should populate the new command line options that it is going to handle&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;getUsage(): &lt;/span&gt;This method should return the help message to be displayed for this plugin&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;getEmbedOptionsUI(): &lt;/span&gt;This method should return an object which implements the net.sourceforge.openstego.ui.PluginEmbedOptionsUI class. This class extends the JPanel class. The object returned by this method is embedded inside the OpenStego GUI, when this plugin is selected&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;createConfig(): &lt;/span&gt;Three methods to create instance of OpenStegoConfig object (or its sub-class if this plugin extends the same)&lt;/li&gt;&lt;/ul&gt;OpenStego supports multiple languages and so, ideally, any new plugin added to OpenStego should also support the same. The following class can be used for handling multilingual labels:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;net.sourceforge.openstego.util.LabelUtil&lt;/li&gt;&lt;/ul&gt;A new namespace should be added to LabelUtil class for each new plugin. Same namespace can also be used for exception messages while throwing OpenStegoException.&lt;br /&gt;&lt;br /&gt;After implementing the OpenStegoPlugin class, create a new file named "OpenStegoPlugins.external" and put the fully qualified name of the new class in the file. Make sure that this file is put directly under the CLASSPATH while invoking the application.&lt;br /&gt;&lt;br /&gt;That's all to adding new plugin for OpenStego.&lt;br /&gt;&lt;br /&gt;Please refer to the "net.sourceforge.openstego.plugin.lsb" package sources for sample plugin implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-1660960726911049593?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/1660960726911049593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=1660960726911049593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/1660960726911049593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/1660960726911049593'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/02/addition-of-plugin-support-in-openstego.html' title='Addition of Plugin Support in OpenStego'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-7186027750978524467</id><published>2008-01-23T12:11:00.000+05:30</published><updated>2008-01-23T13:40:43.197+05:30</updated><title type='text'>Usage of OpenStego in LOST</title><content type='html'>OpenStego was used to embed some secret message in an image by the creators of the alternate reality game LOST (&lt;a href="http://lostpedia.com/wiki/The_Lost_Experience"&gt;http://lostpedia.com/wiki/The_Lost_Experience&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The data was password protected, because of which I got a huge number of queries on how to find out the password from the stegged file. This is the reply that I have:&lt;br /&gt;&lt;br /&gt;"There is no way to get back the password from the stegged data. Problem is that the password is first hashed using MD5 - which a is one-way algorithm. This means that getting back the password is next to impossible. Only option is to use brute-force hacking of the password."&lt;br /&gt;&lt;br /&gt;Lot of people tried varied range of passwords manually. One thing they found out was that OpenStego was accepting "README.txt" as password, but it was throwing some other exception related to GZIP. The problem is that the "PBEwithMD5andDES" algorithm accepts wide range of passwords for decryption - only thing is that it would generate garbage if password is wrong. Now as the data gets compressed first using GZIP before encrypting, while decrypting if wrong password is given (which matches the padding and so doesn't give Invalid Password message), then garbage data is generated. And when OpenStego tries to decompress it using GZIP, it gives GZIP exception because of wrong data.&lt;br /&gt;&lt;br /&gt;Going by LostPedia, it can be seen that people have finally found out the actual password from other clues in the game.&lt;br /&gt;&lt;br /&gt;I am going to update OpenStego, so that if GZIP exception is encountered then it will give a message: "Either the embedded data is corrupt, or invalid password was provided".&lt;br /&gt;&lt;br /&gt;One good thing was that OpenStego got good amount of publicity due to LOST game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-7186027750978524467?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/7186027750978524467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=7186027750978524467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/7186027750978524467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/7186027750978524467'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/01/usage-of-openstego-in-lost.html' title='Usage of OpenStego in LOST'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-15864673993085633</id><published>2008-01-17T14:41:00.000+05:30</published><updated>2008-01-17T14:49:05.372+05:30</updated><title type='text'>Website for OpenStego</title><content type='html'>I had created a very simple single-page website for OpenStego which was bare minimum, and was not very clean on how and why OpenStego should be used.&lt;br /&gt;&lt;br /&gt;I was revamping it for past two days, and today I have published the same. It can be accessed at &lt;a href="http://openstego.sourceforge.net/"&gt;http://openstego.sourceforge.net&lt;/a&gt;. It includes the following now:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is Steganography&lt;/li&gt;&lt;li&gt;Using OpenStego GUI&lt;/li&gt;&lt;li&gt;Using OpenStego from Command-line&lt;/li&gt;&lt;li&gt;Features and ToDo List&lt;/li&gt;&lt;li&gt;Full changelog since v0.1.1&lt;/li&gt;&lt;/ul&gt;Please visit the same and let me know if you feel it needs something more / less.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-15864673993085633?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/15864673993085633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=15864673993085633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/15864673993085633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/15864673993085633'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/01/website-for-openstego.html' title='Website for OpenStego'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-6406892488821241435</id><published>2008-01-10T11:30:00.000+05:30</published><updated>2008-01-10T11:40:23.199+05:30</updated><title type='text'>Cryptography support in OpenStego</title><content type='html'>Cryptography support in OpenStego is pretty straightforward. It directly uses the Cryptography support provided by Sun's JRE which was added starting with version 1.4. Thus OpenStego will need at least JRE 1.4 to run.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/crypto/Cipher.html"&gt;&lt;span style="font-weight: bold;"&gt;javax.crypto.Cipher&lt;/span&gt;&lt;/a&gt; class is used for cryptography. &lt;span style="font-weight: bold;"&gt;PBEWithMD5AndDES&lt;/span&gt; is the algorithm used for encryption (Password based encryption which uses MD5 hash of the password to generate the key for DES which does actual encryption).&lt;br /&gt;&lt;br /&gt;I would like to add support for other algorithms like &lt;span style="font-weight: bold;"&gt;AES&lt;/span&gt;, but I think, as of now, DES support is enough.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-6406892488821241435?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/6406892488821241435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=6406892488821241435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/6406892488821241435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/6406892488821241435'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/01/cryptography-support-in-openstego.html' title='Cryptography support in OpenStego'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-3846532479161785593</id><published>2008-01-04T11:08:00.000+05:30</published><updated>2008-01-04T11:36:24.362+05:30</updated><title type='text'>OpenStego: Stint with Steganography</title><content type='html'>I got first interested in &lt;a href="http://en.wikipedia.org/wiki/Steganography"&gt;Steganography&lt;/a&gt; while reading the novel &lt;a href="http://www.harpercollins.com/books/9780060512804/Cryptonomicon/index.aspx"&gt;Cryptonomicon&lt;/a&gt; by Neal Stephenson. It talked about hiding data using the lowest bit of the color data of pixels in the picture. Concept is fairly simple, and I was able to quickly implement it using Java. Thus, &lt;a href="http://sourceforge.net/projects/openstego"&gt;OpenStego&lt;/a&gt; project came into existence.&lt;br /&gt;&lt;br /&gt;The core of the application are two classes: &lt;span style="font-weight: bold;"&gt;StegoInputStream&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;StegoOutputStream&lt;/span&gt;. Implementing the steganography routine as streams helped a lot in keeping the design simple.&lt;br /&gt;&lt;br /&gt;StegoOutputStream is used to write the message into the cover (source image) file. Here are the steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On initialization, we need to provide the length of the data that we want to embed in the image.&lt;/li&gt;&lt;li&gt;Based on this length, first it tries to calculate how many bits are required per pixel per color channel. As OpenStego supports only 24bpp images, we have maximum of 8 bits per color channel that we can use. But if data uses more that 3 bits, the original image will start loosing its color data, and it becomes easy for someone to find out that something is hidden inside the image.&lt;/li&gt;&lt;li&gt;It creates the header data, which includes Magic String for OpenStego, number of bits used per channel, name of the message file, and other stuff like whether compression is used or not, whether data is encrypted or not, etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This header data is prefixed to the original message data, so that it gets written first.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;After determining number of bits required per channel, it starts embedding data one byte at a time. For each input byte, it breaks it up in group of number of bits determined, and then updates the pixel's color value accordingly (lowest bits are updated).&lt;/li&gt;&lt;li&gt;It maintains the position of the last pixel / color / bit that was updated, so that data for next byte is updated from there onwards.&lt;/li&gt;&lt;/ul&gt;StegoInputStream is used to read the data back from the image. Following steps are used:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Data is read from the image one byte at a time.&lt;/li&gt;&lt;li&gt;First the header data is read and it is determined whether the image is a valid stego file or not (based on the existence of Magic String for OpenStego).&lt;/li&gt;&lt;li&gt;The header data also contains the number of bits that were used per color channel while embedding the data.&lt;/li&gt;&lt;li&gt;Based on the number of bits per color channel, that many number of lowest bits are read from each color channel of each pixel.&lt;/li&gt;&lt;li&gt;Again, the position of the last pixel / color / bit that was read is maintained, so that data of next byte can be read from there onwards.&lt;/li&gt;&lt;/ul&gt;I'll talk about encryption of data in the next blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-3846532479161785593?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/3846532479161785593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=3846532479161785593' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/3846532479161785593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/3846532479161785593'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/01/openstego-stint-with-steganography.html' title='OpenStego: Stint with Steganography'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-9070638871180566254</id><published>2008-01-02T15:44:00.000+05:30</published><updated>2008-01-02T16:05:05.775+05:30</updated><title type='text'>About Vapour Liquid Equilibrium project</title><content type='html'>I studied chemical engineering at the university. During that time, I had created a C program for performing Vapour Liquid Equilibrium (VLE) calculations (along with support to generate graphs). It was coded in Turbo C++ on DOS.&lt;br /&gt;&lt;br /&gt;After graduating from the university, I got to know about open-source and felt that I should publish it on &lt;a href="http://sourceforge.net"&gt;Sourceforge&lt;/a&gt;. Thus, my first open-source &lt;a href="http://sourceforge.net/projects/vle-java"&gt;project&lt;/a&gt; came into existence. I converted the C code to Java, cleaned it up, and added documentation. The code is now well structured with support for easy extension.&lt;br /&gt;&lt;br /&gt;VLE calculations involve two main things:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Calculating Activity coefficient&lt;/li&gt;&lt;li&gt;Calculating Fugacity coefficient&lt;/li&gt;&lt;/ul&gt;There are wide variety of methods available for calculating both of these. To keep the rest of the calculations generic, I first created Java interface files for Activity and Fugacity calculations (IActivityCalculator and IFugacityCalculator). For each method of calculation, we can implement these interfaces, and just update configuration files (activity.properties / fugacity.properties) to add the support for new method.&lt;br /&gt;&lt;br /&gt;Currently, I have included support for:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Activity Calculators&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Margule's Equations&lt;/li&gt;&lt;li&gt;Van Laar's Equations&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Fugacity Calculators&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Virial Equations&lt;/li&gt;&lt;li&gt;Redlich-Kwong Equation&lt;/li&gt;&lt;li&gt;Peng-Robinson Equation&lt;/li&gt;&lt;/ol&gt;New methods like UNIFAC, UNIQUAC, Wilson-NRTL, etc. can be added easily. I have lost touch with Chemical Engineering, and so it seems that there won't be any further updates to this project from my side.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-9070638871180566254?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/9070638871180566254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=9070638871180566254' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/9070638871180566254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/9070638871180566254'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2008/01/about-vapour-liquid-equilibrium-project.html' title='About Vapour Liquid Equilibrium project'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6634344480018698443.post-1131650374802894588</id><published>2007-12-30T13:17:00.000+05:30</published><updated>2007-12-30T13:22:49.697+05:30</updated><title type='text'>About this Blog</title><content type='html'>I am going to blog about my opensource projects here. As of today, I have two projects published on &lt;a href="http://sourceforge.net"&gt;Sourceforge&lt;/a&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/vle-java"&gt;Vapour Liquid Equilibrium using Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/openstego"&gt;OpenStego&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;I will primarily publish about these projects, as well as other small projects that I have not published yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6634344480018698443-1131650374802894588?l=syvaidya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syvaidya.blogspot.com/feeds/1131650374802894588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6634344480018698443&amp;postID=1131650374802894588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/1131650374802894588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6634344480018698443/posts/default/1131650374802894588'/><link rel='alternate' type='text/html' href='http://syvaidya.blogspot.com/2007/12/about-this-blog.html' title='About this Blog'/><author><name>Samir Vaidya</name><uri>http://www.blogger.com/profile/16992350844595636785</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
