色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

存儲密鑰與文件加密密鑰介紹

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-11-21 11:43 ? 次閱讀

可信應用的存儲密鑰

可信應用的存儲密鑰(Trusted Applicant Storage Key, TSK)是生成FEK時使用到的密鑰。

TSK是使用SSK作為密鑰對TA的UUID經HMAC計算獲得,類似于HMAC(SSK, UUID)的方式生成TSK。

在調用tee_fs_fek_crypt函數時會計算TSK的值。TSK最終會被用來生成FEK, FEK會在使用安全存儲功能保存數據時被用來加密數據。

圖片

文件加密密鑰

文件加密密鑰(File Encryption Key, FEK)是安全存儲功能用于對數據進行加密時使用的AES密鑰,該密鑰在生成文件時會 使用PRNG算法隨機產生 ,產生的 FEK會使用TSK進行加密 ,然后保存到head.enc_fek變量中。

(PRNGPRNG(pseudorandom number generator)偽隨機數生成器是指通過特定算法生成一系列的數字,使得這一系列的數字看起來是隨機的,但是實際是確定的,所以叫偽隨機數。)

TA在每次使用 安全存儲功能創建一個安全文件時就會生成一個隨機數作為FEK ,即每個TA 中的每個安全文件都有一個FEK用于加密對應文件中的數據 。(安全加倍啊)

關于FEK的產生可簡單理解為如下公式,使用的初始化向量IV值為0:

AES_CBC(in_key, TSK)

OP-TEE通過調用tee_fs_fek_crypt函數來生成一個FEK,該函數代碼如下:

TEE_Result tee_fs_fek_crypt(const TEE_UUID *uuid, TEE_OperationMode mode,
                      const uint8_t *in_key, size_t size,
                      uint8_t *out_key)
        {
            TEE_Result res;
            uint8_t *ctx = NULL;
            size_t ctx_size;
            uint8_t tsk[TEE_FS_KM_TSK_SIZE];
            uint8_t dst_key[size];
            /* 檢查輸入的用于生成FEK的隨機數in_key和用于存放生成的out_key地址是否合法 */
            if (! in_key || ! out_key)
                return TEE_ERROR_BAD_PARAMETERS;
            /* 檢查in_key長度 */
            if (size ! = TEE_FS_KM_FEK_SIZE)
                return TEE_ERROR_BAD_PARAMETERS;
            /* 判定SSK是否已經被初始化 */
            if (tee_fs_ssk.is_init == 0)
                return TEE_ERROR_GENERIC;
            /* 如果調用時參數uuid不為0,則調用HMAC算法生成TSK。如果UUID的值為0,則默認生成TSK
            使用的原始數據為0 */
            if (uuid) {
                res = do_hmac(tsk, sizeof(tsk), tee_fs_ssk.key,
                          TEE_FS_KM_SSK_SIZE, uuid, sizeof(*uuid));
                if (res ! = TEE_SUCCESS)
                    return res;
            } else {
                uint8_t dummy[1] = { 0 };
                res = do_hmac(tsk, sizeof(tsk), tee_fs_ssk.key,
                          TEE_FS_KM_SSK_SIZE, dummy, sizeof(dummy));
                if (res ! = TEE_SUCCESS)
                      return res;
              }
              /* 獲取調用AEC_CBC操作需要的context的大小 */
              res = crypto_ops.cipher.get_ctx_size(TEE_FS_KM_ENC_FEK_ALG, &ctx_size);
              if (res ! = TEE_SUCCESS)
                  return res;
              /* 分配一份進行AES_CBC操作時需要的context空間 */
              ctx = malloc(ctx_size);
              if (! ctx)
                  return TEE_ERROR_OUT_OF_MEMORY;
              /* 使用TSK作為進行AES_CBC計算使用的key,而IV值默認為0 */
              res = crypto_ops.cipher.init(ctx, TEE_FS_KM_ENC_FEK_ALG, mode, tsk,
                              sizeof(tsk), NULL, 0, NULL, 0);
              if (res ! = TEE_SUCCESS)
                  goto exit;
              /* 將輸入的in_key填充到context中,做完AES_CBC操作之后,輸出的數據將會被保存到dst_
              key中 */
              res = crypto_ops.cipher.update(ctx, TEE_FS_KM_ENC_FEK_ALG,
                      mode, true, in_key, size, dst_key);
              if (res ! = TEE_SUCCESS)
                  goto exit;
              /* 執行AES_CBC的加密運算,生成FEK */
              crypto_ops.cipher.final(ctx, TEE_FS_KM_ENC_FEK_ALG);
              /* 將生成的FEK的值復制到輸出參數中 */
              memcpy(out_key, dst_key, sizeof(dst_key));
          exit:
              free(ctx);
              return res;
          }
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4296

    瀏覽量

    85800
  • 數據庫
    +關注

    關注

    7

    文章

    3794

    瀏覽量

    64362
  • 密鑰
    +關注

    關注

    1

    文章

    138

    瀏覽量

    19753
