12-04-2009
Computational complexity
This is a general question about the practical use of computational complexity in security. Wikipedia has a good article about the theoretical background of computational complexity. In the course of conversation with colleagues, a topic that is brought up occassionally is the security of any algorithm in relation to the security of any other algorithm, and I would like to make sure I have an accurate understanding of computational complexity for these situations.
Suppose I have an encryption algorithm like AES that can use a 256-bit key. My understanding is that the computational complexity would then be 2^256 for a brute force attack to recover the key. A "crack" of the algorithm would be anything that can reduce this complexity to less than 2^256. It would seem to make sense that this means a program would have to guess a maximum of 2^256 passwords before it has guessed every possible key, and therefore should have gained access at some point along the way. Is this the correct way to think about computational complexity in this context?
To explain my line of thinking in an example: While reading about the 256-bit AES "crack" published a few months back, one of the things I remember was that while the computational complexity of guessing 256-bit AES keys could be reduced to 2^119, this additionally required a size complexity of 2^119. (To my understanding, the size complexity of brute force attacks on any algorithm can be as low as 1 -- one key is guessed, rejected, and iterated at a time, so only storage space for one key is necessary since that space is re-used for each key.) My understanding of a "size complexity of 2^119" is that 2^119 keys need to be stored at one time in order for the attack to work. Given this, if I assume a key length of 256 bits and I need to store 2^119 keys simultaneously, I should be able to calculate the total storage size required to make an attempt at this particular attack:
In bits: 256 bits * 2^119 = 1.7 * 10^38 bits (rounded)
Converted to terabytes: 1.9 * 10^25 terabytes (rounded)
My question is this: When someone says "computational complexity" and "size complexity" in relation to the strength of an algorithm, am I thinking about the meaning correctly from a practical perspective?
Thanks for the help.
6 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi !
I have been trying to install IMSL Computational Tool Kit on a server.
It is a Lunix Redhat V.4 with Intel pentium d processor and Intel fortran compiler 8.1 and the type of command shell we run is bash.
I dont know if the problem is with the Installation or the Lunix system.
I have... (1 Reply)
Discussion started by: dsmv
1 Replies
2. Emergency UNIX and Linux Support
Hi,
I have two files say file 1 file 2
File1
1
2
4
5
File 2
asdf
adf
How to get the ouput something like
asdf1
adf1
asdf2
adf2
asdf4
adf4
asdf5 (5 Replies)
Discussion started by: ecearund
5 Replies
3. AIX
Hello Gurus,
I am using AIX 5 and on running topas command. I can see the computational memory is 93.3% with Swap Paging memory at 2.2%. Could you please advise if there is any impact by the growth of computational memory?
Below is the stat:
MEMORY
Real,MB 22528
% Comp 93.3
%... (12 Replies)
Discussion started by: panchpan
12 Replies
4. UNIX for Advanced & Expert Users
Hi,
How to configure minimum passphrase (Not UNIX password) requirements on any UNIX box?
Passphrase - the one user enteres while generating pub/pvt keys using ssh-keygen.
Thanks!
Reddy (3 Replies)
Discussion started by: reddyr
3 Replies
5. Shell Programming and Scripting
Hi Friends,
How to capture the value of %Comp and %Noncomp values from AIX using topas command. I tried lot, but i cannot capture the value. (4 Replies)
Discussion started by: Nowshath
4 Replies
6. Shell Programming and Scripting
Dear,
How to calculate %computational memory and %non computational memory from AIX server.
What command used to find out %computational memory and % non computational memory except topas.
Regards
Nowshath (1 Reply)
Discussion started by: Nowshath
1 Replies
LEARN ABOUT DEBIAN
cyclone
Really Slick ScreenSavers(1) General Commands Manual Really Slick ScreenSavers(1)
NAME
cyclone - tornado screen saver.
SYNOPSIS
cyclone [--root/-r] [--maxfps/-x number] [--vsync/-y number] [--dpms/-M number] [--cyclones/-c number] [--particles/-p number] [--size/-i
number] [--complexity/-C number] [--speed/-e number] [--stretch/-s] [--no-stretch/-S] [--showcurves/-v] [--no-showcurves/-V]
DESCRIPTION
From Terry Walsh (http://reallyslick.com): "This screen saver makes tornadoes on your screen. I wrote it for my storm chasing partner, but
you can have it too."
Ported to Linux by Tugrul Galatali.
OPTIONS
--root Draw on the root window.
--maxfps number
Set maximum frame rate.
--vsync number
Limit redraws to specified number of vertical refreshes. 0 - 100. Default: 1
--dpms number
Stop rendering new frames if the display is not on. 0 - 1. Default: 1
--cyclones number
Number of cyclones. 1 - 10. Default: 1
--particles number
Particles per cyclone. 1 - 10000. Default: 200
--size number
Particle size. 1 - 100. Default: 7
--complexity number
Cyclone complexity. 1 - 10. Default: 3
--speed number
Speed. 1 - 100. Default: 10
--stretch
Stretch. Default: True
--showcurves
Show Curves. Default: False
ENVIRONMENT
DISPLAY to get the default host and display number.
SEE ALSO
X(1),
COPYRIGHT
Copyright (C) 2002 by Terry Walsh and Tugrul Galatali.
Cyclone is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published
by the Free Software Foundation.
Cyclone is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
AUTHOR
Terry Walsh and Tugrul Galatali <tugrul@galatali.com>
X Version 11 Really Slick ScreenSavers(1)