Cipher – Wikipedia, the free encyclopedia

In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryptiona series of well-defined steps that can be followed as a procedure. An alternative, less common term is encipherment. To encipher or encode is to convert information into cipher or code. In non-technical usage, a 'cipher' is the same thing as a 'code'; however, the concepts are distinct in cryptography. In classical cryptography, ciphers were distinguished from codes.

Codes generally substitute different length strings of characters in the output, while ciphers generally substitute the same number of characters as are input. There are exceptions and some cipher systems may use slightly more, or fewer, characters when output versus the number that were input.

Codes operated by substituting according to a large codebook which linked a random string of characters or numbers to a word or phrase. For example, "UQJHSE" could be the code for "Proceed to the following coordinates." When using a cipher the original information is known as plaintext, and the encrypted form as ciphertext. The ciphertext message contains all the information of the plaintext message, but is not in a format readable by a human or computer without the proper mechanism to decrypt it.

The operation of a cipher usually depends on a piece of auxiliary information, called a key (or, in traditional NSA parlance, a cryptovariable). The encrypting procedure is varied depending on the key, which changes the detailed operation of the algorithm. A key must be selected before using a cipher to encrypt a message. Without knowledge of the key, it should be extremely difficult, if not impossible, to decrypt the resulting ciphertext into readable plaintext.

Most modern ciphers can be categorized in several ways

"Cipher" is alternatively spelled "cypher"; similarly "ciphertext" and "cyphertext", and so forth.

The word "cipher" in former times meant "zero" and had the same origin: Middle French as cifre and Medieval Latin as cifra, from the Arabic ifr = zero (see ZeroEtymology). "Cipher" was later used for any decimal digit, even any number. There are many theories about how the word "cipher" may have come to mean "encoding":It was firstly introduced by Ab Abdallh Muammad ibn Ms al-Khwrizm.

Ibrahim Al-Kadi concluded that the Arabic word sifr, for the digit zero, developed into the European technical term for encryption.[1]

In non-technical usage, a "(secret) code" typically means a "cipher". Within technical discussions, however, the words "code" and "cipher" refer to two different concepts. Codes work at the level of meaningthat is, words or phrases are converted into something else and this chunking generally shortens the message.

An example of this is the Telegraph Code which was used to shorten long telegraph messages which resulted from entering into commercial contracts using exchanges of Telegrams.

Read the rest here:
Cipher - Wikipedia, the free encyclopedia

Facebook garners big gains from tighter management of open source

Facebook is now contributing more to external open source projects and keeping closer tabs on its own open source efforts

Blake Matheny, Infrastructure Engineering, Facebook.

Thanks to some applied discipline, Facebook is reaping greater benefits from its efforts around open source software.

The social network has relied on open source since its inception, but it didn't formalized those efforts until 2013 when infrastructure engineer Blake Matheny started overseeing its open source projects.

The company relies almost exclusively on open source to serve its billion-plus users. Having the source code for software it uses allows it to easily make changes that suit its needs. Its engineers have modified many programs, including MySQL, JavaScript and PHP, so they can better serve its massive user base.

With so many users, "we faced a lot of new challenges that the software wasn't designed for," Matheny said Wednesday in a talk at the Linux Summit in Santa Rosa, California. "So we work hard to try to improve them."

The company's React JavaScript framework, for instance, was the result of its effort to improve JavaScript, while its Hip Hop Virtual Machine optimized PHP to run more quickly. It has made both those tools open sourced to get input from other developers.

Relying on open source also helps Facebook's new technical hires get up to speed quickly. "If you have to wait six months for an engineer to get trained on some proprietary internal system, that is time wasted, " Matheny said.

Facebook has maintained 235 open source projects on GitHub, consisting of more than 10 million lines of code. The software covers all aspects of running an Internet service, including data management, security, Web design, mobile computing, and infrastructure management.

Posting code it developed in house has helped Facebook in numerous ways. "It makes us write better software," Matheny said. Knowing their work will be exposed to other developers means its engineers write cleaner, more modular code that's less inextricably tied to other Facebook programs.

Read the original:
Facebook garners big gains from tighter management of open source