다표식 암호

polyalphabetic cipher
다중문자 암호, 다중문자 치환 암호, 다표식 암호

1 개요[ | ]

  • 원문을 일정 크기의 블록으로 나누고, 블록의 각 자리마다 치환규칙이 다른 암호

2 엑셀로 구현[ | ]

입력
1
2
3
4
5
6
7
8
9
A B C D E
평문 N 암호문 블록규칙
C =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2)) 2
O =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2)) 5
N =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2)) 8
T =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2)) 0
E =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2))
N =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2))
T =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2))
S =INDIRECT(ADDRESS(MOD(ROW()-2,4)+2,5)) =IF(CODE(A2)<CODE("Z")-B2+1,CHAR(CODE(A2)+B2),CHAR(CODE(A2)-26+B2))
출력
1
2
3
4
5
6
7
8
9
A B C D E
평문 N 암호문 블록규칙
C 2 E 2
O 5 T 5
N 8 V 8
T 0 T 0
E 2 G
N 5 S
T 8 B
S 0 S

3 같이 보기[ | ]

4 참고[ | ]

  • 로또 당첨확률 계산
    같은 번호를 구입할 확률은 1/ (45*44*43*42*41*40) 아닐가요? 그렇다면 같은 번호가 1등이 될 확률은 어떻게 되는건가요? 공일