收藏 人收藏

    評論

    相關推薦

    請問CYW20719是否支持“加密密鑰大小控制增強”?

    CYW20719 是否支持“加密密鑰大小控制增強”此 BT 5.3 功能?
    發表于 07-05 07:04

    BF70x加密密鑰的產生步驟

    BF70X系列幫助文件中中提到BF70x的加密密鑰的產生步驟,起初按照方法始終無法成功,現將成功版本進行一次分享步驟1:官網下載Python2.7.7版本并安裝至相應的英文目錄下;步驟2:將
    發表于 03-05 14:19

    請問如何才能安全地存儲加密密鑰

    大家好!我用的是PIC32MZ2048EFM144。我需要安全地存儲加密密鑰。我知道這個PIC有一個密碼引擎,但是顯然,它不像PIC24密碼引擎,它不存儲密鑰。你能告訴我如何安全地
    發表于 06-13 08:24

    NAS網絡存儲上如何創建和使用加密文件夾?

    文件夾,輸入加密密鑰并選擇是否啟用回收站; 4.為加密文件夾設置訪問權限,點擊下一步; 5.確認設置后請點擊創建; 備注:為了保證你的數據安全,在使用完畢后,請將
    發表于 09-24 11:00

    介紹一種芯片AES加密密鑰生成工具

    芯片AES加密密鑰生成工具前言:嵌入式單片機開發,為了防止別人將芯片內的代碼讀取出來通過反編譯手段拿到源碼,常用的手段是對芯片和燒錄文件進行加密。大部分的芯片廠商都會提供一個加密燒錄和
    發表于 02-14 06:43

    什么是秘密密鑰密碼技術

    什么是秘密密鑰密碼技術 秘密密鑰加密使用一個密鑰,即秘密密鑰,既進行加密又進行解密消息,這也稱
    發表于 03-20 15:50 ?2954次閱讀

    密鑰加密方法大全

    密鑰加密方法大全 密鑰加密技術用于加密和解密數據。密鑰是與
    發表于 03-20 15:54 ?2975次閱讀

    一種自主群組密鑰管理方案

    針對分布式網絡群組密鑰更新中非更新成員參與共享密鑰計算增加交互延時問題,提出一種自主密鑰更新模型,通過DH協議和多項式設計一種自主群組密鑰管理方案,具有單
    發表于 12-05 09:17 ?0次下載
    一種自主群組<b class='flag-5'>密鑰</b>管理方案

    明文存儲的Signal Desktop 應用程序消息解密密鑰

    逆向工程研究員納撒尼爾·蘇西(Nathaniel Suchy)發現,SignalDesktop應用程序明文儲存消息解密密鑰,將密鑰暴露于黑客攻擊之下。
    的頭像 發表于 10-28 09:28 ?3789次閱讀
    明文<b class='flag-5'>存儲</b>的Signal Desktop 應用程序消息解<b class='flag-5'>密密鑰</b>

    賽靈思研發提供能生成獨特的器件“指紋碼”的密鑰加密密鑰

    賽靈思的最新 PUF IP 由 Verayo 提供,能生成獨特的器件“指紋碼”,也就是只有器件自己知道的具有強大加密功能的密鑰加密密鑰(KEK)。PUF 利用 CMOS 制造工藝變量優勢(諸如閾值電壓、氧化物厚度、金屬外形、電阻
    的頭像 發表于 07-30 09:22 ?2715次閱讀

    芯片AES加密密鑰生成工具

    芯片AES加密密鑰生成工具前言:嵌入式單片機開發,為了防止別人將芯片內的代碼讀取出來通過反編譯手段拿到源碼,常用的手段是對芯片和燒錄文件進行加密。大部分的芯片廠商都會提供一個加密燒錄和
    發表于 12-09 14:36 ?6次下載
    芯片AES<b class='flag-5'>加密密鑰</b>生成工具

    量子物理學啟用下一個加密密鑰

    加密的強度在很大程度上取決于加密密鑰的質量。QuintessenceLabs 是一家使用量子物理學構建更強大的數據安全工具的澳大利亞網絡安全公司,它開發了一個 qStream 量子隨機數生成器 (QRNG),它提供具有全熵的加密密鑰
    的頭像 發表于 07-26 16:35 ?1321次閱讀
    量子物理學啟用下一個<b class='flag-5'>加密密鑰</b>

    密鑰分層管理體制

    密鑰用于加密密鑰交換密鑰和數據密鑰作本地存儲
    的頭像 發表于 01-24 10:05 ?763次閱讀
    <b class='flag-5'>密鑰</b>分層管理體制

    鴻蒙開發:Universal Keystore Kit 密鑰管理服務 加密導入密鑰 ArkTS

    加密導入ECDH密鑰對為例,涉及業務側加密密鑰的[密鑰生成]、[協商])等操作不在本示例中體現。
    的頭像 發表于 07-08 14:22 ?357次閱讀
    鴻蒙開發:Universal Keystore Kit <b class='flag-5'>密鑰</b>管理服務 <b class='flag-5'>加密</b>導入<b class='flag-5'>密鑰</b> ArkTS

    鴻蒙開發:Universal Keystore Kit密鑰管理服務 加密導入密鑰C、C++

    加密導入ECDH密鑰對為例,涉及業務側加密密鑰的[密鑰生成]、[協商]等操作不在本示例中體現。
    的頭像 發表于 07-08 15:26 ?353次閱讀
    鴻蒙開發:Universal Keystore Kit<b class='flag-5'>密鑰</b>管理服務 <b class='flag-5'>加密</b>導入<b class='flag-5'>密鑰</b>C、C++
    主站蜘蛛池模板: 国产精品日本不卡一区二区| 蜜臀AV精品久久无码99| 国产亚洲欧洲日韩在线观看 | 亚洲国产成人综合| 亚洲精品视频在线观看视频| 伊人久久艹| 99综合之综合久久伊人| 成人免费一区二区无码视频| 97在线精品视频免费| 一本色道久久88综合日韩精品| 色婷婷AV国产精品欧美毛片| 视频一区二区三区蜜桃麻豆| 亚洲m男在线中文字幕| 婬香婬色天天视频| hdsex老太婆70| 国产成人自产拍免费视频| 精品国产乱码久久久久久夜深人妻| 看电影就来5566先锋av| 日本50人群体交乱| 亚洲大片免费观看| 97视频久久| 国产精品久久久久婷婷五月色婷婷| 簧片免费观看| 精品久久久爽爽久久久AV| 美女医生深夜在家裸睡惨死| 色哒哒影院| 一个人免费完整观看日本| av天堂电影网| 国产一区二区三区乱码在线观看| 久热人人综合人人九九精品视频| 日本人六九视频| 一个人在线观看免费视频| 扒开 浓密 毛| 精品午夜久久影视| 啪啪激情婷婷久久婷婷色五月| 亚洲a免费| 办公室激情在线观看| 精品伊人久久| 四虎永久在线精品国产| 中文无码不卡的岛国片国产片| 成人在线视频网站|