topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Friday April 19, 2024, 12:25 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Ligare  (Read 8677 times)

Martin_130286

  • Member
  • Joined in 2007
  • **
  • Posts: 12
    • View Profile
    • Invalid Cast
    • Read more about this member.
    • Donate to Member
Ligare
« on: January 24, 2007, 06:46 PM »
I wrote a small application a while back that I thought might be of interest to some people.
I'll present it here in-case anybody finds it interesting and wants to use it. It's completely free so try it out.

Ligare is basically a small Win32 utility which takes a single input file and binds it to an 'extractor' executable, which contains a copy of the input file after it has been encrypted using an RC4 derivative encryption algorithm.

The idea behind Ligare is for allowing the safe hosting of a file no matter where it is. Think of it as password protecting any file. It's main personal goal was for me to be able to host source code or programs on a webserver and know that only people I give the password to could actually access it.

Another possible use of Ligare could be for licensing on small utility programs. The encryption key could just be a serial number that could be generated for each separate copy. (Just an idea though)

http://img408.imageshack.us/img408/8492/ss10ot.png
Ligare


This particular example binds & encrypts the file Main.cpp and produces the output file Main.ligare.exe.
Please note: data is only bound, no compression is used and so the resulting executable size will be the size of the original source data + the 'extractor' executable.

http://img261.imageshack.us/img261/1240/ss24pq.png
Ligare


On running the output file Main.ligare.exe, the extractor program appears allowing you to enter the encryption key and extract the original file:

http://img252.imageshack.us/img252/8741/ss38pt.png
Ligare


Assuming the correct key was entered, the original file will be extracted and decrypted and should work as normal. If an incorrect key is entered, the actual output file will be another level of encryption with the newly entered key.

I hope someone can find use for it and feel free to leave your comments and suggestions, I may still make small changes if people need me to.

Thanks, Martin.

CodeTRUCKER

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,085
    • View Profile
    • Donate to Member
Re: Ligare
« Reply #1 on: January 24, 2007, 10:21 PM »
Nice!  Thanks for sharing.
« Last Edit: May 13, 2009, 05:44 PM by CodeTRUCKER »

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,900
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: Ligare
« Reply #2 on: January 24, 2007, 10:32 PM »
Welcome to the site Martin  :up:

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Ligare
« Reply #3 on: January 25, 2007, 04:05 AM »
Hmm, "RC4 derivative encryption algorithm." - isn't RC4 relatively weak? And why "derivative"? IMHO it's better to use strong standard algorithm than trying to fix up a weak one :)

The app looks nice though, and is something that I had considered writing myself.
- carpe noctem

app103

  • That scary taskbar girl
  • Global Moderator
  • Joined in 2006
  • *****
  • Posts: 5,884
    • View Profile
    • Donate to Member
Re: Ligare
« Reply #4 on: January 25, 2007, 04:36 AM »
I tested this on 9x for Martin last year. It works well.

So if you are running 9x and want to try this, there shouldn't be a problem.



Martin, do you still have the .pdf file that goes with this?

It might be of interest to someone like f0dder.

Martin_130286

  • Member
  • Joined in 2007
  • **
  • Posts: 12
    • View Profile
    • Invalid Cast
    • Read more about this member.
    • Donate to Member
Re: Ligare
« Reply #5 on: January 25, 2007, 05:59 AM »
Thanks for the comments, it's really nice to see that the app I made ages ago might be used by someone and it wasn't a waste of time :)

Hmm, "RC4 derivative encryption algorithm." - isn't RC4 relatively weak? And why "derivative"? IMHO it's better to use strong standard algorithm than trying to fix up a weak one :)

The app looks nice though, and is something that I had considered writing myself.


You're absolutely right f0dder, it is relatively weak and I agree that using a stronger more recent algorithm would have made Ligare more secure. The reason I actually used this algorithm is two-fold. Firstly I had to write a research paper about RC4 (for its use in WEP) and secondly, having read and understood much of the algorithm... I wanted to see if I could implement it. Ligare is that experiment; rather than an attempt to create a maximally secure binding application.

I used the word derivative because I played around with the key scheduling algorithm and made it non-standard ... so I can't claim it is RC4 anymore.

Martin, do you still have the .pdf file that goes with this?

It might be of interest to someone like f0dder.

Yeah good suggestion april. After a bit of searching I managed to find it again. It's basically the paper I wrote that describes the algorithm - for anyone who wants to know how 'insecure' Ligare is :D

Thanks again for everyone's interest, it's nice to see it finally noticed. (and special thanks to Gothi[c] for his donation - a pleasant surprise this morning)

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Ligare
« Reply #6 on: January 25, 2007, 09:43 AM »
Nice, I'll check the PDF when I get home from work :)

What about doing a "secure version" :) using Rijndael?
- carpe noctem