<commit_before>---
layout: post
title: "Yet Another Post About Diffie-Hellman"
date: 2015-09-01
categories: cryptography number-theory
---
## Introduction

The problem of sharing a secret key over an insecure channel began receiving increased attention in the late 1960s, early 1970s, culminating in the invention of public-key cryptography, apparently first by the GCHQ and later by the academic cryptographic community.

One solution is called the Diffie-Hellman key exchange. In this scheme, a secret key is constructed by two parties (traditionally Alice and Bob) communicating over an insecure channel.

How is it possible to do this in the face of an adversary who is listening to the messages sent between Alice and Bob?
<!--more-->

## Enter Number Theory

The answer comes from, perhaps suprisingly, from number theory. Under proper conditions (to be discussed), it is believed to be prohibitively difficult to compute logarithms in finite groups. By exploiting this difficulty, we can share a key.

But how does it work?
<commit_msg>intro updated again<commit_after>---
layout: post
title: "Yet Another Post About Diffie-Hellman"
date: 2015-09-01
categories: cryptography number-theory
---
## Introduction

The problem of sharing a secret key over an insecure channel began receiving increased attention in the late 1960s, early 1970s, culminating in the invention of public-key cryptography, apparently first by the GCHQ and later by <NAME> and <NAME>.

One solution is called the Diffie-Hellman key exchange. In this scheme, a secret key is constructed by two parties (traditionally Alice and Bob) communicating over an insecure channel.

How is it possible to do this in the face of an adversary who is listening to the messages sent between Alice and Bob?
<!--more-->

## Enter Number Theory

The answer comes from, perhaps suprisingly, from number theory. Under proper conditions (to be discussed), it is believed to be prohibitively difficult to compute logarithms in finite groups. By exploiting this difficulty, we can share a key.

But how does it work?

{'fraction_non_alphanumeric': 0.05209840810419682, 'fraction_numerical': 0.015436565364206465, 'mean_word_length': 4.605405405405405, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5505653', 'n_tokens_mistral': 541, 'n_tokens_neox': 485, 'n_words': 307}