Published
Edited
Nov 14, 2019
1 fork
Insert cell
md`# Homework7`
Insert cell
encrypt = (value, e, N) => Math.pow(value, e) % N
Insert cell
encrypt(3, 7, 35)
Insert cell
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ "
Insert cell
encode = alphabet.split('').reduce((map, char, index) => ({...map, [char]: index + 2}), {})
Insert cell
decode = alphabet.split('').reduce((map, char, index) => ({...map, [index + 2]: char}), {})
Insert cell
md`## Problem 1A`
Insert cell
{
let answer = '';
let e = 7;
let N = 35;
let message = 'BE GOOD'.split('');
let encoded = message.map(char => encode[char]);
let encrypted = encoded.map(int => encrypt(int,e,N));
for (let i = 0; i < message.length; i++) {
answer = `${answer}\n$\text{${message[i]}} \rightarrow ${encoded[i]} \rightarrow ${encoded[i]}^7 \\pmod {35} \rightarrow ${encrypted[i]}$\n`;
}
return answer;
}
Insert cell
Insert cell
{
let answer = '';
let e = 7;
let d = 7;
let N = 35;
let message = 'BE GOOD'.split('');
let encoded = message.map(char => encode[char]);
let encrypted = encoded.map(int => encrypt(int,e,N));
let decrypted = encrypted.map(int => encrypt(int,d,N));
let decrptedMessage = decrypted.map(int => decode[int]);
for (let i = 0; i < message.length; i++) {
answer = `${answer}\n$\text{${encrypted[i]}} \rightarrow ${encrypted[i]}^${d} pmod {${N}} \rightarrow ${decrypted[i]} \rightarrow \text{${decrptedMessage[i]}}$\n\n`;
}
return answer;
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more