Thứ Tư, 27 tháng 11, 2013

ĐẠI TƯỚNG VÕ NGUYÊN GIÁP

Đây là bài power point của mình ,nội dung " cuộc đời và sự nghiệp Đại tướng Võ Nguyên Giáp".














Mong các bạn xem và đóng góp ý kiến để bài viết mình hoàn chỉnh hơn ^^

Thứ Bảy, 16 tháng 11, 2013

MÃ HÓA THÔNG ĐIỆP

Sau đây mình xin trình bày một bài tập về quy tắc mã hóa:

Quy tắc mã hóa :Đoạn thông điệp được mã hóa là một đoạn văn bản có ý nghĩa. Đầu và cuối thông điệp không có khoảng trắng. Các ký tự sử dụng trong đoạn văn bản này là các ký tự có giá trị từ 32 đến 126 trong bảng mã ASCII.Đoạn văn bản được mã hóa theo một khoá K. Khoá K có giá trị trong đoạn [0, 255].
Bước 1: Các ký tự trong thông điệp ban đầu sẽ được chuyển sang dạng nhị phân.Bước 2: Các ký tự này (ở dạng nhị phân) sẽ thực hiện phép toán XOR với khóa K cho trước để được bản tin đã mã hoá.Bước 3: Dãy nhị phân của bản tin đã mã hóa được chia thành các nhóm 5 bit. Mỗi nhóm 5 bit này được thêm vào bit 1 ở đầu và chuyển thành ký tự có mã ASCII tương ứng.Các đội sẽ nhận được bản tin đã mã hoá sang dạng ký tự ASCII như ở bước 3 và khóa K. Nhiệm vụ của các đội là giải ra đoạn văn bản thông điệp ban đầu.


THÔNG ĐIỆP 1

-         Độ dài chuỗi mã hóa: 48
-         Độ dài chuỗi giải mã: 30
-         Thời gian truyền tin: 4 phút
Chuỗi mã hóa:
> 
?
)
8
'
1
< 
$
9
'
"
8
5
2
6
,
0
3
(
-
#
#
4
#
0
3
0
(
3
:
> 
+
0
/
%
,
'
!
&

8
#
%
?
5
"
6
-

Key: 164
Chuỗi giải mã:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


































































                                               


THÔNG ĐIỆP 2
-         Độ dài chuỗi mã hóa: 48
-         Độ dài chuỗi giải mã: 30
-         Thời gian truyền tin: 4 phút
Chuỗi mã hóa:
6
2
3
8
=
1
< 
;
6
&
-
=
/
.
.
)
2
/
#
8
7
#
6
'
0
.
!
8
=
1
< 
*
1
"
< 
< 
3
$
> 
'
0
.
#
,
?
2
,
*
           
Key: 231
Chuỗi giải mã:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
































































           


                                               




THÔNG ĐIỆP 3
-         Độ dài chuỗi mã hóa: 48
-         Độ dài chuỗi giải mã: 30
-         Thời gian truyền tin: 4 phút
Chuỗi mã hóa:
4
> 
7
/
3
4
%
6
?
7
/
/
3
)
7
*
9
+
5
*
?
-
6
7
7
;
< 
+
-
9
&
6
;
+
5
+
-
> 
> 
#
;
'
$
+
#
> 
'
1

Key: 106
Chuỗi giải mã:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
































































           

                                               


THÔNG ĐIỆP 4
-         Độ dài chuỗi mã hóa: 48
-         Độ dài chuỗi giải mã: 30
-         Thời gian truyền tin: 4 phút
Chuỗi mã hóa:
9
3
2
+
+
9
&
9
8
:
;
> 
9
.
%
)
> 
?
,
+
-
< 
-
8
=
3
(
-
#
/
=
8
> 
3
,
+
?
=
-
8
> 
3
,
;
-
< 
-
9

Key: 152
Chuỗi giải mã:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
































































           

                                               
 và đây là đoạn code giúp giả mã nhanh hơn.
#include<iostream>  
#include<cstring>
#include<math.h>
char c[1000], s[1000];
using namespace std;
int doi(int a,int coso,int& k,bool& ch) 

if (a>=coso) doi(a/coso,coso,k,ch); 
if (!ch) c[k++]=(a % coso)["0123456789ABCDEF"];  
ch=false;
     return 0;

int main()
{
int l[8],coso;
l[0]=1; l[1]=2; l[2]=4; l[3]=8; l[4]=16; l[5]=32; l[6]=64; l[7]=128;
cout<<"Nhap doan van can duoc ma hoa: ";
cin>>s;
cout<<"Nhap key de bai cho: ";
cin>>coso;
int k=0;
for(int i=0;i<strlen(s);i++) 
{
bool ch=true;
doi(s[i]+0,2,k,ch);
}
int i=0, j=7, x=0;
cout<<"Doan van sau khi giai ma:"<<endl;
while (i<strlen(c))
{
x+=(c[i]=='1')?l[j]:0;
j--;
if ((i+1)%8==0) 
{
x^=coso;
cout<<char(x);
x=0;
 j=7;

i++;
}
 cout<<endl;
 return 0;

}