https://www.itworld.co.kr/tags/2784/%EC%95%94%ED%98%B8%ED%99%94/132494
XOR ์ฐ์ฐ
์ํธํ ๋ฐ ๋ณตํธํ์ XOR ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ฐ ํ
์คํธ๋ฅผ ASCII ๋ฐ์ดํธ ํ์์ผ๋ก ๋ณํํ๊ณ
XOR ํ๋ก ์์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ ๋ฐ์ดํธ๋ก ๋ณํํ๋ค. ์ฌ์ฉ์์๊ฒ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ ๊ณตํจ.
- ๋น ๋ฅธ ๊ณ์ฐ
- ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ ํ์๋ ์ฐจ์ด ์์
- ์ดํดํ๊ณ ๋ถ์ํ๊ธฐ ์ฌ์
ํน์ง
- XOR์ ํ๊ธฐ ์ํด์๋ key๊ฐ ํ์ํ๋ฉฐ, key๋ ์์๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
- ์ํธํ ๋ณตํธํ๊ฐ ๊ฐ๋ค
- xor์ฐ์ฐ์ ^ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
์ฐธ์กฐ
XOR ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ๋ฌด์ฐจ๋ณ ๋์
๋ฐฉ์,
์ฆ ์ฌ๋ฐ๋ฅธ ์ํธ ํ
์คํธ์ ์ผ์นํ๋ ์์์ ์ํธํ ํค๋ฅผ ์์ฑํ์ฌ ํฌ๋ํนํ๊ธฐ ์ด๋ ต๋ค.
www.tutorialspoint.com/cryptography_with_python/cryptography_with_python_xor_process.htm
Cryptography with Python - XOR Process - Tutorialspoint
Cryptography with Python - XOR Process In this chapter, let us understand the XOR process along with its coding in Python. Algorithm XOR algorithm of encryption and decryption converts the plain text in the format ASCII bytes and uses XOR procedure to conv
www.tutorialspoint.com
XOR ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
์ถ์ฒ : ์ํค๋ฐฑ๊ณผ
XOR ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ(XOR swap algorithm) ๋๋ XOR ์ค์ ์๊ณ ๋ฆฌ์ฆ์ ์์ ๋ณ์๋ฅผ ๋์ง ์๊ณ , ๋ ๊ฐ์ ๋ณ์๋ฅผ ๋ฐฐํ์ ๋
ผ๋ฆฌํฉ(XOR) ๋นํธ ์ฐ์ฐ์ ์ด์ฉํ์ฌ ๊ต์ฒด(swap)ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ๋ถ์ผ์์ ํ๋ก์ธ์์ ์ต์ ํ ๋ฅ๋ ฅ์ด ๋ถ์กฑํ์ ๋ ๋์์ผ๋ก ์์ฃผ ์ฌ์ฉ๋์๋ค.
์๊ณ ๋ฆฌ์ฆ ๊ตฌํํ๊ธฐ
๋์๊ณผ์ ์ msg๊ธธ์ด๋งํผ key๊ณผ xor์ฐ์ฐ์ ํด์ฃผ๋ ๊ฒ์ด๋ค.
๋จ key๊ฐ msg๋ณด๋ค ์งง๋ค๋ฉด ๋ค์ key์ ์ฒ์์ผ๋ก ๋์๊ฐ์ ์ฐ์ฐํด์ฃผ์ด์ผ ํ๋ค.(์ด๊ณผ x)
def encrypt_xor(msg,key):
m_size = len(msg)
k_size = len(key)
ans = bytearray()
for i in range(m_size):
ans.append(msg[i] ^ key[i % k_size])
return ans
def main():
msg = 'hello world'
key = 'haeun'
enc = encrypt_xor(msg.encode(),key.encode())
dec = encrypt_xor(enc, key.encode()) #enc๋ byteํํ์ด๋ฏ๋ก encode()๊ฐ ํ์ ์์.
print("์๋ฌธ : ",msg)
print("์ํธํ : ",enc)
print("๋ณตํธํ : ",dec.decode())
main()
๊ฒฐ๊ณผ