替换式密码

密码学术语

替换式密码,又名取代加密法,是密码学中按规律将文字加密的一种方式。替换式密码中可以用不同字母数为一单元,例如每一个或两个字母为一单元,然后再作加密。密文接收者解密时需用原加密方式解码才可取得原文本。由于拼音文字中字的组成为有限的字母,以英语为例只有26个字母,组成可能的单元数较少,因此使用替换式密码相对较为容易,而且亦可使用简单机械进行加密;相反,非拼音文字如中文则因单元数非常大难以使用一般加密方式,必需建立密码本,然后逐字替换。更何况某些非拼音文字中字字皆由不同大小的字根来组字,较难转换,因此使用替换式密码的示例比较少。

简易替换密码
简易替换加密是一种以特定方式改变字母表上字母顺序,并以此顺序书写的加密方式。这样一张改变了字母次序的字母表即为‘替换表’。替换表可以以偏移或逆转(分别为凯撒密码和阿特巴希密码(英语:Atbash))或更复杂方式构造,此时称之为‘混合表’。传统上会先把一个关键词写在字母表最前面,再删去重复字母,这样就能得到一个混合表。
例子
使用混合表系统,关键字为“zebras”:
明文为ABCDEFGHIJKLMNOPQRSTUVWXYZ;密文为ZEBRASCDFGHIJKLMNOPQTUVWXY。
明文为:flee at once. we are discovered;加密结果为:SIAA ZQ LKBA. VA ZOA RFPBLUAOAR。
传统上,密文会省略标点符号和空格,同时会有一固定长度的单位,以避免传输错误和变相显示明文中单词的边界。这些单位被称为“组”(英语:groups),有时叫“组数”(英语:groupcount)(即组的数量),并使其作为一额外检查。通常都会使用五个字母为一组,然后使用电报传送消息:
SIAAZ QLKBA VAZOA RFPBL UAOAR
如果该段明文的长度不能被五整除,将需要在最后用“NULL”补齐。这些空字符可以是任何字符,因为解密后可以看出是明显的废话(如ORANG EOOOO),所以接收器可以很容易地发现并将其丢弃。如若接收发现密文的长度不能被五整除,就可以得知传输出错,并要求重新发送。
简易替换密码有时不一定要替换至另一字母,例如在猪圈密码中,密文由格子的符号组成。
这些功能增加的安全性与以前其实相差不大,因为基本上所有奇怪的符号最后都会转换成A-Z字母。有时销售人员会在他们的名单和目录中使用非常简单的加密法:用字母来代替数字。
本文(数字):1234567890;加密字母:MAKEPROFIT。
例子:MAT代表120。
安全性
简易替换密码的缺点是字母表中的最后几个字母(其中大多是低使用频率)往往留在最后。加强的办法是在加密后再做一次纵栏式移调,但很多时也没有这样做。
尽管加密用到的密钥可能性很大(26! ≈2^88.4 ,若88位元),但要破解单表加密却异常容易。只要提供有合理长度的密文,密码分析就能通过频率分布(英语:Frequency distribution)的分析推断最常见的单元的意义,即频率分析。这使破解者可用剔除法,把有个单元的意思解出来,见一个破解的例子。在某些情况下,可以从它们的字母的格局来破解,例如“attract”和“osseous”是英语中仅有的“ABBCADB”模式的“根”,即如遇见有简易替换密码的密文中出现“ABBCADB”,即可猜测其为“attract”或“osseous”。康乐及报纸拼图等包含着不少这种加密法。
按照英语的唯一解距离(英语:Unicity distance),密文平均最少需要27.6个字母才能破解混合表简易替换密码。而在正常情况下,假设遇到的是新排列方式,但通常都需要约50个字母(当中有些密文可以用得比较少)。然而,当密文有极平坦的频率分布,密文长度的需求可能越来越大。同时,加密者可以添加空字符来造成平坦的频率分布。
另外,有另一种方法来“伪造”频率分布,名为漏字文。顾名思义,这些文章会有意避免使用某个或某几个特定字母。如果漏掉的是E,那么若然继续以正常的频率分析(估计最高频率者为E)就不可能找出真正的明文。
谐音替换法
早期的加密中,为增加替换式密码应付频率分析攻击的强度,有时会采用“谐音”来改变明文字母频率。在这种加密算法中,明文字母可以映射到多个密文符号。通常情况下,频率最高的明文符号(如E)会比低使用频率的字母(如X)有更多的谐音符号,使频率分布更为平坦,让分析更困难。
但亦因此,只是字母之间互相替换就会造成不够分配,从而有了好几种不同的解决方法。其中最简单的方式可以算是用1-0共10个数字作为某些字母的替换。另一种方法则是将现有的字母分开成原字母配以简单的变化、大写、小写、上下倒转的字母、镜像文字(左右倒转)等。虽然更为艺术化,却不代表一定更安全,其中一些谐音替换法全部使用新发明的奇特符号来代表字母。
一种有趣的变化名为命名密码法(英语:nomenclator)。此加密法有许多不同的版本,之间的区别来自其前缀。而该前缀来自宣读来访贵宾称号的公职人员名字。这种密码结合一个小型密码本(英语:Codebook)组成一个大型的谐音替换表。在此密码中,常用单词会按密码本加密,余下字母则按另一本密码本加密,两者符号最后在密文中混起来,以减低简易替换密码中被破解的风险。路易十四所使用的密码是罗西诺尔家族(英语:Rossignols)创立的伟大密码,该密码直至法国王室废止后百年才被破解。
15世纪早期至18世纪后期,命名密码是外交文件及间谍最常使用的加密,然而其中大多数仍然使用加密性能较差的命名密码。虽然由十六世纪中叶开始政府情报机构的密码分析员就破解部分命名密码法,但使用者通常的反应仅仅是加大谐音替换表。十八世纪后期,谐音替换系统开始消亡之时,一些命名密码已有高达5万个符号。
然而,并非所有命名密码法都已被破解。直到今天,仍然不时有新的命名密码被破解的新闻。
比尔密码是另一个谐音替换法的例子。这个故事指在1819年至1821年期间由一个加密文本来隐藏美国独立宣言中所述的宝藏。在这里,每个密文字符由一个数字替换。数字代表着独立宣言中第几个字的第一个字母。独立宣言中许多字的首字母都是一样的,而密文数字能是其中任何一个,例如正文中第二和第六个字都是“I”开头,即“I”既可以是2,又可以是6。而解读仅仅就是把密文中的数字(如代数X),放到独立宣言中查找(第X个字的首字母)。
斯塔尔则描述了另一个谐音替换密码,其密码是第一次尝试在电脑的数据库上加密。在斯塔尔的方法中,无论是明文还是密文都是以二进制字符串存储,因此谐音的数量可以非常大,使得频率分析比平常更为困难。
书本式加密(英语:Book cipher)与散列板都是谐音替换密码的一种。
多表替换加密
在1467年,多表替换密码由莱昂·巴蒂斯塔·阿尔伯蒂以圆碟的形式首次描述。约翰尼斯·特里特米乌斯所著的《隐写术》(古希腊文:Steganographia)中介绍了一种表格(古希腊文:tableau)(见下;15世纪已完成但很久以后才出版)。1563年,乔瓦尼·巴蒂斯塔·德拉波尔塔(英语:Giovanni_Battista_della_Porta)在《书写中的隐蔽字符》(古希腊文:De FurtivisLiterarum Notis)描述了一个更复杂的混合字母版本。
在一个多表替换密码中,会使用多个字母作为密码。为了加快加密或解密速度,所有的字母通常写在一张表格上,密码学上称作tableau。这种表格通常是26×26,因为这样才能放下全部26个英文字母。填充表格及选择下次使用的字母的方法,就是不同多字母替换密码之间的定义。多字母替换密码比单字母更难打破,因为其替换可能性多,密文要较长才可。
其中最著名的一种为吉奥万·巴蒂斯塔·贝拉索于1585年推出的维吉尼亚密码。它于1863年之前一直未被破解。法国人称它作“不能破译的密码”(法语:le chiffre indéchiffrable)。(此密码曾被误以为由布莱斯·德·维吉尼亚所创,所以才叫作维吉尼亚密码。)
维吉尼亚密码中,表格的第一行只需直接填上26个字母,然后以下每一行的字母都是向左偏移一格。(这叫作表格横移,数学上每一列同余26。)要用这种密码需要使用一个关键字来作为密钥。关键字每次用完就再次重复。假设关键字是“CAT”,明文的第一个字由“C”加密,第二个字由“A”加密,第三个则由“T”加密,然后再回到C加密,一直重复。然后按照右边的密码表加密,例如BALL用CAT作关键字时会加密至DAEN,可见即使是同一个“L”亦会加密至另一个字母。现实中,维吉尼亚密码的关键字非常长。
1863年,弗里德里希·卡西斯基(英语:FriedrichKasiski)少校发明了一种方法(在克里米亚战争前已由查尔斯·巴贝奇秘密并独立地发明),使得可以计算维吉尼亚密码中关键字的长度。这种方法需要较长的密文,因为其运作依靠找出常见的字(如THE)使用相同关键字(如ABC)的数量,因此,极短的密文难以用此办法找出。
因此,即使在今天,如果在表格中使用混合表加密,或关键字是随机的,维吉尼亚密码理论上亦难以破解。但由于实际上很难用到这些方法,维吉尼亚密码的使用越来越少。
其他著名的多字母替换加密包括:
格兰示菲特密码 - 与维吉尼亚密码相似,但由于整个密码只使用10个单元,因此关键字长度有限,很容易被破解。博福特密码 - 这实际上就是维吉尼亚密码,除“tabula”改为向后偏移一格,数学上是等式为:密文=键-明文。博福特密码属于对等加密,即加密算法与解密算法相同。自动密钥密码 - 它的密钥开头是一个关键词,之后则是明文的重复,以避免周期函数。运动密钥密码,关键词从某些文章或名句中取出,因此可以非常长。
现代的流密码中可以看出,现代的多表替换加密都努力改进流密钥,使其尽可能的长及不可预知。
表格式替换加密
在表格式替换密码中,明文不再单独替换某个字母,而是一次过替换较大的字母单元(通常为一对字母)。第一个优点是频率分布比单个字母时更平坦(虽然实际上并不平坦,因为在日常语言中,“TH”就远远比“XQ”常见)。其次,其产生的大量的符号,相应地需要更多的密文来进行高效的字母频率分析。
为了替换每“对”字母,将需要共676个符号(26^2 = 676 )。在之前说过的《书写中的隐蔽字符》一书中,德拉波尔塔提出了这样一个系统:用一个20 x 20的表格(意大利或拉丁文字中的20个字母。),其中填上400个特别的字形。然而,该系统实为不切实际,更有可能从来没有实际使用过。
最早的实用表格式替换密码是查尔斯·惠斯登(英语:CharlesWheatstone)爵士于1854年所创的波雷费密码。在此密码中,5×5的方格中填满了混合字母(两个字母,通常I和J并排,即I等于J)。明文中每两个字母为一单元,通常这个单元会在表上组成一个四方形(单元内容占其中两个角),然后取另外两角为密文。当单元内容在同一列或同一行时(即无法组成四方形),同列者密文为明文往右偏移一格;同行者密文为明文往下偏移一格。单元中两者为同字母者于该单之前添加X(或Q)(即其后全体往后偏移一格)。波雷费密码于第二次波耳战争开始直到第二次世界大战为止一直用于军事用途。
在1901年,费利克斯·第利斯塔(英语:Felix_Delastelle)推出了其他一些实际可用的表格式替换加密,包括二分密码(英语:Bifid_cipher)、四方密码三分密码
莱斯特·S·希尔(英语:Lester S. Hill)于1929年发明了希尔密码,它是一种表格式替换加密。希尔密码可以使用线性代数来结合拥有非常多字母的单元。每个字母被视为二十六进制的数字:A = 0,B = 1,依此类推。(在某些变种中,会添加3个额外符号,将基底变成一个质数。)一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果同余26。注意用作加密的矩阵(即密匙),否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。
因为希尔密码完全建基于线性关系上,它会很容易受到己知明文攻击(英语:Known-plaintext attack),因此,有时它会结合一些非线性步骤来减少被击破的机会。
机械替换加密
第一次世界大战时期开始广泛使用的电脑(某些政府约在20世纪50至60年代开始使;其他组织在十年或更后,1975年前则未有个人使用的纪录)使得多字母替换密码透过机械实现广泛应用。几位发明家于同一时间有着类似的想法,1919年间已有四次关于旋转盘(英语:Rotor machine)的专利申请。其中最重要并著名的可算是德意志国防军于1930年代所用的恩尼格玛密码机。同时期盟军亦有其加密系统:美国的Sigaba(英语:SIGABA)及英国的Typex(英语:Typex)。
它们的相似之处在于它们都使用机械式旋转盘来加密。由于不止一个旋转盘的组成密文,如果每个字皆配一符号,符号用量将高于天文数字。然而,这些机器的早期版本极易被破解。信号情报服务处的威廉F.弗里德曼威廉·F·弗里德曼(英语:William F.Friedman)于早期就发现了赫本旋转器(英语:Hebern_Rotor_Machine)的漏洞;政府密码学校(英语:GC%26CS)的第利温·诺克斯(英语:Dillwyn Knox)在第二次世界大战前就破解了恩尼格玛密码机中没有接线板的版本。布莱切利园的分析员在后期才能破解恩尼格玛密码机的军用版本,其灵感来自波兰数学家马里安·雷耶夫斯基
SIGABA与Typex加密的讯息民间则至今没有被破解的消息。
一次性密码本
一次性密码本是一种颇特别的替换密码。它由约瑟夫·马宾(英语:Joseph Mauborgne)于第一次世界大战后期建立。克劳德·夏农约在第二次世界大战期间,在数学上证明它的保密性牢不可破,其过程于1940年末首次出版。在常见的做法中,一次性密码本可以被称为一个单次替换密码。通常情况下,明文字母将以某种方式(通常为逻辑异或)与关键字组合(而不是替换掉)。
一次性密码本在大多数情况下都是不切实际或难以使用,因为它需要关键字跟明文一样(或更)长、“完全”随机、只能使用一次,更要保证除了发送者和接收者之外其它所有人都不知道。当这些条件有一项没有执行,甚至只是极其轻微的违反,一次性密码本便再也不是坚不可摧,甚至一触即溃。美国曾于第二次世界大战期间用非随机的一次性密码本加密讯息,再将其送往苏联。美国的密码学家于40年代开始就能破解极少数一次性密码本。(见VENONA计划(英语:Venonaproject))
古巴危机后,莫斯科-华盛顿热线中开始使用一次性密码本来加密讯息。
现代替换加密
上述的替换式密码,尤其那些是只需使用铅笔和纸张的手动加密密码,都不再经常使用。然而,即使到了今天,替换加密的概念仍在进步。从一个够新奇的角度来看,现代位元导向式的分组密码(如资料加密标准及高阶加密标准)仍可视为使用大量二进制字母的替换加密。此外,分组密码通常包含较小的替换表,名为S-box(英语:S-box),其同时包含逻辑异或算法。参见替换网络(英语:Substitution-permutation_network)。
顺序替换暗码
ROT5、ROT13、ROT18、ROT47 编码是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取,而不让其理解其意。
ROT5 是 rotate by 5 places 的简写,意思是旋转5个位置,其它皆同。下面分别说说它们的编码方式:
ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。
ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。
ROT18:这是一个异类,本来没有,它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18。
ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126,具体可参考ASCII编码
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市