Skip to content

Instantly share code, notes, and snippets.

@tscholl2
tscholl2 / ec.svg
Last active July 13, 2023 11:15
plot of adding points on an elliptic curve
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<!DOCTYPE html>
<head>
<script type="text/javascript">
const grades = [
"A+",
"A",
"A-",
"B+",
"B",
@tscholl2
tscholl2 / index.html
Created January 14, 2019 02:55
mini app that turns latex commands into unicode
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Latex to Unicode</title>
<link
rel="stylesheet"
href="//fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic"
/>
@tscholl2
tscholl2 / template.tex
Last active June 28, 2019 15:29
tex template
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm,amsfonts}
\usepackage{xcolor}
\newcommand{\public}[1]{\textcolor[rgb]{0.024,0.408,0.024}{#1}}
\newcommand{\private}[1]{\textcolor[rgb]{0.661,0.035,0.035}{#1}}
\newcommand{\FF}{\mathbb{F}}
\newcommand{\QQ}{\mathbb{Q}}
\newcommand{\ZZ}{\mathbb{Z}}
@tscholl2
tscholl2 / Curve25519.sage
Last active October 27, 2019 13:20
list of Certicom curves
# Curve25519
p = 2^255 - 19
N = 8*(2^252 + 27742317777372353535851937790883648493)
E = EllipticCurve(GF(p),[0,486662,0,1,0])
G = E.lift_x(9)
assert E.count_points() == N
assert G.order() == N/8
\documentclass[12pt]{letter}
\date{\today}
\signature{FROMWHO???}
\address{
FROMWHERE??? \\
{\tt CONTACTEMAIL???}
}
const enum Direction {
L = 0,
R = 1,
}
const enum Alphabet {
A = 0,
B = 1,
}
type StateOutput = [
Alphabet, // write
#include "linear-algebra.h"
#define mat_val(i, j) A[i * m + j]
#define swap_values(a, b) t = b, b = a, a = t
#define swap_rows(_i1, _i2) \
for (int k = 0; k < m; k++) \
swap_values(mat_val(_i1, k), mat_val(_i2, k));
int solve(Element *A, Element *b, int n, int m, Element *x)
{
/**
* Given a sting s, return the SHA-256 digest of s
* (encoded as a UTF-16-LE byte array) in hex form.
* @param {string} s
* @returns {string}
*
* python -c 'import hashlib; print(hashlib.sha256("a🐦".encode("utf-16-le")).hexdigest())'
* 49f1ecba591ec4ae7a049570bd21b97dc77d42659f3fbe70a34a8f02ebacee17
*
* python -c 'import hashlib; print(hashlib.sha256("$€𐐷𤭢".encode("utf-16-le")).hexdigest())'
def cm_method(q,t):
"""
Given a prime power q and integer t with |t| <= 2sqrt(q),
returns an Elliptic curve over GF(q) with q + 1 - t points.
"""
n = q + 1 - t
d = t^2 - 4*q
K = QuadraticField(d)
j = K.hilbert_class_polynomial().any_root()
E = EllipticCurve_from_j(GF(q)(j))