공개 키 암호화에서 공개 키 지문은 더 긴 공개 키를 식별하는 데 사용되는 짧은 바이트 시퀀스입니다.
특히 SSH에서는 서버가 실제로 통신하려는 서버이고 중간자 공격의 대상이 아닌 서버인지 확인하는 데 사용할 수 있습니다.
그들은 일반적으로 16 진수 문자열로 표시되므로 예상되는 지문과 비교하는 것이 지루하고 지루할 수 있습니다.
37:e4:6a:2d:48:38:1a:0a:f3:72:6d:d9:17:6b:bd:5e
좀 더 쉽게하기 위해 OpenSSH는 지문을 ASCII 아트로 시각화하는 방법을 도입했습니다.
+-----------------+
| |
| |
| . |
| . o |
|o . o . S + |
|.+ + = . B . |
|o + + o B o E |
| o . + . o |
| .o |
+-----------------+
이를 통해 ASCII 아트의 거친 모양을 기억하려고 시도하고 서버의 지문이 변경되고 이미지가 다르게 보일 때 (이론적으로) 인식합니다.
작동 원리
에서 촬영 더크 손실, 토비아스 LIMMER, 알렉산더 폰 Gernler. 술취한 주교 : OpenSSH 지문 시각화 알고리즘 분석 .
격자의 너비는 17 자, 높이는 9 자입니다. "비숍"은 4 열 8 열 (중앙)에서 시작합니다. 각 위치는 감독의 시작 위치에 대해 [x, y], 즉 [8,4]로 표시 될 수 있습니다.
1111111
01234567890123456
+-----------------+
0| |
1| |
2| |
3| |
4| S |
5| |
6| |
7| |
8| |
+-----------------+
감독은 지문을 사용하여 움직입니다. 왼쪽에서 오른쪽으로 그리고 바이트에서 가장 중요한 비트부터 가장 중요한 비트까지 바이트 단위로 읽습니다.
Fingerprint 37 : e4 : 6a : ... : 5e
Bits 00 11 01 11 : 11 10 01 00 : 01 10 10 10 : ... : 01 01 11 10
| | | | | | | | | | | | | | | |
Step 4 3 2 1 8 7 6 5 12 11 10 9 64 63 62 61
감독은 다음 계획에 따라 움직일 것입니다.
Bits Direction
-----------------
00 Up/Left
01 Up/Right
10 Down/Left
11 Down/Right
특수한 상황들:
- 감독이 모퉁이에 있고 다시 모퉁이로 들어가면 전혀 움직이지 않습니다. 즉 : 주교가
[0,0]
있고 그의 다음 단계는 다음과 같습니다00
. 그는 남아[0,0]
- 감독이 모퉁이 또는 벽에 있고 벽 중 하나로 이동하면 수평 또는 수직으로 만 움직입니다. 즉 : 주교가
[0,5]
있고 그의 다음 단계는 다음과 같습니다01
. 그는 왼쪽으로 갈 수 없어서 위로 올라갑니다[0,4]
.
각 직책은 감독이이 분야를 얼마나 자주 방문했는지에 대한 가치를 지닙니다.
Value | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15| 16|
Character | | . | o | + | = | * | B | O | X | @ | % | & | # | / | ^ | S | E |
값 15 (S)와 16 (E)은 각각 감독의 시작과 끝 위치를 표시하고 해당 위치의 실제 값을 덮어 쓴다는 점에서 특별합니다.
골
영숫자 지문을 입력으로 사용하고 예제에 표시된대로 ASCII 아트 표현을 생성하는 프로그램을 작성하십시오.
예
Input:
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
Output:
+-----------------+
| . |
| + . |
| . B . |
| o * + |
| X * S |
| + O o . . |
| . E . o |
| . . o |
| . . |
+-----------------+
Input:
b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b
Output:
+-----------------+
| o.o |
| .= E.|
| .B.o|
| .= |
| S = .|
| . o . .= |
| . . . oo.|
| . o+|
| .o.|
+-----------------+
Input:
05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47
Output:
+-----------------+
| o=. |
| o o++E |
| + . Ooo. |
| + O B.. |
| = *S. |
| o |
| |
| |
| |
+-----------------+
규칙
- 이것은 code-golf 입니다. 가장 적은 바이트의 코드가 이깁니다.
- 이미지를 생성하는 기존 라이브러리를 사용할 수 없습니다 .
- 원하는 언어를 사용하십시오!
- 제출은 완전한 프로그램이어야합니다
33:33:33:...:33
이에 cc:cc:cc:...:cc
대한 예입니다. 지문은 일반적으로 MD5 해시이므로 이러한 결과를 얻을 가능성은 거의 없습니다. 나는 이것을 다루는 방법에 대한 신뢰할만한 출처를 찾지 못 했으므로 지금은 말할 것이다 : 14 번 이상 셀을 방문하지 않을