美文网首页TPM 2.0及密码学入门
阿群的密码学入门问题集锦1——从凯撒密码说起

阿群的密码学入门问题集锦1——从凯撒密码说起

作者: 阿群1986 | 来源:发表于2017-06-15 12:56 被阅读23次

    依心情不定期更新

    基础题1:使用凯撒密码加解密一段明文数据。

    参考资料:维基百科词条“凱撒密碼”,如图:
    (需要科学上网)

    翻墙查看维基百科中关于“凯撒密码”的描述资料
    https://zh.wikipedia.org/wiki/%E5%87%B1%E6%92%92%E5%AF%86%E7%A2%BC

    给出原始明文数据为:
    char *szPlainText = "THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG";

    选取凯撒密码的密钥值key=1, 即将明文ABC..UVWXYZ转换为密文BCD...VWXYZA
    选取凯撒密码的密钥值key=2, 即将明文ABC..UVWXYZ转换为密文CDE...WXYZAB
    选取凯撒密码的密钥值key=3, 即将明文ABC..UVWXYZ转换为密文DEF...XYZABC
    以此类推……
    key的取值范围(即密钥空间)是1~25

    试编写以下函数对上述明文进行加解密操作

    #include <stdio.h> // 约定使用 FILE / fprintf 输出数据
    
    void CaesarCipher_Encrypt(const void *szPlainText, unsigned int nTextLength, FILE *fpOut, int key)
    {
    }
    
    void CaesarCipher_Decrypt(const void *szEncryptedText, unsigned int nTextLength, FILE *fpOut, int key)
    {
    }
    
    void main()
    {
        unsigned int nTextLength = strlen("THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG");
        int key = 3;
        CaesarCipher_Encrypt("THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG", nTextLength, stdout, key);
    }
    

    下期题目

    [题目2:图片数据如何进行加解密][NEXT]
    [NEXT]: /p/74d4edbf4202

    相关文章

      网友评论

        本文标题:阿群的密码学入门问题集锦1——从凯撒密码说起

        本文链接:https://www.haomeiwen.com/subject/xqgyqxtx.html