Red Pike is aclassifiedUnited Kingdom government encryption algorithm, proposed for use by theNational Health Service byGCHQ, but designed for a "broad range of applications in theBritish government".[1] Little is publicly known about Red Pike, except that it is ablock cipher with a 64-bitblock size and 64-bitkey length. According to the academic study of the cipher cited below and quoted in a paper byRoss Anderson andMarkus Kuhn, it "uses the same basic operations asRC5" (add, XOR, and left shift) and "has no look-up tables, virtually no key schedule and requires only five lines of code"; "the influence of each key bit quickly cascades" and "each encryption involves of the order of 100 operations". 64 bits of key entropy are not considered secure anymore.
Red Pike is available to approved British government contractors in software form, for use in confidential (not secret) government communication systems. GCHQ also designed theRambutan cryptosystem for the same segment.
Given that Red Pike is a British encryption algorithm, its name likely refers to a particularfell in the western English Lake District.
In February 2014, the supposed source code for Red Pike was posted as follows to theCypherpunk mailing list.[2]
/* Red Pike cipher source code */#include<stdint.h>typedefuint32_tword;#define CONST 0x9E3779B9#define ROUNDS 16#define ROTL(X, R) (((X) << ((R) & 31)) | ((X) >> (32 - ((R) & 31))))#define ROTR(X, R) (((X) >> ((R) & 31)) | ((X) << (32 - ((R) & 31))))voidencrypt(word*x,constword*k){unsignedinti;wordrk0=k[0];wordrk1=k[1];for(i=0;i<ROUNDS;i++){rk0+=CONST;rk1-=CONST;x[0]^=rk0;x[0]+=x[1];x[0]=ROTL(x[0],x[1]);x[1]=ROTR(x[1],x[0]);x[1]-=x[0];x[1]^=rk1;}rk0=x[0];x[0]=x[1];x[1]=rk0;}voiddecrypt(word*x,constword*k){worddk[2]={k[1]-CONST*(ROUNDS+1),k[0]+CONST*(ROUNDS+1)};encrypt(x,dk);}