7073 : 비즈네르 암호
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
비즈네르 암호(Vigenère Cipher)는 키워드를 반복 사용하는 고전 암호 방식입니다.
암호화 방법: 평문의 각 소문자를 키의 대응 문자만큼 알파벳 순서로 이동시킵니다. (a=0, b=1, ..., z=25, 모듈러 26)
복호화 방법: 암호화의 역연산을 수행합니다.
공백 문자는 암호화/복호화 대상에서 제외하며 그대로 유지합니다.
키 포인터는 공백이 아닌 문자에 대해서만 증가합니다.
[제약 조건]
• 키: 소문자 영문자
• 대상 문자열: 소문자 영문자와 공백
암호화 방법: 평문의 각 소문자를 키의 대응 문자만큼 알파벳 순서로 이동시킵니다. (a=0, b=1, ..., z=25, 모듈러 26)
복호화 방법: 암호화의 역연산을 수행합니다.
공백 문자는 암호화/복호화 대상에서 제외하며 그대로 유지합니다.
키 포인터는 공백이 아닌 문자에 대해서만 증가합니다.
[제약 조건]
• 키: 소문자 영문자
• 대상 문자열: 소문자 영문자와 공백
입력 설명
첫째 줄에 모드
둘째 줄에 키(소문자 영문자)가 주어집니다.
셋째 줄에 대상 문자열(소문자 영문자와 공백으로 구성)이 주어집니다.
E(암호화) 또는 D(복호화)가 주어집니다.둘째 줄에 키(소문자 영문자)가 주어집니다.
셋째 줄에 대상 문자열(소문자 영문자와 공백으로 구성)이 주어집니다.
출력 설명
암호화 또는 복호화 결과 문자열을 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
E
lemon
attackatzero
출력 예시
COPY
복사되었습니다!
복사되었습니다!
lxfopvefnrcs
도움
암호화:
복호화:
키의 인덱스는 공백을 제외한 문자에 대해서만 증가시킵니다.
enc = (plain + key_shift) % 26복호화:
dec = (cipher - key_shift + 26) % 26키의 인덱스는 공백을 제외한 문자에 대해서만 증가시킵니다.