Jump to content

What is this cipher?

glitchmaster0001

Hi, I was given this chiper to solve and Im stuck. anyone have any clue on what to do?

 

CIPHERED = KWX-FkxUIbRC8-CHvsxmAi-bgZAcQxa-LBCpm4aK

GIVEN 'a' = 0, 'A' = 26, '0' = 52, 'a'-1 = 61, and '9'+1 = 0
FOR EACH CHARACTER IN CIPHERED:
    CHARACTER -= 5
 

"Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning." -Albert Einstein

Link to comment
Share on other sites

Link to post
Share on other sites

11 minutes ago, glitchmaster0001 said:

Hi, I was given this chiper to solve and Im stuck. anyone have any clue on what to do?

 

CIPHERED = KWX-FkxUIbRC8-CHvsxmAi-bgZAcQxa-LBCpm4aK

GIVEN 'a' = 0, 'A' = 26, '0' = 52, 'a'-1 = 61, and '9'+1 = 0
FOR EACH CHARACTER IN CIPHERED:
    CHARACTER -= 5
 

a-z = 0-25, A-Z = 26-51, 0-9 = 52-61

Give me a moment and I can solve it.
 

Specs: CPU - Intel i7 8700K @ 5GHz | GPU - Gigabyte GTX 970 G1 Gaming | Motherboard - ASUS Strix Z370-G WIFI AC | RAM - XPG Gammix DDR4-3000MHz 32GB (2x16GB) | Main Drive - Samsung 850 Evo 500GB M.2 | Other Drives - 7TB/3 Drives | CPU Cooler - Corsair H100i Pro | Case - Fractal Design Define C Mini TG | Power Supply - EVGA G3 850W

Link to comment
Share on other sites

Link to post
Share on other sites

Every character is represented by a number between 0 and 61:

a-z =  0-25

A-Z = 26-51

0-9 = 52-61

 

 


a=0

b=1

....

z=25

A=26

B=27

....

Z=51

0=52

1=53

....

9=61
 

 

And if you would reach 62, then instead of going to 62 you go to 0, and if you would reach 0 then instead you would go to 61. 

 

So, the ciphered string could be represented by the value of each character instead. So "ABC"="'26''27''28'".

 

Quote

FOR EACH CHARACTER IN CIPHERED: CHARACTER -= 5

To me that means one of three things:

  1. The ciphered string is adjusted by 5 for each character in the string. So if the string is "ABC", then there are three characters and so each character would be offset by 15, so instead of "ABC"="'26''27''28'", "ABC" would be decoded to be "'11''12''13'" or "'41''42''43'".
  2. Every character in the ciphered string is adjusted by 5, so "ABC" would be decoded to "'21''22''23'" or "'31''32''33'".
  3. Every character in the ciphered string is adjusted by 5*the position in the string. So in "ABC", 'A'='26' would be offset by 5 (and thus '21' or '31'), 'B' would be offset by 5*2=10 (and thus '17' or '37'), and 'C' would be offset by 5*3=15 (and thus '13' or '43').

PSU Tier List | CoC

Gaming Build | FreeNAS Server

Spoiler

i5-4690k || Seidon 240m || GTX780 ACX || MSI Z97s SLI Plus || 8GB 2400mhz || 250GB 840 Evo || 1TB WD Blue || H440 (Black/Blue) || Windows 10 Pro || Dell P2414H & BenQ XL2411Z || Ducky Shine Mini || Logitech G502 Proteus Core

Spoiler

FreeNAS 9.3 - Stable || Xeon E3 1230v2 || Supermicro X9SCM-F || 32GB Crucial ECC DDR3 || 3x4TB WD Red (JBOD) || SYBA SI-PEX40064 sata controller || Corsair CX500m || NZXT Source 210.

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, djdwosk97 said:

