1330 lines
105 KiB
Text
1330 lines
105 KiB
Text
<!DOCTYPE html>
|
||
<html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# ">
|
||
<head>
|
||
<meta charset="utf-8" /><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"37b7ccb661",applicationID:"1089704227"};;/*! For license information please see nr-loader-rum-1.283.2.min.js.LICENSE.txt */
|
||
(()=>{var e,t,r={122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},217:(e,t,r)=>{"use strict";r.d(t,{D0:()=>m,gD:()=>v,xN:()=>h});r(860).K7.genericEvents;const n="experimental.marks",i="experimental.measures",o="experimental.resources",a=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var s=r(614),c=r(944),u=r(384),l=r(122);const d="[data-nr-mask]",f=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(i)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:s.wk,inactiveMs:s.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){a(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,c.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){a(t)?e.block_selector+=",".concat(t):""!==t&&(0,c.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,c.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},g={},p="All configuration objects require an agent identifier!";function m(e){if(!e)throw new Error(p);if(!g[e])throw new Error("Configuration for ".concat(e," was never set"));return g[e]}function h(e,t){if(!e)throw new Error(p);g[e]=(0,l.a)(t,f());const r=(0,u.nY)(e);r&&(r.init=g[e])}function v(e,t){if(!e)throw new Error(p);var r=m(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>d});var n=r(122),i=r(384),o=r(154),a=r(324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},l={};function d(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!l[e])throw new Error("Runtime for ".concat(e," was never set"));return l[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");l[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(l[e],"harvestCount")||Object.defineProperty(l[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=l[e])}},324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.283.2",i="PROD",o="CDN"},154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>l,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,l=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>d,x3:()=>u});var n=r(836),i=r(606),o=r(860),a=r(646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};l(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function l(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function d(e="",t="feature",r=!1){if(l(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(990),o=r(371),a=r(646),s=r(607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},l={},d=!1;try{d=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=m(e),l=c.length,d=0;d<l;d++)c[d].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:d?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:d};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return l[t]=l[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),l=(0,n.Zm)();l.ee||(l.ee=u)},646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(566).bz)()},566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(836),i=r(154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>l,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>d});var n=r(154),i=r(863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function l(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(836),i=r(607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];l(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return l(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,l,d;try{a=this,o=[...arguments],l="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],l],e)}i(r+"start",[o,a,s],l,c);try{return d=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],l,c),e}finally{i(r+"end",[o,a,d],l,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log";n.K7.logging},773:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(154),r(566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(836),i=r(687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},603:(e,t,r)=>{"use strict";r.d(t,{j:()=>K});var n=r(860),i=r(555),o=r(371),a=r(908),s=r(836),c=r(687),u=r(289),l=r(154),d=r(944),f=r(773),g=r(384),p=r(344);const m=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],h=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(863),b=r(614),y=r(993);var w=r(646),R=r(434);const A=new Map;function E(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,d.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,R.YM)(i),a=new w.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[R.Jt]||t[r];return A.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>A.get(c))),i}function _(){const e=(0,g.pV)();m.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,d.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function N(e,t,g=!1){t||(0,c.Ak)(e,"api");const m={};var w=s.ee.get(e),R=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var A="api-",_=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(A,n,!0,o||null===r?"session":void 0)(t,r)}function k(){}m.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,v.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},m.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),E(w,e,t,{customAttributes:r,level:i})},h.forEach((e=>{m[e]=j(A,e,!0,"api")})),m.addPageAction=j(A,"addPageAction",!0,n.K7.genericEvents),m.recordCustomEvent=j(A,"recordCustomEvent",!0,n.K7.genericEvents),m.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(A,"setPageViewName",!0)()},m.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,d.R)(40,typeof t)}else(0,d.R)(39,typeof e)},m.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,d.R)(41,typeof e)},m.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,d.R)(42,typeof e)},m.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,d.R)(23,e)}},m[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},m[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},m.interaction=function(e){return(new k).get("object"==typeof e?e:{})};const T=k.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,w),function(){if(R.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw R.emit("fn-err",[arguments,this,t],r),t}finally{R.emit("fn-end",[(0,v.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,w),r?void 0:this}}function I(){r.e(296).then(r.bind(r,778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,d.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{T[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),m.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(A,"routeName",!0,n.K7.spa),m.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},l.RI?(0,u.GG)((()=>I()),!0):I(),m}var k=r(217),T=r(122);const j={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},I={};var O=r(284);const S=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function K(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:d={},exposed:f=!0}=t;d.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,k.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");I[e]=(0,T.a)(t,j);const r=(0,g.nY)(e);r&&(r.loader_config=I[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},l.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const m=(0,k.D0)(e.agentIdentifier),h=[c.beacon,c.errorBeacon];P||(m.proxy.assets&&(S(m.proxy.assets),h.push(m.proxy.assets)),m.proxy.beacon&&h.push(m.proxy.beacon),_(),(0,g.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===m.soft_navigations.enabled&&m.feature_flags.includes("soft_nav")),d.denyList=[...m.ajax.deny_list||[],...m.ajax.block_internal?h:[]],d.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,d),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=N(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),P=!0}},374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.283.2.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.283.2.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var d=u[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){s=d;break}}if(!s){c=!0;var f={296:"sha512-2Y8GMAOGF658KnXzOZ/v+DlLch8TBFvV0tTNnOy9wrpvtDa1t5CdZMyX+LubTymBlzPp6NUjllBghMCZqXBPmg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={374:0,840:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.283.2.PROD"]=self["webpackChunk:NRBA-1.283.2.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(374);var e=i(944),t=i(344),r=i(566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(217);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var l=i(603);var d=i(687),f=i(234),g=i(289),p=i(154),m=i(384);const h=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function v(e){return!!(0,m.dV)().o.MO&&h(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,d.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,d.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(h(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,d.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,d.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return v(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(630);class R extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var A=i(908),E=i(843),_=i(878),x=i(782),N=i(863);class k extends y{static featureName=x.T;constructor(e,t=!0){super(e,x.T,t),p.RI&&((0,E.u)((()=>(0,A.p)("docHidden",[(0,N.t)()],void 0,x.T,this.ee)),!0),(0,_.sp)("pagehide",(()=>(0,A.p)("winPagehide",[(0,N.t)()],void 0,x.T,this.ee))),this.importAggregator(e))}}var T=i(773);class j extends y{static featureName=T.TZ;constructor(e,t=!0){super(e,T.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,m.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,l.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,m.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,k,j],loaderType:"lite"})})()})();</script>
|
||
<noscript><style>form.antibot * :not(.antibot-message) { display: none !important; }</style>
|
||
</noscript><script async src="https://www.googletagmanager.com/gtag/js?id=G-HEQ0YF2VYL"></script>
|
||
<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments)};gtag("js", new Date());gtag("set", "developer_id.dMDhkMT", true);gtag('set', {'cookie_flags': 'SameSite=None;Secure', 'cookie_domain': 'www.nist.gov'});gtag("config", "G-HEQ0YF2VYL", {"groups":"default","page_placeholder":"PLACEHOLDER_page_location","link_attribution":true,"allow_ad_personalization_signals":false});gtag("config", "G-CSLL4ZEK4L", {"groups":"default","page_placeholder":"PLACEHOLDER_page_location","link_attribution":true,"allow_ad_personalization_signals":false});gtag("event", "custom", {"node_title":"Protecting Model Updates in Privacy-Preserving Federated Learning","node_id":"1843006","blog_author":"Joseph Near, David Darais","content_type":"Blog entry"});</script>
|
||
<meta name="description" content="In our second post we described attacks" />
|
||
<link rel="canonical" href="https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning" />
|
||
<link rel="shortlink" href="https://www.nist.gov/node/1843006" />
|
||
<meta name="citation_title" content="Protecting Model Updates in Privacy-Preserving Federated Learning | NIST" />
|
||
<meta property="og:site_name" content="NIST" />
|
||
<meta property="og:type" content="Article" />
|
||
<meta property="og:url" content="https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning" />
|
||
<meta property="og:title" content="Protecting Model Updates in Privacy-Preserving Federated Learning" />
|
||
<meta property="og:description" content="In our second post we described attacks" />
|
||
<meta property="og:image" content="https://www.nist.gov/themes/custom/nist_www/img/homepage/nist_mark.png" />
|
||
<meta property="article:author" content="Joseph Near" />
|
||
<meta property="article:tag" content="general security & privacy" />
|
||
<meta property="article:published_time" content="2024-03-21T08:00-04:00" />
|
||
<meta property="article:modified_time" content="2024-03-21T09:59-04:00" />
|
||
<meta name="dcterms.title" content="Protecting Model Updates in Privacy-Preserving Federated Learning" />
|
||
<meta name="dcterms.creator" content="Joseph Near" />
|
||
<meta name="dcterms.description" content="In our second post we described attacks" />
|
||
<meta name="dcterms.publisher" content="Joseph Near" />
|
||
<meta name="dcterms.contributor" content="NIST" />
|
||
<meta name="dcterms.date" content="2024-03-21T08:00-04:00" />
|
||
<meta name="dcterms.type" content="text" />
|
||
<meta name="dcterms.format" content="text/html" />
|
||
<meta name="dcterms.identifier" content="https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning" />
|
||
<meta name="dcterms.source" content="NIST" />
|
||
<meta name="dcterms.created" content="2024-03-21T08:00-04:00" />
|
||
<meta name="dcterms.modified" content="2024-03-21T09:59-04:00" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="twitter:description" content="In our second post we described attacks" />
|
||
<meta name="twitter:site" content="NIST" />
|
||
<meta name="twitter:title" content="Protecting Model Updates in Privacy-Preserving Federated Learning" />
|
||
<meta name="google-site-verification" content="QMu0ODkER3rN5hLcMLqNVf7e3bkjYsNLTuhqfH48jCA" />
|
||
<meta name="Generator" content="Drupal 10 (https://www.drupal.org)" />
|
||
<meta name="MobileOptimized" content="width" />
|
||
<meta name="HandheldFriendly" content="true" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<meta name="nist_search_modified" class="elastic" content="2024-03-21T09:59:00-04:00" />
|
||
<script type="application/ld+json">{
|
||
"@context": "https://schema.org",
|
||
"@graph": [
|
||
{
|
||
"@type": "Article",
|
||
"@id": "https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning",
|
||
"headline": "Protecting Model Updates in Privacy-Preserving Federated Learning",
|
||
"name": "Protecting Model Updates in Privacy-Preserving Federated Learning",
|
||
"description": "In our second post we described attacks",
|
||
"datePublished": "2024-03-21T08:00-04:00",
|
||
"dateModified": "2024-03-21T09:59-04:00",
|
||
"author": [
|
||
{
|
||
"@type": "Person",
|
||
"@id": "https://www.nist.gov/blogs/cybersecurity-insights/authors/joseph-near",
|
||
"name": "Joseph Near",
|
||
"url": "https://www.nist.gov/blogs/cybersecurity-insights/authors/joseph-near"
|
||
},
|
||
{
|
||
"@type": "Person",
|
||
"@id": "https://www.nist.gov/blogs/cybersecurity-insights/authors/david-darais",
|
||
"name": "David Darais",
|
||
"url": "https://www.nist.gov/blogs/cybersecurity-insights/authors/david-darais"
|
||
}
|
||
],
|
||
"publisher": {
|
||
"@type": "GovernmentOrganization",
|
||
"@id": "https://www.nist.gov/",
|
||
"name": "National Institute of Standards and Technology",
|
||
"url": "https://www.nist.gov/"
|
||
}
|
||
}
|
||
]
|
||
}</script>
|
||
<meta name="nist_search_bundle" class="elastic" content="blog" />
|
||
<link rel="icon" href="/themes/custom/nist_www/favicon.ico" type="image/vnd.microsoft.icon" />
|
||
|
||
<title>Protecting Model Updates in Privacy-Preserving Federated Learning | NIST</title>
|
||
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_hKAD9a0878O1Pdb6alKtCmESLiUtQmrBX15rQUvSgOA.css?delta=0&language=en&theme=nist_www&include=eJxNTgsOwyAIvZCpRzKotCNFaYTW9fazW5ctIYRH3i9CWoPJmM3H3x0oSXWV1II9sOD4CUdooUj2mRQiY2Cqq9NTDcvQKr75fmGJwB9t7_2L8WkX3-e2b8DTDd1B2NW_9zS8d75dCiyVZkpuJjZsPsFmNCqpJAIOBTPBFToYDKfsFkarJAe200vFJH8NCqUmSoYvWkVdRQ" />
|
||
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_kGS0ApDpFo-_3JI4Ijxg4RCWlTqsImK3lqH7bCv5v2U.css?delta=1&language=en&theme=nist_www&include=eJxNTgsOwyAIvZCpRzKotCNFaYTW9fazW5ctIYRH3i9CWoPJmM3H3x0oSXWV1II9sOD4CUdooUj2mRQiY2Cqq9NTDcvQKr75fmGJwB9t7_2L8WkX3-e2b8DTDd1B2NW_9zS8d75dCiyVZkpuJjZsPsFmNCqpJAIOBTPBFToYDKfsFkarJAe200vFJH8NCqUmSoYvWkVdRQ" />
|
||
<link rel="stylesheet" media="print" href="/sites/default/files/css/css_-IXwLuTUdm8IGHxib8GX8wWKw3LjKsNWSYYskZ5fEGg.css?delta=2&language=en&theme=nist_www&include=eJxNTgsOwyAIvZCpRzKotCNFaYTW9fazW5ctIYRH3i9CWoPJmM3H3x0oSXWV1II9sOD4CUdooUj2mRQiY2Cqq9NTDcvQKr75fmGJwB9t7_2L8WkX3-e2b8DTDd1B2NW_9zS8d75dCiyVZkpuJjZsPsFmNCqpJAIOBTPBFToYDKfsFkarJAe200vFJH8NCqUmSoYvWkVdRQ" />
|
||
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_RS8YGnRq2Xi5aD-GQC3GKwBe6bOWBBmEmXrb2xB5FMM.css?delta=3&language=en&theme=nist_www&include=eJxNTgsOwyAIvZCpRzKotCNFaYTW9fazW5ctIYRH3i9CWoPJmM3H3x0oSXWV1II9sOD4CUdooUj2mRQiY2Cqq9NTDcvQKr75fmGJwB9t7_2L8WkX3-e2b8DTDd1B2NW_9zS8d75dCiyVZkpuJjZsPsFmNCqpJAIOBTPBFToYDKfsFkarJAe200vFJH8NCqUmSoYvWkVdRQ" />
|
||
|
||
<script src="/sites/default/files/js/js_GM8kl6wk698qKTTwusj83bCoGHHtOZ1UinjY1sE_Qbk.js?scope=header&delta=0&language=en&theme=nist_www&include=eJxdjWsSgyAMhC-kzZEyQSKmAnEApb198dFpx5n8yLfJ7hoaZizaZgHz2_GZO6fqPCNF8u8iQ4a70EXJBUdpmtUavZLFklqIRAeOznOWwhKWpBvDXdhbDq1MHLj1qjeUMKgFK5lMC_YS5-MHnFdDvr8sMDFZTl_EWuvfB7_KbgSb1oX848LTGMhFGWXoNuGa8bmGBQPHFQ7ud-53_gAS9G-N"></script>
|
||
|
||
</head>
|
||
<body class="node-1843006">
|
||
<a href="#main-content" class="visually-hidden focusable" data-elastic-exclude>
|
||
Skip to main content
|
||
</a>
|
||
|
||
<div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas>
|
||
|
||
<!-- nist-index-ignore-start -->
|
||
<section data-elastic-exclude class="usa-banner" aria-label="Official government website">
|
||
<div class="usa-accordion">
|
||
<header class="usa-banner__header">
|
||
<div class="usa-banner__inner">
|
||
<div class="grid-col-auto">
|
||
<img class="usa-banner__header-flag" src="/libraries/nist-component-library/dist/img/us_flag_small.png" alt="U.S. flag">
|
||
</div>
|
||
<div class="grid-col-fill tablet:grid-col-auto">
|
||
<p class="usa-banner__header-text">An official website of the United States government</p>
|
||
<p class="usa-banner__header-action" aria-hidden="true">Here’s how you know</p>
|
||
</div>
|
||
<button class="usa-accordion__button usa-banner__button" aria-expanded="false" aria-controls="gov-banner-default">
|
||
<span class="usa-banner__button-text">Here’s how you know</span>
|
||
</button>
|
||
</div>
|
||
</header>
|
||
<div class="usa-banner__content usa-accordion__content" id="gov-banner-default">
|
||
<div class="grid-row grid-gap-lg">
|
||
<div class="usa-banner__guidance tablet:grid-col-6">
|
||
<img class="usa-banner__icon usa-media-block__img" src="/libraries/nist-component-library/dist/img/icon-dot-gov.svg" role="img" alt="" aria-hidden="true">
|
||
<div class="usa-media-block__body">
|
||
<p>
|
||
<strong>Official websites use .gov</strong>
|
||
<br/>
|
||
A <strong>.gov</strong> website belongs to an official government organization in the United States.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="usa-banner__guidance tablet:grid-col-6">
|
||
<img class="usa-banner__icon usa-media-block__img" src="/libraries/nist-component-library/dist/img/icon-https.svg" role="img" alt="" aria-hidden="true">
|
||
<div class="usa-media-block__body">
|
||
<p>
|
||
<strong>Secure .gov websites use HTTPS</strong>
|
||
<br/>
|
||
A <strong>lock</strong> ( <span class="icon-lock">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="52" height="64" viewbox="0 0 52 64" class="usa-banner__lock-image" role="img" aria-labelledby="banner-lock-title banner-lock-description" focusable="false">
|
||
<title id="banner-lock-title">Lock</title>
|
||
<desc id="banner-lock-description">A locked padlock</desc><path fill="#000000" fill-rule="evenodd" d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z"/></svg>
|
||
</span>
|
||
) or <strong>https://</strong> means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<!-- nist-index-ignore-end -->
|
||
|
||
|
||
<div data-elastic-exclude>
|
||
<!-- nist-index-ignore-start -->
|
||
<div class="nist-print-header" style="display:none;">
|
||
<p class="nist-print-header__url">https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning</p>
|
||
<img class="nist-print-header__logo" width="289" height="38" src="/libraries/nist-component-library/dist/img/logo/nist_logo_sidestack.svg" alt="National Institute of Standards and Technology" />
|
||
</div>
|
||
|
||
|
||
<div class="usa-overlay"></div>
|
||
<header class="usa-header nist-header--www nist-header--minimal" role="banner">
|
||
<div class="usa-navbar">
|
||
<div class="usa-logo flex-fill">
|
||
<a href="/" title="National Institute of Standards and Technology" aria-label="Home">
|
||
<img src="/libraries/nist-component-library/dist/img/logo/logo.svg" alt="National Institute of Standards and Technology" width="300px" height="80px" />
|
||
</a>
|
||
</div>
|
||
<div class="usa-header__right grid-row flex-auto">
|
||
<div class="grid-col-fill nist-header__search-group">
|
||
|
||
<form class="usa-search usa-search--small"
|
||
accept-charset="UTF-8"
|
||
action="/search"
|
||
id="search_form"
|
||
method="get">
|
||
<div role="search">
|
||
<label class="usa-sr-only" for="search-form">Search NIST</label>
|
||
<input class="usa-input" id="search-form" type="search" name="s" placeholder="Search NIST" required="" maxlength="128">
|
||
<button class="usa-button" type="submit"><img src="/libraries/nist-component-library/dist/img/usa-icons-bg/search--white.svg" class="usa-search__submit-icon" alt="Search"></button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<div class="grid-col-auto padding-left-1">
|
||
<button class="usa-menu-btn">Menu</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<nav aria-label="Primary navigation" class="usa-nav">
|
||
<div class="usa-nav__inner">
|
||
<button class="usa-nav__close">Close</button>
|
||
<ul class="usa-nav__primary usa-accordion">
|
||
<li class="usa-nav__primary-item">
|
||
<a class="usa-nav__link" href="/publications">Publications</a>
|
||
</li>
|
||
<li class="usa-nav__primary-item">
|
||
<button class="usa-accordion__button usa-nav__link" aria-expanded="false" aria-controls="primary_menu-2"><span>What We Do</span></button>
|
||
<div id="primary_menu-2" class="usa-nav__submenu usa-megamenu">
|
||
<div class="grid-row">
|
||
<div class="tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/topics" class="usa-nav__link">All Topics</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/advanced-communications" class="usa-nav__link">Advanced communications</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/artificial-intelligence" class="usa-nav__link">Artificial intelligence</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/bioscience" class="usa-nav__link">Bioscience</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/buildings-construction" class="usa-nav__link">Buildings and construction</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/chemistry" class="usa-nav__link">Chemistry</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/cybersecurity" class="usa-nav__link">Cybersecurity</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/electronics" class="usa-nav__link">Electronics</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/energy" class="usa-nav__link">Energy</a>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/environment" class="usa-nav__link">Environment</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/fire" class="usa-nav__link">Fire</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/forensic-science" class="usa-nav__link">Forensic science</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/health" class="usa-nav__link">Health</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/information-technology" class="usa-nav__link">Information technology</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/infrastructure" class="usa-nav__link">Infrastructure</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/manufacturing" class="usa-nav__link">Manufacturing</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/materials" class="usa-nav__link">Materials</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/mathematics-statistics" class="usa-nav__link">Mathematics and statistics</a>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/metrology" class="usa-nav__link">Metrology</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/nanotechnology" class="usa-nav__link">Nanotechnology</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/neutron-research" class="usa-nav__link">Neutron research</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/performance-excellence" class="usa-nav__link">Performance excellence</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/physics" class="usa-nav__link">Physics</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/public-safety" class="usa-nav__link">Public safety</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/quantum-information-science" class="usa-nav__link">Quantum information science</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/resilience" class="usa-nav__link">Resilience</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/standards" class="usa-nav__link">Standards</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/transportation" class="usa-nav__link">Transportation</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li class="usa-nav__primary-item">
|
||
<button class="usa-accordion__button usa-nav__link" aria-expanded="false" aria-controls="primary_menu-3"><span>Labs & Major Programs</span></button>
|
||
<div id="primary_menu-3" class="usa-nav__submenu usa-megamenu">
|
||
<div class="grid-row">
|
||
<div class="tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/adlp" class="usa-nav__link">Assoc Director of Laboratory Programs</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/laboratories" class="usa-nav__link">Laboratories</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="/ctl" class="usa-nav__link">Communications Technology Laboratory</a>
|
||
</li>
|
||
<li>
|
||
<a href="/el" class="usa-nav__link">Engineering Laboratory</a>
|
||
</li>
|
||
<li>
|
||
<a href="/itl" class="usa-nav__link">Information Technology Laboratory</a>
|
||
</li>
|
||
<li>
|
||
<a href="/mml" class="usa-nav__link">Material Measurement Laboratory</a>
|
||
</li>
|
||
<li>
|
||
<a href="/pml" class="usa-nav__link">Physical Measurement Laboratory</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/user-facilities" class="usa-nav__link">User Facilities</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="/ncnr" class="usa-nav__link">NIST Center for Neutron Research</a>
|
||
</li>
|
||
<li>
|
||
<a href="/cnst" class="usa-nav__link">CNST NanoFab</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/labs-major-programs/research-test-beds" class="usa-nav__link">Research Test Beds</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/laboratories/projects-programs" class="usa-nav__link">Research Projects</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/laboratories/tools-instruments" class="usa-nav__link">Tools & Instruments</a>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/major-programs" class="usa-nav__link">Major Programs</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="/baldrige" class="usa-nav__link">Baldrige Performance Excellence Program</a>
|
||
</li>
|
||
<li>
|
||
<a href="/chips" class="usa-nav__link">CHIPS for America Initiative</a>
|
||
</li>
|
||
<li>
|
||
<a href="/mep" class="usa-nav__link">Manufacturing Extension Partnership (MEP)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/oam" class="usa-nav__link">Office of Advanced Manufacturing</a>
|
||
</li>
|
||
<li>
|
||
<a href="/spo" class="usa-nav__link">Special Programs Office</a>
|
||
</li>
|
||
<li>
|
||
<a href="/tpo" class="usa-nav__link">Technology Partnerships Office</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li class="usa-nav__primary-item">
|
||
<button class="usa-accordion__button usa-nav__link" aria-expanded="false" aria-controls="primary_menu-4"><span>Services & Resources</span></button>
|
||
<div id="primary_menu-4" class="usa-nav__submenu usa-megamenu">
|
||
<div class="grid-row">
|
||
<div class="tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/content/standards-measurements" class="usa-nav__link">Standards and Measurements</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="/calibrations" class="usa-nav__link">Calibration Services</a>
|
||
</li>
|
||
<li>
|
||
<a href="/nvlap" class="usa-nav__link">Laboratory Accreditation (NVLAP)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/nist-quality-system" class="usa-nav__link">Quality System</a>
|
||
</li>
|
||
<li>
|
||
<a href="/srm" class="usa-nav__link">Standard Reference Materials (SRMs)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/sri" class="usa-nav__link">Standard Reference Instruments (SRIs)</a>
|
||
</li>
|
||
<li>
|
||
<a href="/standardsgov" class="usa-nav__link">Standards.gov</a>
|
||
</li>
|
||
<li>
|
||
<a href="/pml/time-and-frequency-division/time-services" class="usa-nav__link">Time Services</a>
|
||
</li>
|
||
<li>
|
||
<a href="/pml/owm" class="usa-nav__link">Office of Weights and Measures</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/services-resources/software" class="usa-nav__link">Software</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/data" class="usa-nav__link">Data</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="https://webbook.nist.gov/chemistry/" class="usa-nav__link">Chemistry WebBook</a>
|
||
</li>
|
||
<li>
|
||
<a href="https://nvd.nist.gov/" class="usa-nav__link">National Vulnerability Database</a>
|
||
</li>
|
||
<li>
|
||
<a href="/pml/productsservices/physical-reference-data" class="usa-nav__link">Physical Reference Data</a>
|
||
</li>
|
||
<li>
|
||
<a href="/srd" class="usa-nav__link">Standard Reference Data (SRD)</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="https://shop.nist.gov/" class="usa-nav__link">Storefront</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/tpo" class="usa-nav__link">License & Patents</a>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="https://csrc.nist.gov/" class="usa-nav__link">Computer Security Resource Center (CSRC)</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/nist-research-library" class="usa-nav__link">NIST Research Library</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li class="usa-nav__primary-item">
|
||
<button class="usa-accordion__button usa-nav__link" aria-expanded="false" aria-controls="primary_menu-5"><span>News & Events</span></button>
|
||
<div id="primary_menu-5" class="usa-nav__submenu usa-megamenu">
|
||
<div class="grid-row">
|
||
<div class="tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/news-events/news" class="usa-nav__link">News</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/news-events/events" class="usa-nav__link">Events</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/blogs" class="usa-nav__link">Blogs</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/feature-stories" class="usa-nav__link">Feature Stories</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/awards" class="usa-nav__link">Awards</a>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/video-gallery" class="usa-nav__link">Video Gallery</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/image-gallery" class="usa-nav__link">Image Gallery</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/pao/media-contacts" class="usa-nav__link">Media Contacts</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li class="usa-nav__primary-item">
|
||
<button class="usa-accordion__button usa-nav__link" aria-expanded="false" aria-controls="primary_menu-6"><span>About NIST</span></button>
|
||
<div id="primary_menu-6" class="usa-nav__submenu usa-megamenu">
|
||
<div class="grid-row">
|
||
<div class="tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/about-nist" class="usa-nav__link">About Us</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="/director/leadership" class="usa-nav__link">Leadership</a>
|
||
</li>
|
||
<li>
|
||
<a href="/director/nist-organization-structure" class="usa-nav__link">Organization Structure</a>
|
||
</li>
|
||
<li>
|
||
<a href="/about-nist/budget-planning" class="usa-nav__link">Budget & Planning</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/about-nist/contact-us" class="usa-nav__link">Contact Us</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/about-nist/visit" class="usa-nav__link">Visit</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/careers" class="usa-nav__link">Careers</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="/iaao/academic-affairs-office" class="usa-nav__link">Student programs</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul></div><div class="column-break tablet:grid-col-fill"><ul class="usa-nav__submenu-list">
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/about-nist/work-nist" class="usa-nav__link">Work with NIST</a>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/history" class="usa-nav__link">History</a>
|
||
<ul class="usa-nav__submenu-list">
|
||
<li>
|
||
<a href="http://nistdigitalarchives.contentdm.oclc.org/" class="usa-nav__link">NIST Digital Archives</a>
|
||
</li>
|
||
<li>
|
||
<a href="/nist-museum" class="usa-nav__link">NIST Museum</a>
|
||
</li>
|
||
<li>
|
||
<a href="/nist-and-nobel" class="usa-nav__link">NIST and the Nobel</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="usa-nav__submenu-item">
|
||
<a href="/education" class="usa-nav__link">Educational Resources</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</nav>
|
||
|
||
|
||
|
||
|
||
</header>
|
||
<!-- nist-index-ignore-end -->
|
||
</div>
|
||
|
||
<div class="grid-container">
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
<div
|
||
id="block-nist-www-content" class="nist-block"
|
||
>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<section
|
||
class="nist-page__content usa-section clearfix"
|
||
>
|
||
|
||
<a id="main-content" tabindex="-1"></a>
|
||
|
||
<div
|
||
class="nist-page__region nist-page__region--content-top-full"
|
||
>
|
||
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
|
||
<div class="entity-reference">
|
||
|
||
<div class="nist-blog-header nist-blog-header--darkgray nist-blog-header--inner">
|
||
<div class="nist-blog-header__bkgrd">
|
||
<div class="nist-blog-header__main grid-container">
|
||
<div class="grid-row">
|
||
<h2 class="nist-blog-header__title">
|
||
<a href="/blogs/cybersecurity-insights"> Cybersecurity Insights
|
||
</a>
|
||
</h2>
|
||
<div class="nist-blog-header__tagline">
|
||
<p class="text">a NIST blog</p>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="grid-container margin-top-4">
|
||
<div
|
||
class="nist-page__region nist-page__region--content-top"
|
||
>
|
||
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
|
||
<h1 class="nist-page__title">Protecting Model Updates in Privacy-Preserving Federated Learning</h1>
|
||
|
||
|
||
</div>
|
||
|
||
<div
|
||
class="font-body-md"
|
||
>
|
||
|
||
|
||
|
||
<div class="daterange"><time datetime="2024-03-21T12:00:00Z">March 21, 2024</time>
|
||
</div>
|
||
|
||
</div>
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
|
||
|
||
<span>By: </span>
|
||
<a href="/blogs/cybersecurity-insights/authors/joseph-near" hreflang="en">Joseph Near</a> and <a href="/blogs/cybersecurity-insights/authors/david-darais" hreflang="en">David Darais</a>
|
||
|
||
</div>
|
||
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
|
||
<!-- nist-index-ignore-start -->
|
||
<div data-elastic-exclude class="nist-block nist-social__wrapper">
|
||
<h2 class="nist-social__title">Share</h2>
|
||
<div class="social-media-sharing">
|
||
<div class="nist-social__wrapper--share">
|
||
<div>
|
||
<a target="_blank" rel="noopener" href="https://www.facebook.com/share.php?u=https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning"
|
||
title="Facebook" class="nist-social nist-social--facebook-gray">
|
||
<span>Facebook</span>
|
||
</a>
|
||
</div>
|
||
<div>
|
||
<a target="_blank" rel="noopener" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning&source=https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning"
|
||
title="Linkedin" class="nist-social nist-social--linkedin-gray">
|
||
<span>Linkedin</span>
|
||
</a>
|
||
</div>
|
||
<div>
|
||
<a target="_blank" rel="noopener" href="https://x.com/intent/tweet?url=https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning&status=https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning"
|
||
title="X.com" class="nist-social nist-social--x-gray">
|
||
<span>X.com</span>
|
||
</a>
|
||
</div>
|
||
<div>
|
||
<a href="mailto:?subject=NIST.gov&body=Check out this site https://www.nist.gov/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning"
|
||
title="Email" class="nist-social nist-social--envelope-gray">
|
||
<span>Email</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- nist-index-ignore-end -->
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="grid-container margin-top-4">
|
||
<div class="grid-row grid-gap-6">
|
||
|
||
|
||
|
||
<div
|
||
class="nist-page__region nist-page__region--content tablet-lg:grid-col-8"
|
||
>
|
||
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
|
||
<div class="text-with-summary">
|
||
|
||
|
||
|
||
<p class="MsoNormal">In our <a href="https://www.nist.gov/blogs/cybersecurity-insights/privacy-attacks-federated-learning">second post</a> we described attacks on models and the concepts of <em>input privacy</em> and <em>output privacy</em>. ln our <a href="https://www.nist.gov/blogs/cybersecurity-insights/data-distribution-privacy-preserving-federated-learning">last post</a>, we described horizontal and vertical partitioning of data in privacy-preserving federated learning (PPFL) systems. In this post, we explore the problem of providing <em><strong>input privacy</strong></em> in PPFL systems for the horizontally-partitioned setting.</p><p><strong>Models, training, and aggregation</strong></p><p class="MsoNormal"><a class="ck-anchor" id="_Int_pW4Kgssx" name="_Int_pW4Kgssx">To explore techniques for input privacy in PPFL, we first have to be more precise about the training process.</a></p><p class="MsoNormal">In horizontally-partitioned federated learning, a common approach is to ask each participant to construct a <em>model update</em> by starting from a common <em>global model</em> and training locally using their own data. Since the data is horizontally partitioned, all participants have identically formatted data, and can train models that similarly have identical formats.</p><p class="MsoNormal">Different model formats are possible depending on the machine learning techniques used. Perhaps the most common format in horizontally-partitioned federated learning is a neural network, in which the participants agree on an <em>architecture</em> of connected layers before training begins, and the training process modifies <em>weights</em> (or <em>parameters</em>) within the layers to produce correct answers. Models and model updates can be represented by the values of these weights, usually arranged in a vector or matrix.</p><p class="MsoNormal">To combine individual </p><p class="MsoNormal">model updates, the aggregator can simply average the weights associated with the participants' model updates to obtain an improved global model. This algorithm is called <a href="https://arxiv.org/abs/1602.05629">Federated Averaging (FedAvg)</a>, and it can be repeated many times to train a highly accurate global model.</p>
|
||
<figure class=" nist-image--lightbox nist-image" role="group">
|
||
<div data-lightbox="https://www.nist.gov/sites/default/files/styles/2800_x_2800_limit/public/images/2024/03/21/Picture1%20blog%203_21_2024.png?itok=NOKiw5_I" data-media-id="703621">
|
||
|
||
<img alt="Figure 1: the FedAvg algorithm. The aggregator distributes the current global model to clients, the clients perform several iterations of training, each on their own local data, and then the aggregator averages the resulting model updates to form the next version of the global model. The process repeats until the model reaches the desired performance." height="211" loading="lazy" src="/sites/default/files/styles/480_x_480_limit/public/images/2024/03/21/Picture1%20blog%203_21_2024.png?itok=fX2Z7d6p" typeof="foaf:Image" width="480">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
<figcaption class="nist-image__caption"><strong>Figure 1: the FedAvg algorithm. The aggregator distributes the current global model to clients, the clients perform several iterations of training, each on their own local data, and then the aggregator averages the resulting model updates to form the next version of the global model. The process repeats until the model reaches the desired performance.</strong><div class="nist-image__credit">
|
||
<span class="nist-image__credit-label">Credit:</span>
|
||
|
||
NIST
|
||
|
||
</div></figcaption>
|
||
</figure>
|
||
|
||
<p><strong>Input Privacy via Secure Aggregation</strong></p><p class="MsoNormal">The FedAvg algorithm described in the last section does not provide input privacy---the aggregator receives individual model updates after each training phase and could conduct one of the attacks described in our previous post to violate the privacy of participants.</p><p class="MsoNormal">One way of adding input privacy to this process is to use a <em>secure aggregation</em> protocol, which reveals the average of the model updates to the aggregator but protects the individual updates. Hiding individual updates from the aggregator is an effective defense against the "Attacks on Model Updates" described in our previous post.</p><p class="MsoNormal">Secure aggregation is an active area of research, and many algorithms have been proposed. A simple example is based on the cryptographic idea of <a href="https://dl.acm.org/doi/10.1145/359168.359176">secret sharing</a>, which allows a secret value to be "split" into multiple <em>shares</em>. <a class="ck-anchor" id="_Int_XHF9Bktq" name="_Int_XHF9Bktq">Each <strong>individual share</strong> reveals <strong>nothing</strong> about the original secret; the original secret can be recovered only by combining <strong>all</strong> of the shares.</a> Furthermore, many secret sharing schemes are <em>additively homomorphic</em>, which means that addition can be performed on shares <strong>without combining them</strong>.</p><p class="MsoNormal">To use secret sharing for secure aggregation, each participant sends one share of their model update to each participant (keeping one for themselves). Then, each participant sums the shares they have received (plus the one held for themselves) and sends the result to the aggregator. By the additive homomorphism of the secret sharing scheme, the aggregator can combine the received shares to arrive at the sum of the original model updates---but has no way to access the individual updates!</p>
|
||
<figure class=" nist-image--lightbox nist-image" role="group">
|
||
<div data-lightbox="https://www.nist.gov/sites/default/files/styles/2800_x_2800_limit/public/images/2024/03/21/Picture%202%20blog%203_21_2024.png?itok=gNgIEQFB" data-media-id="703626">
|
||
|
||
<img alt="Figure 2: secure aggregation by secret sharing. Each participant splits their local model into secret shares, then the participants sum up the shares and reconstruct the new global model. The protocol provides input privacyfor each local model and reveals only the new global model." height="182" loading="lazy" src="/sites/default/files/styles/480_x_480_limit/public/images/2024/03/21/Picture%202%20blog%203_21_2024.png?itok=-jwjagjB" typeof="foaf:Image" width="480">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
<figcaption class="nist-image__caption"><strong>Figure 2: secure aggregation by secret sharing. Each participant splits their local model into secret shares, then the participants sum up the shares and reconstruct the new global model. The protocol provides input privacy for each local model and reveals only the new global model.</strong><div class="nist-image__credit">
|
||
<span class="nist-image__credit-label">Credit:</span>
|
||
|
||
NIST
|
||
|
||
</div></figcaption>
|
||
</figure>
|
||
|
||
<p class="MsoNormal">This approach requires participants to send messages directly to each other and increases the amount of data each participant must send and receive. Recent research in this area has resulted in more efficient approaches, including systems that have been <a href="https://blog.research.google/2023/03/distributed-differential-privacy-for.html">deployed at Google</a>.</p><p class="MsoNormal">In the <a href="https://www.nist.gov/itl/applied-cybersecurity/privacy-engineering/collaboration-space/challenges/prize-challenges">US-UK PETs Prize Challenges</a>, the Scarlet Pets and Visa Research teams incorporated secure aggregation techniques as part of their winning solutions.</p><p><strong>Input Privacy via Homomorphic Encryption</strong></p><p class="MsoNormal">An alternative approach for adding input privacy to horizontally-partitioned federated learning is the use of <a href="https://eprint.iacr.org/2015/1192">homomorphic encryption</a><span> </span>instead of secure aggregation. In general, homomorphic encryption techniques allow computing on encrypted data without having to decrypt it first. Using homomorphic encryption, participants can encrypt their model updates using a common public encryption key and send the encrypted updates to the aggregator. If the aggregator does not have access to the corresponding secret key, then they cannot access individual updates.</p><p class="MsoNormal">To aggregate the model updates, the aggregator can use the addition operation of the homomorphic encryption scheme to add the encrypted updates together---resulting in a single <strong>encrypted</strong> aggregated model. Next, the aggregator needs to decrypt the aggregated model---but we already decided the aggregator must not have access to the secret key needed for decryption! The easiest way to solve this disconnect is to introduce another participant who is responsible for holding the secret key and decrypting <strong>only </strong>aggregated models. This participant must refuse to decrypt individual updates and must not collude with the aggregator. </p><p class="MsoNormal">Homomorphic encryption can be more efficient than secure aggregation in some cases, but the requirement of an additional participant who is guaranteed not to collude with the aggregator makes it difficult to deploy in many scenarios. Alternative approaches like <em>threshold homomorphic encryption</em> can eliminate the need for an additional participant, e.g. by secret sharing the secret key among participants. In the <a href="https://www.nist.gov/itl/applied-cybersecurity/privacy-engineering/collaboration-space/challenges/prize-challenges">US-UK PETs Prize Challenges</a>, techniques in this category were used by the PPMLHuskies, ILLIDANLAB, and MusCAT teams in their winning solutions.</p><p><strong>Input Privacy via Secure Enclaves</strong></p><p class="MsoNormal"><em>Secure enclaves</em> (also called <em>Trusted Execution Environments</em> or TEEs) provide a non-cryptographic approach to input privacy that instead relies on special security features of computer hardware. For example, Intel’s Software Guard Extensions (SGX), built into many Intel CPUs, allows programs within an enclave to compute on encrypted data without revealing that data to the CPU’s owner. Incorporating a secure enclave into a PPFL system enables <em>untrusted </em>parties to perform <em>trusted </em>computations, which can simplify the design of the system. Enclave-based approaches can also improve performance by avoiding the need for expensive cryptography.</p><p class="MsoNormal">Unlike cryptographic approaches, however, the security of an enclave depends on the trustworthiness and correctness of the CPU itself---so PPFL systems that rely on secure enclaves require trusting the manufacturer of the CPU.</p><p><strong>Coming up Next</strong></p><p class="MsoNormal">The input privacy techniques described in this post are easiest to apply when data is horizontally partitioned, because model aggregation can be performed by simple addition. When data is vertically partitioned, however, aggregation is much more complex, and different techniques are needed to provide input privacy. The next post in this series will describe this challenge and explore some common techniques for addressing it.</p><p class="MsoNormal"> </p>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
|
||
<div class="nist-tags">
|
||
<a href="/cybersecurity-insights-categories/partnerships" hreflang="en">Partnerships</a></div>
|
||
|
||
|
||
</div>
|
||
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
<h2
|
||
class="nist-block__title"
|
||
>About the author</h2>
|
||
|
||
<div class="nist-field nist-field--label-hidden entity-reference">
|
||
<div class="nist-field__items">
|
||
<div class="nist-field__item">
|
||
|
||
<article
|
||
about="/blogs/cybersecurity-insights/authors/joseph-near" class="nist-teaser"
|
||
>
|
||
<div class="nist-teaser__image">
|
||
<div class="entity-reference"> <a href="/blogs/cybersecurity-insights/authors/joseph-near" hreflang="en"><img loading="lazy" src="/sites/default/files/styles/thumbnail/public/images/2023/12/06/Jo%20Near.jpg?itok=r50VF0v7" width="86" height="100" alt="Joseph Near" typeof="foaf:Image" />
|
||
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="nist-teaser__content-wrapper">
|
||
<header>
|
||
<h3 class="nist-teaser__title"><a href="/blogs/cybersecurity-insights/authors/joseph-near"><span>Joseph Near</span>
|
||
</a></h3>
|
||
|
||
</header>
|
||
<div class="nist-teaser__content">
|
||
<div class="text-with-summary"><p class="MsoBodyText"><span><span><strong>Joseph Near</strong> is an assistant professor of computer science at the University of Vermont who supports NIST as a moderator for the Privacy Engineering Collaboration Space. His research interests include data privacy, computer security, and programming languages. Joseph received his B.S. in computer science from Indiana University, and his M.S. and Ph.D. in computer science from MIT.</span></span></p></div>
|
||
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
<div class="nist-field__item">
|
||
|
||
<article
|
||
about="/blogs/cybersecurity-insights/authors/david-darais" class="nist-teaser"
|
||
>
|
||
<div class="nist-teaser__image">
|
||
<div class="entity-reference"> <a href="/blogs/cybersecurity-insights/authors/david-darais" hreflang="en"><img loading="lazy" src="/sites/default/files/styles/thumbnail/public/images/2023/12/06/darais-new-640%2B240.jpg?itok=ogWja4KM" width="100" height="100" alt="David Darais" typeof="foaf:Image" />
|
||
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="nist-teaser__content-wrapper">
|
||
<header>
|
||
<h3 class="nist-teaser__title"><a href="/blogs/cybersecurity-insights/authors/david-darais"><span>David Darais</span>
|
||
</a></h3>
|
||
|
||
</header>
|
||
<div class="nist-teaser__content">
|
||
<div class="text-with-summary"><p><span><span><span><span><span><span><span><span><strong>David Darais</strong> is a Principal Scientist at Galois, Inc. and supports NIST as a moderator for the Privacy Engineering Collaboration Space. David's research focuses on tools for achieving reliable software in critical, security-sensitive, and privacy-sensitive systems. David received his B.S. from the University of Utah, M.S. from Harvard University and Ph.D. from the University of Maryland.</span></span></span></span></span></span></span></span></p></div>
|
||
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div
|
||
class="views-element-container nist-block"
|
||
>
|
||
|
||
<h2
|
||
class="nist-block__title"
|
||
>Related posts</h2>
|
||
|
||
<div><div class="js-view-dom-id-9e49d8955e0719f3bbf9cf954306c47c8f3b84600cf9062dd5ee17815a5f3472">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div>
|
||
|
||
<article
|
||
about="/blogs/cybersecurity-insights/nists-international-cybersecurity-and-privacy-engagement-update-new" class="nist-teaser"
|
||
>
|
||
<div class="nist-teaser__content-wrapper">
|
||
<header>
|
||
<h3 class="nist-teaser__title"><a href="/blogs/cybersecurity-insights/nists-international-cybersecurity-and-privacy-engagement-update-new"><span>NIST’s International Cybersecurity and Privacy Engagement Update – New Translations</span>
|
||
</a></h3>
|
||
<div class="nist-teaser__date">
|
||
<div class="daterange"><time datetime="2024-12-19T12:00:00Z">December 19, 2024</time>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</header>
|
||
<div class="nist-teaser__content">
|
||
<div class="text-with-summary"> As the year comes to a close, NIST continues to engage with our international partners to strengthen cybersecurity, including sharing over ten new international
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
<div>
|
||
|
||
<article
|
||
about="/blogs/cybersecurity-insights/data-pipeline-challenges-privacy-preserving-federated-learning" class="nist-teaser"
|
||
>
|
||
<div class="nist-teaser__content-wrapper">
|
||
<header>
|
||
<h3 class="nist-teaser__title"><a href="/blogs/cybersecurity-insights/data-pipeline-challenges-privacy-preserving-federated-learning"><span>Data Pipeline Challenges of Privacy-Preserving Federated Learning</span>
|
||
</a></h3>
|
||
<div class="nist-teaser__date">
|
||
<div class="daterange"><time datetime="2024-12-05T12:00:00Z">December 5, 2024</time>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</header>
|
||
<div class="nist-teaser__content">
|
||
<div class="text-with-summary"> This post is part of a series on privacy-preserving federated learning. The series is a collaboration between NIST and the UK government’s Responsible
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
<div>
|
||
|
||
<article
|
||
about="/blogs/cybersecurity-insights/unlocking-cybersecurity-talent-power-apprenticeships" class="nist-teaser"
|
||
>
|
||
<div class="nist-teaser__content-wrapper">
|
||
<header>
|
||
<h3 class="nist-teaser__title"><a href="/blogs/cybersecurity-insights/unlocking-cybersecurity-talent-power-apprenticeships"><span>Unlocking Cybersecurity Talent: The Power of Apprenticeships</span>
|
||
</a></h3>
|
||
<div class="nist-teaser__date">
|
||
<div class="daterange"><time datetime="2024-11-18T12:00:00Z">November 18, 2024</time>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</header>
|
||
<div class="nist-teaser__content">
|
||
<div class="text-with-summary"> Cybersecurity is a fast-growing field, with a constant need for skilled professionals. But unlike other professions — like medicine or aviation — there’s no
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<div
|
||
class="nist-block no-print"
|
||
>
|
||
|
||
<h2
|
||
class="nist-block__title"
|
||
>Comments</h2>
|
||
|
||
<section>
|
||
|
||
|
||
|
||
<h2>Add new comment</h2>
|
||
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_Lx5yvw0vUi4TN7C0L-5Rdrp4Q049mXEKn-dXREWOtBs.css?delta=0&language=en&theme=nist_www&include=eJxLzCvJTMov0U-E0Hpp-UW5OsmJBSXJGYn6SYnFqTppmTklqUX6KUWlBYk5ehAeAD47FNs&exclude=eJx1UAGOwyAM-xAdT0IBsi5bIBXQ9nqvv9B2WjXpJISwE-zEHsLLNdEzWf95u2c1_p8SBclmFBkZHWTgrVGo9pswmWpzd1IuyppZILpWVIbyaEc4ypUaUpqKLGi_iT7CzrUHJlRnYQ_FJYk2UgWvwkz5ZepWGyadsOLeb0cWD3x9D6eUfSBELG_o1nW9dl9wb8Gf1g1sLPMEfDuhCZIS5vamTzj4bVgIVyyHU4Ix052CWSiiOEweo6aBHC3D7zb0PIym07DYAFMjzbRKIGCXMBL0ffQ3wyZzc7pw0EjKZiVjEDbdqtr9vmkiM-NBueecJlXI81EcOh46_myYKBTpQf8BO5rHtg" />
|
||
<form class="comment-comment-node-blog-form comment-form usa-form antibot" novalidate="novalidate" data-drupal-selector="comment-form" data-action="/comment/reply/node/1843006/comment_node_blog" action="/antibot" method="post" id="comment-form" accept-charset="UTF-8">
|
||
<noscript>
|
||
<div class="antibot-no-js antibot-message antibot-message-warning">You must have JavaScript enabled to use this form.</div>
|
||
</noscript>
|
||
<div class="form-item js-form-item form-type-textfield js-form-type-textfield form-item-name js-form-item-name">
|
||
<label for="edit-name" class="usa-label">
|
||
Your name
|
||
</label>
|
||
|
||
|
||
<input data-drupal-default-value="Anonymous" data-drupal-selector="edit-name" type="text" id="edit-name" name="name" value="" size="30" maxlength="60" class="form-text usa-input" />
|
||
|
||
|
||
|
||
</div>
|
||
<input data-drupal-selector="form-pgi9ylg-p5fkallupgjwvceh13gwck6nxnxejk5lksk" type="hidden" name="form_build_id" value="form-pgi9YLg_P5FKaLLuPgjWvCeh13GWCK6NXnxejK5lKSk" class="usa-input" /><input data-drupal-selector="edit-comment-comment-node-blog-form" type="hidden" name="form_id" value="comment_comment_node_blog_form" class="usa-input" /><input data-drupal-selector="edit-antibot-key" type="hidden" name="antibot_key" value="" class="usa-input" /><div class="field--type-text-long field--name-comment-body field--widget-text-textarea js-form-wrapper form-wrapper" data-drupal-selector="edit-comment-body-wrapper" id="edit-comment-body-wrapper"> <div class="js-text-format-wrapper js-form-item form-item">
|
||
<div class="form-item js-form-item form-type-textarea js-form-type-textarea form-item-comment-body-0-value js-form-item-comment-body-0-value">
|
||
<label for="edit-comment-body-0-value" class="usa-label form-required">
|
||
Comment
|
||
<span class="usa-label--required"> <span class="usa-sr-only">Required</span>*</span></label>
|
||
|
||
|
||
<div class="form-textarea-wrapper">
|
||
<textarea class="js-text-full text-full form-textarea required usa-textarea resize-vertical" data-entity_embed-host-entity-langcode="en" data-media-embed-host-entity-langcode="en" data-drupal-selector="edit-comment-body-0-value" id="edit-comment-body-0-value" name="comment_body[0][value]" rows="5" cols="60" placeholder="" required="required" aria-required="true"></textarea>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
<div class="js-filter-wrapper filter-wrapper hidden js-form-wrapper form-wrapper" data-drupal-selector="edit-comment-body-0-format" id="edit-comment-body-0-format"><div class="js-filter-guidelines filter-guidelines js-form-wrapper form-wrapper" data-drupal-selector="edit-comment-body-0-format-guidelines" id="edit-comment-body-0-format-guidelines"><div data-drupal-format-id="plain_text">
|
||
<h4>Plain text</h4>
|
||
|
||
|
||
|
||
<ul>
|
||
<li>No HTML tags allowed.</li>
|
||
<li>Web page addresses and email addresses turn into links automatically.</li>
|
||
<li>Lines and paragraphs break automatically.</li>
|
||
</ul>
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
<fieldset data-drupal-selector="edit-captcha" class="captcha captcha-type-challenge--image">
|
||
<legend class="captcha__title js-form-required form-required">
|
||
CAPTCHA
|
||
</legend>
|
||
<div class="captcha__element">
|
||
<input data-drupal-selector="edit-captcha-sid" type="hidden" name="captcha_sid" value="652310681" class="usa-input" /><input data-drupal-selector="edit-captcha-token" type="hidden" name="captcha_token" value="F1vlQMIAWq6LxnTfA1mPNjEgdyu9TYNmxf8IYrYMqW4" class="usa-input" /><div class="captcha__image-wrapper js-form-wrapper form-wrapper" data-drupal-selector="edit-captcha-image-wrapper" id="edit-captcha-image-wrapper"><img data-drupal-selector="edit-captcha-image" src="/image-captcha-generate/652310681/1741101714" width="180" height="60" alt="Image CAPTCHA" title="Image CAPTCHA" loading="lazy" typeof="foaf:Image" />
|
||
</div>
|
||
<div class="form-item js-form-item form-type-textfield js-form-type-textfield form-item-captcha-response js-form-item-captcha-response">
|
||
<label for="edit-captcha-response" class="usa-label form-required">
|
||
What code is in the image?
|
||
<span class="usa-label--required"> <span class="usa-sr-only">Required</span>*</span></label>
|
||
|
||
|
||
<input autocomplete="off" data-drupal-selector="edit-captcha-response" aria-describedby="edit-captcha-response--description" type="text" id="edit-captcha-response" name="captcha_response" value="" size="15" maxlength="128" class="form-text required usa-input" required="required" aria-required="true" />
|
||
|
||
|
||
|
||
<div id="edit-captcha-response--description" class="description help-block">
|
||
Enter the characters shown in the image.
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="captcha__description description">This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.</div>
|
||
</fieldset>
|
||
<div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"><input data-drupal-selector="edit-submit" type="submit" id="edit-submit" name="op" value="Save" class="button button--primary js-form-submit form-submit usa-button" /></div>
|
||
|
||
<div class="comments__disclaimer padding-top-2">
|
||
<em>Please be respectful when posting comments. We will post all comments without editing as long as they are appropriate for a public, family friendly website, are on topic and do not contain profanity, personal attacks, misleading or false information/accusations or promote specific commercial products, services or organizations. Comments that violate our comment policy or include links to non-government organizations/web pages will not be posted.</em>
|
||
</div>
|
||
</form>
|
||
|
||
|
||
</section>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<aside class="nist-page__region nist-page__region--sidebar-second tablet-lg:grid-col-4">
|
||
|
||
<div>
|
||
|
||
<div
|
||
class="nist-block"
|
||
>
|
||
|
||
|
||
|
||
<div>
|
||
<div about="/blogs/cybersecurity-insights">
|
||
|
||
|
||
|
||
<div
|
||
class="views-exposed-form usa-form filters nist-block" novalidate="novalidate" data-drupal-selector="views-exposed-form-search-blog-cybersecurity-insights-search-page"
|
||
>
|
||
|
||
<h2
|
||
class="nist-block__title"
|
||
>Search</h2>
|
||
|
||
<form action="/blogs/cybersecurity-insights/search" method="get" id="views-exposed-form-search-blog-cybersecurity-insights-search-page" accept-charset="UTF-8" class="usa-form">
|
||
<div class="form-item js-form-item form-type-textfield js-form-type-textfield form-item-k js-form-item-k form-no-label">
|
||
|
||
|
||
<input placeholder="Search this blog" data-drupal-selector="edit-k" type="text" id="edit-k" name="k" value="" size="30" maxlength="128" class="form-text usa-input" />
|
||
|
||
|
||
|
||
<div id="edit-k--description" class="description help-block">
|
||
Put exact phrase in quotes (e.g., "information technology")
|
||
</div>
|
||
</div>
|
||
<div class="grid-col-12 form-actions js-form-wrapper form-wrapper" data-drupal-selector="edit-actions" id="edit-actions"><input data-drupal-selector="edit-submit-search-blog" type="submit" id="edit-submit-search-blog" value="Search" class="button js-form-submit form-submit usa-button" /></div>
|
||
|
||
|
||
</form>
|
||
|
||
|
||
</div>
|
||
<div
|
||
class="nist-block no-print"
|
||
>
|
||
|
||
<h2
|
||
class="nist-block__title"
|
||
>Email alerts</h2>
|
||
|
||
<div class="text-long"><p>Sign up below to receive Cybersecurity Insights blog updates.</p>
|
||
<form action="https://public.govdelivery.com/accounts/USNIST/subscribers/qualify" accept-charset="UTF-8" method="post">
|
||
<input name="utf8" type="hidden" value="✓">
|
||
<input type="hidden" name="authenticity_token" value="umng6itSRmNK2AM4clGhRFfjURNr8Xq93Wj+SgyY3mzPrAiisJN3Hm4xl+o5D5KH7uXFJ4nQ/OqkKO3CG8H0Vw==">
|
||
<input type="hidden" name="topic_id" id="topic_id" value="USNIST_213">
|
||
<div class="grid-row grid-gap-1">
|
||
<div class="tablet:grid-col-8">
|
||
<label class="usa-sr-only" for="email">Enter Email Address</label>
|
||
<input class="usa-input" type="text" name="email" id="email" title="email">
|
||
</div>
|
||
<div class="tablet:grid-col-4">
|
||
<input type="submit" name="commit" value="Sign Up" class="usa-button margin-top-1">
|
||
</div>
|
||
</div>
|
||
</form></div>
|
||
|
||
|
||
</div>
|
||
<div
|
||
class="nist-block no-print"
|
||
>
|
||
|
||
<h2
|
||
class="nist-block__title"
|
||
>Stay Connected</h2>
|
||
|
||
|
||
|
||
<div><a href="https://www.x.com/nistcyber" class="nist-social nist-social--x" title="X (Twitter)" ><span>X (Twitter)</span></a><a href="https://public.govdelivery.com/accounts/USNIST/subscriber/new?topic_id=USNIST_213" class="nist-social nist-social--envelope" title="GovDelivery" ><span>GovDelivery</span></a></div>
|
||
|
||
</div>
|
||
<div
|
||
class="views-element-container nist-block no-print"
|
||
>
|
||
|
||
<h2
|
||
class="nist-block__title"
|
||
>Categories</h2>
|
||
|
||
<div><div class="js-view-dom-id-df8e9fd11105b3e1c0c0e4b226523864b2a9c59e4e5f72de2cf6be56169dbea3">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div>
|
||
<select class="usa-select ViewsJumpMenu js-viewsJumpMenu" title="-- Choose --" id="blog-categories-block-2-jump-menu">
|
||
<option>-- Choose --</option>
|
||
<option data-url="/cybersecurity-insights-categories/events-and-workshops">Events and Workshops</option>
|
||
<option data-url="/cybersecurity-insights-categories/implementation">Implementation</option>
|
||
<option data-url="/cybersecurity-insights-categories/measurement-science">Measurement Science</option>
|
||
<option data-url="/cybersecurity-insights-categories/multi-factor-authentication">Multi Factor Authentication</option>
|
||
<option data-url="/cybersecurity-insights-categories/partnerships">Partnerships</option>
|
||
<option data-url="/cybersecurity-insights-categories/publications">Publications</option>
|
||
</select>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</aside>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="grid-container">
|
||
|
||
|
||
</div>
|
||
|
||
</section>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div data-elastic-exclude>
|
||
<!-- nist-index-ignore-start -->
|
||
|
||
<footer class="nist-footer padding-bottom-4">
|
||
|
||
|
||
<div class="grid-container nist-footer__info">
|
||
<div class="grid-row">
|
||
<div class="tablet:grid-col-6">
|
||
<div class="nist-footer__logo">
|
||
<a href="/" title="National Institute of Standards and Technology" rel="home">
|
||
<img class="nist-footer__logo-img" src="/libraries/nist-component-library/dist/img/logo/NIST-Logo-Brand-White.svg" alt="National Institute of Standards and Technology logo" width="300px" height="42px" />
|
||
</a>
|
||
</div>
|
||
<div class="nist-footer__contact">
|
||
<h3 class="nist-footer__contact-heading">HEADQUARTERS</h3>
|
||
<address>
|
||
100 Bureau Drive<br>
|
||
Gaithersburg, MD 20899<br>
|
||
<a href="tel:301-975-2000">301-975-2000</a>
|
||
</address>
|
||
<p>
|
||
<a href="mailto:do-webmaster@nist.gov">Webmaster</a> | <a href="https://www.nist.gov/about-nist/contact-us">Contact Us</a> | <a href="https://www.nist.gov/visit">Our Other Offices</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="tablet:grid-col-6">
|
||
<div class="nist-footer__social-links">
|
||
|
||
<a class="nist-social nist-social--x-white" href=" https://x.com/NIST">
|
||
<span>X.com</span>
|
||
</a>
|
||
|
||
<a class="nist-social nist-social--facebook-white" href=" https://www.facebook.com/NIST">
|
||
<span>Facebook</span>
|
||
</a>
|
||
|
||
<a class="nist-social nist-social--linkedin-white" href=" https://www.linkedin.com/company/nist">
|
||
<span>LinkedIn</span>
|
||
</a>
|
||
|
||
<a class="nist-social nist-social--instagram-white" href=" https://www.instagram.com/nist/">
|
||
<span>Instagram</span>
|
||
</a>
|
||
|
||
<a class="nist-social nist-social--youtube-white" href=" https://www.youtube.com/NIST">
|
||
<span>YouTube</span>
|
||
</a>
|
||
|
||
<a class="nist-social nist-social--giphy-white" href=" https://giphy.com/nist">
|
||
<span>Giphy</span>
|
||
</a>
|
||
|
||
<a class="nist-social nist-social--rss-white" href=" https://www.nist.gov/news-events/nist-rss-feeds">
|
||
<span>RSS Feed</span>
|
||
</a>
|
||
|
||
<a class="nist-social nist-social--envelope-white" href=" https://public.govdelivery.com/accounts/USNIST/subscriber/new">
|
||
<span>Mailing List</span>
|
||
</a>
|
||
</div>
|
||
<div class="nist-footer__feedback">
|
||
How are we doing? <a class="usa-button" rel="nofollow" href="/form/nist-gov-feedback?destination=/blogs/cybersecurity-insights/protecting-model-updates-privacy-preserving-federated-learning" title="Provide feedback">Feedback</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="grid-container">
|
||
<div class="nist-footer__nav" role="navigation">
|
||
<ul>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/privacy-policy">Site Privacy</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/oism/accessibility">Accessibility</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/privacy">Privacy Program</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/oism/copyrights">Copyrights</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.commerce.gov/vulnerability-disclosure-policy">Vulnerability Disclosure</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/no-fear-act-policy">No Fear Act Policy</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/office-director/freedom-information-act">FOIA</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/environmental-policy-statement">Environmental Policy</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/summary-report-scientific-integrity">Scientific Integrity</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.nist.gov/nist-information-quality-standards">Information Quality Standards</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://www.commerce.gov/">Commerce.gov</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="http://www.science.gov/">Science.gov</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="http://www.usa.gov/">USA.gov</a>
|
||
</li>
|
||
<li class="nist-footer__menu-item">
|
||
<a href="https://vote.gov/">Vote.gov</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</footer>
|
||
<!-- nist-index-ignore-end -->
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/1843006","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"back_to_top":{"back_to_top_button_trigger":100,"back_to_top_speed":1200,"back_to_top_prevent_on_mobile":false,"back_to_top_prevent_in_admin":true,"back_to_top_button_type":"image","back_to_top_button_text":"Back to top"},"google_analytics":{"account":"G-HEQ0YF2VYL","trackOutbound":true,"trackMailto":true,"trackTel":true,"trackDownload":true,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|bsh|c|csv|doc(x|m)?|dot(x|m)?|dw(fx|g|gd)|dxf|eps|epub|exe|f(90)|flv|gif|gz|gzip|hqx|jar|jpe?g|js|m1v|mp(2|3|4|e?g)|mobi|mov(ie)?|msi|msp|pdf|phps|pl|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|rfa|rtf|rvt|sch|sea|sit|swf|tar|tgz|tif|txt|txz|wav|wma|wmv|wpd|wrl|xls(x|m|b)?|xlt(x|m)|xlam|xml|xsd|z|zip"},"nist_search":{"clickTracking":"search-report-click","isDebug":false,"clickTrackEnabled":true,"message":"NIST Search in debug mode. Check the browsers network inspector for Click Track reporting results..."},"data":{"extlink":{"extTarget":false,"extTargetNoOverride":false,"extNofollow":false,"extNoreferrer":false,"extFollowNoOverride":false,"extClass":"ext","extLabel":"(link is external)","extImgClass":false,"extSubdomains":true,"extExclude":"\\.gov\\\/|\\.mil\\\/|\\manufacturingusa\\.com\\\/","extInclude":"","extCssExclude":".ck-editor, .nist-video-thumbnail__lightbox-trigger, a.nist-icon--mail-blue","extCssExplicit":"","extAlert":true,"extAlertText":"Thank you for visiting NIST. We hope your visit was informative. We have provided a link to this site because it has information that may be of interest to our users. NIST does not necessarily endorse the views expressed or the facts presented on this site. Further, NIST does not endorse any commercial products that may be advertised or available on this site. Click OK to be directed to your link.","mailtoClass":"0","mailtoLabel":"(link sends email)","extUseFontAwesome":false,"extIconPlacement":"after","extFaLinkClasses":"fa fa-external-link","extFaMailtoClasses":"fa fa-envelope-o","whitelistedDomains":[]}},"viewsJumpMenu":{"blog-categories-block-2-jump-menu":{"new_window":false}},"ajaxTrustedUrl":{"\/blogs\/cybersecurity-insights\/search":true,"\/comment\/reply\/node\/1843006\/comment_node_blog":true},"user":{"uid":0,"permissionsHash":"bd6a443844dbe99b4e6942f3b1397526e760137efd2b1ee6b2d588fc414dff20"},"antibot":{"forms":{"comment-form":{"id":"comment-form","key":"8s3HerPNUiBWAup-NU0eICdfN5XSJ1VRGAW7gyEytXD"}}}}</script>
|
||
<script src="/sites/default/files/js/js_jDaFaXhHm6gPUKstNYX9eIyoQXghVs3g7rbR0QoqpYY.js?scope=footer&delta=0&language=en&theme=nist_www&include=eJxdjw2OAyEIhS_klCMRHBlLqzJRpu7efp2fppsmJvg9eI_gaX6i6Xgr-M8fH81F1ZgYqVD6NZkbfAuuSDNcZGhBe0lKAa2OECkRIp3tJsaS16ovhm9h33JodufMY68mTxWzBgjSyI_gJOV5zEBM6ilNlwXuTIHrG7H3_m-Cf2w3QqjbSul24WnMFIssMruXcG_42PKKmcsGB087Tzs7KiZeDa56W7RmN641ru_gk_4AudN_yQ"></script>
|
||
<script src="https://siteimproveanalytics.com/js/siteanalyze_6017546.js" async></script>
|
||
<script src="/sites/default/files/js/js_yFXzHK1gkl-H3tLPLdnBw5DymsKPJCwJskyq7yQVS6A.js?scope=footer&delta=2&language=en&theme=nist_www&include=eJxdjw2OAyEIhS_klCMRHBlLqzJRpu7efp2fppsmJvg9eI_gaX6i6Xgr-M8fH81F1ZgYqVD6NZkbfAuuSDNcZGhBe0lKAa2OECkRIp3tJsaS16ovhm9h33JodufMY68mTxWzBgjSyI_gJOV5zEBM6ilNlwXuTIHrG7H3_m-Cf2w3QqjbSul24WnMFIssMruXcG_42PKKmcsGB087Tzs7KiZeDa56W7RmN641ru_gk_4AudN_yQ"></script>
|
||
<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"37b7ccb661","applicationID":"1089704227","transactionName":"YFxUN0sADEdYVkBaClkWdwBNCA1aFnFGRhVWVWoNVgUHaHpaWkcXWFVaBks9LFtdUGJaAEB6WQ1NEw1YVVBGHltBUFMU","queueTime":5,"applicationTime":821,"atts":"TBtXQQMaH0k=","errorBeacon":"bam.nr-data.net","agent":""}</script></body>
|
||
</html>
|