|
[分享]数论在密码学上的应用(下) --繁体中文版
版主当真是宝岛台湾的?看到资料里写Landon。 我生長在台灣,也在台灣唸書,只是目前在 London 做研究。 看我說話,用詞及繁體字就不難發現。 我將被列為世界遺產了( 古董) <== just a joke. |
|
[求助]请问目前最流行最常用的几种加密算法是什么呢?
NTRU, A5/1, RIPEMD, BLOWFISH, CRAMER-SHOUP, |
|
[原创]流密码内嵌魔方阵于随机存档之研究-- Magic Square 之神奇篇
“Send 最少要传 plaintext 及 key 给 receiver” 是的! “For example: 所謂 key ,是直接可以進行 encrypt 及 decrypt,所以,這就是為什麼在 Cryptology 裏,要保護 key 的原因。seed 的確跟 key 的地位很像。 “当 receiver 收到 sender 所传送的 ciphertext 及 seed 时,receiver 可以利用自行产生一个 magic square,此时,产生的这个 magic square 就是一个 key,利用这个 key 来把 ciphertext 做decryption,就会得到plaintext。”一个seed唯一对应一个squae,实际上seed就是Key,没有什么不一样的地方。 這個 seed 本身就很像 key ,但不是 key。key 是 那個 magic square。 如我之前說了,要先有 seed ,再利用 seed 產生 key。 至於 一個 seed 是不是唯一對應一個 square,這點我還在研究中。 我希望是,但我擔心實際上不是。 这个东东有意思的是那个阶越高组合可能就越大的问题,随后再找TW版主讨论。 謝謝您參與這個討論。 ※ 這裏有衍生一個問題,如果“一个 seed 唯一对应一个 squae ”,那這個 seed,就要 keep secret,那 seed 的確跟 key 的功能差不多。 如果“ 一个 seed 不是唯一对应一个 squae”,那這個 seed,是否有必要 keep secret? 當 不是唯一對應的關係時, receiver 又怎麼能判斷怎麼產生正確的magic square!? |
|
|
|
密码学小组组织及其任务與加入辦法
第一波密码学小组成员名单如下: 理论及数学组: rabbler 信息及实践组: roxser, yuansunxue, skydump, popeylj, schlieffen, 落寒, sdhzdmzzl 行政及文书组: ※ 生效日期,近日公布,敬请密切注意,谢谢。 |
|
[翻译]MOTET--Mobile Transactions using Electronic Tickets
這是我一個台灣朋友 greenpoint 幫忙翻譯的,因為他閉關去,所以內容進行到一半。 紅色字體是已經修過(潤過)的稿件,其它是還沒修改過的。 放上來,看看有誰熱心接著完成它。 |
|
[求助]哪里能找到RC4算法分析及攻击的资料?
The experimental distinguishing attack on RC4.pdf Two Linear Distinguishing Attacks on VMPC and RC4A and Weakness of RC4 Family of Stream Ciphers (Corrected).pdf |
|
[讨论]書名。
我原本是以學校教科書為目標,後來改變。 1) 現在先平民化。 ---> 現在這本書。 2) 第二版 or 第二本 會以大學的教科書為主。我正在等一位朋友的意見,北京工業大學的一位教授。 因為書本書來後,要調整內容為教科書 or 教材,就會比較容易一些。 |
|
[分享]Fuzzy + Security (business-to-consumer trust in electronic commerce)
原來如此,學習到此一用詞。 謝謝大家解說。 To wangfir 大大~ 既然很熟練,那可以開始進入主題,這篇可以繼續做出很棒的東西。 請來研~ 謝謝~ Fig 1: Executed program. 附上源碼,希望有心人可以改的更好。 也希望熟 Fuzzy 的朋友熱烈參與討論。 /*funnzy control program using by C language on May 09 2006.*/ #include <dos.h> #include <math.h> #include <stdio.h> #include <conio.h> #include <string.h> #define max(i,j) (i>j)?i:j #define min(i,j) (i<j)?i:j //float Security_value, Familiarity_value, Design_value; long set , n, condition, output, select; double r_value, grade_reg[3],grade[25],a1,b1,I; double error[4]; double Trust_mambership[5][3]={{-0.15,0.05,0.25}, /* VeryLow fuzzy set */ {0.05, 0.25, 0.45}, /* Low fuzzy set */ { 0.25, 0.45, 0.65}, /* Moderate fuzzy set */ { 0.45, 0.65, 0.85}, /* High fuzzy set */ { 0.65, 0.85, 1.05}}, /* VeryHigh fuzzy set */ long Rule[25][3]={{1,1,5},{1,2,5},{1,3,5},{1,4,5},{1,5,5}, {2,1,5},{2,2,4},{2,3,4},{2,4,3},{2,5,3}, {3,1,4},{3,2,4},{3,3,3},{3,4,2},{3,5,2}, {4,1,3},{4,2,3},{4,3,2},{4,4,2},{4,5,1}, {5,1,1},{5,2,1},{5,3,1},{5,4,1},{5,5,1}}; long Trust_Rule[27][4] = {{3,3,3,5},{3,3,2,5},{3,3,1,4}, {3,1,3,4},{3,1,2,3},{3,1,1,3}, {3,2,3,5},{3,2,2,4},{3,2,1,3}, {1,3,3,2},{1,3,2,2},{1,3,1,1}, {1,1,3,1},{1,1,2,1},{1,1,1,1}, {1,2,3,2},{1,2,2,1},{1,2,1,1}, {2,3,3,3},{2,3,2,3},{2,3,1,2}, {2,1,3,2},{2,1,2,2},{2,1,1,2}, {2,2,3,3},{2,2,2,2},{2,2,1,2} }; int B2C_Rule[15][4] = {{4,1,1},{4,3,3},{4,2,2}, {2,1,1},{2,3,2},{2,2,1}, {3,1,1},{3,3,2},{3,2,2}, {5,1,2},{5,3,3},{5,2,3}, {1,1,1},{1,3,1},{1,2,1}}; /* ---------------------------------------*/ /* compute viriable and fuzzy set degree */ /* ---------------------------------------*/ /*void compute_grade() { if((r < membership[set][0]) || (r > membership[set][2])) { grade_reg[condition]=0; } else { if((r>membership[set][1])) { grade_reg[condition]=(membership[set][2]-r)/(membership[set][2]-membership[set][1]); } else { grade_reg[condition]=(r-membership[set][0])/(membership[set][1]-membership[set][0]); } } return; } void compute_grade1() { if((r<membership1[set][0])||(r>membership1[set][2])) { grade_reg[condition]=0; } else { if((r > membership1[set][1])) { grade_reg[condition]=(membership1[set][2]-r)/(membership1[set][2]-membership1[set][1]); } else { grade_reg[condition]=(r-membership1[set][0])/(membership1[set][1]-membership1[set][0]); } } return; }*/ void compute_trustgrade() { if((r_value < Trust_mambership[set][0]) || (r_value > Trust_mambership[set][2])) { grade_reg[condition]=0; //printf("%d, ",set); } else { //printf("%d, ",set); /*if(r_value >= 0.65) { grade_reg[condition] = 1; }*/ if((r_value > Trust_mambership[set][1])) { grade_reg[condition]=(Trust_mambership[set][2]-r_value)/(Trust_mambership[set][2]-Trust_mambership[set][1]); } else { grade_reg[condition]=(r_value-Trust_mambership[set][0])/(Trust_mambership[set][1]-Trust_mambership[set][0]); } } return; } void compute_B2Cgrade() { if((r_value < Trust_mambership[set][0]) || (r_value > Trust_mambership[set][2])) { grade_reg[condition]=0; //printf("%d, ",set); } else { // printf("%d, ",set); if((r_value >= Trust_mambership[set][1])) { grade_reg[condition]=(Trust_mambership[set][2]-r_value)/(Trust_mambership[set][2]-Trust_mambership[set][1]); } else { grade_reg[condition]=(r_value-Trust_mambership[set][0])/(Trust_mambership[set][1]-Trust_mambership[set][0]); } } return; } /*void fuzzy_controller() { a1=0;b1=0,I=0; for (n=0; n<=24 ; n++) { condition=0; r=error[0]; set=Rule[n][0]-1; compute_grade(); condition=1; r=error[1]; set=Rule[n][1]-1; compute_grade1(); grade[n]=min(grade_reg[0],grade_reg[1]); a1=a1+(grade[n]*membership2[Rule[n][2]-1][1]); b1=b1+grade[n]; } I=a1/b1; //gotoxy(20,18); printf("fuzzy controller output=%7.4f",I); return; }*/ void Trust_fuzzy_controller() { a1=0;b1=0,I=0; for (n=0; n<27 ; n++) { condition=0; r_value=error[0]; set=Trust_Rule[n][0]; compute_trustgrade(); condition=1; r_value=error[1]; set=Trust_Rule[n][1]; compute_trustgrade(); condition=2; r_value=error[2]; set=Trust_Rule[n][2]; compute_trustgrade(); grade[n]=min(grade_reg[0],grade_reg[1]); grade[n]=min(grade[n],grade_reg[2]); a1=a1+(grade[n]*Trust_mambership[Trust_Rule[n][3]-1][1]); b1=b1+grade[n]; //if(grade[n] > 0) //printf("Rule %d Trust = %f\n",n+1,Trust_mambership[Trust_Rule[n][3]-1][1]); } I=a1/b1; //gotoxy(20,18); printf("\nTrust fuzzy controller output=%7.4lf\n",I); return; } void B2C_fuzzy_controller() { a1=0;b1=0; for (n=0; n<15 ; n++) { condition=0; r_value=I; set=B2C_Rule[n][0]-1; compute_B2Cgrade(); condition=1; r_value=error[3]; set=B2C_Rule[n][1]; compute_B2Cgrade(); grade[n]=min(grade_reg[0],grade_reg[1]); a1=a1+(grade[n]*Trust_mambership[B2C_Rule[n][2]][1]); b1=b1+grade[n]; //if(grade[n] > 0) //printf("Rule %d B2C = %f\n",n+1,Trust_mambership[B2C_Rule[n][2]][1]); } I=a1/b1; //gotoxy(20,18); printf("\nB2C fuzzy controller output=%7.4lf\n",I); return; } normalization() { printf("\nnormalization output = %7.4lf\n",(I-0.25)*1/0.4); } main() { while(1){ printf("Security linguistic value(0.25~0.65) : "); scanf("%lf",&error[0]); printf("Familiatrity linguistic value(0.25~0.65) : "); scanf("%lf",&error[1]); printf("Design linguistic value(0.25~0.65) : "); scanf("%lf",&error[2]); printf("Competitiveness linguistic value(0.25~0.65) : "); scanf("%lf",&error[3]); Trust_fuzzy_controller(); B2C_fuzzy_controller(); normalization(); printf("press \"0\" to exit or press any key to continue\n"); select=getch(); if(select == '0') break; } return 0; } |
|
[求助]谁有hex2dec的代码
請問你是不是跑錯間了? 這裏是 密碼學版。 /* hex2dec.c * Language: C * License: Unknown * Copyright: (C) 1998 * LOC: 22 * hex2dec.c * * Convert decimal integers into hexadecimal * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the MPI Arbitrary Precision Integer Arithmetic library. * * The Initial Developer of the Original Code is * Michael J. Fromberger. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* $Id: hex2dec.c,v 1.3 2004/04/27 23:04:37 gerv%gerv.net Exp $ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "mpi.h" int main(int argc, char *argv[]) { mp_int a; char *buf; int len; if(argc < 2) { fprintf(stderr, "Usage: %s <a>\n", argv[0]); return 1; } mp_init(&a); mp_read_radix(&a, argv[1], 16); len = mp_radix_size(&a, 10); buf = malloc(len); mp_toradix(&a, buf, 10); printf("%s\n", buf); free(buf); mp_clear(&a); return 0; } ; File Name : hex2dec.asm ; Processor : x86 ; Operating System : DOS ; Function : Convert max. 2 digits Hexadecimal to Decimal Number ; Make Date : 2001 ; Revision Date : 04 December 2004 ; Assembler : Turbo Assembler Version 2.0 ; By : l411v ; l411v@yahoo.com ; www.l411v.com ;################################################################ M A C R O ### cetak_str macro str lea dx,str call csa endm input_str macro str lea dx,str call is endm ;#################################################### D E C L A R A T I O N ### code segment assume cs:code org 100h deklarasi: jmp mulai kata1 db 'Input Hexadecimal Number [max. 2 digit] : $' kata2 db 13,10,'The Decimal : $' hex_max db 3 hex_len db ? hex_arr db 3 dup(?) ;################################################################ S T A R T ### mulai: mov ax,3 int 10h cetak_str kata1 input_str hex_max call banding mov ax,0 mov bx,0 cmp hex_len,1 je kecil besar: mov al,hex_arr[bx] mov cl,4 shl al,cl inc bx kecil: add al,hex_arr[bx] push ax cetak_str kata2 pop ax call bagi_hasil exit2dos: mov ah,4ch int 21h ;######################################################## P R O C E D U R E ### csa proc mov ah,9 int 21h ret csa endp is proc mov ah,0ah int 21h ret is endp banding proc mov bx,0 mov cl,hex_len mov ch,0 ulang1: mov al,hex_arr[bx] sub al,30h cmp al,9 jbe lanjut sub al,11h cmp al,5 jbe lanjut1 sub al,20h cmp al,5 jbe lanjut1 jmp mulai lanjut1: add al,10 lanjut: mov hex_arr[bx],al inc bx loop ulang1 ret banding endp bagi_hasil proc mov dx,0ffffh push dx ulang2: mov dl,10 div dl push ax mov ah,0 cmp al,0 je hasil jmp ulang2 hasil: pop ax cmp ax,0ffffh je exit2dos mov al,ah add al,30h int 29h jmp hasil ret bagi_hasil endp code ends end deklarasi ; EOF-l411v |
|
|
|
|
|
|
|
[公告]密码学 & 密码学小组
或许帖子慢慢变多了,您可能没注意到,在您发言之前,就已经有很多生动又活泼的帖子在叙述着密码学。 【原创】爱情密码--建立通讯协议篇(一) 【原创】爱情密码--暗恋篇(二) 【原创】爱情密码--伪装篇(三) 【分享】依靠密码击沉日军战舰,阻挡日军空袭的奇才-亚德雷 【分享】太平洋上的情报战03:击落山本五十六座机 【分享】太平洋上的情报战02:中途岛之战 以上紧列出一部份,其它请自行参考。 |
|
|
|
[公告]密码学 & 密码学小组
你的 【原创】PE感染型病毒的研究和代码实现,附上代码和论文 很受欢迎,我也有去留言,你知道我在哪一楼吗? file 加入特定的密码学技术,可以防止 file 中病毒之后的可判读性,不知道你知道或不知道这样的技术。 |
|
[公告]密码学 & 密码学小组
未来,若有可能,密码学小组会推培训课程的训练,初步由密码学小组负责训练学员。 开课及报名各事项,统一由看雪学院统筹办理,密码学小组负责课程编排及授课。 (If could be) |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值