image
table td, table th {padding: 6px; border:1px solid #000000;}
JTAG (Joint Test Action Group)
JTAG 主要用於驗證設計與測試生產出的印刷電路板功能,必要的訊號線有 4 根,分別為:
1, TDI (Test Data In): 測試資料輸入,以 Daisy Chain 的方式連在一起。
2, TDO (Test Data Out): 測試資料輸出,以 Daisy Chain 的方式連在一起。
3, TCK (Test ClocK): 測試時鐘。
4, TMS (Test Mode Select): 測試模式選擇。
5, TRST (Test ReSeT): 測試復位,非必要。

silverwind1982 發表在 痞客邦 留言(0) 人氣()

table td, table th {padding: 6px; border:1px solid #000000;}
進入 Windows 後自動關機
在沒有螢幕輸出的情況下,如何判斷是否成功進入 Windows 系統?

silverwind1982 發表在 痞客邦 留言(0) 人氣()

image
table td, table th {padding: 6px; border:1px solid #000000;}
[Windows] 放大麥克風音量
Windows 電腦換接另一個耳麥之後,耳機聽起來音樂夠大聲,但是麥克風太小聲了,對方常常聽不到,是否可以用軟體的方式解決呢?

silverwind1982 發表在 痞客邦 留言(0) 人氣()

loopback_packet_flow.jpg
同台機器的網路孔對接,執行 iperf 程式
要在同台機器上,對接網路孔,並同時執行 iperf 的 server 端 及 client 端程式,是蠻複雜的做法,好在已經有高手做出,在此來理解此做法。

silverwind1982 發表在 痞客邦 留言(0) 人氣()

table td, table th {padding: 6px; border:1px solid #000000;}
udev
udev stands for “userspace implementation of devfs”,也就是說 udev 是在 userspace 下的 device file system 的實作。(從 Linux 2.6 kernel 開始實作)

silverwind1982 發表在 痞客邦 留言(0) 人氣()


如何移值 ssh private key 到別台機器上?
在原本的機器上,已經有 ssh private key,並以此 private key 產生 public key,並以此 public key 取得授權後,如何把 private key 移植到新的機器上?

silverwind1982 發表在 痞客邦 留言(0) 人氣()


Tera Term Macro 簡易範例



Tera Term Macro 的副檔名為 .ttl,而 ttl stands for Tera Term Language,以下為簡易範例。


; 變數 i,初始值為 1
i = 1

; 執行迴圈,以變數 i 來控制
do while i<=1000

; 等待畫面出現 login 字串
wait 'xxx login:'

; 顯示另一個小視窗,內容為 i 的值
statusbox i 'test_count'

; 輸入帳號 - "id"
sendln 'ID'

; 等待 1 秒
pause 1

; 輸入密碼 - "password"
sendln 'PASSWORD'

; 等待 5 秒
pause 5

; 把 i 值作輸入,讓 i 的變數值可以被紀錄在 console 上
msg='test_count:'
msg2=''
int2str msg2 i
strconcat msg msg2
sendln msg

; 執行 date 指令
sendln 'date'

; 執行 reboot 指令
sendln 'reboot'

pause 5

; 增加變數 i 的值
i=i+1
loop




Reference



TTL command reference

silverwind1982 發表在 痞客邦 留言(0) 人氣()



RSA 加密與解密



RSA 為非對稱式加密,也就是說用來加密的鑰匙 跟 用來解密的鑰匙 是不相同的。

用來加密的鑰匙稱為公鑰,公鑰是可以公開的,任何人有了公鑰後,可以對明文訊息以公鑰加密後變成密文,傳送給接收方。

用來解密的鑰匙稱為私鑰,接收方收到密文後,可以利用私鑰來解密,得到明文訊息。

其它人就算得到密文,也因為沒有私鑰,所以無法將密文解密。



本文分成以下數個部分:

RSA 的加密與解密方式

RSA 的公鑰及私鑰

RSA 的解密原理

RSA 的加密與解密範例





RSA 的加密與解密方式



RSA 加密與解密方式為:公鑰加密,私鑰解密

公鑰: e, n

私鑰: d, n

訊息: m

密文: c



將 m 加密,得到密文 c,加密方式為:

me ≡ c (mod n)

對 m 的 e 次方 取 n 的餘數,所得值為 c。



將 c 解密,得到明文 m,解密方式為:

cd ≡ m (mod n)

對 c 的 d 次方 取 n 的餘數,所得值為 m。



從上述加、解密方式可以知道,公鑰及私鑰不能是隨便產生的,必須遵循它的規則,否則上述算式將不會成立。





RSA 的公鑰及私鑰



要計算 RSA 的公鑰及私鑰,得先從決定 n 的值開始。

選擇兩個質數 p 及 q,令 n = p x q

令 f(n) 為與 n 互值且小於 n 的整數個數,根據 歐拉定理 f(n) = (p-1) x (q-1)



決定公鑰 e 的值,條件為: e 與 f(n) 互質,且 1 < e < f(n)。

決定私鑰 d 的值,條件為: 使得 d x e ≡ 1 (mod f(n)) 成立。



如此公鑰及私鑰都已經決定完成。





RSA 的解密原理



解密的方式為:

cd ≡ m (mod n)

所以要証明上述加、解密可以運作順利,就要証明上式成立。

因為加密方式為:

me ≡ c (mod n)

所以:

c = me - kn

代入解密方式:

(me - kn)d ≡ m (mod n)

又因為 kn 一定是 n 的倍數,mod n 的值為 0,所以上式可以簡化為:

(me)d ≡ m (mod n)

=> med ≡ m (mod n)

又因為:

d x e ≡ 1 (mod f(n))

所以:

d x e = h f(n) + 1

代入原式,可以得到:

med = mh f(n) + 1 ≡ m (mod n)

接下來分成兩種情況:



第一種: m 與 n 互質,則根據歐拉定理:

mf(n) ≡ 1 (mod n)

所以原式成為:

mh f(n) + 1 = [(mf(n))h] x m = 1 x m = m ≡ m (mod n)

=> 則原式成立。



第二種: m 與 n 不互質

因為 n = p x q,且 p, q 為質數,所以 m 一定為 k x p 或 k x q。

以 m = kp 為例,又因為 q 是質數,且 m < n = p x q,所以 k 與 q 一定是互質,則根據歐拉定理:

(kp)q-1 ≡ 1 (mod q)

所以下式也會成立:

[(kp)q-1]h(p-1) x kp ≡ kp (mod q)

=> (kp)(q-1) x (h(p-1)) x kp ≡ kp (mod q)

又因為:

d x e = h f(n) + 1

所以:

(kp)(q-1) x (h(p-1)) x kp = (kp)h(q-1)(p-1)+1 = (kp)ed ≡ kp (mod q)

把 kp (mod q) 展開,可以寫成:

(kp)ed = tq + kp

又因為 (kp)ed 一定是 p 的位數,所以 (tq + kp) 也一定是 p 的倍數,所以 tq 一定也是 p 的倍數,又 p 與 q 互值,所以 t 一定是 p 的位數,所以:

(kp)ed = tq + kp = t'pq + kp

又因為 m = kp 且 n = pq,代入上式後,得到:

med = t'n + m ≡ m (mod n)

=> 原式成立。





RSA 的加密與解密範例



公鑰: e, n

私鑰: d, n

訊息: m

密文: c



取 p = 3、q = 11,所以 n = 33。

f(n) = (3-1)(11-1) = 20。

又條件為:

ed ≡ 1 (mod 20)

ed = 20k + 1,取 k = 1,令 e = 3、d = 7。

所以公鑰為: (3, 33),私鑰為: (7, 33)。



假設訊息為 m = 17

加密: (17)3 (mod 33) = 29



密文 c = 29

解密: (29)7 (mod 33) = 17





Reference



輕鬆學習RSA加密演算法原理



RSA算法原理(二)

silverwind1982 發表在 痞客邦 留言(0) 人氣()

shell script 筆紀
如果要查詢 shell script 的寫法,可以利用 $ man bash 指令,內容很詳細,幾乎所有的用法都可以找到。

silverwind1982 發表在 痞客邦 留言(0) 人氣()



table td, table th {padding: 6px; border:1px solid #000000;}


silverwind1982 發表在 痞客邦 留言(0) 人氣()

table td, table th {padding: 6px; border:1px solid #000000;}
理解 lspci
在 linux 中,可以利用 lspci 指令來列出所有連接的 PCI 裝置,本文簡單說明 lspci 的顯示結果。
lspci 的顯示結果
Interpreting the output of lspci 的例子來說:

silverwind1982 發表在 痞客邦 留言(1) 人氣()




table td, table th {padding: 6px; border:1px solid #000000;}


silverwind1982 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。