Skip to content

Latest commit

 

History

History

Day_4_High-Entropy_Passphrases

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Day 4: High-Entropy Passphrases

Part 1

Translation

모든 계정은 암호(password) 대신에 암호문(passphrase)을 사용한다는 새로운 체계 정책이 적용되었다. 암호문은 띄어쓰기로 구분된 일련의 단어들 (알파벳 소문자)로 구성된다.

보안성을 확립하기 위해, 유효한 암호문은 중복 단어가 없어야 한다.

예시:

  • aa bb cc dd ee 는 유효하다.
  • aa bb cc dd aa 는 유효하지 않다. - aa 단어가 1번 이상 나타난다.
  • aa bb cc dd aaa 는 유효하다. aaaaa는 다른 단어로 여긴다.

체계의 암호문 목록이 퍼즐 입력으로 주어진다. 유효한 암호문의 개수는?

Solution

  • 입력 : 암호문들
  • 처리 : 파싱된 단어들을 dictionary에 하나씩 넣어보면서 중복이 나타나면 무효를, 중복이 없으면 유효로 개수를 센다.
  • 출력 : 중복이 없는 유효한 암호문들의 개수.
  • source

Part 2

Translation

추가적인 보안성을 위해, 또다른 체계 정책이 적용되었다. 이제, 서로 철자 바꾸기가 되는 두 개의 단어를 포함하지 않아야 유효한 암호문이다 - 즉, 암호문의 어느 단어의 철자들로 다른 단어를 형성할 수 있다면 무효한 암호문이다.

예시:

  • abcde fghij 는 유효한 암호문이다.
  • abcde xyz ecdab 는 무효하다 - 3번째 단어의 철자들로 1번째 단어를 생성할 수 있다.
  • a ab abc abd abf abj 는 유효한 암호문인데, 이는 서로 철자 바꾸기가 되지 않는다.
  • iiii oiii ooii oooi oooo 는 유효하다.
  • oiii ioii iioi iiio 는 무효하다 - 모든 단어들이 다른 단어들로 형성될 수 있다.

새로운 체계 정책 하에, 유효한 암호문의 개수는?

Solution

  • 입력 : 암호문들
  • 처리 : 파싱된 단어들을 dictionary에 하나씩 넣어보는데, 단어 안의 철자들은 사전 순으로 정렬이 되어 있어야 하며, 여기서 중복이 나타나면 무효를, 중복이 없으면 유효로 개수를 센다.
  • 출력 : 사전 순으로 정렬된 철자로 구성된 단어의 중복이 없는 유효한 암호문들의 개수.
  • source