12th August, 2010

Allowing Open, Secure and Anonymous Electronic Voting for your Government! /--evilbitz   

I thought about a neat open-source project that might solve some electronic voting issues and may be used the reflect the opinion of the people that are managed by a certain government.

The Problem

performing a Referendum on a certain subject is a costly procedure that governments may do from time to time to grasp what is the opinion of the people on a certain idea/subject. The internet (along with information security) can make this cheaper and being used on a more frequent basis.

I’m not aware of any project that is being used in practice to solve this issue but I guess this problem was addressed by lot of people/organizations before me. Even if there are Academic definitions on this subject, I haven’t seen anything that provides what I’m about to unveil.

I here by give a design for such an open source project that may be used to solve this problem while keeping in mind that there are lots of problems that are related to information security.

Who should use this?

  • Governments
  • Companies
  • Organizations
  • Etc..

Features and Goals

The system should let millions of users in a group or citizens of a certain state to express their opinion in an anonymous way, the results of such a referendum should be transparent to anyone who wishes to count the voices. The government should have control of the questions asked but it may not alter or forge any vote.

So, to sum everything:

  • Mass – Allowing millions of users to vote
  • Communication – Voting is done electronically via the internet
  • Security – no forgery can be done, not by the government, not by the citizens and not by any external party
  • Anonymity – All votes are counted anonymously –> The government may have access to who voted
  • Transparency  – Also desired as a feature but is also a tool used to enable anonymous voting

Anti-Forgery

  • Votes should be visible to anyone
  • Votes should be carried out anonymously
        by anonymously, I mean that the government knows but the rest of the citizens doesn’t
  • Anyone can count the votes and validate that his own vote was counted
  • The goverment will not be able to alter votes made by citizens
  • The government will not be able to add “sock-puppet” votes to reflect a false opinion of the people
  • Citizens can vote once per question, and may have time to change their opinion

Technical Implementation

Both Client and Server must be open source, the security of this mechanism should always be questioned and further development may be accepted and embraced by everyone. Guess how the development of features will be managed? :)

Entities
  • Government (G) – the organization, controlled by the citizens
  • Citizen (C) – the user, member of a group
  • Validator (V) – An external, trusted server managed by the open-source community
Processes
  1. Citizen is issuing a key pair (see PKC) and send his public key to the government for authorization
    1. Citizen is added to the pool of allowed voters
    2. Citizen may be given a cheap dongle or a piece of hardware to keep his private key safe
    3. Other methods can be incorporated (that’s not the point :) )
  2. Government issues a question/referendum to all the citizens
    1. Citizens can view and vote
    2. Every question has a TTL (Time To Live – 3 days, for instance)
  3. Citizen votes. When the citizen votes
    1. The client asks the citizen to provide a unique passphrase for this particular vote, so later on the citizen would have the ability to check whether his vote was counted.
    2. The client sends the citizen’s vote to the government server which is then being validated using the citizen’s public key
    3. The client updates the Validator (a count server which is managed globally, outside of the control of the governement). The validator keeps track of the number of votes issued per question.
  4. Viewing of a vote’s result
    1. Per each referendum, a list of votes is appeared and near each vote, the unique passphrase. This way, each citizen can validate that his vote was counted.
    2. The Validator keeps track on the number of votes, thus not allowing not legitimates votes to be counted
    3. The Validator should act as a certificate authority

Final Utopia

Such a system may be used by any group members – it is secure, open and anonymous, just the way we like it in the 21st century. It isn’t costly and the maintenance is cheap. Questions may be raised more frequently by head of organizations or governments and it is letting the people decide what is best for them. It is a way of applying a true democracy that is consisting of millions of individuals.

And as always, the finale is something megalomaniac –>The UN may use this kind of system to hear the opinions of ALL people on earth :)



Posted in random | Be The First To Comment!

19th September, 2009

Accidently deleted your partition table? /--evilbitz   

In this post you can get some hints on what to do in case you accidently ruined your partition table, for example, you deleted one of your volumes (drive letters) and you cannot see it.

First of all, I want to start with a warning… doing this stuff to your hard disk may gets you to a point of frustration, losing all your data and getting the middle finger from the kind and beloved mr. samsung/WD/whatever/(made in China). I’m not gonna describe how to backup your hard drive, I assume you know that :)

