this worked for me (ssrs 2008 to ssrs 2016). we do not have database encryption turned on. we do not use SharePoint integration either.
tl;Dr summary: backup current ssrs keys. copy the .snk file. install ssrs 2016, but don't create the databases. restore ssrs databases on the new server. configure ssrs on the new server to use the new ssrs databases. import the .snk file.
MS says the same thing, except for checking the records in the one table and deleting the extra record from the old server.
a nice bonus is so far our old ssrs 2008 reports continue to run fine.
for subscriptions, you might need to touch them if they drop Excel files. you'll need to re-select Excel. ssrs 2008 drops .xls ("excel.old" files). ssrs 2016 only drops .xlsx files. the touch sets things up for ssrs 2016.
I also scripted out the subscription jobs from msdb..sysjobs. easy, as they are the jobs with "guid" names. we don't use ssrs Enterprise, so wanted to control the jobid values to not break our data-driven reports workarounds.
you may need to check those subscription job owners and job schedules too.
wish ssis upgrades were so simple...