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ứ 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".
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
|
#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;
}
Đăng ký:
Bài đăng (Atom)