To me that means one of three things, either:

  1. The ciphered string is adjusted by 5 for each character in the string. So if the string is "ABC", then there are three characters and so each character would be offset by 15, so instead of "ABC"="'26''27''28'", "ABC" would actually be "'11''12''13'" or "'41''42''43'".
  2. Every character in the ciphered string is adjusted by 5, so "ABC"="'21''22''23'" or "ABC"="'31''32''33'".
  3. Every character in the ciphered string is adjusted by 5*the position in the string. So in "ABC", 'A'='26' would be offset by 5 (and thus '21' or '31'), 'B' would be offset by 5*2=10 (and thus '17' or '37'), and 'C' would be offset by 5*3=15 (and thus '13' or '43').

I'm leaning towards it meaning #1.

Specs: CPU - Intel i7 8700K @ 5GHz | GPU - Gigabyte GTX 970 G1 Gaming | Motherboard - ASUS Strix Z370-G WIFI AC | RAM - XPG Gammix DDR4-3000MHz 32GB (2x16GB) | Main Drive - Samsung 850 Evo 500GB M.2 | Other Drives - 7TB/3 Drives | CPU Cooler - Corsair H100i Pro | Case - Fractal Design Define C Mini TG | Power Supply - EVGA G3 850W

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, TheKDub said:

I'm leaning towards it meaning #1.

It's hard to know since the wording isn't clear and it's gibberish all three ways that I've tried it in my head. 

PSU Tier List | CoC

Gaming Build | FreeNAS Server

Spoiler

i5-4690k || Seidon 240m || GTX780 ACX || MSI Z97s SLI Plus || 8GB 2400mhz || 250GB 840 Evo || 1TB WD Blue || H440 (Black/Blue) || Windows 10 Pro || Dell P2414H & BenQ XL2411Z || Ducky Shine Mini || Logitech G502 Proteus Core

Spoiler

FreeNAS 9.3 - Stable || Xeon E3 1230v2 || Supermicro X9SCM-F || 32GB Crucial ECC DDR3 || 3x4TB WD Red (JBOD) || SYBA SI-PEX40064 sata controller || Corsair CX500m || NZXT Source 210.

Link to comment
Share on other sites

Link to post
Share on other sites

So you basically have  a..z  + A..Z + 0..9  as a dictionary... and for each character in the string, if it's in the dictionary, replace it with the character 5 positions before it.

So that's easy, the only problem would be if the character is one of "abcde", because for example is a is '0', then 0-5 would be -5, and there's no such character, so it's just easier to add "56789" in front of "a"

 

Here's some example source code in php :

 

<?php

$dictionary = '56789'.
'abcdefghijklmnopqrstuvwxyz'.
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
'0123456789';	

$hash = 'KWX-FkxUIbRC8-CHvsxmAi-bgZAcQxa-LBCpm4aK';

$decodedtext = '';

// count the number of characters 
$hash_length = strlen($hash);

for ($i=0;$i<$hash_length;$i++) {
	// read character i from the hash, from 0 to last one
	$character = substr($hash,$i,1);
 	// find the offset in the dictionary for this character, starting from the end
 	$position = FALSE;
 	$position = strrpos($dictionary,$character);
 	if ($position!==FALSE) { // the character was found in dictionary
		// add to decodetext the character at [position-5]
		$decodedtext = $decodedtext . substr($dictionary, $position-5,1);
 	}
}
echo 'Here is your decoded text: ' . $decodedtext; 

?>

For that hash, the output is FRSAfsPD6Mx3xCqnshvd6bUv7Ls5GwxkhZ5F

 

So i don't know if I got it right, i may have missed some letter in the dictionary or something.

 

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, sgzUk74r3T3BCGmRJ said:

It's probably fine. If you compute the 'dictionary' it'll work out the same way. As a one-liner you could have written something like this:


ruby -e'_=[*?a..?z,*?A..?Z,*?0..?9];p"KWX-FkxUIbRC8-CHvsxmAi-bgZAcQxa-LBCpm4aK".tr _*"",_.rotate(-5)*""'

And you get a the same result:

"FRS-AfsPD6Mx3-xCqnshvd-6bUv7Ls5-GwxkhZ5F" 

 

Maybe OP was asking what the name of this method of scrambling text is called: typically it's referred to as a "Caesar shift" or "Caesar cipher".

Yeah I meant to ask what the name of the cipher was. I managed to figure it out though in the end! 

"Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning." -Albert Einstein

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×