iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0

PRF_msg [1] 的定義是這樣
https://ithelp.ithome.com.tw/upload/images/20250930/20140129WEVNXuAW4m.png

我想盡快把 HMAC-SHA-256 改成用硬體去實現, 不過, 在用硬體之前, 先用純軟體的 nrf_oberon 跑跑看, 首先, 在 CI 加一段, 去找 liboberon 的位子, 找到之後, 在 CI 會看到這個
https://ithelp.ithome.com.tw/upload/images/20250930/20140129UxICGTI7Ej.png

然後修改 Makefile, 注意第 1, 2, 3 行和第 9 行的 $(LIBS)

CFLAGS += -I$(NRFXLIB_DIR)/crypto/nrf_oberon/include
OBERON_LIB_DIR ?= $(NRFXLIB_DIR)/crypto/nrf_oberon/lib/cortex-m33/soft-float
LDFLAGS += -L$(OBERON_LIB_DIR)

...

sign.elf:  $(LDS) $(OBJS) $(RNG_OBJS)
	@echo "==> start building with $(CC), output should be $(ELF)"
	$(CC) $(CFLAGS) $(SRCS) -v $(LDFLAGS) $(LIBS) -o $(ELF)

然後連結失敗
https://ithelp.ithome.com.tw/upload/images/20250930/20140129UJX9TosvRZ.png

再修改 Makefile, 注意第18行的$(OBERON_LIB)

ifeq ($(TARGET),nrf52840)
  ...
  ARCH_DIR   := cortex-m4
  FLOAT_DIR  := soft-float
  ...

else ifeq ($(TARGET),nrf5340dk)
  ...
  ARCH_DIR   := cortex-m33+nodsp  
  FLOAT_DIR  := soft-float
  ...

endif

OBERON_LIB := -L$(NRFXLIB_DIR)/crypto/nrf_oberon/lib/$(ARCH_DIR)/$(FLOAT_DIR)

...
$(CC) $(CFLAGS) $(SRCS) -v $(OBERON_LIB) $(LDFLAGS) -o $(ELF)

nRF52840 的連結成功
https://ithelp.ithome.com.tw/upload/images/20250930/201401299DfEKo7NPB.png
但 nRF5340DK 的連結還是失敗
https://ithelp.ithome.com.tw/upload/images/20250930/20140129KyFepOTEhb.png

原始碼層級的跨平台是基於HAL進行開發,自始不依賴特定平台,所以我一直沒用真實的開發版,sha2也用軟體版,甚至亂數產生器也隨便弄,甚至前幾天乾脆用KAT的rng.c。
因為我希望我的開發自始就是基於HAL而不是依賴於特定平台特定硬體,直到演算法實作在HAL上成功之後,然後去把底層的硬體相依的code 給補上,再rebuild,到時候就能把焦點放在HAL底層的平台實作。

截至目前為止,簽章的實作已經差不多了,一個 SLH-DSA 的簽章會有的 R、FORS signature 和 HT signature 已經大部份寫了,此時我應該接著把剩餘的code寫完,然後進行KAT的測試,然後直到KAT都PASS了再開始寫HAL底層。

但今天是Day 17了,我希望30天的鐵人賽裡面能有至少10天的時間是留給實體的開發版,所以我打算從今天開始就開始增加 Makefile 和 renode 的篇幅, 早日完成模擬, 早日開始在實體的開發板子上實驗

明天我將繼續解決連結失敗的問題

References

  1. FIPS 205 Stateless Hash-Based Digital Signature Standard
  2. nrfxlib API: crypto/nrf_oberon/include/ocrypto_hmac_sha256.h File Reference Share

上一篇
Day 16 SLH-DSA 簽章如何組成: FORS, WOTS+, Hypertree, XMSS
下一篇
Day 18 使用 PSA Certified Crypto API 和 Oberon 的 HMAC-SHA-256
系列文
裸機實作 SLH-DSA 簽章:FIPS 205 之演算法實作、測試、防禦與跨平台20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言