본문 바로가기

728x90

디지털포렌식(Digital forensic)

(108)
셔플링(Shuffling) 암호, 산이전삼나두세도느과 낮은 수준의 암호 개념으로 입력된 문자의 순서를 무작위로 섞는 방법이다. 이렇게 하면 원래 문장의 구조가 부서지기 때문에 글을 읽기 어려워진다(가독성이 없다.). 그렇지만, 무작위로 섞인 문자는 원래의 문장이나 단어를 알고 있는 사람에게는 어렵지 않다. 예를 들어, '낮말은새가듣고밤말은쥐가듣는다'를 셔플링해서 결과가 '듣가낮다쥐은말은밤는말새고듣가'로 나왔다면 당신은 이미 평문(원문)을 알고 있기때문에 어렵지 않게 맞출 수 있지만 외국인이나 속담을 모르는 사람은 맞추기 어렵다. using System; using System.Linq; using System.Text; class Program { static string ShuffleCharacters(string input) { // Convert th..
bit shift 암호, 75, 79, 82, 69, 65 2진수 비트를 이용한 암호화 방법은 전문적인 방법은 아니다. 암호화의 개념을 이해하고 디지털을 이용해 흥미를 갖는 용도 정도로만 사용하길 바란다. 비트 시프트(bit shift) 연산은 16진수를 2진수로 표현하며 지정된 비트만큼 좌측 또는 우측으로 비트를 옮기고 빈 자리에 0 또는 1을 채우는 방식으로 만든다. 비트 시프트 연산에는 두 가지 유형이 있습니다: 왼쪽 시프트(Left Shift)와 오른쪽 시프트(Right Shift)다. 왼쪽 시프트 (Left Shift): 왼쪽 시프트는 이진수를 왼쪽으로 이동시키는 연산 방식이다. 이동하는 만큼 값이 2의 거듭제곱 배가 된다. 예를 들어, 1을 2번 왼쪽으로 시프트하면 4가 된다. 0001(0x01) ▶ 0100(0x04) 오른쪽 시프트 (Right Sh..
XOR 암호, aeae?yAAI C# 코드로 구현한 비트 연산을 이용한 간단한 암호화 예제다. 예제에서는 XOR 연산을 사용하여 데이터를 암호화하고 복호화하는 방식을 사용한다. XOR 연산은 배타적 논리합 연산을 말한다. 두 개의 입력이 주어졌을 때, 두 개의 입력 중 하나만이 참(True)일 때 결과가 참이 되며, 둘 다 참이거나 둘 다 거짓일 때는 결과가 거짓(False)이 된다. XOR은 "Exclusive OR"의 약어로서, 배타적인 조건을 나타낸다. XOR 연산의 진리표 입력 A 입력 B 결과 0 0 0 0 1 1 1 0 1 1 1 0 사용된 주요 값들은 평문은 panintext = "NANA Wine" 이고, 키값은 int key = 0xAA, 핵심 코드는 XOR를 수행하는 encryptedChars[i] = (char)(i..
숫자 대치 암호, 74797357449 각 숫자를 다른 숫자로 대체(Exchange)하여 암호화하는 방식으로 대치 암호(Substitution Cipher)는 숫자만을 이용한 가장 간단한 암호화 방법들 중 하나다. 가장 간단한 대치 암호는 숫자 0부터 9까지 각각을 다른 숫자로 대체하는 규칙을 사용할 수 있다. 아래는 숫자 0부터 9까지 랜덤 형식으로 대치하는 Example이다. 0 ▶ 7 1 ▶ 4 2 ▶ 9 3 ▶ 1 4 ▶ 0 5 ▶ 8 6 ▶ 3 7 ▶ 5 8 ▶ 6 9 ▶ 2 대치 암호를 사용하면 숫자를 암호화하고 복호화할 수 있다. 예를 들어, 숫자 1234는 암호화되면 4910이 되고, 이를 다시 복호화하면 1234로 복원된다.. 간단한 대치 암호는 안전하지 않다. 아래는 C# 으로 구현한 숫자 대치의 코드다. using Syst..

728x90