power-girl0-0

시저 암호(Caesar cipher) 구현하기 본문

암호 프로토콜

시저 암호(Caesar cipher) 구현하기

power-girl0-0 2021. 3. 11. 21:56
728x90

 시저 암호 

시저 암호는 암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서, 다른 알파벳으로 치환하는 방식이다.

여기서, 일정한 거리는 key를 의미한다.

따라서 시저 암호는 key가 필요하며, 숫자로 지정해줘야한다.

 

암호화와 복화화 과정도 다르기 때문에, 따로 구현해줘야 한다.

암호화는 일정한 거리만큼 밀리지만, 복호화는 이동한 거리만큼 다시 당겨야 한다.

출처 : 위키백과

 

 


 소스코드 

def encrypt_cis(msg,key): #암호화
    ans = ''
    dic = 'abcdefghijklmnopqrstuvwxyz'
    
    for m in msg:
        index = dic.find(m) #dic에서 해당 문자가 몇번째 문자인지 찾아준다.
        if(index ==  -1):	#공백일 경우 ( =띄어쓰기 )
            ans = ans + m
        else:
            index = index + key  # key만큼 뒤로 이동
            index = index % len(dic) # index길이를 초과하지 않도록 방지한다.
            ans = ans + dic[index]
            
    return ans
              
        

def decrypt_cis(enc_msg,key): #복호화
    ans = ''
    dic = 'abcdefghijklmnopqrstuvwxyz'
    
    for m in enc_msg:
        index = dic.find(m)
        if(index ==  -1):
            ans = ans + m
        else:
            index = index - key # key만큼 앞으로 이동
            index = index % len(dic)
            ans = ans + dic[index]
            
    return ans


def main():
    msg = 'i love you'
    key = 1
    
    enc_msg = encrypt_cis(msg, key)
    print(enc_msg)
    
    dec_msg = decrypt_cis(enc_msg, key)
    print(dec_msg)

main()

 결과 


아래주소를 보면서 같이, 공부하면 좋을 듯하다.

( www.tutorialspoint.com/cryptography_with_python/cryptography_with_python_caesar_cipher.htm )

 

 

728x90

'암호 프로토콜' 카테고리의 다른 글

Cryptodome 설치하기  (0) 2021.03.25
requests 모듈  (0) 2021.03.18
XOR을 이용한 암호화 구현하기  (0) 2021.03.11
간단한 암호화, 복호화 만들기  (0) 2021.03.11
아나콘다 설치하기  (0) 2021.03.11
Comments