Finding the IC without doing the counting every single time

by fortenforge, Nov 14, 2009, 2:45 AM

Finding the IC of a plaintext can be incredibly tedious, especially if the the text is long. There are some good online sites that will calculate the IC for you, here is a good one that not only will calculate the IC, but will also give you other statistics and allow you to manipulate the text in some ways: http://rumkin.com/tools/cipher/manipulate.php.

You can also write your own program to calculate the IC.
Here is a java program I wrote that will do the job.
/*
This program measures the index of conincidence on a given text.
Date: First draft 11/2/09
*/

import java.io.*;
import java.util.*;

public class indexOfCoincidence {

    public static void main(String [] args) throws IOException {
            long start = System.currentTimeMillis(); // start timing
            BufferedReader f = new BufferedReader(new FileReader("indexOfCoincidence.in"));
            String plaintext = f.readLine();
            int[] charfrequency = new int[26];
            int i = 0;
            int j =  0;
            int textlength = 0;
            while(i < plaintext.length()) {
                char c  = plaintext.charAt(i);
                j = (int) c - (int) 'A';
                if(j >= 0 && j <= 25) {
                    charfrequency[j]++;
                    textlength++;
                }
                i++;
                j = 0;
            }
            double ic = 0;
            for(int k = 0; k < 26; k++) 
                ic += charfrequency[k] * (charfrequency[k] - 1);
            ic /= textlength * (textlength - 1);
            System.out.println("The index of coincidence is " + ic + ".");
    }
}

Comment

1 Comment

The post below has been deleted. Click to close.
This post has been deleted. Click here to see post.
Surprisingly, I can read your code and understand it.

by dragon96, Nov 14, 2009, 4:23 AM

A guide to the science of secrecy

avatar

fortenforge
Archives
Shouts
Submit
  • Good website!

    by bluegoose101, Aug 5, 2021, 6:28 PM

  • uh-huh, a great place here

    by fenchelfen, Sep 1, 2019, 11:30 AM

  • uh, yeah he is o_O

    by SonyWii, Oct 8, 2010, 2:11 PM

  • dude i think you're my roommate from camp :O

    by themorninglighttt, Aug 29, 2010, 10:06 PM

  • what i'm still not a contrib D:

    by SonyWii, Aug 6, 2010, 2:20 PM

  • I see what you did there

    by Jongy, Aug 1, 2010, 11:52 PM

  • omg, apparently you like cryptography; and apparently I'm not a contribb D:

    by SonyWii, Jul 26, 2010, 9:48 PM

  • Thank You

    by fortenforge, Jan 17, 2010, 6:35 PM

  • Wow this is a really cool blog

    by alkjash, Jan 16, 2010, 7:04 PM

  • Hi :)

    by fortenforge, Jan 7, 2010, 12:12 AM

  • Hi :)

    by Richard_Min, Jan 5, 2010, 9:29 PM

  • Hi :) :)

    by fortenforge, Jan 3, 2010, 10:14 PM

  • HELLO FORTENFORGE I AM THE PERSON SITTING NEXT TO YOU IN IDEAMATH

    by ButteredButNotEaten, Dec 24, 2009, 4:19 AM

  • @dragon96 Not if you celebrate Christmas with neon lights
    @batteredbutnotdefeated Sure, You are now a contributer

    by fortenforge, Dec 20, 2009, 4:39 AM

  • I too share a love for cryptography and cryptanalysis, may I be a contrib?

    by batteredbutnotdefeated, Dec 20, 2009, 2:38 AM

  • The green is too bright for Christmas. :P

    by dragon96, Dec 20, 2009, 2:12 AM

  • I thought I'd change the colors for the Holidays :lol:

    by fortenforge, Dec 13, 2009, 10:53 PM

  • hi, some "simple" cryptography here: http://www.artofproblemsolving.com/Forum/weblog_entry.php?t=317795

    by phiReKaLk6781, Dec 12, 2009, 3:46 AM

  • Yeah, that is binary, for modern cryptography, most text is converted to binary first and then algorithm's for encryption are preformed on the binary rather than the English letters. The text is converted using the ASCII table or UNICODE.

    by fortenforge, Oct 13, 2009, 10:33 PM

  • Whoa, I love your background! Is that binary?

    by pianogirl, Oct 13, 2009, 8:34 PM

  • Sure, I'll add you as a contributer...

    by fortenforge, Oct 2, 2009, 4:44 AM

  • May I make a post on one cipher I made up? (It's a good code for science people! *hint hint*)

    by dragon96, Oct 2, 2009, 4:04 AM

  • Nice blog, this is interesting... :lol:

    and guess who i am :ninja:

    by Yoshi, Sep 21, 2009, 4:02 AM

  • Thanks :lol:

    by fortenforge, Sep 17, 2009, 1:33 AM

  • Very interesting blog. Nice!

    by AIME15, Sep 16, 2009, 5:21 PM

  • When you mean 'write' do you mean like programming? Much of cryptography has to do with programming and most modern cryptographers are excellent programmers because modern complex ciphers are difficult to implement by hand.

    See if you can write a program for the substitution cipher. The user should be able to enter the key and the message. I know it is possible to do it in pretty much any language because I was able to do it in c.

    by fortenforge, Aug 7, 2009, 8:17 PM

  • Hello. I don't know much about advanced cryptography but I did write a Caeser Chipher encrypter and decrypter!

    by Poincare, Jul 31, 2009, 8:55 PM

27 shouts
Tags
About Owner
  • Posts: 200
  • Joined: Jan 17, 2009
Blog Stats
  • Blog created: Jun 21, 2009
  • Total entries: 48
  • Total visits: 126662
  • Total comments: 16
Search Blog
a