美文网首页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