summaryrefslogtreecommitdiff
path: root/src/writing/cryptography.php
blob: 6c3657275f59b002fa3c16b73c9dd6698ee1f273 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
$title = "Principles of Crytography for Data Security";
require($_SERVER["DOCUMENT_ROOT"] . "/head.php");
require($_SERVER["DOCUMENT_ROOT"] . "/header.php");
?>
<p>As the amount of life spent online continues to increase, a great deal of private information is naturally
    being transmitted: banking details, medical records, business correspondences. Where once these exchanges of
    data would have occured between a small set of individuals in a shared space, they now happen between
    continents, through hundreds of servers and over complex network infrastructures. It is a system that cannot
    be fully accounted for by any individual, and so the means of transmission are insecure--much like having a
    letter transmitted by a series of couriers, the data is liable to be intercepted or modified. And so both
    parties in the exchange take on a risk that may prohibit especially critical data from being sent.
    Cryptography is the study of data obfuscation--a means of making a message readable only by some. It is the
    answer to the question "when the means of transmission cannot be trusted, how can information be conveyed
    securely?</p>
<p>There are two classes of encryption: symmetric and asymmetric. Symmetric encryption allows a message to be
    encoded and decoded with the same piece of information, or key. The ancient Caesar cipher is an example of
    this; an arbitrary number acting as the key was agreed upon by both parties, and every letter in the message
    was shifted through the alphabet by that amount. It could easily be decoded by anyone who knew the key by
    simply shifting the letters backward through the alphabet. Simple algorithms such as the Caesar cipher are
    vulnerable to various attacks due to the patterns that they create in the ciphertext. A given letter may
    always be encoded in the same way, meaning that the key could be compromised if the attacker gained access
    to the plaintext and ciphertext forms of the same message. And a message could be decrypted without the key
    by recognizing repeated patterns in the ciphertext representing common words. More advanced symmetric
    encryption methods--like the Advanced Encryption Standard (AES) algorithm, developed for the US National
    Institute of Standards and Technologies--disrupt patterns in the message to prevent these types of attacks.
</p>
<p>Symmetric encryption is an imperfect solution in the internet age. Because it requires both parties to know
    the same secret key, those parties must have a secure form of communication already established. In the days
    of Caesar, this key exchange could be performed confidentially by two individuals in close proximity. When
    encryption is used on the internet, it cannot be assumed that the communicating parties will have had any
    physical interactions--and it would be impractical to expect every new customer of an online banking service
    to perform a physical key exchange. Asymmetric encryption solves this problem by removing the key exchange.
    Instead of encrypting and decrypting a message with the same key, an asymmetric encryption algorithm has a
    keypair, comprising a public key, used for encrypting a message, and a private key, used for decrypting a
    message. The keys are so named because the private key is never shared, while the public key can be
    broadcast widely. </p>
<p>Typically, it demands more processing power to encrypt and decrypt messages with an asymmetric encryption
    implementation than a comparable symmetric one. For this reason, it is desirable to use symmetric encryption
    for most communications. An asymmetric implementation such as the Rivest--Shamir--Adleman (RSA) system is
    used to perform the key exchange. One of the devices will broadcast its public RSA key to the other, which
    will respond by generating an AES key, encrypting it with that RSA key, and returning it. This method of key
    exchange is secure, even if every network packet is intercepted. Once the devices share an AES key, they can
    communicate with the more efficient symmetric encryption method.</p>
<?php require($_SERVER["DOCUMENT_ROOT"] . "/footer.php"); ?>