Artificial Intelligence--Cryptanalysis(人工智能--密码分析)

1. Problem Statement

   Our problem is a cryptanalysis problem, that is, the process of converting ciphertext back to plaintext. In most cases, interpreting ciphertext is a difficult problem, and even requires challenging the most sophisticated skills. Fortunately, our problem is relatively simple because we limit the scope to ciphertext encrypted by a single permutation.
   Cryptography “includes methods for converting difficult data into unspecified combinations”. With the “cryptographic algorithm”, messages (plaintext) can be converted into passwords (ciphertext), and then ciphertext into plaintext.
   We need to design an intelligent system for decrypting text, for which we need to build a knowledge base. When we solve ciphertext, it is meaningless to search exhaustively. We need to try some techniques to build the corresponding knowledge base, so as to improve the efficiency and success of decryption. In order to design intelligent systems, we can reuse the blackboard architecture. The domain knowledge needed to solve a problem is divided into many separate and independent knowledge sources, and the goal of each knowledge source is to contribute information that will lead to the solution of the problem. Knowledge sources constitute the knowledge base we need.

   我们的问题是一个密码分析问题,即把密文转换回明文的过程,在大多数情况下,解读密文是一个很难处理的问题,甚至需要挑战最精巧的技能。幸运的是,我们的问题相对简单,因为我们把范围限制为经过单次置换加密的密文。
   密码学“包含把难于理解的数据转变为非指定组合的各种方法”。使用“密码算法”,消息(明文)可以被转化为密码(密文),然后再由密文转换回明文。
   我们需要设计一个破解密文的智能系统的设计,而对此我们需要建立一个知识库。我们求解密文的时候,进行穷举搜索是没有任何意义的,我们需要尝试一些技术,从而建立相应的知识库,从而提高破解密码的效率和成功率。为了设计智能系统,我们可以复用黑板架构。解决一个问题所需要的领域知识被分成许多分离和独立的知识源,而每一个知识源的目标就是贡献会导致问题解的信息。而知识源构成了我们所需要的知识库。

2. Domain Activity(业务领域活动图)

在这里插入图片描述

3. Glossary

3.1 Introduction

   This document is used to define terminology specific to the problem domain, explaining terms, which may be unfamiliar to the reader of the use-case descriptions or other project documents. Often, this document can be used as an informal data dictionary, capturing data definitions so that use-case descriptions and other project documents can focus on what the system must do with the information.

   本文档用于定义特定于问题域的术语,解释术语,读者可能不熟悉用例描述或其他项目文档。通常,该文档可以用作非正式的数据字典,捕获数据定义,以便用例描述和其他项目文档可以关注系统必须对信息做什么。

3.2 Definitions(定义)

3.2.1 BlackBoard(黑板)
  • Inheriting the DynamicCollection class has the responsibility of collecting instances of BlackBoardObject class and its subclasses.

  • 继承DynamicCollection类,有收集BlackBoardObject类及其子类实例的责任。

3.2.2 BlackBoardObject(黑板对象类)
  • An abstract class that represents the class that can be placed on the blackboard.

  • 一个抽象类,代表可以放置在黑板上。

3.2.3 Dependent(依赖)
  • An abstract class that maintains a reference to a knowledge source so that when the reference to that object changes, it can notify the corresponding knowledge source of something that happens.

  • 一个抽象类,维持对知识源的引用,以便当该对象的引用改变时,能够通知相应的知识源一些事情的发生。

3.2.4 Sentence(密文)
  • Complete ciphertext.

  • 完整的密文。

3.2.5 Word (单词)
  • Words in sentence.
  • 密文中的单词。
3.2.6 CipherLetter (字母)
  • Letters in word.
  • 单词的单个字母。
3.2.7 Affirmation (陈述)
  • A class that maintains the assumptions and assertions of an associated object.
  • 维持一个相关联对象的假设和断言的类。
3.2.8 Assumption (假设)
  • Specific knowledge sources make a hypothesis about the mapping of plaintext to ciphertext.

  • 特定的知识源关于明文/密文的映射做出一个假设。

3.2.9 Assertion (断言)
  • Identify a non-temporary assumption.
  • 确定一个非临时的假设。
3.2.10 Alphabet(字母表)
  • Clear alphabet, cipher alphabet and their mapping.

  • 明文字母表、密文字母表和两者之间的映射。

3.2.11 Knowledge(知识源)
  • Domain knowledge needed to solve a problem, such as common prefixes, common suffixes, etc.

  • 解决一个问题所需要知道的领域知识,比如常用前缀、常用后缀等。

4. Domain Class Diagram(领域类图)

在这里插入图片描述