I don't think this has anything to do with Scrum or any other management methodology/process. Yes, scrum suggests having a 'vertical skillset' but that's a guideline and not a rule. It does make things easy if everyone can do everything with varying levels of expertise.
In your specific case I guess you need to take extra care for knowledge sharing and put in extra time for knowledge transfer. So even if everyone can't do everyone's work at least they can understand it in some detail so as to be helpful in debugging, system design etc.
You could still use Scrum with the daily stand-ups, burn-down charts, sprints etc. However, you must decide, as a team "how" to do the work. If they are experts as you claim then let them do their job but spend more time on 'interfacing' - both human and code (latter more important from implementation POV). Have special meeting times about 1-2 times a week where each specialist holds a 2 hour session talking about their area and 'educating' everybody. Allocate time for this and adjust the schedule estimates accordingly. I'm sure everyone will know something about everybody else's code but not enough to make changes. But it's upto the team how to get rid of information silos - that's the only reason Scrum suggests everyone be able to do everything to prevent superstars or SPOFs (single points of failure).
I guess you need to discuss this with your team to figure out how best to address this 'risk' IMHO.