Complexity of breaking Vigenère cipher


So I want to know what is the time complexity of deciphering a text of n words encrypted bt Vigenère.

Vigenère is just applying different Caesar shifts for each letter. I know that for a Caesar Cipher it is just O(n) Because we simply try all different 25 shifts. But what about Vigenère?


Breaking Ceasar's shift is O(1), not O(n). The size of the alphabet is constant. You only need to decode a short stretch of the ciphertext under a given key to know if you are on track.

For Vigenere's cipher you have sequence of repeating shifts. The brute-force way to break it without statistical analysis depends on the key space, which is O(26^k) for a key of length k. Because statistical analysis is highly effective on Vigenere's cipher, its actual strength is much lower than would be suggested by this time bound.


  • Hiding strings in Obfuscated code
  • How to sign a custom JCE security provider
  • Updating JTable
  • How to disable TRACE/TRACK HTTP in JBoss Wildfly?
  • Local Jekyll Serve/Live Site discrepancy
  • AngularJS is breaking the routing url
  • CSS 100% height columns, but with page still scrollable
  • How to remove last utf8 char of a python string
  • How to write string.Contains(someText) in expression Tree
  • What do I do with this error when I run tests in rails?
  • Imageloader not loading image on real device
  • Add spaces between words in spaceless string
  • Messed up characters in webpages (especially social media)
  • Rails 5 - Google Maps - Javascript error - initMap is not a function - fixing one js issue creates a
  • Count New Lines in Text File
  • Rodeo UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal
  • Plotting densities in R
  • NUnit 3.0 TestCase const custom object arguments
  • How do I signal completion of my dataflow?
  • Convert Type Decimal to Hex (string) in .NET 3.5
  • Using a canvas object in a thread to do simple animations - Java
  • WPF ICommand CanExecute(): RaiseCanExecuteChanged() or automatic handling via DispatchTimer?
  • How solve “Qt: Untested Windows version 10.0 detected!”
  • Unable to decode certificate at client new X509Certificate2()
  • Parsing a CSV string while ignoring commas inside the individual columns
  • GridView breaks while scrolling
  • How to change the font size of a single index for UISegmentedControl?
  • Time complexity of a program which involves multiple variables
  • Atlas images wrong size on iPad iOS 9
  • Change multiple background-images with jQuery
  • Avoid links criss cross / overlap in d3.js using force layout
  • Android screen density dpi vs ppi
  • How to add a column to a Pandas dataframe made of arrays of the n-preceding values of another column
  • DirectX11 ClearRenderTargetViewback with transparent buffer?
  • Javascript Callbacks with Object constructor
  • How can I use Kendo UI with Razor?
  • Change an a tag attribute in JavaScript based on screen width
  • Convert array of 8 bytes to signed long in C++
  • Return words with double consecutive letters
  • Binding checkboxes to object values in AngularJs