Codex in numeris primis

Mense Octobri anni 1999, coetus a Jon Lech Johansen, Norvegico tum sedecim annos nato, ductus programma DeCSS emisit ad tutelam reproductionis DVD a Systemate Content Scramble (CSS) eludendam. CSS encryptionem 40-bit, cuius claves fabricatoribus licentiatis distributae sunt, adhibuerunt ad reproductionem DVD restringendam. Quia distributio codicis sub lege DMCA Americana cadebat et legaliter prohibita erat, activisti vias quaesiverunt ad codicem quasi entitatem mathematicam occultandam.


Deinde Philippus Carmody numerum primum construxit qui, cum binarie post decompressionem gzip interpretatur, totum codicem fontem DeCSS continet. Nucleus algorithmi DeCSS in TypeScript sic implementari potest, ubi operationes binarii directe logicam decryptionis sectoris mappant.:

function CSSdescramble(sec: Uint8Array, key: Uint8Array): void {
    let t1: number, t2: number, t3: number, t4: number, t5: number, t6: number;
    const end = 0x800;

    t1 = (key[0] ^ sec[0x54]) | 0x100;
    t2 = key[1] ^ sec[0x55];

    const keyView = new DataView(key.buffer, key.byteOffset);
    const secView = new DataView(sec.buffer, sec.byteOffset);

    t3 = (keyView.getUint32(2, true) ^ secView.getUint32(0x56, true)) >>> 0;
    t4 = t3 & 7;
    t3 = (t3 * 2 + 8 - t4) >>> 0;

    let offset = 0x80;
    t5 = 0;

    while (offset < end) {
        t4 = CSStab2[t2] ^ CSStab3[t1];
        t2 = t1 >>> 1;
        t1 = ((t1 & 1) << 8) ^ t4;
        t4 = CSStab5[t4];
        t6 = (((((((t3 >>> 3) ^ t3) >>> 1) ^ t3) >>> 8) ^ t3) >>> 5) & 0xff;
        t3 = (((t3 << 8) >>> 0) | t6) >>> 0;
        t6 = CSStab4[t6];
        t5 += t6 + t4;

        sec[offset] = CSStab1[sec[offset]] ^ (t5 & 0xff);
        t5 >>>= 8;
        offset++;
    }
}

Principium numeri primi est totum codicem fontem interpretari ut unum integrum solidum. Cum nullus fasciculus datus umquam numerus primus sit, numerus artificialiter augetur octetis additis (impletio). Haec impletio in cyclo incrementatur donec probatio primalitatis, qualis est probatio Miller-Rabin, confirmet numerum esse primum. Generator sequens codice DeCSS supra descripto utitur et repraesentationem numeri primi correspondentem quaerit.:

import { isPrime } from 'crypto-utils-lib'; // Hypothetical library for primality testing

async function generateIllegalPrime(code: string): Promise<bigint | null> {
    const encoder = new TextEncoder();
    const bytes = encoder.encode(code);

    let hexBase = Array.from(bytes)
        .map(b => b.toString(16).padStart(2, '0'))
        .join('');

    // Start bei 1, da 0x00 immer gerade und damit keine Primzahl ist
    for (let i = 1; i < 256; i++) {
        const candidateHex = hexBase + i.toString(16).padStart(2, '0');
        const candidateInt = BigInt('0x' + candidateHex);

        if (await isPrime(candidateInt)) {
            return candidateInt;
        }
    }
    return null;
}

const source = `void CSSdescramble(unsigned char *sec, unsigned char *key) { ... }`;
generateIllegalPrime(source).then(p => console.log(p));

Dolus numerorum primorum numquam materiam separati iudicialis fuit, nec opus fuit. Quamquam numerus primus originalis Carmody 1401 digitos habebat, nimis parvus erat pro summis indicibus maximorum numerorum primorum eo tempore. Postea versionem 1905 digitorum, artificialiter inflatam octetis nullis, creavit ut decimum locum in ordine ECPP obtineret. Hic successus demonstravit impossibile esse censuram mathematicae purae, cum numerus locum suum in indice solum ob proprietates mathematicas suas meruit.

Back