Skip to content

Instantly share code, notes, and snippets.

View HarryR's full-sized avatar
🏴‍☠️
My time travel machine is stuck at 60 seconds per minute

HaRoLd HarryR

🏴‍☠️
My time travel machine is stuck at 60 seconds per minute
View GitHub Profile
@HarryR
HarryR / edinburg-napier-academic-fraud.md
Last active May 30, 2025 19:54
A live case study of a department-wide paper-mill at Edinburgh Napier University

Systematic Academic Fraud in Visual Encryption Research: A Case Study in Paper Mill Detection

The pressure to publish in academic environments has created perverse incentives that can drive researchers toward unethical practices. Paper mills - commercial operations that produce fraudulent academic manuscripts - exploit these pressures by offering researchers ready-made publications for career advancement. While the existence of paper mills has been documented across various disciplines, their infiltration into cryptographic research presents particular concerns given the security-critical nature of the field. The systematic production of low-quality or fraudulent cryptographic research not only pollutes the academic literature but potentially undermines confidence in legitimate security research and implementations.

Within the broader field of cryptography, "visual encryption" has emerged as a particularly problematic subdomain that appears to attract paper mill activity. Unlike established areas such as

from sage.all import random_prime, GF, EllipticCurve, GF, is_prime
import math
ZETA = lambda n,x,p: pow(x, ((p-1)//n), p)
MODSQRT = lambda n, p: pow(n % p, (p + 1) // 4, p)
def cornacchia(d, p):
"""
Standard Cornacchia algorithm for x^2 + d*y^2 = p
"""
assert p % 12 == 7
@HarryR
HarryR / poly1305-rust-output.txt
Last active April 12, 2025 21:09
Poly1305 implementation & test vector print-out in pure Rust
$ ./bin/poly1305.native.exe
2.5.2. Poly1305 Example and Test Vector
For our example, we will dispense with generating the one-time key
using AES, and assume that we got the following keying material:
o Key Material: 85:d6:be:78:57:55:6d:33:7f:44:52:fe:42:d5:06:a8:01:0
3:80:8a:fb:0d:b2:fd:4a:bf:f6:af:41:49:f5:1b
@HarryR
HarryR / Cargo.toml
Last active April 12, 2025 21:08
Alternative to the Oasis `orc` tool
[package]
name = "orc-builder"
version = "0.1.0"
edition = "2021"
[dependencies]
clap = { version = "4.4", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = "0.10"
@HarryR
HarryR / pipeline.py
Last active January 9, 2025 16:20
Typesafe task pipeline for Python
import time
from dataclasses import dataclass
from typing import Awaitable, Callable, Generic, Iterable, Literal, Tuple, TypeVar, Union
_TaskInputT = TypeVar('_TaskInputT')
_TaskOutputT = TypeVar('_TaskOutputT')
TaskTypeT = Literal['first', 'intermediate', 'final']
@dataclass
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.0;
import { IERC721 } from '@openzeppelin/contracts/token/ERC721/IERC721.sol';
import { IERC721Receiver } from '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol';
import { Staking } from './Staking.sol';
import { randomBytes32 } from './Random.sol';
import { Moderation } from './Moderation.sol';
@HarryR
HarryR / transcriptex.rs
Last active December 23, 2024 01:46
Forking Merlin transcripts
use merlin::Transcript;
pub trait TranscriptExt {
// Proposed method to fork a transcript
fn fork_transcript(&mut self) -> Transcript;
// Proposed method to append another transcript
fn append_transcript(&mut self, other: &mut Transcript);
}
@HarryR
HarryR / kanbanflow-monthly-report.py
Last active September 6, 2024 05:51
Monthly reporting for Kanbanflow, produces a Markdown summary of all tasks and the percentage time breakdown daily & across categories
#!/usr/bin/env python3
import os
import re
import sys
import requests
import calendar
from datetime import datetime, timedelta, date
from typing import TypedDict
from collections import defaultdict
@HarryR
HarryR / triangle.html
Created July 28, 2024 18:12
Draws a cool morphing triangle thing
<!DOCTYPE html>
<html>
<head>
<title>Triangle</title>
</head>
<body>
<canvas id="canvas" width=500 height=500></canvas>
<script>
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract RandomStorage {
mapping(bytes32 => bytes32) internal data;
event ReadEvent(bytes32 k, bytes32 v);
constructor() {}