Reply To: Extracurricular Challenges
The mystery of the silver bullet › Forums › The Intelligence Room › Extracurricular Challenges › Reply To: Extracurricular Challenges
AS PROMISED, ANSWER AND PARI-gp CODE TO MY CIPHER GIVEN ON
30th October 2024 at 11:08 am POST #98114
NCC 2024 BYTEINBITS FORUM CIPHER
ORIGINAL PLAINTEXT WITH PUNCUATION
People are unreasonable, illogical and self centred. Love them anyway!
If you do good, people will accuse you of selfish ulterior motives. Do good anyway!
If you are successful, you will win false friend and true enemies. Succeed anyway!
The good you do today will be forgotten tomorrow. Do good anyway!
Honesty and frankness makes you vulnerable. Be honest and frank anyway!
The biggest men with the biggest ideas can be shot down by the smallest men with the smallest minds. Think big anyway!
People favour underdogs but follow only top dogs. Fight for some underdogs anyway!
What you spend years building may be destroyed overnight. Build anyway!
People really need help but may attack you if you help them. Help people anyway!
Give the world the best you have and you will get kicked in the teeth. Give the world the best you have anyway!
SOLUTION:
=========
The key to the code is that letters and numbers alternate; and the numbers
run forward along a reversed alphabet.
Z = A, Y=1, X = B, W = 2, V = C, U = 3, etc. until you reach B = M, A = 13.
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 I 9 J 10 K 11 L 12 M 13
when written out like the following, it may be more helpful:
Z = A
Y = 1
X = B
W = 2
V = C
U = 3
T = D
S = 4
R = E
Q = 5
P = F
O = 6
N = G
M = 7
L = H
K = 8
J = I
I = 9
H = J
G = 10
F = K
E = 11
D = L
C = 12
B = M
A = 13
each represents the other side A=13, 13=A etc
\\ ============================= PARI-gp CODE FOR DECRYPTING
\\ ***DATA*** (need reversed alplhabet, keyed alphanumeric, ciphertext)
reva=[" ","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","J","I","H","G","F","E","D","C","B","A"];
keyd=[" ","A","1","B","2","C","3","D","4","E","5","F","6","G","7","H","8","I","9","J","10","K","11","L","12","M","13"];
CODE=["F","11","6","F","H","11","13","E","11","3","G","E","11","13","4","6","G","13","M","H","11","9","H","H","6","10","9","12","13","H","13","G","L","4","11","H","K","12","11","G","D","E","11","L","H","6","C","11","D","J","11","7","13","G","1","2","13","1","9","K","1","6","3","L","6","10","6","6","L","F","11","6","F","H","11","2","9","H","H","13","12","12","3","4","11","1","6","3","6","K","4","11","H","K","9","4","J","3","H","D","11","E","9","6","E","7","6","D","9","C","11","4","L","6","10","6","6","L","13","G","1","2","13","1","9","K","1","6","3","13","E","11","4","3","12","12","11","4","4","K","3","H","1","6","3","2","9","H","H","2","9","G","K","13","H","4","11","K","E","9","11","G","L","13","G","L","D","E","3","11","11","G","11","7","9","11","4","4","3","12","12","11","11","L","13","G","1","2","13","1","D","J","11","10","6","6","L","1","6","3","L","6","D","6","L","13","1","2","9","H","H","M","11","K","6","E","10","6","D","D","11","G","D","6","7","6","E","E","6","2","L","6","10","6","6","L","13","G","1","2","13","1","J","6","G","11","4","D","1","13","G","L","K","E","13","G","8","G","11","4","4","7","13","8","11","4","1","6","3","C","3","H","G","11","E","13","M","H","11","M","11","J","6","G","11","4","D","13","G","L","K","E","13","G","8","13","G","1","2","13","1","D","J","11","M","9","10","10","11","4","D","7","11","G","2","9","D","J","D","J","11","M","9","10","10","11","4","D","9","L","11","13","4","12","13","G","M","11","4","J","6","D","L","6","2","G","M","1","D","J","11","4","7","13","H","H","11","4","D","7","11","G","2","9","D","J","D","J","11","4","7","13","H","H","11","4","D","7","9","G","L","4","D","J","9","G","8","M","9","10","13","G","1","2","13","1","F","11","6","F","H","11","K","13","C","6","3","E","3","G","L","11","E","L","6","10","4","M","3","D","K","6","H","H","6","2","6","G","H","1","D","6","F","L","6","10","4","K","9","10","J","D","K","6","E","4","6","7","11","3","G","L","11","E","L","6","10","4","13","G","1","2","13","1","2","J","13","D","1","6","3","4","F","11","G","L","1","11","13","E","4","M","3","9","H","L","9","G","10","7","13","1","M","11","L","11","4","D","E","6","1","11","L","6","C","11","E","G","9","10","J","D","M","3","9","H","L","13","G","1","2","13","1","F","11","6","F","H","11","E","11","13","H","H","1","G","11","11","L","J","11","H","F","M","3","D","7","13","1","13","D","D","13","12","8","1","6","3","9","K","1","6","3","J","11","H","F","D","J","11","7","J","11","H","F","F","11","6","F","H","11","13","G","1","2","13","1","10","9","C","11","D","J","11","2","6","E","H","L","D","J","11","M","11","4","D","1","6","3","J","13","C","11","13","G","L","1","6","3","2","9","H","H","10","11","D","8","9","12","8","11","L","9","G","D","J","11","D","11","11","D","J","10","9","C","11","D","J","11","2","6","E","H","L","D","J","11","M","11","4","D","1","6","3","J","13","C","11","13","G","1","2","13","1"];
\\ ***USER FUNCTION*** (Returns the numeric position of 'symbol' in keyd)
RNP(symbol)=symbol=Str(symbol);alpha=keyd;for(pos=1,27,if(symbol==alpha[pos],return(pos)));
\\ ***DECRYPTION OF THE CODE***
{print("\n\n PLAINTEXT FROM THE DECRYPT (giving linebreaks at 80 characters)");
print("/*");
for(i=1,#CODE,x=CODE[i];y=RNP(x);print1(reva[y]);if(i%80==0,print));
print("\n*/\n\n");}
\\
\\ I also inclue here:
\\ ============================= PARI-gp CODE FOR ENCRYPTING
\\ ***DATA*** (need reversed alplhabet, keyed alphanumeric, plaintext)
reva=[" ","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","J","I","H","G","F","E","D","C","B","A"];
keyd=[" ","A","1","B","2","C","3","D","4","E","5","F","6","G","7","H","8","I","9","J","10","K","11","L","12","M","13"];
PT=Vec(Str(PEOPLEAREUNREASONABLEILLOGICALANDSELFCENTREDLOVETHEMANYWAYIFYOUDOGOODPEOPLEWILLACCUSEYOUOFSELFISHULTERIORMOTIVESDOGOODANYWAYIFYOUARESUCCESSFULYOUWILLWINFALSEFRIENDANDTRUEENEMIESSUCCEEDANYWAYTHEGOODYOUDOTODAYWILLBEFORGOTTENTOMORROWDOGOODANYWAYHONESTYANDFRANKNESSMAKESYOUVULNERABLEBEHONESTANDFRANKANYWAYTHEBIGGESTMENWITHTHEBIGGESTIDEASCANBESHOTDOWNBYTHESMALLESTMENWITHTHESMALLESTMINDSTHINKBIGANYWAYPEOPLEFAVOURUNDERDOGSBUTFOLLOWONLYTOPDOGSFIGHTFORSOMEUNDERDOGSANYWAYWHATYOUSPENDYEARSBUILDINGMAYBEDESTROYEDOVERNIGHTBUILDANYWAYPEOPLEREALLYNEEDHELPBUTMAYATTACKYOUIFYOUHELPTHEMHELPPEOPLEANYWAYGIVETHEWORLDTHEBESTYOUHAVEANDYOUWILLGETKICKEDINTHETEETHGIVETHEWORLDTHEBESTYOUHAVEANYWAY));
\\
\\ ***USER FUNCTION*** (Returns the numeric position of 'symbol' in reva)
RNP(symbol)=symbol=Str(symbol);alpha=reva;for(pos=1,27,if(symbol==alpha[pos],return(pos)));
\\
\\ ***ENCRYPTION OF THE PLAINTEXT***
{print("\n\n\\\\ CODE TO BREAK: (wrapped characters to 40 per line)");
print("/*");
for(i=1,#PT,x=PT[i];y=RNP(x);print1(keyd[y]" ");if(i%40==0,print));
print("\n*/\n\n");}