The number one rule is to never try to edit or change anything from the Windows Disk Management tool, it’s crap. Most chances it is the reason for you ending  up on this page :)

Here are some information about the data structures that are used to manage your boot partitions, I’m not going in-depth here but rather just describing some basic things that are good to know. If you want, you can skip this section. Lets start with the MBR (Master Boot Record). The MBR contains a small piece of code at its begining, your BIOS loads it into memory and then exeute it in real mode. Anyways, the MBR basically just manages the entries in the partition table. Part of the MBR (at offset 0x1BE) is the partition table itself, there you have 4 entries to 4 Primary partitions on your disk, where each one can be defined at Extended and point to a number of Logical partitions (which used to be non-bootable, but today boot loaders handles them fine).

  • Primary – bootable partition
  • Extended – Pointer to a number of logical partitions
  • Logical – data partitions, intended to be non bootable

I would recommend reading more about this right here.

Here are some tools that you want to know:

  • TestDisk – this is a really good tool that can analyze every sector of your hard drive and find lost volumes, then it lets you edit the partition table and write it to disk.
  • Acronis Disk Director – good partition manager with disk editing capabilities, this is good if you want to investigate your sectors closely and see the data structures.

There are tons of other tools, I’m using these ones and they are great! I wouldn’t recommend hiren boot cd which has all these tools and more preinstalled and configured.

Ok, so here is the flow for reconstructing the partition table with TestDisk, and maybe add fixups using Windows bootrec.exe if you are running Vista.

  1. Execute TestDisk and let it analyze your disk, if it didn’t found exactly the partitions you are looking for, perform a deeper search. When you get the results all of the partitions are marked DELETED, you should turn the wanted partitions to Primary and Logical, the partition you used to boot into should be set to Primary Bootable.
  2. When you are ready, the partition table appears in a neat green color, telling you everything is ok. Write the partition table to disk.
  3. Try to boot the hard drive, if it fails, you may want to look at Super Grub and maybe later on, install to disk. Super Grub is a really handy boot loader that you can execute without installing to disk. It lets you boot from any partition. I’m not going to cover how to use Grub, try looking for info if you need this.
  4. If you are a windows user, insert the installation disk of windows vista, or download the neosmart recovery custom Vista disc, when the disc loads go to ‘Recovery’, and open a command prompt. Execute these commands:bootrec /fixmbr
    bootrec /fixboot
    bootrec /rebuildbcd

    See the output and confirm

  5. Load your operating system.

In case you want to hide some partitions, like the recovery partition of your laptop, you can user Acronis boot director.

Well that’s about it… even if this post doesn’t speak to you, just remember, never use the Windows Disk Management console :)

Thanks,
Guy.



Posted in random | Be The First To Comment!

26th September, 2008

The Future Of The Universe /--evilbitz   

This year (In November) I’ll begin my Biotechnological Engineering studies at the Ben-Gurion university at the Negev in Israel. I chose Biotechnology because I’m fascinated by life and because along with biology studies – you also get some math, physics and chemistry :-)

So I began to think and study about life and how it is made, the material that we are composed of, etc. I thought about something some days ago that I think would be interesting to share, I’m first going to outline the most common and widely accepted theories among the scientific community regarding how the universe and life were created, this will give the reader some good background before proceeding. Afterwards I’m going to discuss what I think will happen to the universe in the future, most chances you’ll be surprised by it so keep reading!

Please read every sentence carefully, since it is very summarized.

Some Background

Today, from observations into outer space, we know that galaxies draws away from us, the farther the galaxy is away from us, the bigger its speed it goes away from us (Hubble’s Law). This is true from any point of view that you’ll look at it (principle of relativity, nothing special about earth), far galaxies will draw away faster from your observation point, aka the universe is expanding. This led to the birth of the Big Bang idea, or at least it supports it, the big bang theory suggests that these galaxies must have been closer in the past and at the beginning, the universe was in “singularity” ~13.7 billion years ago (singularity is defined as a point with infinite density and high temperature), when the big bang occurred it expanded and the universe was formed.

