Magic square 本身是一个 matrix，如果把它应用在 encryption/decryption，算是 block cipher 的一种，我想它被归类在 block cipher 应该不会有人有意见。 ，所以 3 by 3 的 magic square 的每一 line 的总和是 15。 symmetric cryptosystem与asymmetric cryptosystem 各有它的特性，但却无法解决目前的一个问题，什么问题？
Send 最少要传 plaintext 及 key 给 receiver。 For example：
Sender 传送 seeds 为 (9,47,45,37,35) 及 cipertext 给 receiver 时，receiver 收到后，receiver 知道要产生 9 by 9 magic square，且四个corner 一定是 (47,45,37,35)，若不是，receiver 就无法正确的 decrypt ciphertext 为 plaintext。

【原创】流密码内嵌魔方阵于随机存档之研究-- Magic Square 篇，我所展示的只有用 9 by 9 magic square 来做 encrypt 及decrypt，我是直接告诉您们我用的 是 9 by 9 的 magic square，这次我所介绍的技术与概念是 receiver 自行可以产生 key 来做 decryption，这是目前已知所有的 cryptosystem 所办不到的事。

```#include <stdio.h>
#include <stdlib.h>
main()
{ int i,j,x,y,n=2;/* 宣告循环变量i,j,及数组变量x,y,及阶层变量n */
int **magic;/* 宣告数组的大小 */
/* clrscr();/* 消除荧光幕 */       */
while(n>19 || n%2==0){ /* 判断条件是否成立 */
printf("\n 请输入奇数魔术方阵的大小(1-19):");
scanf("%d",&n);
}
magic=(int *)malloc(n* sizeof(int));
*magic=(int *)malloc(n*sizeof(int));
printf("======>%d\n",magic);
x=0;y=(n-1)/2; /* 设定魔术方阵中的第一个位置 */
for(i=0;i<n;i++) /* 将所有的数组设定其值为0 */
for(j=0;j<n;j++)
*(*(magic+i)+j)=0;
*(*(magic+x)+y)=1; /* 设定魔术方阵的第一个值 */
for(i=2;i<=n*n;i++)
{ x=(x+(n-1)) % n; /* 计算方阵往右上的规则  */
y=(y+1) % n;     /* 及其x ,y值的变化现象  */
if( (*(*magic+x)+y) != 0){ /* 判断是否会重复 , 如果重复 */
x=((x+2)) % n;       /* 计算方阵往下移动到的规则  */
y=(y+(n-1)) % n;     /* 及其x ,y值的变化现象      */
}
*(*(magic+x)+y)=i; /* 没有错误,将数字填入魔术方阵中 */
}

printf("--------------%2d阶的魔术方阵------------------\n",n);
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%5d",*((*magic+i)+j));
printf("\n");
}
printf("--------------敬请批评指教--------------------\n");
}

```
{"ft_lang_label":"__label__zh","ft_lang_prob":0.8214987,"math_prob":0.99566156,"size":3828,"snap":"2020-24-2020-29","text_gpt3_token_len":2129,"char_repetition_ratio":0.17573221,"word_repetition_ratio":0.03256705,"special_character_ratio":0.37617555,"punctuation_ratio":0.0795756,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9876723,"pos_list":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"im_url_duplicate_count":[null,5,null,5,null,5,null,5,null,5,null,5,null,5,null,5,null,5,null,5,null,5,null,5,null,5,null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2020-07-10T19:12:19Z\",\"WARC-Record-ID\":\"<urn:uuid:59be03f5-d180-42bb-bcb3-73636be68d8c>\",\"Content-Length\":\"13114\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:0c6057e2-85fa-4dfe-b976-fd827308c4b7>\",\"WARC-Concurrent-To\":\"<urn:uuid:67109d81-0753-4b28-914d-9bcc82ee095b>\",\"WARC-IP-Address\":\"58.58.81.246\",\"WARC-Target-URI\":\"https://www.pediy.com/kssd/pediy10/89799.html\",\"WARC-Payload-Digest\":\"sha1:MVVJIL7RSZWMJXUQFN42FD5NV2ZNR2HS\",\"WARC-Block-Digest\":\"sha1:NULDWEI5VN4WCC7J2RZSW5SAXI2KOPBM\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2020/CC-MAIN-2020-29/CC-MAIN-2020-29_segments_1593655911896.73_warc_CC-MAIN-20200710175432-20200710205432-00542.warc.gz\"}"}