V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
ksc010
V2EX  ›  奇思妙想

做梦想到的一种文本加密方式

  •  
  •   ksc010 · 2018-02-02 13:27:57 +08:00 · 5561 次点击
    这是一个创建于 2493 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 一句话 “我今天去吃饭”
    通过密钥+特定算法 会把这句话 加密成 *通顺*的另一句话“明天干啥去啊”
    当然这只是一个例子, 只要是加密后的文本是通顺的话就行

    不知道能否实现

    这里应该涉及到 字符编码转换,语义分析等
    30 条回复    2018-04-05 00:15:42 +08:00
    SuperMild
        1
    SuperMild  
       2018-02-02 13:34:16 +08:00
    地瓜地瓜,我是土豆,发现老鼠,正在从十二点方向过来
    zjcqoo
        2
    zjcqoo  
       2018-02-02 13:36:51 +08:00
    原文里如果有无意义的字符,比如 “我今天去吃饭 asdfdfwefregerf ” ,要加密成“通顺”的话就需要大量词汇了吧。

    估计最后又回到数字化了。比如:

    “我今天去吃饭 1 ” -> “明天干啥去啊”
    “我今天去吃饭 2 ” -> “后天干啥去啊”
    “我今天去吃饭 3 ” -> “大后天干啥去啊”
    “我今天去吃饭 4 ” -> “ 1 月 4 号干啥去啊”
    “我今天去吃饭 5 ” -> “ 1 月 5 号干啥去啊”
    “我今天去吃饭 23333 ” -> “ 2023 年 2 月 3 号干啥去啊”
    。。。。
    minamike
        3
    minamike  
       2018-02-02 13:36:54 +08:00 via iPhone
    酸酸乳的混淆?
    ksc010
        4
    ksc010  
    OP
       2018-02-02 13:48:35 +08:00
    @zjcqoo 那倒是不用
    举个例子 “你好” 的 unicode 的编码是 \u4f60\u597d
    若加密后的结果是 哈哈 \u54c8\uc
    这样的话 密钥就是 (54c8-4f60)(4f60-597d) 这只是简单的加减运算(算法)
    所以这个算法 并不考虑明文是怎么样的,值需要考虑加密后的密文是通畅的就行了
    ps: 上面的算法会导致 密钥很长,就需要考虑另外的方式来实现压缩密钥长度
    luoway
        5
    luoway  
       2018-02-02 13:57:28 +08:00
    语义分析准确率不是 100%,如果依赖语义分析,那解密准确率也不是 100%,这种加解密方案就废了。

    电视剧里演过的方案是:
    明文是通顺的文字,作为解密的辞典。而密钥则是自由设计各种方式,从辞典里解出另一段通顺的文字。
    ytpfxnj
        6
    ytpfxnj  
       2018-02-02 14:00:38 +08:00
    考虑到我们经常用到的字、词、句并不是特别多。

    比如你整理上几千词、几千句自己用到最多的,映射到《红楼梦》或者《鲁迅全集》中某句话就行了。
    nazor
        7
    nazor  
       2018-02-02 14:03:45 +08:00 via iPhone   ❤️ 4
    这一类替换方法,都没办法解决词频问题。
    winterbells
        8
    winterbells  
       2018-02-02 14:28:09 +08:00
    让我想到了魔禁。。
    zjcqoo
        10
    zjcqoo  
       2018-02-02 14:41:45 +08:00   ❤️ 1
    @ksc010 嗯,原文确实无关紧要的。最终问题就是 “如何把一串二进制数据变成带语义的句子”。
    daimao
        11
    daimao  
       2018-02-02 15:09:20 +08:00   ❤️ 1
    不愧是做梦想出来的。。。
    a1406
        12
    a1406  
       2018-02-02 16:29:25 +08:00
    很难做到让别人看不出来。一句话也许还好,如果数据多一点,有个十几 K 甚至几十 M 的数据, 你这生成出来的文章必定是狗屁不通。
    zhjits
        13
    zhjits  
       2018-02-02 16:30:12 +08:00
    这个要实现很简单,不过你考虑过怎么传递密码本没有……毕竟密码本比那句话大得多
    am241
        14
    am241  
       2018-02-02 16:43:16 +08:00 via Android
    最简单的一种实现:
    密钥=int(吃饭)×int(干啥)
    KDr2
        15
    KDr2  
       2018-02-02 17:11:29 +08:00   ❤️ 8
    从社会主义核心价值观中,选出八个,定义为 brainfuck 的 八个指令。
    然后执行程序获取输出即可。
    sujin190
        16
    sujin190  
       2018-02-02 17:34:18 +08:00
    你说的这个是阅读理解吧,但是小学生都知道,阅读理解向来不可能正确得到作者真实想表达的意思的,2333.。
    zk8802
        17
    zk8802  
       2018-02-02 18:03:29 +08:00   ❤️ 1
    可能和楼主想法相关的一种加密方法:Format-transforming encryption。可以看看这篇论文 https://eprint.iacr.org/2012/494.pdf
    qiqico
        18
    qiqico  
       2018-02-02 18:15:12 +08:00
    自动生成 行业黑话 ?
    ksc010
        19
    ksc010  
    OP
       2018-02-02 18:44:30 +08:00
    @luoway 语义分析的目的仅仅是 为了是加密后的密文
    @a1406 哈哈,狗屁不通到可能不至于,前段时间就看过一个 AI 写小说的
    LemonFlower
        20
    LemonFlower  
       2018-02-02 19:22:12 +08:00 via iPhone
    手心输入法以前有个功能叫“密文传送”
    wclebb
        21
    wclebb  
       2018-02-02 19:27:11 +08:00 via iPhone
    你说的好像德国用过了
    metrxqin
        22
    metrxqin  
       2018-02-02 20:13:00 +08:00 via Android
    这真是一个噩梦。
    ZRS
        23
    ZRS  
       2018-02-02 21:11:02 +08:00
    这个可以理解为找一个映射从一个语义空间映射到另一个语义空间吧...问题是...怎么传递密码本呢
    maemolee
        24
    maemolee  
       2018-02-02 21:12:36 +08:00   ❤️ 2
    脸怎么这么红?精神焕发!
    怎么又黄了?防冷涂的蜡!
    chinvo
        25
    chinvo  
       2018-02-02 21:16:12 +08:00 via iPhone
    躺好继续睡
    TimePPT
        26
    TimePPT  
       2018-02-02 22:36:42 +08:00 via iPhone
    加密的目的就是要增加信息的不确定度,包括上面有人提到的行业黑话也是这样。

    不在行内其实就等同于拿不到密钥,所以对无密钥的你来说黑话的不确定度要高于白话。
    Hydjan
        27
    Hydjan  
       2018-02-03 07:34:21 +08:00
    楼主难道是想作反诗
    czk1997
        28
    czk1997  
       2018-02-03 10:37:21 +08:00
    加密我们得确定有明文和密文。密文可以是无意义的啊,但是明文不一定都是有一定意义的。比如说英语,我可以传递一句 i love you 但是我要传递一个 Loveiyou 就没加密了啊……
    按照这个设定,明文一定要是通顺的啊。
    另外,一个明文加密后再还原出应该要求能还原出原来的明文把,可正常的语言歧义又太多……
    fcten
        29
    fcten  
       2018-02-03 17:51:11 +08:00
    理论上,任意文本都可以作为明文加密。而语意通顺的文本是任意文本的一个子集。而且看上去两者不是等阶无穷大,应该没法建立一一对应的关系……
    leekafai
        30
    leekafai  
       2018-04-05 00:15:42 +08:00 via Android
    熊猫熊猫,我是野狼,图钉已就位。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   920 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:39 · PVG 05:39 · LAX 13:39 · JFK 16:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.