So lets say the universe was created somehow and matter was formed somehow (I want to get fast to the point). Matter as far as we know today obeys a certain dynamic, we don’t completely understand the dynamics, but we have built a really nice model of what we think matter is (quarks, protons, neutrons, electrons, etc…), lets hope CERN will push us a step further in the understanding of matter and our universe. “Playing” by these “matter dynamics”, planets, solar systems and galaxies were formed. One of these planets was earth, it was formed ~4.5 billion years ago, and then life is assumed to be created spontaneously later on, some says that life sprung almost immediately after the earth was formed.

Of course that we cannot prove this is true, but if you’ll study “life chemistry”, it will be seem more logical to you that if you apply Darwin’s process of evolution to molecules and atoms, it is imminent that life will be formed, solely by the nature of matter in our universe. A good explanation to that process is found in the book: Richard Dawkins – The Selfish Gene. There are two other points that you’ll have to accept if you follow this logic. 1) Earth is a single planet amongst billions of billions, so life was probably formed elsewhere as well (See the the Hubble Ultra Deep Field image to grasp how big the universe is). 2) On earth, life took a carbon based form, which was the best choice on earth’s environment, but no one said this is the only form of life available and there is a good chance that other forms exists as well.

The groundwork of life contain two things: survival and replication. Survival is done by “finding” the “fittest” form (Natural Selection) and replication is by producing more of the same molecule (DNA), cell or organism (interesting reading – Mitosis).

Another assumption I take is that the development of intelligence would be the next native step to take place after the creation of life, this is also derived from natural selection and the survival of the fittest.

The Future of the Universe

We can say that the creation of life and intelligence were native processes that would take place again and again if the universe was re-created again for any reason. If you’ll look at it in an abstract way you can say that matter aspire to become intelligent. Furthermore, the survival & replication process turns all matter bit by bit to become intelligent so inductively you can conclude that at a certain point all the matter in the universe will become intelligent.

Of course there are some certain limits to this process, but at the other hand, giving enough time (billions of years), and assuming intelligence can take many forms, you may conclude that the whole universe will aspire to become intelligence. Who said that there isn’t any life and intelligence in our sun? maybe it is based on plasma chemistry or whatever…

Maybe the whole universe may become a single organism one day.



Posted in philosophy, random | 2 Comments

4th November, 2007

An approach to revision control your documents using Mercurial /--evilbitz   

This post describes how to control documents revisions under Windows. Warning – it involves the use of command line. I take it for granted that the average Linux guy will manage on his own.
I want to share something that I just recently did, I find it really useful – I put all the “My Documents” directory under local revision control. What it gives you? basically, an easy way to track changes inside documents. If you have, like me, thousands of documents that are continually evolving (I’m talking about the annoying Document History section…) and many different versions of each document, instead of renaming them and creating local copies I’m now using mercurial in order to put them under a revision control.

Mercurial is a “a fast, lightweight Source Control Management system designed for efficient handling of very large distributed projects”, according to the website. It means that there is no central server and each user working on the project has a local copy of the whole repository on disk. The most important word in that sentence is “lightweight”.

So, after you downloaded Mercurial from the link above, create a directory under “My Documents” and name it whatever you would like to. Now, from the command line, cd into that directory and execute hg init, this will create a repository in that directory, every change could be tracked by executing hg status when you have a finalized version of the document that you want to take a snapshot of, execute hg commit -m “[Revision description goes here...]“

That’s pretty much it, if you want to see the document history of each commit, execute hg log and see the details of each revision along with the comments you supplied.

But really, Mercurial is a powerful tool, you can read all about it here.



Posted in random | 2 Comments

2nd January, 2007

How to find a brand name /--evilbitz   

Need to think about a brand name for your product or company?

A name generator might do the job, NameGen is a python script developed by Erez Shinan and is hosted at Algorithm.co.il. NameGen is being fed with a list of names (in our case, brand names) and generates names that sounds the same or built in the same way.

My highly mathematical solution is to use the sophisticated Google CAPTCHA word generator. Just go to Gmail, enter a worng user name and password and click “Sign in” some several of times until the CAPTCH word generator appears. Continue to press that button until you get your desired brand name!

Google knows how much people hate CAPTCHA so they made their word generator not totally random, the words generated by it will sound like regular words that people are used to type.



Posted in hacking, random | Be The First To Comment!

Top »
"If you can't join them, beat them!"
Search Evilbitz: